Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Appliquer un diviseur au metering #286

Open
pierreprinetti opened this issue Sep 29, 2024 · 15 comments
Open

Appliquer un diviseur au metering #286

pierreprinetti opened this issue Sep 29, 2024 · 15 comments

Comments

@pierreprinetti
Copy link

Bonjour,

J'ai connecté le Zlinky_TIC en ZHA sur mon Home Assistant (Core v2024.9.3) qui se trouve à moins de deux mètres du capteur. Les données remontent bien, et je reçois certains attributes normalement (par example dans le cluster Basic: app_version 14, date_code 20240422, sw_build_id 4000-0014).

Comme Home Assistant s'attend à recevoir des kWh et le Zlinky_TIC remonte des Wh, je voudrais enregistrer un diviseur de 1000 comme attribute divisor (id: 0x0302) dans le cluster Metering (Endpoint id: 1, Id: 0x0702, Type: in).

Cependant: j'entre 1000 dans "Value", je tape "Write attribute", j'ai un joli check blanc sur fond vert, et rien ne se passe. L'enregistrement est toujours en Wh et si je tape "Read attribute", le champ Value prend la valeur None.

Est-ce que j'ai mal compris comment enregistrer un diviseur?

@pierreprinetti
Copy link
Author

En attendant une solution pour régler le problème à la base, voici comment j'ai finalement ajouté un senseur "template" dans ma configuration HomeAsssistant:

# dans configuration.yaml

# [...]

template:
  - sensor:
    - name: "Linky"
      unique_id: "lixee_zlinky_tic_summation_delivered_millesime"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.lixee_zlinky_tic_summation_delivered') | float }}"

J'ai ensuite ajouté ce nouveau senseur virtuel au volet "Energie" pour visualiser ma consommation en électricité.

@Nbird67
Copy link

Nbird67 commented Oct 6, 2024

Bonjour,
J’ai exactement le même problème de diviseur
Pour moi suite à Maj firmware 14 en 13 c’était bon.

Si quelqu’un a une solution je suis preneur, j’ai du également passer par des templates

je suis ravi de ne pas être le seul.

#18

zigpy/zha-device-handlers#3365

@ced30fr
Copy link

ced30fr commented Oct 8, 2024

Je confirme avoir récemment acheté un module en version 14 et rencontrer le même problème. Existe-t-il une solution pour effectuer un downgrade en attendant une correction ?

@Nbird67
Copy link

Nbird67 commented Oct 8, 2024

Le créateur @fairecasoimeme a indiqué que ce n'est pas lié au firmware à priori

@uowis
Copy link

uowis commented Oct 13, 2024

I have this issue
J'ai cette issue

@yomgui1
Copy link

yomgui1 commented Oct 15, 2024

Même chose, je suis passé de Z2M à ZHA, j'était en firmware 14 et toutes les valeurs de puissances sont multipliées par 1000.

@blauret
Copy link

blauret commented Oct 18, 2024

Same here.

Le créateur @fairecasoimeme a indiqué que ce n'est pas lié au firmware à priori

Ou?

@fairecasoimeme
Copy link
Owner

Same here.

Le créateur @fairecasoimeme a indiqué que ce n'est pas lié au firmware à priori

Ou?

Bin ZHA

@blauret
Copy link

blauret commented Oct 18, 2024

ok, desole je n'a pas trouve le commentaire....

 class ZLinkyTICMetering(CustomCluster, Metering):
    """ZLinky_TIC custom metring cluster."""

    # ZLinky_TIC reports current_summ_delivered in Wh
    # Home Assistant expects kWh (1kWh = 1000 Wh)
    MULTIPLIER = 0x0301
    DIVISOR = 0x0302
    _CONSTANT_ATTRIBUTES = {MULTIPLIER: 1, DIVISOR: 1000}

On dirait que le code est deja la pour la division.

@blauret
Copy link

blauret commented Oct 21, 2024

L'origine du probleme dans ZHA est que le Zlinky_TIC n'est plus correctement reconnue par homeassistant, selon moi, a cause d'un changement dans la signature du Zlinky_TIC

2024-10-21 11:16:08.645 DEBUG (MainThread) [zigpy.quirks.registry] Checking quirks for LiXee ZLinky_TIC (00:15:8d:00:05:be:83:47)
2024-10-21 11:16:08.645 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.lixee.zlinky.ZLinkyTICFWV12'>
2024-10-21 11:16:08.646 DEBUG (MainThread) [zigpy.quirks] Fail because input cluster mismatch on at least one endpoint
2024-10-21 11:16:08.646 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.lixee.zlinky.ZLinkyTIC'>
2024-10-21 11:16:08.646 DEBUG (MainThread) [zigpy.quirks] Fail because input cluster mismatch on at least one endpoint

Le resultat est que le divisor qui est dans le quirk n'est plus applique.

Apres une modification du quirk:


2024-10-21 11:20:43.017 DEBUG (MainThread) [zigpy.quirks.registry] Checking quirks for LiXee ZLinky_TIC (00:15:8d:00:05:be:83:47)
2024-10-21 11:20:43.017 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.lixee.zlinky.ZLinkyTICFWV12'>
2024-10-21 11:20:43.017 DEBUG (MainThread) [zigpy.quirks] Device matches filter signature - device ieee[00:15:8d:00:05:be:83:47]: filter signature[{'models_info': [('LiXee', 'ZLinky_TIC')], 'endpoints': {1: {'profile_id': 260, 'device_type': <DeviceType.METER_INTERFACE: 83>, 'input_clusters': [0, 1, 1, 3, 10, 1794, 2817, 2820, 61184, 65382], 'output_clusters': [25, 61184]}, 242: {'profile_id': 41440, 'device_type': <DeviceType.PROXY_BASIC: 97>, 'input_clusters': [33], 'output_clusters': [33]}}}]
2024-10-21 11:20:43.017 DEBUG (MainThread) [zigpy.quirks.registry] Found custom device replacement for 00:15:8d:00:05:be:83:47: <class 'zhaquirks.lixee.zlinky.ZLinkyTICFWV12'>

Le changement

diff --git a/zhaquirks/lixee/zlinky.py b/zhaquirks/lixee/zlinky.py
index 3891fe0..57c7a0d 100644
--- a/zhaquirks/lixee/zlinky.py
+++ b/zhaquirks/lixee/zlinky.py
@@ -11,6 +11,7 @@ from zigpy.zcl.clusters.general import (
     Identify,
     Ota,
     PowerConfiguration,
+    Time,
 )
 from zigpy.zcl.clusters.homeautomation import ElectricalMeasurement, MeterIdentification
 from zigpy.zcl.clusters.smartenergy import Metering
@@ -157,13 +158,16 @@ class ZLinkyTIC(CustomDevice):
                 DEVICE_TYPE: zha.DeviceType.METER_INTERFACE,
                 INPUT_CLUSTERS: [
                     Basic.cluster_id,
+                    PowerConfiguration.cluster_id,
                     Identify.cluster_id,
+                    Time.cluster_id,
                     Metering.cluster_id,
                     MeterIdentification.cluster_id,
                     ElectricalMeasurement.cluster_id,
+                    0xef00,
                     ZLinkyTICManufacturerCluster.cluster_id,
                 ],
-                OUTPUT_CLUSTERS: [Ota.cluster_id],
+                OUTPUT_CLUSTERS: [Ota.cluster_id, 0xef00],
             },
             242: {
                 PROFILE_ID: zgp.PROFILE_ID,
@@ -182,6 +186,7 @@ class ZLinkyTIC(CustomDevice):
                     Basic.cluster_id,
                     PowerConfiguration.cluster_id,
                     Identify.cluster_id,
+                    Time.cluster_id,
                     ZLinkyTICMetering,
                     MeterIdentification.cluster_id,
                     ElectricalMeasurement.cluster_id,

La question pour @fairecasoimeme, est-ce que le cluster 0xFE00 est documenté quelque part? Je n'ai pas vu dans le README du projet.

@fairecasoimeme
Copy link
Owner

fairecasoimeme commented Oct 21, 2024

Ok je comprends mieux.
Le fait d'avoir rajouté des clusters provoque un défaut de signature.
Les clusters rajoutés sont pour la compatibilité avec les plateformes Tuya. Le cLuster 0xEF00 n'est pas utile pour ZHA.
Je pense alors qu'il faut alors rajouter une signature correspondant au dernier firmware.

Merci pour l'éclaircissement

@blauret
Copy link

blauret commented Oct 21, 2024

@fairecasoimeme, j'ai mis in commentaire sur zigpy/zha-device-handlers#336 a propos de la nouvelle signature. Est-ce qu'il est possible que le cluster input 1 soit deux fois dans la base?

@fairecasoimeme
Copy link
Owner

Pouvez-vous essayer ce fichier zlinky.py et me dire si la signature est détectée ?

zlinky.py.zip

@blauret
Copy link

blauret commented Oct 21, 2024

Je n'ai pas essayer mais j'ai cree une PR avec quariment le meme contenu zigpy/zha-device-handlers#3448

@fairecasoimeme
Copy link
Owner

Ok parfait alors !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants