Ca marche nickel, merci !
Statut de l'interrogation alors que 15 impulsions avaient été enregistrées il y a quelque temps :
Code : Tout sélectionner
2023-09-03 16:26:55,646 INFO :b"Sending request to coordinator {'AddressMode': 2, 'Function': 'rest_raw_zigbee', 'Profile': 260, 'Cluster': 1794, 'TargetNwk': 43235, 'TargetEp': 1, 'SrcEp': 1, 'Sqn': 85, 'payload': '1055000000', 'timestamp': 1693751215.6409724}"
2023-09-03 16:26:56,573 INFO :b"is_generic_zcl_cluster 0702/0000 and definition {'Enabled': True, 'Name': 'CurrentSummationDelivered', 'DataType': '25', 'Range': ['000000000000', 'ffffffffffff'], 'Acc': 'R', 'Default': 0, 'Mandatory': False, 'EvalFunc': 'compute_metering_conso', 'UpdDomoDeviceWithAttribute': '0000', 'ActionList': ['check_store_value', 'upd_domo_device']}"
2023-09-03 16:26:56,575 INFO :b'Foundation Cluster - Nwkid: a8e3 Ep: 01 Cluster: 0702 Attribute: 0000 Type: 25 Data: 00000000000f Source: 8100'
2023-09-03 16:26:56,576 INFO :b'compute_attribute_value - _decoding_value: None value: 15'
2023-09-03 16:26:56,577 INFO :b"compute_attribute_value - _function: compute_metering_conso FUNCTION_MODULE: {'compute_metering_conso': <function compute_metering_conso at 0x6aa10e38>, 'compute_electrical_measurement_conso': <function compute_electrical_measurement_conso at 0x6aa10e80>, 'current_position_lift_percent': <function CurrentPositionLiftPercentage at 0x6aa10ec8>, 'legrand_operating_time': <function legrand_operating_time at 0x6aa10580>, 'konke_onoff': <function konke_onoff at 0x6aa10538>, 'chameleon_stge': <function chameleon_stge at 0x6aa102f8>}"
2023-09-03 16:26:56,578 INFO :b'compute_metering_conso - a8e3/01 Unit: kW Multiplier: 1 , Divisor: 1 , raw: 15 result: 15000.0'
2023-09-03 16:26:56,578 INFO :b"Attribute Report | a8e3 | 01 | 0702 | Metering (Smart Energy) | 0000 | CurrentSummationDelivered | 25 | 0006 | ZiPulses | None | None | ['check_store_value', 'upd_domo_device'] | None | 00000000000f | 15000.0 | 196 "
2023-09-03 16:26:56,579 INFO :b'---> Data Action: check_store_value'
2023-09-03 16:26:56,580 INFO :b'---> Data Action: upd_domo_device'
2023-09-03 16:26:56,581 INFO :b'action_majdomodevice - a8e3/01 0702 0000 ZiPulses 15000.0'
2023-09-03 16:26:56,582 INFO :b' _majdomo_formater: None'
2023-09-03 16:26:56,584 INFO :b' _majdomo_cluster: None'
2023-09-03 16:26:56,585 INFO :b' _majdomo_attribute: 0000'
2023-09-03 16:26:56,586 INFO :b"MajDomoDevice NwkId: a8e3 Ep: 01 ClusterId: 0702 Value: 15000.0 ValueType: <class 'float'> Attribute: 0000 Color: ModelName: ZiPulses"
2023-09-03 16:26:56,587 INFO :b'---> ClusterSearch - Cluster: 0702, ProfileID: , ZDeviceID: , create: False'
2023-09-03 16:26:56,588 INFO :b'------> ClusterType = Power/Meter'
2023-09-03 16:26:56,588 INFO :b"------> 'ClusterType': {'10': 'Counter'}"
2023-09-03 16:26:56,589 INFO :b"------> ClusterTypeList = [('01', '10', 'Counter')]"
2023-09-03 16:26:56,590 INFO :b'----> processing WidgetEp: 01, WidgetId: 10, WidgetType: Counter'
2023-09-03 16:26:56,591 INFO :b'------> ClusterType: Power/Meter WidgetEp: 01 WidgetId: 10 WidgetType: Counter Attribute_: 0000'
2023-09-03 16:26:56,592 INFO :b"------> From Battery NwkId: a8e3 Battery: 0 Type: <class 'int'>"
2023-09-03 16:26:56,593 INFO :b'------> SignalLevel: 11 , BatteryLevel: 0'
2023-09-03 16:26:56,593 INFO :b'UpdateDevice_v2 0:15000: 0: 11:False ( ZiPulses)'
2023-09-03 16:27:00,296 INFO :b'ResetDevice'
2023-09-03 16:27:00,297 INFO :b"------> From Battery NwkId: a8e3 Battery: 0 Type: <class 'int'>"
2023-09-03 16:27:00,301 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:27:00,302 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:27:00,302 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:27:00,303 INFO :b'ResetDevice end'
2023-09-03 16:27:05,114 INFO :b'ResetDevice'
2023-09-03 16:27:05,116 INFO :b"------> From Battery NwkId: a8e3 Battery: 0 Type: <class 'int'>"
2023-09-03 16:27:05,117 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:27:05,118 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:27:05,119 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:27:05,120 INFO :b'ResetDevice end'
Les infos importantes :
Commande :
Code : Tout sélectionner
2023-09-03 16:26:55,646 INFO :b"Sending request to coordinator {'AddressMode': 2, 'Function': 'rest_raw_zigbee', 'Profile': 260, 'Cluster': 1794, 'TargetNwk': 43235, 'TargetEp': 1, 'SrcEp': 1, 'Sqn': 85, 'payload': '1055000000', 'timestamp': 1693751215.6409724}"
Réponse :
Code : Tout sélectionner
2023-09-03 16:26:56,578 INFO :b'compute_metering_conso - a8e3/01 Unit: kW Multiplier: 1 , Divisor: 1 , raw: 15 result: 15000.0'
Après en avoir envoyer une 16ème, j'ai réinterrogé
Code : Tout sélectionner
2023-09-03 16:34:01,476 INFO :b"Sending request to coordinator {'AddressMode': 2, 'Function': 'rest_raw_zigbee', 'Profile': 260, 'Cluster': 1794, 'TargetNwk': 43235, 'TargetEp': 1, 'SrcEp': 1, 'Sqn': 85, 'payload': '1055000000', 'timestamp': 1693751641.4713032}"
2023-09-03 16:34:02,566 INFO :b"is_generic_zcl_cluster 0702/0000 and definition {'Enabled': True, 'Name': 'CurrentSummationDelivered', 'DataType': '25', 'Range': ['000000000000', 'ffffffffffff'], 'Acc': 'R', 'Default': 0, 'Mandatory': False, 'EvalFunc': 'compute_metering_conso', 'UpdDomoDeviceWithAttribute': '0000', 'ActionList': ['check_store_value', 'upd_domo_device']}"
2023-09-03 16:34:02,568 INFO :b'Foundation Cluster - Nwkid: a8e3 Ep: 01 Cluster: 0702 Attribute: 0000 Type: 25 Data: 000000000010 Source: 8100'
2023-09-03 16:34:02,569 INFO :b'compute_attribute_value - _decoding_value: None value: 16'
2023-09-03 16:34:02,570 INFO :b"compute_attribute_value - _function: compute_metering_conso FUNCTION_MODULE: {'compute_metering_conso': <function compute_metering_conso at 0x6aa10e38>, 'compute_electrical_measurement_conso': <function compute_electrical_measurement_conso at 0x6aa10e80>, 'current_position_lift_percent': <function CurrentPositionLiftPercentage at 0x6aa10ec8>, 'legrand_operating_time': <function legrand_operating_time at 0x6aa10580>, 'konke_onoff': <function konke_onoff at 0x6aa10538>, 'chameleon_stge': <function chameleon_stge at 0x6aa102f8>}"
2023-09-03 16:34:02,570 INFO :b'compute_metering_conso - a8e3/01 Unit: kW Multiplier: 1 , Divisor: 1 , raw: 16 result: 16000.0'
2023-09-03 16:34:02,571 INFO :b"Attribute Report | a8e3 | 01 | 0702 | Metering (Smart Energy) | 0000 | CurrentSummationDelivered | 25 | 0006 | ZiPulses | None | None | ['check_store_value', 'upd_domo_device'] | None | 000000000010 | 16000.0 | 196 "
2023-09-03 16:34:02,572 INFO :b'---> Data Action: check_store_value'
2023-09-03 16:34:02,573 INFO :b'---> Data Action: upd_domo_device'
2023-09-03 16:34:02,574 INFO :b'action_majdomodevice - a8e3/01 0702 0000 ZiPulses 16000.0'
2023-09-03 16:34:02,575 INFO :b' _majdomo_formater: None'
2023-09-03 16:34:02,576 INFO :b' _majdomo_cluster: None'
2023-09-03 16:34:02,577 INFO :b' _majdomo_attribute: 0000'
2023-09-03 16:34:02,577 INFO :b"MajDomoDevice NwkId: a8e3 Ep: 01 ClusterId: 0702 Value: 16000.0 ValueType: <class 'float'> Attribute: 0000 Color: ModelName: ZiPulses"
2023-09-03 16:34:02,578 INFO :b'---> ClusterSearch - Cluster: 0702, ProfileID: , ZDeviceID: , create: False'
2023-09-03 16:34:02,579 INFO :b'------> ClusterType = Power/Meter'
2023-09-03 16:34:02,580 INFO :b"------> 'ClusterType': {'10': 'Counter'}"
2023-09-03 16:34:02,581 INFO :b"------> ClusterTypeList = [('01', '10', 'Counter')]"
2023-09-03 16:34:02,581 INFO :b'----> processing WidgetEp: 01, WidgetId: 10, WidgetType: Counter'
2023-09-03 16:34:02,582 INFO :b'------> ClusterType: Power/Meter WidgetEp: 01 WidgetId: 10 WidgetType: Counter Attribute_: 0000'
2023-09-03 16:34:02,583 INFO :b"------> From Battery NwkId: a8e3 Battery: 0 Type: <class 'int'>"
2023-09-03 16:34:02,584 INFO :b'------> SignalLevel: 11 , BatteryLevel: 0'
2023-09-03 16:34:02,585 INFO :b'UpdateDevice_v2 0:16000: 0: 11:False ( ZiPulses)'
2023-09-03 16:34:05,095 INFO :b'ResetDevice'
2023-09-03 16:34:05,098 INFO :b"------> From Battery NwkId: a8e3 Battery: 0 Type: <class 'int'>"
2023-09-03 16:34:05,099 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:34:05,100 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:34:05,101 INFO :b"------> From Battery NwkId: 270d Battery: 100 Type: <class 'int'>"
2023-09-03 16:34:05,102 INFO :b'ResetDevice end'
Commande:
Code : Tout sélectionner
2023-09-03 16:34:01,476 INFO :b"Sending request to coordinator {'AddressMode': 2, 'Function': 'rest_raw_zigbee', 'Profile': 260, 'Cluster': 1794, 'TargetNwk': 43235, 'TargetEp': 1, 'SrcEp': 1, 'Sqn': 85, 'payload': '1055000000', 'timestamp': 1693751641.4713032}"
Réponse:
Code : Tout sélectionner
2023-09-03 16:34:02,570 INFO :b'compute_metering_conso - a8e3/01 Unit: kW Multiplier: 1 , Divisor: 1 , raw: 16 result: 16000.0'
Mais j'ai vraiment l'impression que le décalage d'un rapport 1000 en trop dont je te parle se trouve être entre la data "raw" dont tu me parlais à juste titre et qui vaut 16, et la data "result" qui vaut 16000.
Et je pense que tu n'utilises pas la raw mais le result (ou autre chose 1000x plus grand):
Code : Tout sélectionner
2023-09-03 16:34:02,577 INFO :b"MajDomoDevice NwkId: a8e3 Ep: 01 ClusterId: 0702 Value: 16000.0 ValueType: <class 'float'> Attribute: 0000 Color: ModelName: ZiPulses"
...
2023-09-03 16:34:02,585 INFO :b'UpdateDevice_v2 0:16000: 0: 11:False ( ZiPulses)'
Tu n'envoie pas 16, mais 16000, ou je me trompe ?
D'ailleurs, je ne sais pas à quoi ce résult correspond, car avec diviseur et multiplieur à 1 dans le ZiPulse, l'index calculé par le hardware devrait valoir l'index principal (voir
https://github.com/fairecasoimeme/ZiPulses mais c'est hors sujet...).
Mais plus surprenant, je crois avoir vu que tu n'utilisais pas cette adresse "0100" du cluster 0702 dans ton ZiPulses.json, et je me demande pourquoi.
Code : Tout sélectionner
"ReadAttributes": {
"0702": [ "0000", "0300", "0301", "0302" ],
Certaines personnes pourraient vouloir s'en servir (par exemple moi, si je veux masquer toutes ces histoires de multiplication dans la partie hardware si un plugin fait un truc bizarre :- ).
En l'état, c'est vraiment la data raw qui doit etre utilisée pour le champ VALUE du compteur, et j'ai toujours un doute à ce sujet-là. N'y aurait-il pas un décalage de quelque chose dans la récupération d'infos à cause de l'adresse manquante ?
Merci !