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
62 stars 13 forks source link

1 device Sinope ZB sur neviweb130 et 1 device Sinope ZB sur un autre controleur #246

Closed bsauve closed 1 month ago

bsauve commented 1 month ago

Bonjour Claude, j'utilise depuis un an neviweb130 avec des thermostats WiFi et des thermostats Zigbee connecté à la passerelle GT130. Je viens d'installer un controleur Zigbee (ZigStar UZG) pour connecter un device Zigbee, jusqu'ici tout va bien. Puis j'ai connecté une prise de coutant Sinopé à ce nouveau controleur Zigbee. Ça fonctionne. Mais les autres devices Sinopé qui étaient connecté à la passerelle GT130 ne sont plsu visible dans HA.

Tu expliques ce qui suit dans ta page d'info mais je ne suis pas certain de comprendre. You need to install only one of them but both can be used at the same time on HA. Zigbee devices managed directly via Conbe II must be removed from Neviweb as they cannot be on two networks at the same time.

Ok, un device ne peut pas être sur deux controleur mais est-ce qu'on peut connecter un device Sinopé ZB au GT130 et un autre device Sinopé ZB à un autre controleur ?

Merci Benoit

bsauve commented 1 month ago

Bonjour Claude, j'ai enlevé le device Sinope ZB du controleur en pensant que mes device Sinope ZB reviendrait disponible dans HA mais ils ne reviennent pas, même après un restart de HA.

Comment doit-on faire pour retrouver les device Sinope ZB dans Neviweb130 ?

Merci Benot

claudegel commented 1 month ago

Un même appareil zigbee ne peut être connecté au GT130 et à une autre passerelle en même temps. Si vos autres appareils du GT130 ne sont plus visibles dans HA validez qu'ils sont toujours connectés à Neviweb. Ensuite il faut vérifier les log dans HA pour voir s'il n'y a pas un problème. Dans configuration.yaml assurez-vous d'avoir ceci pour activer les log correctement:

logger:
  default: warning
  logs:
    homeassistant.custom_components: debug
    custom_components.neviweb130: debug

On se reparle ce soir. je suis sur la route.

bsauve commented 1 month ago

Merci Claude, voici en attachement le log, j'ai réussi à me débarasser des messages de "no unique ID". Après beaucoup de débug et d'itération, de reboot...c'est ce qui reste de plus clean.

Initialement (avant de faire ce post) j'ai d'abord déconnecter la prise de Neviweb avant de la connecter sur le Zigbee controlleur. C'est à ce moment que j'ai perdu le contact entre les autres device ZB et Neviweb130. Oui ils sont toujour connectés à Sinope Neviweb. J'ai maintenant enlevé l'intégration du Zigbee controleur. J'ai réussi à enlever les entity unavailable.

Mais ils ne reviennent pas après un reboot.

Les devices que je ne vois plus sont :

neviweb130: Error on device update! Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 729, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1291, in async_device_update await hass.async_add_executor_job(self.update) File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/neviweb130/climate.py", line 1943, in update self.get_sensor_error_code(start) File "/config/custom_components/neviweb130/climate.py", line 1514, in get_sensor_error_code self._code_compensation_sensor = device_error_code["compensationSensor"]


KeyError: 'compensationSensor'

- 1 calypso ZB
Logger: homeassistant.components.switch
Source: helpers/entity_platform.py:729 
integration: Switch ([documentation](https://www.home-assistant.io/integrations/switch), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+switch%22)) 
First occurred: 6:31:49 PM (1 occurrences) 
Last logged: 6:31:49 PM

neviweb130: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 729, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1291, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/neviweb130/switch.py", line 1138, in update
    self._temp_status = device_data[ATTR_ERROR_CODE_SET1]["temperatureSensor"]
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
KeyError: 'temperatureSensor'

- 1 interrupteur ZB
Logger: homeassistant.components.light
Source: helpers/entity_platform.py:729 
integration: Light ([documentation](https://www.home-assistant.io/integrations/light), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+light%22)) 
First occurred: 6:31:49 PM (1 occurrences) 
Last logged: 6:31:49 PM

neviweb130: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 729, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1291, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/neviweb130/light.py", line 361, in update
    self._temp_status = device_data[ATTR_ERROR_CODE_SET1]["temperature"]
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'temperature'

Il ne sont même plus dans la liste Development Tool -> States

Par contre ceci est toujours là:
 - deux prises ZB (dont celle que j'avais mise sur le controleur Zigbee et que j'ai remis dans Neviweb)
 - un thermostat WF
 - une valve et les sensors

Je ne sais pas comment debugger ce problème.

Merci
Benoit
[home-assistant_2024-06-05T22-49-18.785Z.log](https://github.com/user-attachments/files/15597517/home-assistant_2024-06-05T22-49-18.785Z.log)
claudegel commented 1 month ago

Les messages d'erreur au début des logs pour le unique_id ne sont pas important. je vais faire une mise a jour qui va corriger cela. si tu as changé quelques chose pour corriger ceci alors ca change le unique_id de tes appareils et ceux-ci n'existent plus. par contre dans ce cas de nouveau appareils ont été créé. Il ont le même nom mais suivit de _2. Si c'est le cas tu vas les trouver dans outils de développement, états Par exemple climate.neviweb130_climate_cave va devenir climate.neviweb130_climate_cave_2 Si c'est le bug alors efface climate.neviweb130_climate_cave et renomme climate.neviweb130_climate_cave_2 -> climate.neviweb130_climate_cave et tout va redevenir comme avant

claudegel commented 1 month ago

Pour l'erreur

self._temp_status = device_data[ATTR_ERROR_CODE_SET1]["temperature"]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'temperature'

J'ai créé une branche qui corrige le bug. Sinopé a fait un changement concernant le parametre ATTR_ERROR_CODE_SET1 remplace ton code par celui de la branche: https://github.com/claudegel/sinope-130/tree/error-code-fix/custom_components/neviweb130 cette erreur affecte tous tes appareils et si tu reboot tu perds tes appareils.

bsauve commented 1 month ago

Je ne crois pas que ce soit le problème, j'ai 4 device sur 8 qui n'aparaissent plus. Je rgarde dans Develipment Tool -> States et ils ne sont pas là.

J'ai tenté d'en enlever un de Neviweb et de le remettre mais ça n'aide pas.

Je ne sais pas quoi faire.

Merci de ton support. Benoit

bsauve commented 1 month ago

Donc ceci self._temp_status = device_data[ATTR_ERROR_CODE_SET1]["temperature"]


KeyError: 'temperature'

peut expliquer pourqoui je ne vois plus 4 devices.

Je ne suis pas certain de quoi faire quand tu dis de remplacer mon code par celui de la branche ...
Peux-tu me guider un pleu plus ?

Merci
Benoit
claudegel commented 1 month ago

Oui absolument ça bloque la première update de l'appareil et alors elle n'est pas installée dans HA. Prend ma branche error-code-fix ca va tout replacer. En attendant que je fasse le nouveau release d'ici la fin de semaine

claudegel commented 1 month ago

Tu va sur la branche https://github.com/claudegel/sinope-130/tree/error-code-fix/custom_components/neviweb130 tu prends les fichier climate.py, light.py, switch.py, sensor.py et valve.py et tu remplaces ceux que tu as dans ton HA. Puis tu redémarres HA Dans HA les fichiers sont dans custom_components/neviweb130/

bsauve commented 1 month ago

Wow, ça semble fonctionner maintenant. J'ai passé tellement d'heures à chercher quoi faire. Merci.

Il reste des messages comme ça dans le log:

2024-06-05 23:00:35.872 ERROR (MainThread) [homeassistant.helpers.entity_registry] 'switch' from integration neviweb130 has a non string unique_id '352654', please report it to the author of the 'neviweb130' custom integration

Est-ce que je dois changer un nom quelque part ?

Merci encore. Ben

claudegel commented 1 month ago

Parfait. Pour les erreurs de unique_id c'est juste un warning et on a jusqu'en 2025 pour corriger. Je travail dessus. Faut que je puisse changer les valeurs de unique_id dans le fichier .storage/core_entity_registry. Les unique_id de neviweb sont numérique et HA veut du alphanumérique. Faut que je remplace 352654 par "352654" et ensuite je fais un petit changement des neviweb130 pour transformer les unique_id de Neviweb en alphanumérique. je veux pas que les usagers soient obligés de faire les changements à la mitaine car ça risque de buster neviweb130. Mais avant je vais en finir avec le bug de ATTR_ERROR_CODE_SET1 et publier une nouvelle version

claudegel commented 1 month ago

Je ferme cette issue. Le développement pour corriger le bug ATTR_ERROR_CODE_SET1 est dans l'issue # 247 J'ai fini de modifier le code et je vais publier une nouvelle version ce soir