Skip to content

Commands Not Delivered (User + Built-in) ​

This page covers:

  • built-in reserved commands: reboot, wifi_reset, ota_check
  • custom user commands (for example led_on, sensor_read)

1) Built-in vs user command ​

  • Built-in commands work from the core.
  • Custom commands must be implemented in diy_user_on_command(const char* cmd).

2) Exact command string ​

cmd in payload must exactly match your firmware handler string.

3) Payload shape ​

JSON must include non-empty cmd, for example:

json
{"cmd":"led_toggle"}

4) Confirm execution ​

For custom commands, publish a user event/telemetry acknowledgment from handler (example pattern: diy_core_publishUserJson("event", ...)).

5) Device state ​

If a device is RECONNECTING or OFFLINE, command sending may be blocked.

6) Dashboard command status ​

  • PUBLISHED: accepted for publish
  • INVALID PAYLOAD: fix payload
  • FAILED: broker/API/runtime issue