How controls send commands — the outbound half of the standardized connection block. The payload vocabulary ({{value}} and friends) is identical across transports; method picks the wire.

Definition

"action": {
  "method": "meshsocket",
  "mode": "request",
  "event": "set_power",
  "payload": { "state": "{{value}}" }
}

The same command over other transports (see Data Sources):

{ "method": "mqtt", "topic": "power/set", "payload": "{{value}}" }
{ "method": "http", "path": "/api/power", "httpMethod": "POST",
  "payload": { "state": "{{value}}" } }

Modes (meshsocket)

Mode Behavior
request Send + await response
broadcast Fire and forget

MQTT publishes and HTTP requests are fire-and-forget; failures surface in the connection console. Ack'd commands (layout state.acks) are a MeshSocket contract and don't apply to mqtt/http actions.

Substitution

{{value}} in any string becomes the current control value: - Toggle: true / false - Slider: 75.0 - Picker: "Ocean"

A string that is exactly "{{value}}" keeps the value's native type (numbers stay numbers, bools stay bools). Over MQTT, a string payload publishes as raw bytes (ON, not "ON"); objects publish as JSON.