zigpy / zha-device-handlers

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.
Apache License 2.0
757 stars 695 forks source link

[Device Support Request] SMaBiT (Bitron Video) AV 2010/24A #2918

Closed digi303 closed 3 months ago

digi303 commented 10 months ago

Problem description

The smoke detector normally provides a low battery warning. This is not displayed in ZHA.

Solution description

A data end point is required either with the numerical values of the battery in % or at least a battery low warning as a binary sensor

Screenshots/Video

AV2010-24A

Device signature

Device signature ```json { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0402", "input_clusters": [ "0x0000", "0x0003", "0x0500", "0x0502" ], "output_clusters": [ "0x0000" ] }, "4": { "profile_id": "0x0104", "device_type": "0x0402", "input_clusters": [], "output_clusters": [ "0x0019" ] } }, "manufacturer": "Bitron Video", "model": "902010/24A", "class": "zigpy.device.Device" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2024.1.3", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.11.6", "docker": true, "arch": "x86_64", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "6.1.71-haos", "supervisor": "2023.12.1", "host_os": "Home Assistant OS 11.4", "docker_version": "24.0.7", "chassis": "embedded", "run_as_root": true }, "custom_components": { "waste_collection_schedule": { "version": "1.44.0", "requirements": [ "icalendar", "recurring_ical_events", "icalevents", "bs4", "lxml" ] }, "robonect": { "version": "v1.5.4", "requirements": [ "aiorobonect>=1.0.1", "jsonpath" ] }, "nuki_ng": { "version": "0.2.1", "requirements": [] }, "frigate": { "version": "4.0.1", "requirements": [ "pytz==2022.7" ] }, "dwd_pollen": { "version": "0.1.9", "requirements": [] }, "feedparser": { "version": "0.1.11", "requirements": [ "feedparser==6.0.10" ] }, "daily": { "version": "0.4.0", "requirements": [] }, "audiconnect": { "version": "2021.1.1", "requirements": [ "beautifulsoup4" ] }, "home_connect_alt": { "version": "1.0.2", "requirements": [ "home-connect-async==0.7.16" ] }, "versatile_thermostat": { "version": "5.2.2", "requirements": [] }, "dwd_pollenflug": { "version": "1.0.2", "requirements": [ "pytz" ] }, "enigma": { "version": "1.4", "requirements": [ "beautifulsoup4==4.6.3" ] }, "thermal_comfort": { "version": "2.2.2", "requirements": [] }, "hacs": { "version": "1.33.0", "requirements": [ "aiogithubapi>=22.10.1" ] }, "rewe": { "version": "2024.01.0", "requirements": [ "cloudscraper==1.2.71" ] }, "alexa_media": { "version": "4.9.0", "requirements": [ "alexapy==1.27.10", "packaging>=20.3", "wrapt>=1.14.0" ] }, "smart_irrigation": { "version": "v2023.12.2", "requirements": [] }, "localtuya": { "version": "5.2.1", "requirements": [] }, "auto_backup": { "version": "1.4.1", "requirements": [] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "after_dependencies": [ "onboarding", "usb" ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly", "@TheJulianJES" ], "config_flow": true, "dependencies": [ "file_upload" ], "documentation": "https://www.home-assistant.io/integrations/zha", "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp", "universal_silabs_flasher" ], "requirements": [ "bellows==0.37.6", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.109", "zigpy-deconz==0.22.4", "zigpy==0.60.4", "zigpy-xbee==0.20.1", "zigpy-zigate==0.12.0", "zigpy-znp==0.12.1", "universal-silabs-flasher==0.0.15", "pyserial-asyncio-fast==0.11" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "vid": "1A86", "pid": "55D4", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus v2" ] }, { "vid": "10C4", "pid": "EA60", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus" ] }, { "vid": "10C4", "pid": "EA60", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*zigstar*", "known_devices": [ "ZigStar Coordinators" ] }, { "vid": "1CF1", "pid": "0030", "description": "*conbee*", "known_devices": [ "Conbee II" ] }, { "vid": "0403", "pid": "6015", "description": "*conbee*", "known_devices": [ "Conbee III" ] }, { "vid": "10C4", "pid": "8A2A", "description": "*zigbee*", "known_devices": [ "Nortek HUSBZB-1" ] }, { "vid": "0403", "pid": "6015", "description": "*zigate*", "known_devices": [ "ZiGate+" ] }, { "vid": "10C4", "pid": "EA60", "description": "*zigate*", "known_devices": [ "ZiGate" ] }, { "vid": "10C4", "pid": "8B34", "description": "*bv 2010/10*", "known_devices": [ "Bitron Video AV2010/10" ] } ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" }, { "type": "_zigstar_gw._tcp.local.", "name": "*zigstar*" }, { "type": "_uzg-01._tcp.local.", "name": "uzg-01*" }, { "type": "_slzb-06._tcp.local.", "name": "slzb-06*" } ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 55734, "manufacturer": "Bitron Video", "model": "902010/24A", "name": "Bitron Video 902010/24A", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "quirk_id": null, "manufacturer_code": 0, "power_source": "Battery or Unknown", "lqi": 140, "rssi": -65, "last_seen": "2024-01-18T19:44:06", "available": true, "device_type": "EndDevice", "signature": { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "4": { "profile_id": "0x0104", "device_type": "0x0402", "input_clusters": [], "output_clusters": [ "0x0019" ] }, "1": { "profile_id": "0x0104", "device_type": "0x0402", "input_clusters": [ "0x0000", "0x0003", "0x0500", "0x0502" ], "output_clusters": [ "0x0000" ] } }, "manufacturer": "Bitron Video", "model": "902010/24A" }, "active_coordinator": false, "entities": [ { "entity_id": "button.rauchmelder_wohnzimmer_identifizieren", "name": "Bitron Video 902010/24A" }, { "entity_id": "select.rauchmelder_wohnzimmer_standard_sirenenpegel", "name": "Bitron Video 902010/24A" }, { "entity_id": "select.rauchmelder_wohnzimmer_standard_sirenenton", "name": "Bitron Video 902010/24A" }, { "entity_id": "select.rauchmelder_wohnzimmer_standard_strobe_pegel", "name": "Bitron Video 902010/24A" }, { "entity_id": "select.rauchmelder_wohnzimmer_standard_stroboskop", "name": "Bitron Video 902010/24A" }, { "entity_id": "binary_sensor.rauchmelder_wohnzimmer", "name": "Bitron Video 902010/24A" }, { "entity_id": "siren.rauchmelder_wohnzimmer", "name": "Bitron Video 902010/24A" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "IAS_ZONE" }, { "name": "IAS_ZONE" } ], "user_given_name": "Rauchmelder Wohnzimmer", "device_reg_id": "61f4094665f13d5234af6172ce91c4a4", "area_id": "92b98881e1ff41bfb2e3e4ef3dee9efd", "cluster_details": { "4": { "device_type": { "name": "IAS_ZONE", "id": 1026 }, "profile_id": 260, "in_clusters": {}, "out_clusters": { "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} } } }, "1": { "device_type": { "name": "IAS_ZONE", "id": 1026 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "Bitron Video" }, "0x0005": { "attribute_name": "model", "value": "902010/24A" } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0500": { "endpoint_attribute": "ias_zone", "attributes": { "0x0010": { "attribute_name": "cie_addr", "value": [ 14, 38, 222, 41, 0, 75, 18, 0 ] }, "0x0000": { "attribute_name": "zone_state", "value": 1 }, "0x0002": { "attribute_name": "zone_status", "value": 48 }, "0x0001": { "attribute_name": "zone_type", "value": 40 } }, "unsupported_attributes": {} }, "0x0502": { "endpoint_attribute": "ias_wd", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} } } } } } } ```

Logs

Logs ```python [Paste the logs here] ```

Custom quirk

Custom quirk ```python [Paste your custom quirk here] ```

Additional information

No response

github-actions[bot] commented 4 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.