DAHUA VTO - Problème d'état de sensor open door

Bonjour,

Besoin d’aide pour Dahua VTO état du sensor open door

C’est mon premier post sur le forum, je vous prie donc de m’excuser d’avance, si celui-ci n’était pas dans « les règles de l’art ».

Je viens de JEEDOM et je découvre HA avec enthousiasme…
Actuellement les deux assistants tournent en parallèle.

J’ai un portier Dahua VTO (DHI-VTO2211G-WP) qui fonctionne très bien avec l’intégration sous HA de « Dahua » et « Dahua VTO ».
tout semble fonctionner parfaitement :

  • Alexa dit « quelqu’un sonne » lorsque le bouton d’appel du portier est actionné (binary_sensor.9k005e5pajd3992_portier_button_pressed)
  • Le portillon s’ouvre (gâche électrique contact sec NO) grâce à l’action : dahua.vto_open_door

Mon problème, c’est que le statut du sensor : « binary_sensor.9k005e5pajd3992_portier_door_status » ne change jamais et reste en statut « fermé »
C’est gênant car cela m’empêche d’automatiser l’éclairage lorsque le portillon est ouvert.

Je pense que le soucis vient de HA, car sous Jeedom ce statut est bien fonctionnel et change lorsque le bouton d’ouverture portillon est actionné (qui est différent du bouton d’appel).

J’ai essayé de « faire le tour » du forum mais je n’ai rien trouvé pour m’aider, les principaux problèmes réglés étant des problèmes d’ouvertures, alors que chez moi ça fonctionne.

Au passage, j’en profite pour féliciter et remercier tous les membres actifs de ce forum pour leurs conseils et tutos, qui m’ont bien aidé pour tout le reste de ma config, sans que je n’ai à poster de message.

Ma configuration

Config.yaml :

_

System Information

version core-2025.3.0b0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.13.2
os_name Linux
os_version 6.6.73-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 1557
Downloaded Repositories 13
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 14.2
update_channel beta
supervisor_version supervisor-2025.02.4
agent_version 1.6.0
docker_version 27.2.0
disk_total 30.8 GB
disk_used 12.5 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization oracle
board ova
supervisor_api ok
version_api ok
installed_addons Matter Server (7.0.0), Get HACS (1.3.1), Studio Code Server (5.18.3), Linky (1.5.0), ZeroTier One (0.20.0), Cloudflared (5.2.9), Vaultwarden (Bitwarden) (0.24.1), Samba share (12.5.0), Node-RED (19.0.2), Log Viewer (0.17.1), OneDrive Backup (2.3.8), Mosquitto broker (6.5.0), Frigate (Full Access) (0.15.0), Frigate Proxy (1.5)
Dashboards
dashboards 12
resources 3
views 20
mode storage
Network Configuration
adapters lo (disabled), enp0s3 (enabled, default, auto), docker0 (disabled), hassio (disabled), veth1f829f5 (disabled), veth7425bc0 (disabled), veth2563fe9 (disabled), vethcd20c3e (disabled), veth946ca0f (disabled), veth4c5c734 (disabled), veth517d2ad (disabled), veth7a4a1ea (disabled), veth6b30c8b (disabled), veth37107cb (disabled), veth20ccce6 (disabled), veth6768d1b (disabled), veth7a50ed5 (disabled)
ipv4_addresses lo (127.0.0.1/8), enp0s3 (192.168.1.70/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), veth1f829f5 (), veth7425bc0 (), veth2563fe9 (), vethcd20c3e (), veth946ca0f (), veth4c5c734 (), veth517d2ad (), veth7a4a1ea (), veth6b30c8b (), veth37107cb (), veth20ccce6 (), veth6768d1b (), veth7a50ed5 ()
ipv6_addresses lo (::1/128), enp0s3 (fe80::417a:61c9:57eb:d37c/64), docker0 (fe80::42:6dff:fe06:205a/64), hassio (fe80::42:30ff:fefc:1e5d/64), veth1f829f5 (fe80::7476:ffff:fe23:6346/64), veth7425bc0 (fe80::7453:9fff:fe64:d79c/64), veth2563fe9 (fe80::f4e7:25ff:fe70:fcef/64), vethcd20c3e (fe80::28dd:a1ff:fe54:8e23/64), veth946ca0f (fe80::505f:5fff:fe42:a67a/64), veth4c5c734 (fe80::8897:17ff:fed9:2a08/64), veth517d2ad (fe80::c48e:28ff:fef2:7e52/64), veth7a4a1ea (fe80::a4a3:c9ff:fe21:a5c6/64), veth6b30c8b (fe80::a838:ebff:fe44:7ba4/64), veth37107cb (fe80::fc95:eaff:fe44:9f15/64), veth20ccce6 (fe80::bcbc:d5ff:fe69:241f/64), veth6768d1b (fe80::d015:4fff:fe3d:59ef/64), veth7a50ed5 (fe80::c4ea:99ff:fe0d:6f50/64)
announce_addresses 192.168.1.70, fe80::417a:61c9:57eb:d37c
Recorder
oldest_recorder_run 15 février 2025 à 20:53
current_recorder_run 27 février 2025 à 12:44
estimated_db_size 827.29 MiB
database_engine sqlite
database_version 3.48.0
Sonoff
version 3.8.2 (c4b6fda)
cloud_online 1 / 1
local_online 1 / 1
___

Vérifier si l’état du capteur change dans les logs HA

Il se peut que l’état du capteur change très brièvement, rendant difficile sa détection dans l’interface.

Allez dans Développement → Onglet États et surveillez binary_sensor.9k005e5pajd3992_portier_door_status.
Ouvrez le portillon et voyez si le statut change, même brièvement.
Regardez dans Outils de développement → Onglet Événements, en écoutant state_changed pour voir si le capteur envoie une mise à jour.

Bonjour,
et merci pour la réponse rapide.

Je viens de faire les 2 tests proposés, mais rien ne se passe même quand j’active la commande à partir d’HA.
Par contre quand je vérifie l’état dans outils de développement, le sensor n’à pas d’id. Est-ce que cela pourrait avoir un lien ?

Pour info, dans mon config.yaml j’ai réduis le « scan_intervall » à 1 au lieu de 3 par défaut, mais je ne sais pas si c’est utile.

Le fait que l’entité n’ait pas d’id ne semble pas directement être la cause du problème, car cela signifie simplement qu’elle n’a pas d’identifiant interne spécifique attribué par l’intégration. Cela peut arriver avec certaines entités créées dynamiquement via des intégrations API comme Dahua.

En revanche, ce qui est important, c’est que l’état du capteur ne change pas, ce qui suggère que :

L’intégration ne reçoit pas les mises à jour de statut depuis le VTO.
Le capteur ne se rafraîchit pas correctement dans Home Assistant.

Vérifie si Home Assistant reçoit un événement lors de l’ouverture du portillon :

dans Outils de développement → Événements.
Dans le champ « Écouter les événements », entre ce code :

dahua_event_received

Clique sur Commencer l’écoute.
Actionne l’ouverture du portillon et regarde si un événement apparaît.

Si un événement est reçu, cela signifie que Dahua envoie bien l’info, mais que HA ne met pas à jour l’entité.
Si aucun événement n’apparaît, alors HA ne reçoit pas du tout l’information de Dahua.

L’intégration Dahua VTO fonctionne plutôt via un flux d’événements en temps réel, donc scan_interval pourrait ne pas être utile ici.

enfin il se passe quelque chose, mais je ne sais pas l’interpréter :

Lorsque je lance l’écoute, le « context: id » change continuellement.

Home Assistant reçoit bien des événements de Dahua!

l’événement que tu reçois (dahua_event_received) contient une action « Pulse » avec un code « DGSErrorReport », ce qui ne semble pas être lié au statut d’ouverture de la porte.

le context: id change continuellement signifie que HA reçoit fréquemment cet événement. Ce n’est peut-être pas l’événement que l’on cherche.
Écoute tous les événements de Dahua
Va dans Outils de développement → Événements.
« Écouter les événements », entre dahua_event_received.
Ouvre le portillon et observe quel type d’événement est généré.

Si un nouvel événement spécifique apparaît (différent de « Pulse / DGSErrorReport »), c’est celui qu’il faut utiliser pour détecter l’ouverture.

Si tu trouves un événement correspondant à l’ouverture du portillon (par exemple "Action": "DoorOpen" ou "Code": "DoorStatus"), tu peut créer une automatisation , pour mettre à jour l’état du capteur

Si après l’ouverture du portillon aucun nouvel événement ne se déclenche

Le portier Dahua ne signale peut-être pas l’ouverture via l’API (contrairement à Jeedom).
tu doit utiliser un contournement, comme un capteur binaire basé sur la commande d’ouverture

Merci beaucoup pour ton aide.
Je ne vais plus avoir accès à mon ordi ce soir.
Je vais essayer demain.
Bonne soirée.

1 « J'aime »

Bonjour,
Je viens de faire le test, voici les retours de l’outil de développement :

1ère réception :

puis :

Et enfin :

Du coup, je pense qu’il y a des informations intéressantes là dedans, mais je ne sais pas comment les exploiter pour résoudre mon problème.

la je pense que tu peux créer une automatisation pour forcer la mise à jour de l’état du capteur avec l’événement correspondant à l’ouverture du portillon pour moi ici c’est le"Code": "DoorStatus" , voilà un exemple d’ automatisation :

alias: "Mise à jour du statut du portillon"
trigger:
  - platform: event
    event_type: dahua_event_received
    event_data:
      Action: DoorStatus  # Remplacer ici par l'Action correcte trouvée dans les logs
action:
  - service: homeassistant.update_entity
    target:
      entity_id: binary_sensor.9k005e5pajd3992_portier_door_status
mode: restart

Essaie cette étape et dis-moi ce que ça donne.

Explication des événements

photo 1

Type : BackKeyLight
Signification : Il semble indiquer une activité liée au rétroéclairage du bouton.
Utilisation : Peut être utilisé pour détecter une interaction avec l’interphone avant une ouverture.

pohto 2

Type : AccessControl
Action : OpenDoor
Signification : Quelqu’un a ouvert la porte (accès autorisé).
Utilisation : Peut être utilisé pour envoyer une notification, capturer une image (SnapURL), ou enregistrer l’accès.

photo 3

Type : DoorStatus
Action : Close
Signification : La porte s’est refermée.
Utilisation : Peut servir à détecter si la porte reste ouverte trop longtemps et envoyer une alerte.

Tu peux créer une automatisation YAML pour envoyer une notification ou allumer une lumière lorsque la porte s’ouvre.

Exemple : Envoi d’une notification avec image lorsqu’on ouvre la porte

J’y croyais, mais malheureusement ça ne fonctionne pas…
Voici l’automatisation que j’ai créé :

j’ai essayé en modifiant Action: par DoorStatus, AccessControl, et BackKeyLight mais l’automatisation ne se met pas à jour lors de l’actionnement du portier.

Il est possible qu’il le binary_sensor ne puisse pas être mis à jour directement par update_entity.

Si les événements sont bien reçus, teste celle si :

alias: Mise à jour du statut du portillon
trigger:
  - platform: event
    event_type: dahua_event_received
    event_data:
      data:
        Code: DoorStatus
actions:
  - service: homeassistant.update_entity
    target:
      entity_id: binary_sensor.9k005e5pajd3992_portier_door_status
mode: restart

celle la pour l’envoi d’une notification avec image lorsqu’on ouvre la porte

alias: Notification ouverture porte interphone
trigger:
  - platform: event
    event_type: dahua_event_received
    event_data:
      data:
        Code: AccessControl  # Déclenchement sur l'ouverture de porte

action:
  - service: notify.mobile_app_mon_tel
    data:
      title: "Porte ouverte"
      message: "Quelqu'un a ouvert la porte via l'interphone."
      data:
        image: "/media/local/dahua_snapshot.jpg"

  - service: downloader.download_file
    data:
      url: "http://IP_DE_TA_CAMERA{{ trigger.event.data.data.SnapURL }}"
      filename: "dahua_snapshot.jpg"
      overwrite: true
      subdir: "local"

mode: single

Je suis vraiment désolé, mais cette dernière automatisation ne fonctionne pas non plus.
Lorsque le bouton est appuyé, l’automatisation n’est pas activée.
Il semblerait qu’elle ne reçoit pas l’info du changement d’état.

Bonjour,
ça y est ça fonctionne…
Je n’utilise pas l’automatisation pour la mise à jour du statut, mais directement pour l’action qui doit suivre l’ouverture :

Encore un GRAND MERCI pour ton aide, je pense que je n’y serais jamais arrivé sans tes conseils.

1 « J'aime »