mirror of
https://github.com/merbanan/rtl_433.git
synced 2026-07-31 10:37:40 -04:00
CC110L-based FSK protocol, 26 us symbols, GFSK/FSK_PULSE_PCM. Both the application-layer CRC-16/MODBUS and the CC110L's own hardware CRC-16/CMS are validated as independent accept/reject gates before any field is decoded. The application payload is a generic tag+length record stream (value length is encoded in each tag byte's own top two bits), not a layout fixed per message type, which lets the same walker decode both the base -> endpoint command/state messages and the endpoint -> base status reports: - temperature_F: primary measured temperature (tag 0x4b). - temperature_2_F: secondary floor/external temperature (tag 0x5e). - mode_setpoint_F / setpoint_mode: active setpoint and its operating mode bank (tag 0x8a: Comfort/Off/Anti-freeze/Reduced-ECO/Boost-Timer/ Auto phases/Manual-Temporary). - setpoint_min_C / setpoint_max_C / sensor_mode / sensor_flags_raw: installer-configured setpoint range and regulation-sensor selection (tag 0x8e: Amb/FLR/FLL/Air). - floor_limit_1_F / floor_limit_2_F: floor-limit temperature pair, only meaningful in FLL sensor mode (tag 0xcc). - diagnostic_code / diagnostic_flags: per-zone diagnostic state (tag 0x4c). - report_flags_0/1/2: packed report/update state (tag 0x8d), including a known update-gate bit for the paired 0x8a value. - association_id / state_raw / flags_raw: per-endpoint association id and state bytes (tags 0x03/0xdf/0x3b) from command/state messages. A raw value of 0x084c marks a temperature field as sensor-unavailable and is omitted rather than reported as a bogus ~212.4 F reading; a zero floor-limit word is likewise omitted rather than reported as 0.0 F. Fields not yet covered by the above are logged and skipped rather than guessed at, since the record stream is walked generically instead of assuming a fixed frame.