Add battery level sensor for ViCare zigbee devices (#137813)

* add battery level sensor

* add uom

* adapt test case
pull/138173/head
Christopher Fenner 2025-02-09 23:50:03 +01:00 committed by GitHub
parent dafc331e85
commit c8b4e62710
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 77 additions and 0 deletions

View File

@ -883,6 +883,14 @@ GLOBAL_SENSORS: tuple[ViCareSensorEntityDescription, ...] = (
entity_category=EntityCategory.DIAGNOSTIC,
value_getter=lambda api: api.getSeasonalPerformanceFactorHeating(),
),
ViCareSensorEntityDescription(
key="battery_level",
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.BATTERY,
entity_category=EntityCategory.DIAGNOSTIC,
value_getter=lambda api: api.getBatteryLevel(),
),
)
CIRCUIT_SENSORS: tuple[ViCareSensorEntityDescription, ...] = (

View File

@ -51,6 +51,24 @@
"timestamp": "2024-03-01T04:40:59.911Z",
"uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-d87a3bfffe5d844a/features/device.name"
},
{
"apiVersion": 1,
"commands": {},
"deviceId": "zigbee-d87a3bfffe5d844a",
"feature": "device.power.battery",
"gatewayId": "################",
"isEnabled": true,
"isReady": true,
"properties": {
"level": {
"type": "number",
"unit": "percent",
"value": 89
}
},
"timestamp": "2025-02-03T02:30:52.279Z",
"uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-d87a3bfffe5d844a/features/device.power.battery"
},
{
"apiVersion": 1,
"commands": {},

View File

@ -2585,6 +2585,57 @@
'state': 'permanent',
})
# ---
# name: test_room_sensors[sensor.model0_battery-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.model0_battery',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
'original_icon': None,
'original_name': 'Battery',
'platform': 'vicare',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'gateway0_zigbee_d87a3bfffe5d844a-battery_level',
'unit_of_measurement': '%',
})
# ---
# name: test_room_sensors[sensor.model0_battery-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'battery',
'friendly_name': 'model0 Battery',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.model0_battery',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '89',
})
# ---
# name: test_room_sensors[sensor.model0_humidity-entry]
EntityRegistryEntrySnapshot({
'aliases': set({