Skip to content

Latest commit

 

History

History
150 lines (107 loc) · 4.76 KB

GLOSSARY.md

File metadata and controls

150 lines (107 loc) · 4.76 KB

DashIO

DashIO is the protocol between IoT devices, the Dash app and the Dash server. python-dashio implements the device side.

Parties

Dash app: The phone and tablet app that shows and controls devices. Avoid: client

Dash server: dashio.io's MQTT server, with its history storage and push notifications. Avoid: broker, cloud

Devices

Device: A thing that talks DashIO and is shown in the Dash app. One program can run several devices.

Device ID: The unique, fixed name of a device, used in every message and topic. Avoid: serial, serial number

Device type: The kind of product a device is, the same for every unit of it. Avoid: model

Device name: The user-editable name the Dash app shows for a device. Avoid: label, title

Device setup: The list in a CFG of the settings and connections a device lets the Dash app change, such as NAME, WIFI and SAF. Avoid: capabilities, features

Provisioning: The Dash app giving a device what it needs to join a network and the Dash server: Wi-Fi details, Dash server credentials, its device name. Usually over BLE, before the device has any other connection. Avoid: onboarding, commissioning

Intermittent device: A device that connects to the Dash server only now and then, e.g. on LTE to save power. Avoid: sleepy device, LTE device

Controls

Control: One item a device shows in the Dash app, such as a Dial, TimeGraph or Menu. Avoid: widget, element

Control ID: A control's short name on its device, at most 7 characters.

Control type: The protocol keyword for a kind of control, such as DIAL or TGRPH.

Nested control: A control that appears only inside a Menu or ButtonGroup, its parent, and on no device view. Its state is sent when its parent is tapped, not in STATUS. Avoid: menu-only control, child control

Alarm: A notification from a device that the Dash server pushes to the user's phone. Avoid: notification, push, alert

Layouts

CFG: The message a device sends to describe itself to a Dash app: its settings and one layout. Avoid: config, configuration

Layout: The arrangement of controls and device views for one column count. A device holds at most one layout per column count. Avoid: CFG (for one layout), screen

cfgRev: The number a device reports with its WHO so the Dash app knows when to fetch a new CFG. Avoid: CFG version, config version

Device view: A page of controls in the Dash app. Avoid: view, page, screen

Provisioning menu: The Dash app's menu for setting a device up, where Menus whose parent is PROV appear. Avoid: settings menu, PROV menu

Column count: How many columns the Dash app shows: 1 on a phone, 2 on a fold-out phone, 3 on a tablet. Avoid: column number, columns

C64: The compressed text encoding a CFG is shared in. Avoid: cfg64 (as a concept)

Connections

Dash server connection: A device's MQTT connection to the Dash server.

Local connection: Any connection to a Dash app that doesn't go through the Dash server: TCP, BLE or ZMQ. Avoid: direct connection

Control topic: The MQTT topic carrying messages to a device. Avoid: inbound topic

Data topic: The MQTT topic carrying messages from a device to the Dash app. Avoid: outbound topic

Announce topic: The MQTT topic carrying a device's messages to the Dash server itself, such as WHO, storage requests and history uploads.

Watched: A device is watched while a Dash app has sent it CONNECT or WHO recently. Control updates go to the Dash server only while it is watched. Avoid: app connected

Offline: A device being unreachable for now, announced with OFFLINE.

Device removal: Deleting a device from the Dash server, which is what DISCONNECT does. Avoid: disconnect

Planned disconnect: A device closing its own Dash server connection on purpose, e.g. an intermittent device after a history upload.

STATUS: A device's reply giving the current state of every control that isn't a nested control.

Package: One message bundling several others, PKG in the protocol. Avoid: batch

History

Server storage: The Dash server keeping a TimeGraph, EventLog or Map's history, turned on with STE. The server is then the source of truth for that history. Avoid: storage enable, SAF

History request: The Dash app asking a TimeGraph, EventLog or Map for its past data.

History upload: A device sending the Dash server the TimeGraph, EventLog and Map history it is missing, after reconnecting. SDU in the protocol. Avoid: store and forward

Store and forward: The Dash server keeping the latest message for each control, in both directions between the Dash app and an intermittent device, and passing it on when the other end connects. SAF in the protocol. Avoid: message queue