Naviguer dans une application depuis un scénario NODE RED + Live d'un portier DAHUA VTO

Je vais essayer d’être le plus complet possible :grinning_face:.


  1. Au niveau smartphone (Android dans mon cas)

J’utilisais l’application compagnon en “connexion permanente : Toujours” pour recevoir les notifications en temps réel. Au fil du temps, j’ai remarqué que ça vidait rapidement la batterie. J’ai donc repassé la connexion permanente sur “jamais” et je laisse maintenant les notifications gérer par Android.

Lorsque quelqu’un sonne, la notification sur le téléphone est envoyée avec cette configuration dans Home Assistant :

- action: notify.mobile_app_telephone_alex
  data:
    message: Ding Dong
    data:
      ttl: 0
      priority: high
      importance: high
      channel: doorbell_alert
      image: >-
        /api/camera_proxy/camera.doorbell?token=xxxxxxxxxxxxxxxx
      actions:
        - action: URI
          title: Voir le direct
          uri: /lovelace/visiophone

Quelques précisions :

  • ttl: 0, priority: high et importance: high permettent d’avoir une notification instantanée.
  • channel est le nom que tu donnes au canal de notification. Il apparaît dans l’application Android compagnon et permet d’avoir un son spécifique pour la sonnette, différent des autres notifications.

Avec cette configuration, la notification affiche “Ding Dong” + un snapshot de la caméra.
J’ai prévu d’ajouter des boutons cliquables pour ouvrir le portail sans déverrouiller le téléphone, mais ce n’est pas encore terminé.

Pour le moment, les notifications semblent très réactives, même si je n’ai pas encore eu beaucoup d’appuis sur le VTO.
J’ai d’autres notifications dans HA sans ces paramètres, et effectivement ça peut mettre jusqu’à 10 minutes avant d’arriver.


  1. Au niveau tablette murale

Ici, c’est géré différemment : j’utilise Fully Kiosk sur la tablette, pas l’application compagnon.

  • Pas besoin d’envoyer de notification.
  • Home Assistant allume l’écran et joue un son de sonnette.
  • Pas de raté possible.

Dans le GitHub que j’ai partagé, tu verras qu’il y a un flag qui indique que la sonnette a été activée. Ce flag est remis à 0 :

  • Au bout d’un certain temps si aucune action n’a été effectuée
  • Lorsqu’on décroche
  • Lorsqu’on refuse l’appel
  • Et je le remets à 0 quand le portail passe de fermé à ouvert

La sonnerie sur la tablette s’arrête naturellement lorsque le flag passe à 0.
Ce flag sert aussi à changer l’état des icônes téléphone en haut à gauche de la fenêtre (utile pour voir si un appel a été traité dans un contexte multi-utilisateurs).

Je n’ai jamais testé de décrocher sur deux téléphones en même temps. Dans ce cas, même si l’appel est pris ou que personne ne sonne, on peut lancer un appel depuis HA. Le plus simple est donc de vérifier si l’icône de sonnerie est active : si oui, l’appel n’a pas été traité par un autre utilisateur.


  1. Points critiques
  • go2rtc et HTTPS :
    • La tablette doit accéder à Home Assistant en HTTPS, sinon le micro ne fonctionne pas.
    • Même chose pour les téléphones sur le Wi-Fi local.
    • Il faut donc un certificat valide (DuckDNS ou autre) et probablement un reverse proxy local pour garder l’accès à HA même en cas de coupure Internet.
  • Frigate : j’utilise le H264. Mon GPU ne gérant pas le H265, je n’ai pas testé ce format.

  1. L’état de la serrure du VTO

Le relais du VTO remonte son état dans HA via une carte d’interface connectée à ESPHome.
Une automatisation inverse l’état du portail. Mon VTO étant équipé d’un lecteur de badge RFID :

  • Lorsqu’un badge est détecté, HA reçoit l’information.
  • HA demande alors une ouverture ou une fermeture, suivant l’état actuel du portail.

  1. La motorisation

Ma motorisation de portail dispose de :

  • Deux entrées : une pour ouvrir et une pour fermer
  • Une sortie : indique si le portail est fermé ou non

Je le gère avec un cover dans HA :

cover:
  - name: "Portail"
    unique_id: cdc2689c-4c59-4ff8-8b73-12f56ebf3c42
    command_topic: "portail/commande"
    payload_open: "OUVRIR"
    payload_close: "FERMER"
    state_topic: "portail/etat"
    value_template: >
      {% if value == "FERME" %}
        closed
      {% else %}
        open
      {% endif %}
    optimistic: false
    qos: 0
    retain: false
    icon: >
      {% if is_state('cover.portail', 'open') %}
        mdi:gate-open
      {% else %}
        mdi:gate

Et la carte dans HA :

type: custom:button-card
entity: cover.portail
name: Portail
tap_action:
  action: toggle
  confirmation:
    text: Êtes-vous sûr de vouloir ouvrir le portail ?
hold_action:
  action: navigate
  navigation_path: /logbook?entity_id=cover.portail
show_state: true
show_icon: true
icon: mdi:gate
layout: icon_name_state
state:
  - value: open
    icon: mdi:gate-open
    color: red
    name: Portail
  - value: closed
    icon: mdi:gate
    color: green
    name: Portail
styles:
  card:
    - border-radius: 12px
    - padding: 10px
    - font-size: 16px
    - text-transform: none
  icon:
    - width: 60px
    - height: 60px
  1. Différents états des icônes sur la tablette

PS : L’icône avec la cloche jaune correspond au mode “Ne pas déranger”. Il s’active automatiquement selon l’heure pour éviter que la tablette ne sonne en pleine nuit, tandis que les notifications sur les smartphones restent toujours actives. De plus, le volume de la sonnerie baisse à un niveau plus faible en soirée avant d’être complètement coupé par le mode “Ne pas déranger”.

standby :

Sonnerie en cours

décroché

On peut bien sûr mettre le micro en mute : image
Il est également possible de couper le son pendant l’appel, même si je ne vois pas trop l’intérêt.

J’espère que ce pavé est compréhensible… :sweat_smile: N’hésite pas si tu as d’autres questions.