Skip to content

1060: Device Battery Status

David Bonnes edited this page Jun 21, 2020 · 13 revisions

Report a device's battery level state.

069  I --- 04:189082 --:------ 04:189082 1060 003 006401
045  I --- 04:056053 --:------ 01:145038 1060 003 016401
069  I --- 04:189076 --:------ 01:145038 1060 003 026401
045  I --- 04:056057 --:------ 01:145038 1060 003 036401
071  I --- 04:189082 --:------ 01:145038 1060 003 046401
059  I --- 04:189080 --:------ 01:145038 1060 003 056401
053  I --- 34:064023 --:------ 34:064023 1060 003 00FF01
045  I --- 34:092243 --:------ 34:092243 1060 003 00FF01
060  I --- 07:045960 --:------ 07:045960 1060 003 00FF01
061  I --- 12:010740 --:------ 12:010740 1060 003 00FF01

Devices spontaneously send this data every 24h, and presumably when state changes.

Payload Structure

segment size description
zone_id [0:2] Zone (0x00-0x0B) or 0x00
Level [2:4] Battery level % = (0 - 200) / 2
Unknown [4:6] 0 or 1. Legacy Devices only report 0x01 = OK, 0x00 = Low

Note that some TRVs (04:xxxxxx) will 'leak' their zone membership, whilst other devices will not.

Sample Code

def parser_1060(payload) -> Optional[dict]:
    assert len(payload) / 2 == 3
    assert payload[4:6] in ["00", "01"]

    return {
        "battery_level": None if payload[2:4] == "FF" else _cent(payload[2:4]) / 2,
        "battery_low": payload[4:] == "00",
    }

Related Packets

  • 1060: Battery Status
  • 10E0: Device Information
Clone this wiki locally