// flowchart
flowchart TD
A([START]) --> B[Serial.begin 115200]
B --> C[initWiFi]
C --> C1[WiFi.begin\nSSID + password]
C1 --> C2{WiFi\nconnected?}
C2 -- No --> C3[Wait 500 ms] --> C2
C2 -- Yes --> C4[Print IP · RSSI · MAC]
C4 --> D[initMQTTbroker]
D --> D1[setServer broker:1883]
D1 --> E[Set 4 buttons as INPUT_PULLUP]
E --> F[Set 4 LEDs as OUTPUT]
F --> LOOP
subgraph LOOP [" loop() "]
L1{MQTT\nconnected?} -- No --> L2[mqttConnect]
L2 --> L2a{Connect OK?}
L2a -- Yes --> L2b[Flash green LED\nPublish hello]
L2a -- No --> L2c[Wait 5 s] --> L2
L2b --> L3
L1 -- Yes --> L3[mqttClient.loop\nprocess messages]
L3 --> L4[i = 0]
L4 --> L5{i < 4?}
L5 -- No --> L8
L5 -- Yes --> L6{Button i\npressed?\ndigitalRead == LOW}
L6 -- No --> L7[i++] --> L5
L6 -- Yes --> L6a{LED i\nalready ON?}
L6a -- Yes --> L7
L6a -- No --> L6b[Turn LED i ON\nAppend color to strVolgorde\nteller++]
L6b --> L6c[Print strVolgorde\nDelay 50 ms]
L6c --> L7
L8[Delay 200 ms] --> L9{teller == 4?}
L9 -- Yes --> L10[Publish strVolgorde\nto EscapeGame/Volgorde]
L10 --> L11[Reset teller = 0\nClear strVolgorde\nTurn ALL LEDs OFF]
L11 --> L1
L9 -- No --> L12{teller > 4?}
L12 -- Yes --> L13[Turn ALL LEDs OFF] --> L1
L12 -- No --> L1
end