Troubleshooting
What to do when the badge says Offline, the toggle button doesn't respond, or you lost the MQTT password.
Most issues fall into one of three buckets: the device can't reach our broker, the credentials don't match, or the cached UI state is stale. Here's how to tell them apart.
"Badge stays Offline for more than a minute after pairing"
The device is most likely not authenticated, or the network is blocking outbound port 8883.
-
1
On the Shelly's local web UI (
http://<device-ip>/), open Settings → Connectivity → MQTT. Look at the Status field on the page. -
2
Check the credentials match exactly what dynamik.app gave you. If you're unsure, in dynamik.app open the switch → Edit → Regenerate Credentials. Paste the new pair into the device.
-
3
Check the device's network can reach port
8883. Most residential networks allow it; some corporate / hospital firewalls block non-standard ports.
If the badge alternates between Online and Offline every minute or two, the network is dropping the long-running TLS connection. Common with NAT timeouts on home routers — usually harmless, our liveness poll picks it back up within 30 seconds.
</div>
If the button greys out and a toast says "Switch is offline": the device hasn't communicated in the last 90 seconds. See the Offline section above.
If the button is enabled but no audible click on the device:
-
1
Open the Activity modal on the switch (clock icon). Look for the most recent
toggled_on/toggled_offentry — is it logged? -
2
If the action is logged but the device didn't click, the MQTT publish reached our broker but didn't reach the device. The device is briefly disconnected. Wait 30 seconds and try again.
-
3
If the action isn't logged at all, your browser session may have expired silently. Refresh the page and re-toggle.
Click Edit on the switch → Regenerate Credentials. The old password is invalidated immediately — the device will go offline until you re-enter the new credentials on it.
There's no way to recover the original password — we only ever store the bcrypt hash. The plaintext was shown to you once on creation and never persisted to the database.
</div>
Open the switch → Edit → change the Project dropdown → Save. The device doesn't need to be reconfigured — its credentials and topic prefix stay the same. The switch just appears under the new project in the UI.
"The activity log shows the same toggle twice"
That's expected:
- One entry from you (e.g. "Turned ON" by your name) — this is the user-initiated action logged immediately when you click.
- One entry from External (physical button or schedule) — the device confirms the state change a moment later via MQTT and we log it for completeness.
You'll see both, ~1 second apart. The "External" one is what tells us the relay actually responded.
"The badge in the UI shows wrong state"
If the dashboard says OFF but the device is clearly ON (or vice versa):
-
1
Refresh the page (F5). The badge re-reads from the database. If it shows the correct state after refresh, your previous tab had stale state due to a missed WebSocket update.
-
2
If it's still wrong after refresh, the device and database are genuinely out of sync. Press the physical button once — that forces the device to publish its current state, which the dashboard picks up within a second.
Email help@dynamik.app with:
- The switch name and project
- What you expected vs what you saw
- Time of the issue (for log lookup)
We'll dig through the broker logs and tell you exactly what went wrong.