```mermaid
graph
A(Wifi start)
A-->AA
AA[start wifi service]
B[Start provision]
AA-->|not provisioned
SETTINGS.wifi.num == 0|B
C{{single
or
multiple}}
AA-->|provisioned
SETTINGS.wifi.num > 0|C
D[try 3 times:
connect]
C-->|single
SETTINGS.wifi.num == 1|D
E[try 3 times:
connect to known SSID
with highest rssi]
C-->|multiple
SETTINGS.wifi.num > 1|E
F[try 3 times:
connect round robin]
E-->|failed|F
```