Installation Dahua VTO2211G-P-S2 PoE

J’ai changé les adresses IP des VTO / VTH et je n’arrive plus a faire dialoguer les deux.
Si je remet les deux anciennes IP ça marche mais dès que je remet les nouvelles ça ne fonctionne pas. Une idée ?

EDIT :
Dans le VTH il faut entrer le MDP du VTH et on a accès à l’adresse IP du VTO.
Ça fonctionne !
Dans Home Assistant, j’ai supprimé le VTO puis re-créé le VTO avec la bonne IP.

J’ai ajouté la caméra dans Frigate :

version: 0.16-0

# Pour reset mot de passe activer les deux lignes en dessous
# Relancer le docker puis lancer la commande
# docker logs frigate
# Vous verrez le mot de passe nouvellement généré
#auth:
#  reset_admin_password: true

mqtt:
  # Optional: Enable mqtt server (default: shown below)
  enabled: true
  # Required: host name
  host: 192.168.0.52
  # Optional: port (default: shown below)
  port: 1883
  # Optional: topic prefix (default: shown below)
  # NOTE: must be unique if you are running multiple instances
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # NOTE: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: user
  # NOTE: MQTT user can be specified with an environment variable or docker secrets that must begin with 'FRIGATE_'.
  #       e.g. user: '{FRIGATE_MQTT_USER}'  
  user: '{FRIGATE_MQTT_USER}'
  # Optional: password
  # NOTE: MQTT password can be specified with an environment variable or docker secrets that must begin with 'FRIGATE_'.
  #       e.g. password: '{FRIGATE_MQTT_PASSWORD}'
  password: '{FRIGATE_MQTT_PASSWORD}'

#===============================================================================
#=                            Google Coral USB key                             =
#===============================================================================
detectors:
  coral:
    type: edgetpu  # Utilise le Edge TPU de la clé Coral
    device: usb    # Spécifie que la clé est connectée en USB

#===============================================================================
#=                      Optional: Snapshot configuration                       =
#===============================================================================
# Optional: Snapshot configuration  
snapshots:
  enabled: true
  # Optional: save a clean PNG copy of the snapshot image (default: shown below)
  clean_copy: true
  # Optional: print a timestamp on the snapshots (default: shown below)
  timestamp: true
  # Optional: draw bounding box on the snapshots (default: shown below)
  bounding_box: true
  # Optional: crop the snapshot (default: shown below)
  crop: false
  # Optional: Camera override for retention settings (default: global values)
  retain:
    # Required: Default retention days (default: shown below)
    default: 15
    # Optional: Per object retention days
    objects:
      person: 15

#===============================================================================
#=                                  go2rtc                                     =
#===============================================================================
go2rtc:
  streams:
    camera_jardin:
      - rtsp://{FRIGATE_CAMERA_JARDIN_LOGIN}:{FRIGATE_CAMERA_JARDIN_PASSWORD}@192.168.0.56:554/Streaming/Channels/101
    camera_jardin_sub:
      - rtsp://{FRIGATE_CAMERA_JARDIN_LOGIN}:{FRIGATE_CAMERA_JARDIN_PASSWORD}@192.168.0.56:554/Streaming/Channels/102
    dahua_portier_vto:
      # H264 720p
      - echo:/config/scripts/fix_vto_codecs.sh
        ffmpeg:rtsp://{FRIGATE_DAHUA_VTO_LOGIN}:{FRIGATE_DAHUA_VTO_PASSWORD}@192.168.0.65:554/cam/realmonitor?channel=1&subtype=0#video=copy
      # PCMA, 2-way audio
      - echo:/config/scripts/fix_vto_codecs.sh 
        rtsp://{FRIGATE_DAHUA_VTO_LOGIN}:{FRIGATE_DAHUA_VTO_PASSWORD}@192.168.0.65:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif#media=audio#backchannel=1
      # AAC
      - rtsp://{FRIGATE_DAHUA_VTO_LOGIN}:{FRIGATE_DAHUA_VTO_PASSWORD}@192.168.0.65:554/doorbell_hd?audio=aac
    dahua_portier_vto_sub:
      # H264, AAC D1
      - echo:/config/scripts/fix_vto_codecs.sh
        ffmpeg:rtsp://{FRIGATE_DAHUA_VTO_LOGIN}:{FRIGATE_DAHUA_VTO_PASSWORD}@192.168.0.65:554/cam/realmonitor?channel=1&subtype=1#video=copy#audio=copy
      # PCMA
      - rtsp://{FRIGATE_DAHUA_VTO_LOGIN}:{FRIGATE_DAHUA_VTO_PASSWORD}@192.168.0.65:554/doorbell?audio=pcma&backchannel=0
  ffmpeg:
    path: '5.0'
  webrtc:
    listen: :8555   # external TCP/UDP port
    candidates:
      - 192.168.0.60:8555
      - stun:8555

#===============================================================================
#=                                  Caméras                                    =
#=                                                                             =
#= 8555 : port go2rtc                                                          =
#= 8554 : Lecture pour go2rtc                                                  =
#===============================================================================
cameras:
  # Flux vidéo de la caméra jardin arrière
  camera_jardin:
    ffmpeg:
      # Optional: global hwaccel args (default: auto detect)
      # NOTE: See hardware acceleration docs for your specific device
      hwaccel_args: auto
      inputs:
        - path: rtsp://127.0.0.1:8554/camera_jardin
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/camera_jardin_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      enabled: true
      width: 704  # largeur de l'image du flux secondaire (en pixels)
      height: 576 # hauteur de l'image du flux secondaire (en pixels)
      fps: 6
    objects:
      track:
        - person
        - cat
        - dog
    live:
      streams:
        main_stream: camera_jardin
        sub_stream: camera_jardin_sub
    onvif:
      host: 192.168.0.56
      port: 80 # Dans caméra, Configuration / Réglages de base / Port => Port du serveur
      user: '{FRIGATE_CAMERA_JARDIN_PTZ_LOGIN}'
      password: '{FRIGATE_CAMERA_JARDIN_PTZ_PASSWORD}'
      ignore_time_mismatch: True
  dahua_portier_vto:
    enabled: true
    ffmpeg:
      hwaccel_args: auto
      inputs:
        - path: rtsp://127.0.0.1:8554/dahua_portier_vto
          input_args: preset-rtsp-restream-low-latency
          roles:
            - audio  # Pour activer l'audio            
        - path: rtsp://127.0.0.1:8554/dahua_portier_vto_sub
          input_args: preset-rtsp-restream-low-latency
          roles:
            - detect
      output_args:
        record: preset-record-generic-audio-aac            
    detect:
      enabled: false # Désactive la détection
    record:
      enabled: false # Désactive l'enregistrement
    live:
      streams:
        main_stream: dahua_portier_vto
        sub_stream: dahua_portier_vto_sub

#===============================================================================
#=                            Détections / Enregistrements                     =
#===============================================================================

# Optional: Record configuration
# NOTE: Can be overridden at the camera level
    motion:
      mask: 0.036,0.023,0.574,0.025,0.576,0.075,0.039,0.074
record:
  enabled: true
  # Optional: Number of minutes to wait between cleanup runs (default: shown below)
  # This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
  expire_interval: 60
  # Optional: Retention settings for recording
  retain:
    # Optional: Number of days to retain recordings regardless of events (default: shown below)
    # NOTE: This should be set to 0 and retention should be defined in events section below
    #       if you only want to retain recordings of events.
    days: 15
    # Optional: Mode for retention. Available options are: all, motion, and active_objects
    #   all - save all recording segments regardless of activity
    #   motion - save all recordings segments with any detected motion
    #   active_objects - save all recording segments with active/moving objects
    # NOTE: this mode only applies when the days setting above is greater than 0
    mode: active_objects
  # Optional: Event recording settings
  alerts:
    retain:
      days: 15
    pre_capture: 10
    post_capture: 10
  detections:
    retain:
      days: 15
    pre_capture: 10
    post_capture: 10

#===============================================================================
#=                                  Détections                                 =
#===============================================================================
objects:
  track:
    - person
    - cat
    - dog

# Désactiver le certificat pour le reverse proxy
tls:
  enabled: false

detect:
  enabled: true

# ngrok:
#   command: ngrok tcp 8555 --authtoken 2n9QQDjr6R6IHQx6maGlkdHA7YP_7HumqRMbHec2H1Mbfpvgp
#   #command: ngrok start --all tcp 8555 --authtoken 2n9QQDjr6R6IHQx6maGlkdHA7YP_7HumqRMbHec2H1Mbfpvgp


Ce qui fonctionne :
Dans Frigate, je peux voir le flux de la caméra : le main_stream et le sub_stream (quand on clic sur la vignette, roue crantée).
Les deux streams ont environ 0,5 secondes de retard, aussi bien le main que le sub, rien de bien grave.

Le stream main indique :

  • Audio disponible pour ce flux
  • Conversation bidirectionnelle disponible pour ce flux

Le stream sub indique :

  • Audio disponible pour ce flux
  • Conversation bidirectionnelle non disponible pour ce flux

Déjà c’est bizarre. Peut-être que je devrait recopier les infos audio du main sur le sub.
Déjà, j’ai testé sur tel portable et sur mon PC portable, l’audio est bien bi-directionnel et ça c’est carrément cool, sans cela, impossible de faire fonctionner le portier avec HA.
Truc à savoir : le premier qui prend est le seul qui peut parler.

Comme on ne peut pas décrocher, je serais sans doute contraint de retirer la sonnerie du portier comme l’a fait @alex71 .

Ce qui reste à faire fonctionner :

  1. Ma carte advanced-camera-card était tout simplement inutilisable : super lente (plusieurs secondes de retard), qualité horrible, pas de son. Il y a un truc qui cloche.
    Normalement ce sont les flux de Frigate, les mêmes que je vois super bien quand je clic sur Frigate !
    J’ai repris la carte donnée ici et fait quelques modification pour matcher avec mes entrées :
type: custom:advanced-camera-card
cameras:
  - camera_entity: camera.dahua_portier_vto
    live_provider: go2rtc
    go2rtc:
      stream: dahua_portier_vto
      mode:
        - webrtc
    image:
      refresh_seconds: 1
    dimensions:
      aspect_ratio: "16:9"
live:
  controls:
    builtin: false
  zoomable: true
  show_image_during_load: true
  draggable: false
  lazy_unload:
    - unselected
    - hidden
  microphone:
    always_connected: false
    disconnect_seconds: 120
    mute_after_microphone_mute_seconds: 120
  auto_unmute:
    - microphone
menu:
  buttons:
    snapshots:
      enabled: false
    fullscreen:
      enabled: false
    cameras:
      enabled: false
    live:
      enabled: false
    clips:
      enabled: false
    microphone:
      type: toggle
      priority: 49
    mute:
      enabled: true
  style: outside
  position: top
  button_size: 85
  alignment: right
status_bar:
  style: none
profiles:
  - low-performance
overrides:
  - conditions:
      - condition: microphone
        connected: true
    merge:
      menu:
        buttons:
          microphone:
            enabled: true
elements:
  - type: custom:advanced-camera-card-conditional
    conditions:
      - condition: state
        state: "on"
        entity: input_boolean.portier_calling
    elements:
      - type: custom:advanced-camera-card-menu-icon
        icon: mdi:phone-incoming
        alignment: opposing
        priority: 39
        style:
          color: lightgreen
        tap_action:
          - action: perform-action
            data:
              entity_id: input_boolean.portier_calling
            perform_action: input_boolean.turn_off
          - action: custom:advanced-camera-card-action
            advanced_camera_card_action: microphone_unmute
  - type: custom:advanced-camera-card-conditional
    conditions:
      - condition: state
        state: "off"
        entity: input_boolean.portier_calling
      - condition: microphone
        connected: false
    elements:
      - type: custom:advanced-camera-card-menu-icon
        icon: mdi:phone-outgoing
        alignment: opposing
        priority: 39
        style:
          color: Chartreuse
          tooltiptext: dfldfkgm
        tap_action:
          - action: custom:advanced-camera-card-action
            advanced_camera_card_action: microphone_unmute
  - type: custom:advanced-camera-card-conditional
    conditions:
      - condition: state
        state: "on"
        entity: input_boolean.portier_calling
    elements:
      - type: custom:advanced-camera-card-menu-icon
        icon: mdi:phone-ring
        alignment: opposing
        priority: 40
        style:
          color: red
        tap_action:
          - action: perform-action
            data:
              entity_id: input_boolean.portier_calling
            perform_action: input_boolean.turn_off
  - type: custom:advanced-camera-card-conditional
    conditions:
      - condition: state
        state: "off"
        entity: input_boolean.portier_calling
      - condition: microphone
        connected: true
    elements:
      - type: custom:advanced-camera-card-menu-icon
        icon: mdi:phone-hangup
        alignment: opposing
        priority: 40
        style:
          color: red
        tap_action:
          - action: custom:advanced-camera-card-action
            advanced_camera_card_action: microphone_disconnect
          - action: custom:advanced-camera-card-action
            advanced_camera_card_action: mute
  - type: custom:advanced-camera-card-menu-state-icon
    entity: input_boolean.portier_do_not_disturb
    state_color: true
    tap_action:
      action: toggle
    alignment: opposing
    priority: 41
  1. Comment activer le son + micro pour récupérer les flux frigate ?
    EDIT : J’ai modifié la carte et créé 2 boolean dans les fichiers yaml :
  • input_boolean.portier_calling
  • input_boolean.portier_do_not_disturb

input_boolean.portier_calling s’active quand quelqu’un appel sur le portier
Si input_boolean.portier_calling n’est pas remis à false (donc raccrocher ou décrocher) au bout de 20 seconde il est remis à false.


Tous les champs semblent ne pas tous avoir l’effet désiré !
Par contre le champ volume de l’appareil permet de couper tout le son du portier.
C’est dommage de se passer de ça !

Est-il possible de changer le volume ? Si on pouvait, je mettrais le volume à 100 et lorsque l’on décroche je le mettrais à 0 et remis à 100 lorsque l’on raccroche.
Franchement Dahua a tout fait pour que ce ne soit pas utilisable par Home Assistant, quelle tristesse, il ne manque vraiment pas grand chose !

Normalement j’ai les commandes pour ouvrir les portes et portail, donc j’ai à peu près ce qu’il me faut si je fais fonctionner ce qui merde encore.
Soit par une URL, soit par Dahua_VTO.

Comment utiliser les commandes données par Dahua_VTO ?
Via Outils de développement / Commandes, j’arrive à ouvrir le portail / portillon. Mais changer le volume ou autre je n’y arrive pas. Je n’arrive pas non plus à lancer des commandes et récupérer le résultat ! Genre, la liste des fonctions supportées.

J’ai la même chose, en cherchant sur un Github une personne avait la même question que toi, et à priori pas possible d’avoir l’audio bidirectionnel pour les deux flux

étrange, je n’ai pas ce problème, tu es bien en H264 sur la config du portier au niveau de la vidéo ? j’ai eu des cas de lag sur PC avec le H265

Pourquoi tu as besoin de vouloir jouer sur le volume du portier ?

En fait ma carte déconnait, en prenant la tienne, impeccable !

Comme je le disais pour le volume :
Est-il possible de changer le volume ? Si on pouvait, je mettrais le volume à 100 et lorsque l’on décroche je le mettrais à 0 et remis à 100 lorsque l’on raccroche.
Franchement Dahua a tout fait pour que ce ne soit pas utilisable par Home Assistant, quelle tristesse, il ne manque vraiment pas grand chose !

Normalement j’ai les commandes pour ouvrir les portes et portail, donc j’ai à peu près ce qu’il me faut si je fais fonctionner ce qui merde encore.
Soit par une URL, soit par Dahua_VTO.

Comment utiliser les commandes données par Dahua_VTO ?
Via Outils de développement / Commandes, j’arrive à ouvrir le portail / portillon. Mais changer le volume ou autre je n’y arrive pas. Je n’arrive pas non plus à lancer des commandes et récupérer le résultat ! Genre, la liste des fonctions supportées.

Quelqu’un comprend ça ? On doit pouvoir changer le volume :

Ils ont tout bloqué ces co****** !!! Je suis dégouté d’avoir acheté cette merde !
Il y a des mots de passe, pourquoi ont-ils tout bloqué ? Partout il est dit que l’on peut utiliser sans VTH, mais en fait sans VTH ça déconne complètement !
En gros on parle avec la personne et le VTO continue de sonner, il continue de parler !
Ou il faut mettre le volume à 0 et il n’y a plus aucun message ni son (sonnerie, etc).
Je ne comprend pas !

Je suis énervé, je vais en chercher un autre et retourner celui là !
EDIT : je trouve rien de bien !

Bon, à priori certains ont downgrade en 4.5… Voir ici : cancel_call stop working in VTO2211G-WP · Issue #526 · rroller/dahua · GitHub
C’est jouable ou pas ?

Je ne comprends pas bien.

Sur le mien hormis la sonnerie que je n’ai pas, tout le reste est ok.

Quand je décroche je peux parler à la personne et quand je raccroche, la conversation s’arrête.

Je n’ai pas besoin de gérer le volume de quoi que ce soit. J’ai suivi le tuto de felipecrs sur son github.
Tout se fait avec la carte advanced caméra card.

Mais peut être que ton soucis est lié à l’utilisation du VTH en parallèle sur je n’ai pas

Si tu décroches, ça ne décroche pas vraiment donc au bout d’un moment le VTO indique vocalement que l’appel n’a pas abouti ! Ça ne te fait pas ça ?

Chez moi, le VTO ne joue jamais de son de son propre chef hormis l’alarme, il faut que tu désactive le switch qui correspond dans la config de ton VTO.