Skip to content

Remote device configuration

For supported device models (currently Sentinel SNT-G1), Celestian can configure the device remotely, send commands, and show whether the device runs the configuration you want.

  • The device is registered with Serial = the device MAC (a sensor behind a gateway is a regular device).
  • There is a valid delivery destination: a channel that is followed (subscribed) by the device itself or its gateway, with the gateway bridge forwarding +/config and +/cmd.
  • You hold the device.configure permission on that device (Admin already has it; the built-in Operator role does not).

On the device detail → Device settings:

The Device settings tab with a status card, delivery destination, and the settings form.
Part Contents
Status A sync status badge, the sent version and the version on the device, the last report, the model, firmware, rejections, and drift.
Delivery destination A channel that can deliver and the topic form (UUID or route, with a topic preview). The topic form must match the contents of the gateway bridge.
Settings form Built from the model catalog: the sections Device, Telemetry, Sensors, Alarm and power, Display and buttons, Firmware, Temperature slots, Digital inputs, and Digital outputs. Each key shows the value on the device as a hint, a managed badge, a release button, and a restart marker.
Unbound temperature sensors Sensors that were found but are not yet mapped to a slot, with a Bind button.
Commands rescan, identify, and reboot.

The panel refreshes itself every 15 seconds without overwriting your local draft.

  1. Change values in the form. Only keys you fill in become managed; other keys are left as they are on the device.
  2. Save the draft. The draft is validated against the catalog: type, range, length, unique sensor ROMs, and cross-key rules (for example the warning threshold must be below the alarm threshold).
  3. Send. A confirmation dialog shows the destination topic and restart warnings if any.
  4. Celestian sends the whole set of managed keys in one retained message, with a cfg_ver version number that increases automatically. The device applies it and then reports on config/reported.
Status Meaning
none No configuration yet.
draft Never sent, or different from what was sent.
waiting Sent; the device has not reported the same version yet.
partial The same version but some keys were rejected (the reason per key is shown).
synced The same version, no rejections, and the values on the device equal what was sent.
drift The same version but some values on the device differ (for example changed on site).
replaced The device reports a newer version (it was configured through another path).

Configuration travels Celestian → the gateway bridge → local Mosquitto (retained) → the device. If the device reports a cfg_ver older than what was sent (for example the gateway was down for more than an hour), the reconciler resends the last-sent content (not the draft) with the same version. There is a minimum interval and a cap on the number of resends per send. A device that reports the same or a newer version is not overwritten.

The catalog mirrors the firmware fields() table: types (text, ASCII label, metric name, DS18B20 ROM with CRC, boolean, integer, decimal, enum), ranges, lengths in bytes, and reboot markers. Quoted numbers ("30000") are rejected. Per-key errors use codes such as range, rom_invalid, and warn_ge_alarm.

The reset action sends the reset_config command. For a reset to move location, Celestian releases the send history (the draft stays saved) and clears the old retained messages before the command is sent, so the reconciler does not resend the old configuration to a device that was just reset.

The menu Device Management → Config Templates stores default values for one model (without sensor bindings, since those are the identity of one device).

The Config Templates list.
Config Templates.
The config template editor with the same form as the Device settings tab.
The config template editor.
  • Apply to devices: pick 1 to 200 devices (search by name, group members, or device type), then see a per-device preview (changes from → to). The result per device: unchanged, applied (draft saved), pushed (saved and sent), invalid, skipped, or failed. One device failing does not cancel the others.
  • The options Overwrite (on by default; off = only keys that are not yet managed are filled in) and Send.
  • The device.configure permission is checked per device.
  • Automatic application: bind a template to a device type or a group. A device that is newly created, imported, put into a group, or changes type automatically receives a draft (only filling empty keys, layered from the type and then groups from the farthest ancestor).
  • Save as template: from the Device settings tab, copy a device’s saved settings into a new template.
  • Export and import files: Configuration files.

The output command controls Digital outputs o1 to o4.

The Output Control page for many devices.
Bulk Output Control.
  • One device: the Digital output card in the Device settings tab. The slots come from the device report; the buttons Turn on (with an optional duration in seconds) and Turn off. The card shows the last state of each output (ON, OFF, or no data yet) and waits for the device’s reply: accepted, rejected with a reason, or “no reply yet”.
  • Many devices: the menu Device Management → Output Control. Choose the targets (at most 200), the output, and the state; look at the per-device preview; confirm; send. The result per device: sent, skipped (reasons such as slot_off, no_serial, gateway, forbidden), or failed.

Every save, send, command, and automatic resend is recorded in Journals (the saved configuration contents carry no secrets; a send only records key names and the version). There is a rate limit per device (a burst of 5, 0.2 per second).

A device that computes alarms itself sends boolean metrics prefixed with alarm_. The Device alarm rule output turns them into alarms in Celestian (Alarms).