The link to the backplate (or desk stand) microcontroller on /dev/ttyO2.
Always runs the keep-alive: every 30 s it repeats the stock client's 0x83,
0xa2, 0xa3 exchange, without which the backplate power-cycles the head unit
about 36 minutes after it last heard from it. Each time the link opens it
wakes the backplate the way Nest's own client does (a serial BREAK, then
answering its hello), and does so again if the backplate falls silent, which
it does after a reset or a power loss. Decoded readings are published as
:motion, :climate and :battery events and are available through
NestGen2.Motion, NestGen2.Climate and NestGen2.Battery.
The protocol is described in docs/backplate.md.
status/0, subscribe_raw/0 and send_raw/2 are for decoding messages the SDK
does not cover yet, and may change between minor versions.
Summary
Functions
Returns a specification to start this module under a supervisor.
Sends a command frame to the backplate.
Subscribes the caller to every frame as {:nest_gen2_backplate, cmd, payload}.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec send_raw(0..65535, binary()) :: :ok
Sends a command frame to the backplate.
@spec status() :: %{ connected: boolean(), frames_received: non_neg_integer(), last_frame_at: DateTime.t() | nil, restarts: non_neg_integer() }
@spec subscribe_raw() :: :ok
Subscribes the caller to every frame as {:nest_gen2_backplate, cmd, payload}.