Datler Sensors is the part of Datler that deals with devices. It holds:

  • A device model that every reader shares: a device, its sensors, the channels its firmware records, its log, and the readings a reader makes, named by existing standards where one fits (Device Model, Health and Sensor Data Standards).
  • Firmware (packages/sensors/firmware/): TypeScript that runs on the device, built into the plain script it runs (Firmware Build): a clock, the log, the button and its gestures (Gestures), activities and their steps (Steps), BTHome adverts, and Gadgetbridge’s protocol.
  • Datler Sensors, the app (apps/sensors/): a Tauri app for the phone, in Datler’s look, that adds each sensor in range, runs its activities, shows what it records live and from its log, sets its gestures, and cleans the data: removing a session hides it everywhere the app shows or hands it on, and the device keeps it, so it can be restored.
  • The dev page (packages/sensors/tools/dev/): a web page in Chrome on the desktop that loads the firmware into a device’s RAM and checks it answers.

The first device is a Puck.js v2.1. What it can report, and how much it can keep, is in its note; how a reader reaches it, measured, is Reaching a Puck.

A device speaks three ways: BTHome adverts for what is true now, which Home Assistant can show; its own log, which the app reads from a bookmark so nothing is lost out of range (Sensor Data Format); and Gadgetbridge’s Bangle.js protocol. Datler takes a sensor’s data from the app, as one of the sources it reads, the way it reads Health Connect or Home Assistant, and logs it for you as entries. A day with no reading is No Data, not 0.

The code is open source so a person can read what runs on a device they wear, and change it.