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
751 stars 688 forks source link

[Device Support Request] BTicino F20T60A DIN Power Meter #1769

Closed webartoli closed 1 year ago

webartoli commented 2 years ago

Is your feature request related to a problem? Please describe. Connecting BTicino F20T60A DIN Power Meter, some sensors are detected but values remains on 0.

Describe the solution you'd like Power Sensor detect power consumption.

Device signature ```json { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=1, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4129, maximum_buffer_size=89, maximum_incoming_transfer_size=63, server_mask=10752, maximum_outgoing_transfer_size=63, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x000d", "in_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0b04", "0xfc01" ], "out_clusters": [ "0x0000", "0x0005", "0x0006", "0x0019", "0xfc01" ] }, "242": { "profile_id": 41440, "device_type": "0x0066", "in_clusters": [ "0x0021" ], "out_clusters": [ "0x0021" ] } }, "manufacturer": " Legrand", "model": " DIN power consumption module", "class": "zigpy.device.Device" } ```
Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2022.9.4", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.10.5", "docker": true, "arch": "armv7l", "timezone": "Europe/Rome", "os_name": "Linux", "os_version": "5.15.61-v7", "supervisor": "2022.08.6", "host_os": "Home Assistant OS 9.0", "docker_version": "20.10.17", "chassis": "embedded", "run_as_root": true }, "custom_components": { "dyson_local": { "version": "0.16.4-4", "requirements": [ "libdyson==0.8.11" ] }, "dyson_cloud": { "version": "0.14.0", "requirements": [ "libdyson==0.8.6" ] }, "xiaomi_miio_philipslight": { "version": "2022.8.0.0", "requirements": [ "construct==2.10.56", "python-miio>=0.5.12" ] }, "scheduler": { "version": "v0.0.0", "requirements": [] }, "ecowitt": { "version": "0.7", "requirements": [ "pyecowitt==0.14" ] }, "pirateweather": { "version": "0.1.0", "requirements": [ "python-forecastio==1.4.0" ] }, "xiaomi_cloud_map_extractor": { "version": "v2.2.0", "requirements": [ "pillow", "pybase64", "python-miio", "requests", "pycryptodome" ] }, "ui_lovelace_minimalist": { "version": "v1.1.1", "requirements": [ "aiofiles==0.8.0", "aiogithubapi>=22.2.4" ] }, "adaptive_lighting": { "version": "1.1.0", "requirements": [] }, "miio_yeelink": { "version": "0.1.12", "requirements": [ "construct==2.10.56", "python-miio>=0.5.6" ] }, "samsungtv_tizen": { "version": "1.6.1", "requirements": [ "websocket-client>=0.56.0", "wakeonlan>=2.0.0", "numpy>=1.19.2" ] }, "tapo_control": { "version": "3.7.0", "requirements": [ "pytapo==2.3", "onvif-zeep-async==1.2.0" ] }, "myhome": { "version": "0.8.5", "requirements": [ "OWNd==0.7.39" ] }, "hacs": { "version": "1.27.1", "requirements": [ "aiogithubapi>=22.2.4" ] }, "fontawesome": { "version": "2.1.5", "requirements": [] }, "alarmo": { "version": "v1.9.5", "requirements": [] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/zha", "requirements": [ "bellows==0.33.1", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.79", "zigpy-deconz==0.18.1", "zigpy==0.50.3", "zigpy-xbee==0.15.0", "zigpy-zigate==0.9.2", "zigpy-znp==0.8.2" ], "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": "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" ] } ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly" ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" } ], "dependencies": [ "file_upload" ], "after_dependencies": [ "onboarding", "usb", "zeroconf" ], "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp" ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 30153, "manufacturer": " Legrand", "model": " DIN power consumption module", "name": " Legrand DIN power consumption module", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "manufacturer_code": 4129, "power_source": "Mains", "lqi": null, "rssi": null, "last_seen": "2022-09-11T17:55:41", "available": false, "device_type": "Router", "signature": { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=1, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4129, maximum_buffer_size=89, maximum_incoming_transfer_size=63, server_mask=10752, maximum_outgoing_transfer_size=63, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x000d", "in_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0b04", "0xfc01" ], "out_clusters": [ "0x0000", "0x0005", "0x0006", "0x0019", "0xfc01" ] }, "242": { "profile_id": 41440, "device_type": "0x0066", "in_clusters": [ "0x0021" ], "out_clusters": [ "0x0021" ] } } }, "active_coordinator": false, "entities": [ { "entity_id": "binary_sensor.legrand_din_power_consumption_module_opening", "name": " Legrand DIN power consumption module" }, { "entity_id": "button.legrand_din_power_consumption_module_identifybutton", "name": " Legrand DIN power consumption module" }, { "entity_id": "sensor.legrand_din_power_consumption_module_electricalmeasurement", "name": " Legrand DIN power consumption module" }, { "entity_id": "sensor.legrand_din_power_consumption_module_electricalmeasurementapparentpower", "name": " Legrand DIN power consumption module" }, { "entity_id": "sensor.legrand_din_power_consumption_module_electricalmeasurementrmscurrent", "name": " Legrand DIN power consumption module" }, { "entity_id": "sensor.legrand_din_power_consumption_module_electricalmeasurementrmsvoltage", "name": " Legrand DIN power consumption module" }, { "entity_id": "sensor.legrand_din_power_consumption_module_electricalmeasurementpowerfactor", "name": " Legrand DIN power consumption module" } ], "neighbors": [], "endpoint_names": [ { "name": "CONSUMPTION_AWARENESS_DEVICE" }, { "name": "unknown 102 device_type of 0xa1e0 profile id" } ], "user_given_name": null, "device_reg_id": "477fb7f483194b09defb2179ee0277d0", "area_id": "c3af70c67137329659acb1b300662483", "cluster_details": { "1": { "device_type": { "name": "CONSUMPTION_AWARENESS_DEVICE", "id": 13 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": " Legrand" }, "0x0005": { "attribute_name": "model", "value": " DIN power consumption module" } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0xfc01": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} }, "0x0b04": { "endpoint_attribute": "electrical_measurement", "attributes": { "0x0000": { "attribute_name": "measurement_type", "value": 1 }, "0x0505": { "attribute_name": "rms_voltage", "value": 0 }, "0x0508": { "attribute_name": "rms_current", "value": 0 }, "0x050b": { "attribute_name": "active_power", "value": 0 }, "0x050f": { "attribute_name": "apparent_power", "value": 0 }, "0x0600": { "attribute_name": "ac_voltage_multiplier", "value": 0 }, "0x0601": { "attribute_name": "ac_voltage_divisor", "value": 0 }, "0x0602": { "attribute_name": "ac_current_multiplier", "value": 0 }, "0x0603": { "attribute_name": "ac_current_divisor", "value": 0 }, "0x0604": { "attribute_name": "ac_power_multiplier", "value": 1 }, "0x0605": { "attribute_name": "ac_power_divisor", "value": 1 } }, "unsupported_attributes": { "0x0300": { "attribute_name": "ac_frequency" }, "0x050a": { "attribute_name": "rms_current_max" }, "0x0302": { "attribute_name": "ac_frequency_max" }, "0x0401": { "attribute_name": "ac_frequency_divisor" }, "0x0400": { "attribute_name": "ac_frequency_multiplier" }, "0x0403": { "attribute_name": "power_divisor" }, "0x0402": { "attribute_name": "power_multiplier" }, "0x0507": { "attribute_name": "rms_voltage_max" }, "0x050d": { "attribute_name": "active_power_max" } } } }, "out_clusters": { "0x0006": { "endpoint_attribute": "on_off", "attributes": {}, "unsupported_attributes": {} }, "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0xfc01": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} } } }, "242": { "device_type": { "name": "unknown", "id": 102 }, "profile_id": 41440, "in_clusters": { "0x0021": { "endpoint_attribute": "green_power", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0021": { "endpoint_attribute": "green_power", "attributes": {}, "unsupported_attributes": {} } } } } } } ```
Additional logs Logs adding device ``` Device 0xbcf6 (00:04:74:00:00:85:53:d2) joined the network Device 00:04:74:00:00:85:53:d2 changed id (0x75c9 => 0xbcf6) [0xbcf6] Skipping initialization, device is fully initialized Device is initialized Checking quirks for Legrand DIN power consumption module (00:04:74:00:00:85:53:d2) Considering Fail because endpoint list mismatch: {1, 2, 242} {1, 242} Considering Fail because endpoint list mismatch: {1, 2, 41, 42, 242, 51, 21, 31} {1, 242} Considering Fail because endpoint list mismatch: {232, 230} {1, 242} Considering Fail because endpoint list mismatch: {232, 230} {1, 242} Considering Fail because endpoint list mismatch: {1} {1, 242} Considering Fail because endpoint list mismatch: {1} {1, 242} Considering Fail because endpoint list mismatch: {1} {1, 242} Considering Fail because endpoint list mismatch: {1} {1, 242} Considering Fail because endpoint list mismatch: {11, 13} {1, 242} [48374]( DIN power consumption module): Update device availability - device available: False - new availability: True - changed: True [48374]( DIN power consumption module): Device availability changed and device became available, reinitializing channels [0xbcf6:zdo] ZDO request ZDOCmd.Device_annce: [0xBCF6, 00:04:74:00:00:85:53:d2, 142] device - 48374:00:04:74:00:00:85:53:d2 entering async_device_initialized - is_new_join: False device - 48374:00:04:74:00:00:85:53:d2 has been reset and re-added or its nwk address changed skipping discovery for previously discovered device - 48374:00:04:74:00:00:85:53:d2 [48374]( DIN power consumption module): started configuration [48374:ZDO]( DIN power consumption module): 'async_configure' stage succeeded [48374]( DIN power consumption module): started initialization [48374:ZDO]( DIN power consumption module): 'async_initialize' stage succeeded [48374:1:0x0003]: Configuring cluster attribute reporting [48374:1:0x0003]: finished channel configuration [48374:1:0x0b04]: Performing cluster binding [48374:1:0x0000]: Configuring cluster attribute reporting [48374:1:0x0000]: finished channel configuration [48374:1:0x0006]: Performing cluster binding [48374:1:0x0006]: Performing cluster binding [48374:1:0x0019]: finished channel configuration [48374:1:0x0005]: Performing cluster binding [48374:1:0x0003]: initializing channel: from_cache: False [48374:1:0x0003]: finished channel initialization [48374:1:0x0b04]: initializing channel: from_cache: False [48374:1:0x0b04]: initializing cached channel attributes: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor', 'ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor', 'power_multiplier'] [48374:1:0x0b04]: Reading attributes in chunks: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor'] [48374:1:0x0b04]: Reading attributes in chunks: ['ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor'] [48374:1:0x0b04]: Reading attributes in chunks: ['power_multiplier'] [48374:1:0x0b04]: initializing uncached channel attributes: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max', 'rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] - from cache[False] [48374:1:0x0b04]: Reading attributes in chunks: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max'] [0xBCF6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=41, command_id=, *direction=, *is_reply=False) [0xBCF6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1291, 1293, 1295, 1288, 1290]) [48374:1:0x0000]: initializing channel: from_cache: False [48374:1:0x0000]: finished channel initialization [48374:1:0x0006]: initializing channel: from_cache: False [48374:1:0x0006]: initializing cached channel attributes: ['start_up_on_off'] [48374:1:0x0006]: Reading attributes in chunks: ['start_up_on_off'] [0xBCF6:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=43, command_id=, *direction=, *is_reply=True) [0xBCF6:1:0x0006] Sending request: Read_Attributes(attribute_ids=[16387]) [48374:1:0x0006]: initializing channel: from_cache: False [48374:1:0x0006]: finished channel initialization [48374:1:0x0019]: initializing channel: from_cache: False [48374:1:0x0019]: finished channel initialization [48374:1:0x0005]: initializing channel: from_cache: False [48374:1:0x0005]: finished channel initialization [48374:1:0x0b04]: bound 'electrical_measurement' cluster: Status.SUCCESS [48374:1:0x0b04]: Configuring cluster attribute reporting [0xBCF6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=45, command_id=, *direction=, *is_reply=False) [0xBCF6:1:0x0b04] Sending request: Configure_Reporting(config_records=[AttributeReportingConfig(direction=0, attrid=0x050B, datatype=41, min_interval=5, max_interval=900, reportable_change=1), AttributeReportingConfig(direction=0, attrid=0x050D, datatype=41, min_interval=30, max_interval=900, reportable_change=1), AttributeReportingConfig(direction=0, attrid=0x050F, datatype=33, min_interval=5, max_interval=900, reportable_change=1)]) [0xBCF6:1:0x0b04] Received ZCL frame: b'\x18\x01\x06\x01\x0b\x05X\x02' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=1, command_id=6, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Configure_Reporting(config_records=[AttributeReportingConfig(direction=, attrid=0x050B, timeout=600)]) [0xBCF6:1:0x0b04] Received command 0x06 (TSN 1): Configure_Reporting(config_records=[AttributeReportingConfig(direction=, attrid=0x050B, timeout=600)]) [0xBCF6:1:0x0b04] Received ZCL frame: b'\x18\x03\x06\x01\x00\xf0\x10\x0e' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=3, command_id=6, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Configure_Reporting(config_records=[AttributeReportingConfig(direction=, attrid=0xF000, timeout=3600)]) [0xBCF6:1:0x0b04] Received command 0x06 (TSN 3): Configure_Reporting(config_records=[AttributeReportingConfig(direction=, attrid=0xF000, timeout=3600)]) [48374:1:0x0006]: bound 'on_off' cluster: Status.SUCCESS [48374:1:0x0006]: finished channel configuration [0xBCF6:1:0x0b04] Received ZCL frame: b'\x18)\x01\x0b\x05\x00)\x00\x00\r\x05\x86\x0f\x05\x00!\x00\x00\x08\x05\x00!\x00\x00\n\x05\x86' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=41, command_id=1, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x050B, status=, value=TypeValue(type=int16s, value=0)), ReadAttributeRecord(attrid=0x050D, status=), ReadAttributeRecord(attrid=0x050F, status=, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0508, status=, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x050A, status=)]) [48374:1:0x0b04]: Reading attributes in chunks: ['rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] [0xBCF6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=47, command_id=, *direction=, *is_reply=False) [0xBCF6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1285, 1287, 768, 770]) [0xBCF6:1:0x0b04] Received ZCL frame: b'\x18-\x07\x00\x00\x0b\x05\x86\x00\r\x05\x00\x00\x0f\x05' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=45, command_id=7, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Configure_Reporting_rsp(status_records=[ConfigureReportingResponseRecord(status=), ConfigureReportingResponseRecord(status=, direction=, attrid=1293), ConfigureReportingResponseRecord(status=)]) [48374:1:0x0b04]: Successfully configured reporting for '{'apparent_power', 'active_power'}' on 'electrical_measurement' cluster [48374:1:0x0b04]: Failed to configure reporting for '['active_power_max']' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=), ConfigureReportingResponseRecord(status=, direction=, attrid=1293), ConfigureReportingResponseRecord(status=)] [0xBCF6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=49, command_id=, *direction=, *is_reply=False) [0xBCF6:1:0x0b04] Sending request: Configure_Reporting(config_records=[AttributeReportingConfig(direction=0, attrid=0x0508, datatype=33, min_interval=5, max_interval=900, reportable_change=1), AttributeReportingConfig(direction=0, attrid=0x050A, datatype=33, min_interval=30, max_interval=900, reportable_change=1), AttributeReportingConfig(direction=0, attrid=0x0505, datatype=33, min_interval=5, max_interval=900, reportable_change=1)]) [0xBCF6:1:0x0b04] Received ZCL frame: b'\x18/\x01\x05\x05\x00!\x00\x00\x07\x05\x86\x00\x03\x86\x02\x03\x86' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=47, command_id=1, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0505, status=, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0507, status=), ReadAttributeRecord(attrid=0x0300, status=), ReadAttributeRecord(attrid=0x0302, status=)]) [48374:1:0x0b04]: finished channel initialization [0xBCF6:1:0x0b04] Received ZCL frame: b'\x181\x07\x8c\x00\x08\x05\x86\x00\n\x05\x8c\x00\x05\x05' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=49, command_id=7, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Configure_Reporting_rsp(status_records=[ConfigureReportingResponseRecord(status=, direction=, attrid=1288), ConfigureReportingResponseRecord(status=, direction=, attrid=1290), ConfigureReportingResponseRecord(status=, direction=, attrid=1285)]) [48374:1:0x0b04]: Successfully configured reporting for 'set()' on 'electrical_measurement' cluster [48374:1:0x0b04]: Failed to configure reporting for '['rms_current', 'rms_current_max', 'rms_voltage']' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=, direction=, attrid=1288), ConfigureReportingResponseRecord(status=, direction=, attrid=1290), ConfigureReportingResponseRecord(status=, direction=, attrid=1285)] [0xBCF6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=51, command_id=, *direction=, *is_reply=False) [0xBCF6:1:0x0b04] Sending request: Configure_Reporting(config_records=[AttributeReportingConfig(direction=0, attrid=0x0507, datatype=33, min_interval=30, max_interval=900, reportable_change=1), AttributeReportingConfig(direction=0, attrid=0x0300, datatype=33, min_interval=5, max_interval=900, reportable_change=1), AttributeReportingConfig(direction=0, attrid=0x0302, datatype=33, min_interval=30, max_interval=900, reportable_change=1)]) [0xBCF6:1:0x0b04] Received ZCL frame: b'\x183\x07\x86\x00\x07\x05\x86\x00\x00\x03\x86\x00\x02\x03' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=51, command_id=7, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Configure_Reporting_rsp(status_records=[ConfigureReportingResponseRecord(status=, direction=, attrid=1287), ConfigureReportingResponseRecord(status=, direction=, attrid=768), ConfigureReportingResponseRecord(status=, direction=, attrid=770)]) [48374:1:0x0b04]: Successfully configured reporting for 'set()' on 'electrical_measurement' cluster [48374:1:0x0b04]: Failed to configure reporting for '['rms_voltage_max', 'ac_frequency', 'ac_frequency_max']' on 'electrical_measurement' cluster: [ConfigureReportingResponseRecord(status=, direction=, attrid=1287), ConfigureReportingResponseRecord(status=, direction=, attrid=768), ConfigureReportingResponseRecord(status=, direction=, attrid=770)] [48374:1:0x0b04]: finished channel configuration [48374:1:0x0006]: Failed to bind 'on_off' cluster: [48374:1:0x0006]: finished channel configuration [48374:1:0x0005]: Failed to bind 'scenes' cluster: [48374:1:0x0005]: finished channel configuration [48374:1:0x0003]: 'async_configure' stage succeeded [48374:1:0x0b04]: 'async_configure' stage succeeded [48374:1:0x0000]: 'async_configure' stage succeeded [48374:1:0x0006]: 'async_configure' stage succeeded [48374:1:0x0006]: 'async_configure' stage succeeded [48374:1:0x0019]: 'async_configure' stage succeeded [48374:1:0x0005]: 'async_configure' stage succeeded [48374]( DIN power consumption module): completed configuration [0xBCF6:1:0x0003] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False, *is_reply=False), tsn=53, command_id=64, *direction=, *is_reply=False) [0xBCF6:1:0x0003] Sending request: trigger_effect(effect_id=, effect_variant=) [0xBCF6:1:0x0003] Received ZCL frame: b'\x185\x0b@\x00' [0xBCF6:1:0x0003] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=53, command_id=11, *direction=, *is_reply=True) [0xBCF6:1:0x0003] Decoded ZCL frame: Identify:Default_Response(command_id=64, status=) [48374:1:0x0003]: executed 'trigger_effect' command with args: '(2, 0)' kwargs: '{}' result: Default_Response(command_id=64, status=) [48374]( DIN power consumption module): Update device availability - device available: False - new availability: True - changed: True [48374]( DIN power consumption module): Device availability changed and device became available, reinitializing channels [48374]( DIN power consumption module): started initialization [48374:ZDO]( DIN power consumption module): 'async_initialize' stage succeeded [48374:1:0x0003]: initializing channel: from_cache: False [48374:1:0x0003]: finished channel initialization [48374:1:0x0b04]: initializing channel: from_cache: False [48374:1:0x0b04]: initializing cached channel attributes: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor', 'ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor', 'power_multiplier'] [48374:1:0x0b04]: Reading attributes in chunks: ['ac_current_divisor', 'ac_current_multiplier', 'ac_power_divisor', 'ac_power_multiplier', 'ac_voltage_divisor'] [48374:1:0x0b04]: Reading attributes in chunks: ['ac_voltage_multiplier', 'ac_frequency_divisor', 'ac_frequency_multiplier', 'measurement_type', 'power_divisor'] [48374:1:0x0b04]: Reading attributes in chunks: ['power_multiplier'] [48374:1:0x0b04]: initializing uncached channel attributes: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max', 'rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] - from cache[False] [48374:1:0x0b04]: Reading attributes in chunks: ['active_power', 'active_power_max', 'apparent_power', 'rms_current', 'rms_current_max'] [0xBCF6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=55, command_id=, *direction=, *is_reply=False) [0xBCF6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1291, 1293, 1295, 1288, 1290]) [48374:1:0x0000]: initializing channel: from_cache: False [48374:1:0x0000]: finished channel initialization [48374:1:0x0006]: initializing channel: from_cache: False [48374:1:0x0006]: initializing cached channel attributes: ['start_up_on_off'] [48374:1:0x0006]: Reading attributes in chunks: ['start_up_on_off'] [0xBCF6:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=57, command_id=, *direction=, *is_reply=True) [0xBCF6:1:0x0006] Sending request: Read_Attributes(attribute_ids=[16387]) [48374:1:0x0006]: initializing channel: from_cache: False [48374:1:0x0006]: finished channel initialization [48374:1:0x0019]: initializing channel: from_cache: False [48374:1:0x0019]: finished channel initialization [48374:1:0x0005]: initializing channel: from_cache: False [48374:1:0x0005]: finished channel initialization [48374:1:0x0006]: failed to get attributes '['start_up_on_off']' on 'on_off' cluster: [48374:1:0x0006]: async_initialize: retryable request #1 failed: . Retrying in 1.1s [0xBCF6:1:0x0b04] Received ZCL frame: b'\x187\x01\x0b\x05\x00)\x00\x00\r\x05\x86\x0f\x05\x00!\x00\x00\x08\x05\x00!\x00\x00\n\x05\x86' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=55, command_id=1, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x050B, status=, value=TypeValue(type=int16s, value=0)), ReadAttributeRecord(attrid=0x050D, status=), ReadAttributeRecord(attrid=0x050F, status=, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0508, status=, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x050A, status=)]) [48374:1:0x0b04]: Reading attributes in chunks: ['rms_voltage', 'rms_voltage_max', 'ac_frequency', 'ac_frequency_max'] [0xBCF6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=59, command_id=, *direction=, *is_reply=False) [0xBCF6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1285, 1287, 768, 770]) [0xBCF6:1:0x0006] Received ZCL frame: b'\x109\x01\x03@\x86' [0xBCF6:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=57, command_id=1, *direction=, *is_reply=False) [0xBCF6:1:0x0006] Decoded ZCL frame: OnOff:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x4003, status=)]) [48374:1:0x0006]: initializing uncached channel attributes: ['on_off'] - from cache[False] [48374:1:0x0006]: Reading attributes in chunks: ['on_off'] [0xBCF6:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=61, command_id=, *direction=, *is_reply=True) [0xBCF6:1:0x0006] Sending request: Read_Attributes(attribute_ids=[0]) [0xBCF6:1:0x0b04] Received ZCL frame: b'\x18;\x01\x05\x05\x00!\x00\x00\x07\x05\x86\x00\x03\x86\x02\x03\x86' [0xBCF6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=59, command_id=1, *direction=, *is_reply=True) [0xBCF6:1:0x0b04] Decoded ZCL frame: ElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0505, status=, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0507, status=), ReadAttributeRecord(attrid=0x0300, status=), ReadAttributeRecord(attrid=0x0302, status=)]) [48374:1:0x0b04]: finished channel initialization [0xBCF6:1:0x0006] Received ZCL frame: b'\x10=\x01\x00\x00\x86' [0xBCF6:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=61, command_id=1, *direction=, *is_reply=False) [0xBCF6:1:0x0006] Decoded ZCL frame: OnOff:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=)]) [48374:1:0x0006]: finished channel initialization [48374:1:0x0003]: 'async_initialize' stage succeeded [48374:1:0x0b04]: 'async_initialize' stage succeeded [48374:1:0x0000]: 'async_initialize' stage succeeded [48374:1:0x0006]: 'async_initialize' stage succeeded [48374:1:0x0006]: 'async_initialize' stage succeeded [48374:1:0x0019]: 'async_initialize' stage succeeded [48374:1:0x0005]: 'async_initialize' stage succeeded [48374]( DIN power consumption module): power source: Mains [48374]( DIN power consumption module): completed initialization [48374:1:0x0006]: initializing channel: from_cache: False [48374:1:0x0006]: initializing cached channel attributes: ['start_up_on_off'] [48374:1:0x0006]: Reading attributes in chunks: ['start_up_on_off'] [48374:1:0x0006]: initializing uncached channel attributes: ['on_off'] - from cache[False] [48374:1:0x0006]: Reading attributes in chunks: ['on_off'] [0xBCF6:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=True), tsn=63, command_id=, *direction=, *is_reply=True) [0xBCF6:1:0x0006] Sending request: Read_Attributes(attribute_ids=[0]) [0xBCF6:1:0x0006] Received ZCL frame: b'\x10?\x01\x00\x00\x86' [0xBCF6:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True, *is_reply=False), tsn=63, command_id=1, *direction=, *is_reply=False) [0xBCF6:1:0x0006] Decoded ZCL frame: OnOff:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=)]) [48374:1:0x0006]: finished channel initialization [48374:1:0x0003]: 'async_initialize' stage succeeded [48374:1:0x0b04]: 'async_initialize' stage succeeded [48374:1:0x0000]: 'async_initialize' stage succeeded [48374:1:0x0006]: 'async_initialize' stage succeeded [48374:1:0x0006]: 'async_initialize' stage succeeded [48374:1:0x0019]: 'async_initialize' stage succeeded [48374:1:0x0005]: 'async_initialize' stage succeeded [48374]( DIN power consumption module): power source: Mains [48374]( DIN power consumption module): completed initialization [0x67CE](LLC011): last_seen is 680080.3258867264 seconds ago and ping attempts have been exhausted, marking the device unavailable [0x67CE](LLC011): Update device availability - device available: False - new availability: False - changed: False [0xEB0F](LWB006): last_seen is 674760.206833601 seconds ago and ping attempts have been exhausted, marking the device unavailable [0xEB0F](LWB006): Update device availability - device available: False - new availability: False - changed: False [48374]( DIN power consumption module): Device seen - marking the device available and resetting counter [48374]( DIN power consumption module): Update device availability - device available: True - new availability: True - changed: False [0xA18D](LLC011): last_seen is None, marking the device unavailable [0xA18D](LLC011): Update device availability - device available: False - new availability: False - changed: False ```

Additional context Add any other context or screenshots about the feature request here.

Schermata 2022-09-18 alle 16 43 01
Valcob commented 2 years ago

weird it kinda works for me though still some info is missing image I would suggest you to check the sensor connection and the right installation, meaning, follow the arrow on the sensor and make sure it's on the hot wire usually the brown one or black one

github-actions[bot] commented 1 year 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.

korvarn commented 3 months ago

@webartoli my apologies for commenting this old issue, wondering if you were able to get a W reading eventually. Thank you

webartoli commented 3 months ago

Yup, it works like a charm.

image