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