Documentation

Automations & hardware

Send readings over HTTP

Feed readings from any system into Automations without hardware — post JSON to a secret URL and map each field to a channel.

An HTTP device has no wiring and nothing to flash. It's a way for any system that can send a web request — a script, a PLC, a sensor gateway, a building-management system, or another app — to push readings into Automations. Each reading lands on a channel, just like a sensor on an ESP32 or Pi, so it can drive the same rules, alerts, and charts.

When to use it

  • You already have equipment that can POST data and don't want to add a controller.
  • You want to forward readings from another platform into your POS automations.
  • You're testing a rule and want to send values by hand.

Step 1 — Create the device

  1. In the Automations area, go to Devices → New device and choose HTTP (token).
  2. Add a channel for each value you'll send (e.g. Fridge temp, Door). HTTP channels have no GPIO pin — just a name, a direction (usually input), and an optional unit.
  3. Save the device.

Step 2 — Get the secret URL and token

On the device page, open the HTTP / inbound section to reveal:

  • A secret URL to post readings to.
  • A token that authorises the request. The full token is shown once — copy it now and store it safely. Afterwards only the last few characters are shown.

Treat the URL and token like a password: anyone who has them can write readings to your channels.

Step 3 — Map your JSON to channels

Tell Automations where each value lives in the JSON you'll send by adding mappings — a dotted path to the value, and the channel it belongs to.

For example, if you'll send this body:

{
  "sensors": {
    "temp": 3.7,
    "door_open": true
  }
}

you'd map:

PathChannel
sensors.tempFridge temp
sensors.door_openDoor

Values are read flexibly: numbers come through as-is, true/false become 1 / 0 (so they work as boolean sensors), and numeric text is parsed.

Step 4 — Post a reading

Send a POST request with your JSON body to the secret URL. For example, from a terminal:

curl -X POST "<your secret URL>" \
  -H "Content-Type: application/json" \
  -d '{"sensors":{"temp":3.7,"door_open":true}}'

Each post updates the mapped channels and adds points to their charts. Send a reading whenever you have a new value — there's no need to poll on a fixed schedule.

Keeping it secure

  • Rotate the token from the device page if it's ever exposed; the old token stops working immediately.
  • Send over HTTPS so the token isn't visible in transit.
  • Give each external system its own HTTP device so you can revoke one without affecting the others.

Troubleshooting

ProblemFix
Readings don't appearCheck the request returns a success status, and that each mapping's path exactly matches your JSON keys
"Unauthorized"The token is wrong or was rotated — copy the current one from the device page
A boolean shows the wrong stateMap it to a Boolean sensor channel and set its on/off labels, or send 1 / 0 explicitly

See also Common questions. Need a hand? Contact support.