Ouvrir un portail à distance

Bonjour,

Je souhaite commander l’ouverture de mon portail depuis home assistant.

J’ai mis en place le portier vidéo DAHUA Outdoor Station qui me permet d’ouvrir à distance mon portail grace à l’applictaion DMSS.
J’avais vu que ce vidéophone était intégrable dans HA mais je bloque…

J’ai installer les modules complémentaires DahuaVTO2MQTT et MOSQUITTO BROKER.

Avec un peu de code, j’arrive alors à récupérer des informations sur HA. Voici ce qui apparait dans le journal de DahuaVTO2MQTT lorsque j’ouvre mon portail depuis l’application :

Event BackKeyLight with State 8 
MQTT message published, Topic: DahuaVTO/BackKeyLight/Event, Payload: {"Action":"Pulse","Data":{"LocaleTime":"2024-08-21 18:22:42","State":8,"UTC":1724260962}}
Event: AccessControl, Name OpenDoor Method 4, ReaderID 1, UserID 
MQTT message published, Topic: DahuaVTO/AccessControl/Event, Payload: {"Action":"Pulse","Data":{"CardNo":"","CardType":null,"ErrorCode":0,"LocaleTime":"2024-08-21 18:22:42","Method":4,"Name":"OpenDoor","Password":"","ReaderID":"1","RecNo":72,"SnapURL":"","Status":1,"Type":"Entry","UTC":1724260962,"UserID":""}}
Unmapped event (DoorStatus
MQTT message published, Topic: DahuaVTO/DoorStatus/Event, Payload: {"Action":"Pulse","Data":{"LocaleTime":"2024-08-21 18:22:44","Relay":true,"Status":"Close","UTC":1724260964}}

La communication est donc etabli de mon videophone vers HA : SUPER.

Mais je n’arrive pas à communiquer dans l’autre sens (pour faire ouvrir le portail)

J’ai fait l’automatisation suivante qui ne donne rien :

alias: Ouvrir le Portail
description: ""
trigger:
  - platform: state
    entity_id:
      - input_button.portail
    to: null
    from: null
action:
  - data:
      topic: DahuaVTO/AccessControl/Command
      payload: "{\"Action\":\"OpenDoor\",\"Data\":{\"Method\":4,\"ReaderID\":1}}"
    action: mqtt.publish

Une idéée pour m’aider???

Ma configuration


System Information

version core-2024.8.2
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.44-haos
arch aarch64
timezone Europe/Berlin
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4994
Installed Version 1.34.0
Stage running
Available Repositories 1404
Downloaded Repositories 17
HACS Data ok
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 13.0
update_channel stable
supervisor_version supervisor-2024.08.0
agent_version 1.6.0
docker_version 26.1.4
disk_total 28.0 GB
disk_used 10.6 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board green
supervisor_api ok
version_api ok
installed_addons Advanced SSH & Web Terminal (18.0.0), Samba share (12.3.1), File editor (5.8.0), Duck DNS (1.17.0), Linky (1.5.0), Let’s Encrypt (5.0.22), pigpio (1.5.2), ESPHome (2024.6.2), Node-RED (18.0.0), Tailscale (0.20.0), Mosquitto broker (6.4.1), DahuaVTO2MQTT (1.0.2)
Dashboards
dashboards 3
resources 3
views 5
mode storage
Recorder
oldest_recorder_run 20 août 2024 à 07:00
current_recorder_run 20 août 2024 à 13:29
estimated_db_size 246.03 MiB
database_engine sqlite
database_version 3.45.3
___

Salut tu peux utiliser des outils genre mqttexplorer déjà pour tester et t’assurer du payload a envoyer dans ta requête mqtt et t’assurer que cette partie déjà est ok

1 « J'aime »

Hello.
Il y a aussi cette piste que tu peux explorer au besoin:

https://github.com/myhomeiot/DahuaVTO

1 « J'aime »

Bonjour

j’ai bien testé le code :

dahua_vto:
  - host:  # Remplacez par l'adresse IP de votre visiophone Dahua
    port: 37777           # Port utilisé par le visiophone
    username:    # Nom d'utilisateur
    password:  # Mot de passe
    channels: 1          # Nombre de canaux

timer:
  door_lock:
    name: Door Lock
    icon: mdi:timer

lock:
  - platform: template
    name: Door Lock
    value_template: "{{ not is_state('timer.door_lock', 'active') }}"
    lock:
    unlock:
      - service: dahua_vto.open_door
        data_template:
          entity_id: sensor.dahua_vto
          channel: 1
          short_number: HA

mais ca ne fonctionne pas, j’ai une erreur :

L’action dahua_vto.open_door utilise l’action lock.unlock qui n’a pas été trouvée.

Bonjour,
c’est normal, depuis la maj du core 2024.8.0, les services ont été renommés en action.

      - service: dahua_vto.open_door
        data_template:
          entity_id: sensor.dahua_vto
          channel: 1
          short_number: HA

deviens

      - action: dahua_vto.open_door
        data_template:
          entity_id: sensor.dahua_vto
          channel: 1
          short_number: HA

Bonjour

j’ai changé le code et redemarré HA

lock:
  - platform: template
    name: Door Lock
    value_template: "{{ not is_state('timer.door_lock', 'active') }}"
    lock:
    unlock:
    - action: dahua_vto.open_door
      data_template:
        entity_id: sensor.dahua_vto
        channel: 1
        short_number: HA

mais toujours la même erreur

L’action dahua_vto.open_door utilise l’action lock.unlock qui n’a pas été trouvée.

J’ai fait des essai aussi sur mqttexplorer.
Si j’ouvre le portail depuis l’application DMSS, les infos remontent

mais je ne trouve pas la commande qui fonctionne pour ouvrir la porte

Sur Elad Bar / DahuaVTO2MQTT · GitLab, il propose de faire la commande : DahuaVTO/Command/Open

mais ça ne fonctionne pas

une idée pour me sauver?

il n’y aurait pas des options a activer ? pour que l’ouverture via MQTT soit autorisé ?

Tu veux dire donner l’autorisation directement sur le videophone DAHUA OUTDOOR STATION?

je me posais aussi la question, mais vu que l’application DMSS peut déjà le faire, je pense qu’il ne faut pas plus d’autorisation? votre avis?

Si tu peux avoir des autorisations en plus. Sur les nuki par exemple tu peux faire remonter les infos et la fermeture en MQTT mais tu as une option en plus à activer pour pouvoir autoriser le verouillage par MQTT.

Je peux modifier la config de mon portier video garce à WEB SERVICE.

Voici quelques impression d’écran. ou est ce que je peux trouver cette activation?

Hello,
J’ai un portier Dahua aussi mais un vieux… de 2015 ou 2016.
J’utilise aussi l’integration myhomeiot/DahuaVTO et je fais comme ça pour ouvrir mon portail à moitié.

Dans mon configuration.yml, j’ai déclaré une lock avec le code suivant :

lock:
  - platform: template
    name: Door Lock
    value_template: "{{ not is_state('timer.door_lock', 'active') }}"
    lock:
    unlock:
      - service: dahua_vto.open_door
        data_template:
          entity_id: sensor.dahua_vto
          channel: 1
          short_number: HA

Voila, chez moi ça fonctionne :smiley:

moi ça marche pas avec un portier récent :
DAHUA
IP VILLA DOOR STATION
Model : DHI - VTO2201F - P
date : 2024 - 01

toujours l’erreur : L’action dahua_vto.open_door utilise l’action lock.unlock qui n’a pas été trouvée.

rappel de ma config :
dans configuration.yaml

dahua_vto:
  - host: xxxx  # Remplacez par l'adresse IP de votre visiophone Dahua
    port: 37777           # Port utilisé par le visiophone
    username: xxxx     # Nom d'utilisateur
    password: xxxx # Mot de passe
    channels: 1          # Nombre de canaux

timer:
  door_lock:
    name: Door Lock
    icon: mdi:timer

lock:
  - platform: template
    name: Door Lock
    value_template: "{{ not is_state('timer.door_lock', 'active') }}"
    lock:
    unlock:
    - action: dahua_vto.open_door
      data_template:
        entity_id: sensor.dahua_vto
        channel: 1
        short_number: HA

et dans sensor.yaml

#portier video
  - platform: dahua_vto
    name: dahua_vto
    host: 192.168.xxxx
    username: xxxx
    password: xxxx
    scan_interval: 5

:frowning:

Et via l’interface graphique en cherchant les entités lock ?
Ça fonctionne ou pas ?

Tu parles de quel interface graphique?

Quand tu passes par la liste des entités et que tu fais une recherche sur les entités de type « lock ». Tu dois avoir ton entité définie dans ton configuration.yml.
Je joins une capture d’écran :

Hello

Vu le message, as tu spécifié l’id pour door ?

Passe par les outils de dev / actions pour valider les commandes avant de les intégrer dans une auto ou autre :wink:

Essaie ça avec 1 ou 2 en payload

action: mqtt.publish
data:
  qos: 0
  retain: false
  payload: "1"
  topic: DahuaVTO/Command/Open

oui bien sur,
mais il ya toujours l’erreur

J’ai déjà essayé et ca ne marche pas :

Je n’avais pas bien lu, mais je vois que l’on utilise pas le même plugin, c’est peut être la raison pour laquelle mes explications ne fonctionnent pas chez toi…
Pour info j’utilise la dernière version 1.0.7, je ne passe pas par MQTT.

J’essaye les 2 voies en mêmes temps :

par l’appli ca ne marche pas en utilsant ta méthode. Est ce que j’aurais oublié quelque chose?