Skip to content

A dashboard for Sentinel nodes

A generator script builds one dashboard with everything needed to monitor a Sentinel node (or its simulator) as a JSON file for Dashboards → Upload JSON.

Download sentinel-dashboard.mjs (Node.js 18 and later, no dependencies).

  1. Get the UUID of the channel the gateway sends data to (Channels → the row menu → Copy ID). Widget sources use the UUID; a route is not accepted.

  2. Generate the file:

    Terminal window
    node sentinel-dashboard.mjs --channel <channel-UUID> --out sentinel.json
    # other MACs and your own name
    node sentinel-dashboard.mjs --channel <UUID> --macs aabbcc001122,02aabbccdd02 --name "Sentinel Floor 2" --out sentinel.json
    # one dashboard per node
    node sentinel-dashboard.mjs --channel <UUID> --each --out-dir ./output
  3. In Celestian: Dashboards → Upload JSON, pick the file. The dashboard is created with layouts for every screen size.

A combined dashboard holds at most 2 nodes (the server limit is 50 widgets; each node has 17 widgets). For other nodes, build separate files or use --each.

Shared (top): a Route Map of the GPS route of all nodes (24 hours) and an Alarm Table.

Per node:

Widget Contents
Voltage gauge A 180 to 260 V range; green 205 to 235 V (235 included), red outside it.
Value cards Current, Power, Frequency, Power factor, Inlet and outlet temperature (green, yellow ≥ 30 °C, red ≥ 35 °C), Humidity.
Charts Temperature (inlet, outlet, ambient), Voltage, Power, a 1-hour window.
Status DI1 to DI4 and DO1 to DO4.
Table Energy, Uptime, Ambient temperature, Latitude, Longitude, the latest Voltage.
DO1 to DO4 switches Send {"action":"output","output":"oN","state":true|false} to <mac>/cmd.
  • There is a rule Channel Subscriber → Internal DB (SenML) on that channel. Metric names are stored as <mac>:<metric>.
  • The gateway is connected to Celestian and the gateway device has permission to publish to the channel.
  • The DO switches need your publish permission on the channel. The switch state is not read from the node; the real state is in the Status widget.
  • Route Map needs lat and long in one message.