claudegel / sinope-130

Neviweb130 custom component for Home Assistant to manage devices connected via a GT130 and wifi devices from Sinopé
GNU General Public License v3.0
73 stars 15 forks source link

Not getting hourly_flow with VA4220ZB / 3153 / version du logiciel 0.1.3 #140

Closed ericlegallais closed 1 year ago

ericlegallais commented 1 year ago

Bonjour,

J'utilise une valve VA4220ZB et un capteur de débit FS4220 (3/4), mais je n'ai pas les attributs suivants dans HA:

En fait, voici ce à quoi j'ai accès: image

J'ai lu les 2 issues suivantes

  1. https://github.com/claudegel/sinope-130/issues/130
  2. https://github.com/claudegel/sinope-130/issues/109

Mais je n'ai rien trouvé qui m'a aidé.

Mon modèle est 3153, la version du logiciel est 0.1.2 (alors que c'était la version 0.1.3 pour patdemers) J'utilise la version 2.0.0 de neviweb130

Voici un peu de mes logs HA:

[custom_components.neviweb130.switch] Setting up neviweb130 switch VA4220ZB: {'id': 374475, 'identifier': '9035eafffe4f5148-500b91400003e678', 'name': 'VA4220ZB', 'family': '3153', 'signature': {'model': 3153, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 1, 'major': 0}, 'hardRev': 0, 'protocol': 'sinopcom'}, 'location$id': 64652, 'parentDevice$id': 360076, 'group$id': 155229, 'orderIdx': 0, 'sku': 'VA4220ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}

Updating neviweb130 switch VA4220ZB (0.898 sec): {'onOff': 'on', 'batteryVoltage': 0, 'batteryStatus': 'low', 'waterLeakStatus': 'ok', 'flowMeterMeasurementConfig': {'multiplier': 4546, 'offset': 30600, 'divisor': 1}, 'flowMeterAlarmDisableTimer': 0, 'alarm1FlowThreshold': 1, 'alarm1Period': 3600, 'alarm1Length': 60, 'alarm1Options': {'triggerAlarm': True, 'closeValve': True}}

[custom_components.neviweb130] Flowmeter model.data = {'flowMeterMeasurementConfig': {'multiplier': 4546, 'offset': 30600, 'divisor': 1}, 'flowMeterEnabled': True}

2023-02-03 03:45:35.701 DEBUG (SyncWorker_5) [custom_components.neviweb130] Json Data received= {'flowMeterMeasurementConfig': {'multiplier': 4546, 'offset': 30600, 'divisor': 1}, 'flowMeterEnabled': True} 2023-02-03 03:45:35.701 DEBUG (SyncWorker_5) [custom_components.neviweb130] Content = b'{"flowMeterMeasurementConfig":{"multiplier":4546,"offset":30600,"divisor":1},"flowMeterEnabled":true}' 2023-02-03 03:45:35.701 DEBUG (SyncWorker_5) [custom_components.neviweb130] Text = {"flowMeterMeasurementConfig":{"multiplier":4546,"offset":30600,"divisor":1},"flowMeterEnabled":true}

claudegel commented 1 year ago

Bonjour, cette valve est supportée depuis v1.9.7. Dans vos log est-ce qu'il y a une ligne contenant: Updating alert for neviweb130 switch VA4220ZB..... ça devrait être juste avant la ligne Updating neviweb130 switch VA4220ZB (0.898 sec) Dans vos log est-ce que vous avez une ligne contenant ceci: Setting stat interval to: xxx quel est la valeur que vous avez mit dans configuration.yaml pour le paramètre stat_interval

ericlegallais commented 1 year ago

Oui j'ai ces lignes:

2023-02-03 03:10:03.863 DEBUG (SyncWorker_2) [custom_components.neviweb130] Setting stat interval to: 1800

2023-02-03 03:10:11.517 DEBUG (SyncWorker_1) [custom_components.neviweb130.switch] Updating alert for neviweb130 switch VA4220ZB (0.898 sec): {'alertLowBatt': 1}
2023-02-03 03:10:11.517 DEBUG (SyncWorker_1) [custom_components.neviweb130.switch] Updating neviweb130 switch VA4220ZB (0.898 sec): {'onOff': 'on', 'batteryVoltage': 0, 'batteryStatus': 'low', 'waterLeakStatus': 'ok', 'flowMeterMeasurementConfig': {'multiplier': 4546, 'offset': 30600, 'divisor': 1}, 'flowMeterAlarmDisableTimer': 0, 'alarm1FlowThreshold': 1, 'alarm1Period': 3600, 'alarm1Length': 60, 'alarm1Options': {'triggerAlarm': True, 'closeValve': True}}

Et voici ce que j'ai dans configuration.yaml:

[snip]
scan_interval: 300
homekit_mode: False
stat_interval: 1800
claudegel commented 1 year ago

je suis loin de mon serveur jusqu'à dimanche. A ce moment on pourra regarder si Neviweb n'aurait pas changé le nom des attributs pour le débit puisqu'il utilise ceux pour la demande électrique. Si c'est le cas on pourra retrouver ceux qu'ils utilisent et corriger la requête qui est faite. en attendant il faudrait vérifier vos log pour voir si il y a des erreur comportant le code suivant: DVCATTRNSPTD ou bien DVCACTNSPTD ou SVCERR. ça ne devrait pas être difficile a corriger.

ericlegallais commented 1 year ago
# grep 'DVCATTRNSPTD\|DVCACTNSPTD\|SVCERR' home-assistant.log
# 2023-02-04 01:15:27.119 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received devices alert: {'error': {'code': 'SVCERR'}}
# 2023-02-04 01:15:27.120 DEBUG (SyncWorker_2) [custom_components.neviweb130.switch] Updating alert for neviweb130 switch VA4220ZB (10.833 sec): {'error': {'code': 'SVCERR'}}
claudegel commented 1 year ago

De retour, j'ai ajouté du débog pour les stat d'énergie dans switch.py. J'ai créé une nouvelle branche «leak-detector» svp aller à https://github.com/claudegel/sinope-130/tree/leak-detector/custom_components/neviweb130 et copier les fichiers switch.py, climate.py and __init__.py dans votre config/custom_components/neviweb130 Pour l'erreur {'error': {'code': 'SVCERR'}} il est possible que Neviweb n'est pas ce service pour les valves VA4220ZB. Ensuite, pour les stat d'énergie (débit pour les valves) il faudrait voir dans Neviweb si il y a des stat pour votre valve. Si oui je vais vous guider pour valider quel sont les noms des parametres que Neviweb utilise pour ces stats pour votre valve. Il est possible que Neviweb a changé le nom des attribut.

ericlegallais commented 1 year ago

J'ai copié les fichiers et redémarré

J'ai des statistiques dans Neviweb: image

ericlegallais commented 1 year ago

Je vois passer des statistiques, mais j'ai de la difficulté à savoir si c'est pour VA4220ZB ou RM3500ZB


2023-02-06 15:34:16.098 WARNING (SyncWorker_0) [custom_components.neviweb130.switch] device_monthly_stats =
[
    {
        "period": 85364,
        "periodQuality": 7740,
        "counter": 36778,
        "counterDate": "2023-02-01T00:07:05-05:00",
        "date": "2023-02-01T00:00:00-05:00"
    },
    {
        "period": 29919,
        "periodQuality": 3420,
        "counter": 6859,
        "counterDate": "2023-01-29T15:07:12-05:00",
        "date": "2023-01-01T00:00:00-05:00"
    }```
claudegel commented 1 year ago

J'ai ajouté le nom de l'appareil pour les log de stats. téléchargez switch.py de nouveau. Aussi quel navigateur utilisez-vous ? firefox ou chrome?

claudegel commented 1 year ago

Voila je pense que ca va fonctionner maintenant. Téléchargez le dernier switch.py et redémarrez HA

ericlegallais commented 1 year ago

ok, les attributs sont là avec des valeurs après quelques minutes, et les valeurs me semble divisées par 1000 ce qui veut dire que ce sont des m³? J'ai 138L dans Neviweb et 0.138 dans HA: image

Par ailleurs, en voulant configurer le module d'énegie, je me rends compte que j'ai un nouveau senseur, mais qui semble vide et je ne sais pas s'il a été créé par l'intégration:

image

claudegel commented 1 year ago

Bonjour, effectivement Neviweb sort les stats en litre et je les converti en m3 car on m'a dit que c'etait cet unité de mesure qui est utilisée dans le module énergie. Je pense par contre que pour que ce soit utilisé dans le module énergie il faut que l'appareil ait un unit_of_measurement. je vais l'ajouter. ce sera donc kwh pour les switch qui mesurent l'énergie et m3 pour les valves. à moins que ce soit préférable d'ajouter un parametre dans configuration.yaml pour donner le choix entre m3 et L

claudegel commented 1 year ago

J'ai ajouté des unit_of_measurement , device class et icon pour chaque type de switch. Dans le module energie il faut que les entité aient un unique_id et un device_class sinon il sont mal supportés. Pour le sensor.valve_entree_deau_summation_delivered. si vous aviez installé la valve une première fois via ZHA ce sensor est créé mais en enlevant la valve pour la mettre dans neviweb le sensor est vide car la valve n'existe plus.

Si vous créez un sensor pour mettre le débit en litre alors il faudra créer un unique_id, device_class et state_class comme dans l'example suivant pour un template sensor:

- sensor:
      - name: "outdoor_temp"
        unit_of_measurement: '°C'
        device_class: temperature
        unique_id: sensor.outdoor_temp
        state_class: measurement
        state: "{{ state_attr('switch.neviweb130_switch_mc3100zb', 'Extern_temperature') }}"
ericlegallais commented 1 year ago

Pour le sensor.valve_entree_deau_summation_delivered. si vous aviez installé la valve une première fois via ZHA ce sensor est créé mais en enlevant la valve pour la mettre dans neviweb le sensor est vide car la valve n'existe plus.

Oui c'est exactement ce que j'ai fait

Merci pour tout, je vais attendre le prochain merge :)

claudegel commented 1 year ago

J'ai publié un release. merci pour le caffé