Netatmo - Gestion des webhook

Je viens de tomber sur cela : Template - Home Assistant
Ca me semble prometteur. Qu’en pensez-vous ?

Mais en utilisant cela, est-ce que je peux ajouter des attributes à mon entité ?

Bonjour,

Après tests, ca marche. Si ca peut servir à d’autres :

Dans configuration.yaml :

template: !include_dir_merge_list includes/templates

Faire un fichier au nom que vous souhaitez dans includes/templates avec ce contenu :

---
# When receive netatmo_event, based on device who detect
# we store information in a binary_sensor including some
# attributes
#
# https://www.home-assistant.io/integrations/template/#turning-an-event-into-a-trigger-based-binary-sensor

- trigger:
    platform: event
    event_type: netatmo_event
    event_data:
      data:
        device_id: 00:11:22:33:44:55
  binary_sensor:
    - name: "Detection Mouvement Camera Salon"
      unique_id: e2c3c537-af8a-4847-9a65-a2fab3a1dac3
      device_class: motion
      state: "true"
      auto_off: 10
      attributes:
        type: >
          {% if trigger.event.data.data.event_type is defined %}
            {{ trigger.event.data.data.event_type }}
          {% endif %}
        message: >
          {% if trigger.event.data.data.message is defined %}
            {{ trigger.event.data.data.message }}
          {% endif %}
        time_fired: >
          {% if trigger.event.time_fired is defined %}
            {{ trigger.event.time_fired }}
          {% endif %}
        person_name: >
          {% if trigger.event.data.data.name is defined %}
            {{ trigger.event.data.data.name }}
          {% endif %}
        person_is_known: >
          {% if trigger.event.data.data.is_known is defined %}
            {{ trigger.event.data.data.is_known }}
          {% endif %}
        person_snapshot: >
          {% if trigger.event.data.data.snapshot_url is defined %}
            "{{ trigger.event.data.data.snapshot_url }}"
          {% endif %}

- trigger:
    platform: event
    event_type: netatmo_event
    event_data:
      data:
        device_id: 22:33:44:55:66
  binary_sensor:
    - name: "Detection Mouvement Camera Portail"
      unique_id: 7418b661-0fbd-4796-a74b-ff9a1306920f
      device_class: motion
      state: "true"
      auto_off: 10
      attributes:
        type: >
          {% if trigger.event.data.data.event_type is defined %}
            {{ trigger.event.data.data.event_type }}
          {% endif %}
        message: >
          {% if trigger.event.data.data.message is defined %}
            {{ trigger.event.data.data.message }}
          {% endif %}
        time_fired: >
          {% if trigger.event.time_fired is defined %}
            {{ trigger.event.time_fired }}
          {% endif %}

- trigger:
    platform: event
    event_type: netatmo_event
    event_data:
      data:
        device_id: 70:ee:50:85:42:78
  binary_sensor:
    - name: "Detection Mouvement Camera Terrasse"
      unique_id: 4bdd1bf4-cd27-4292-980a-6cbf4cafcd6e
      device_class: motion
      state: "true"
      auto_off: 10
      attributes:
        type: >
          {% if trigger.event.data.data.event_type is defined %}
            {{ trigger.event.data.data.event_type }}
          {% endif %}
        message: >
          {% if trigger.event.data.data.message is defined %}
            {{ trigger.event.data.data.message }}
          {% endif %}
        time_fired: >
          {% if trigger.event.time_fired is defined %}
            {{ trigger.event.time_fired }}
          {% endif %}

En prenant soins de remplacer les event_data.data.device_id par les valeurs correspondantes à vos cameras netatmo.
La première cam est un Welcome et les autres des Presence

2 « J'aime »

Bonjour

a quoi correspond unique_id ? faut il creer un dossier includes ?

Loïc

Bonjour,

Le unique_id est une référence unique nécessaire pour éditer l’entité par la GUI pour lui changer son nom, son entity_id ou bien son icône.

Tu peux techniquement mettre ce que tu veux, tant que c’est unique.
Moi je met des UUID généré par VS code

Pour le dossier include c’est comme ça qu’il s’appelle chez moi mais tu peux mettre ce que tu veux tant que tu mets le chemin que tu as fais dans l’include

Bonjour

merci mais je bloque

J’ai mis en place le fichier (j’ai remplace les mac-adresse). J’utilise netatmo cloud (pas homekit). J’ai cree une application sur dev.netatmo.com

J’ai bien un sensor qui est present mais reste en inconnu

sensor

Aurais je loupe un truc ?

Bonjour,

Il est surprenant qu’il reste en inconnu alors qu’il a un auto-off actif a 10 secondes.
Mais sans le code YAML je peux pas aider. Ni sans logs d’ailleurs.
Tu devrais avoir dans les logs Core un log de ce type au démarrage de HA :

2023-05-03 14:08:05.923 INFO (MainThread) [homeassistant.components.netatmo.data_handler] Netatmo webhook successfully registered

Déjà reçois-tu les events ? Si tu écoute les event dans Outils de developpement → Evenement


et que tu déclenche une detection, tu la reçois ?

Effectivement j’ai l’erreur suivante

c’est pas bon signe. Que dois je faire ?

j’ai bien acces de l’exterieur sur le port 443

je me réponds

j’ai corrigé l’acces dans systme/reseau en ajutant mon dns

l’erreur a disparu mais ca change rien

je scrute les logs

j’ai plus d’erreur dans le log mais pas de trace de webhook registered

mon fichier eedomus.yaml sous includes/templates

- trigger:
    platform: event
    event_type: netatmo_event
    event_data:
      data:
        device_id: 70:ee:XX:XX:XX:XX 
  binary_sensor:
    - name: "Detection Mouvement Camera Salon"
      unique_id: e2c3c537-af8a-4847-9a65-a2fab3a1dac3
      device_class: motion
      state: "true"
      auto_off: 10
      attributes:
        type: >
          {% if trigger.event.data.data.event_type is defined %}
            {{ trigger.event.data.data.event_type }}
          {% endif %}
        message: >
          {% if trigger.event.data.data.message is defined %}
            {{ trigger.event.data.data.message }}
          {% endif %}
        time_fired: >
          {% if trigger.event.time_fired is defined %}
            {{ trigger.event.time_fired }}
          {% endif %}
        person_name: >
          {% if trigger.event.data.data.name is defined %}
            {{ trigger.event.data.data.name }}
          {% endif %}
        person_is_known: >
          {% if trigger.event.data.data.is_known is defined %}
            {{ trigger.event.data.data.is_known }}
          {% endif %}
        person_snapshot: >
          {% if trigger.event.data.data.snapshot_url is defined %}
            "{{ trigger.event.data.data.snapshot_url }}"
          {% endif %}

- trigger:
    platform: event
    event_type: netatmo_event
    event_data:
      data:
        device_id: 70:ee:XX:XX:XX:XX
  binary_sensor:
    - name: "Detection Mouvement Camera Portail"
      unique_id: 7418b661-0fbd-4796-a74b-ff9a1306920f
      device_class: motion
      state: "true"
      auto_off: 10
      attributes:
        type: >
          {% if trigger.event.data.data.event_type is defined %}
            {{ trigger.event.data.data.event_type }}
          {% endif %}
        message: >
          {% if trigger.event.data.data.message is defined %}
            {{ trigger.event.data.data.message }}
          {% endif %}
        time_fired: >
          {% if trigger.event.time_fired is defined %}
            {{ trigger.event.time_fired }}
          {% endif %}


et dans mon fichier de configuration.yaml

j’ai jouté la ligne

template: !include_dir_merge_list includes/templates

Tu as un service pour forcer l’activation du webhook. Recherche netatmo.
Si ton webhook est déjà actif, il te le diras. Sinon il l’activera.
Comme tu as corrigé ton dns, je pense que l’activation devrais résoudre. Il te faudra peut être faire avant une désactivation du webhook pour le forcer

Bonsoir

J’ai lancé
service: netatmo.unregister_webhook
Et
service: netatmo.register_webhook

Plus qu’à attendre

Active l’écoute d’évènement comme je t’ai dis plus haut et déclenche une détection de mouvement

Toujours rien, c’est a rien n’y comprendre, je tourne en rond et je manque d’idée ou j’ai rien compris

Bonjour,

Malheureusement comme tu ne partage aucuns logs, n’étant pas devant ton HA je ne sais pas quoi te conseiller.

Dans les logs tu as bien eu une confirmation quand tu as fais le register du webhook ? Si oui, et seulement à partir de la, à tu tester dans les outils de dev si tu recevais les webhook ? pour identifier si c’est pas les entités qui pose souci

Bonjour

pas grand chose de le log home-assistant.log
j’ai remplace mon dns par xxx.com

2023-05-04 10:15:02.423 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-05-04 10:15:02.431 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration pyscript which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-05-04 10:15:02.442 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration alarmo which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-05-04 10:15:44.868 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Hue Bridge 0017886d85bc' for hue integration not ready yet: Error connecting to the Hue bridge at 192.168.5.9; Retrying in background
2023-05-04 10:15:47.076 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher account added
2023-05-04 10:15:47.738 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher weather added
2023-05-04 10:15:47.794 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] No device data available
2023-05-04 10:15:47.795 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher air_care added
2023-05-04 10:15:51.693 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher home-5b27e1550f21e1d4058b72bf added
2023-05-04 10:15:51.695 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher weather removed
2023-05-04 10:15:51.695 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher air_care removed
2023-05-04 10:15:51.934 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher event-5b27e1550f21e1d4058b72bf added
2023-05-04 10:15:51.982 DEBUG (MainThread) [homeassistant.components.netatmo.data_handler] Publisher weather added
2023-05-04 10:15:52.118 INFO (MainThread) [homeassistant.components.netatmo] Register Netatmo webhook: https://xxxx.com/api/webhook/7be293b1075e8755f924ed31eccc0f55179696212749964a4695cd5b91b26a03
2023-05-04 10:15:53.873 ERROR (MainThread) [homeassistant] Error doing job: Unclosed client session
2023-05-04 10:15:54.823 ERROR (MainThread) [homeassistant] Error doing job: Unclosed connector

Y’a t’il un autre log qui pourrait aider ? je debute en HA donc pas forcement l’habitude, je viens du monde eedomus

Le webhook semble actif.
Tu reçois des événements quand tu les mets en écoute dans les outils de développement ?

Bonjour

non je ne recoit rien, et tout semble ok. Je ne sais pas comment avancer

Et côté application netatmo tu vois bien une détection mais au même moment tu n’as pas l’évent qui arrive sur HA. C’est bien ça ?

En relisant ce que tu as écrit, je vois dans ton app netatmo une Webhook URI.
Sauf que l’indique la doc, il ne fait rien mettre dedans.

bonjour

je confirme que j’ai bien supprimé Webhook URI avant, effectivement je pensais qu’il fallait le mettre mais je suis tombé sur la doc également et je l’ai supprimé juste après mon post du 3 mai