Sonnette REOLINK et NVR sur HA pour fonction visiophone

Bonjour,

Je lance ce nouveau sujet car après avoir intégré une ancienne tablette comme panneau de contrôle HA, je ne peux raisonnablement utiliser l’appli Réolink car elle sollicite trop cette pauvre tablette. Le temps que l’appli se lance, la personne qui sonne à la porte est déja parti avant d’avoir pu répondre … :smile:
Je suis donc parti sur une installation avec Frigate et Go2rtc. J’ai parcouru plusieurs messages de forum qui parle de cela, j’ai suivi les indications de plusieurs vidéo tuto également mais chacun y va de sa méthode, de sa config, fait intervenir des intégrations diverses, des tunnels ngrok… Bref, je suis reparti plusieurs fois de zero mais impossible d’arriver au résultat escompté c’est à dire avoir la vidéo et le son dans les 2 sens. Le plus loin que je sois arrivé c’était une carte Frigate avec l’icone pour couper / mettre le son et qui fonctionnait :innocent: et l’icone pour couper ou mettre le micro mais ca ne faisait rien :frowning_face:

Les vidéos que j’ai essayé de suivre (liste non exhaustive) et d’adapter à mon cas :

https://www.youtube.com/watch?v=ZN9HjAJW9Xc&t=600s
https://www.youtube.com/watch?v=mVX3qoaAHNE
https://www.youtube.com/watch?v=3ZRyJK3UpFI&t=684s
https://www.youtube.com/watch?v=upXyBVMR4RM
https://www.youtube.com/watch?v=xx9DyCIHK-8&t=208s
https://www.youtube.com/watch?v=y_0rYGqmrlw&t=11s

N’ayant aucune compétence en programmation, je ne suis pas capable de déterminer pourquoi ça ne fonctionne pas chez moi quand j’essaie de configurer

Mon attente est simple, je n’ai pas besoin des fonctions de détection ou d’enregistrement de Frigate, je souhaite juste pouvoir faire afficher sur ma tablette la camera de ma Reolink doorbell et pouvoir échanger vocalement avec mon visiteur sans qu’il y ait une latence de fou.

Merci pour vos retours

Mon système :

  • HA installé sur une VM sur ma Freebox Delta (boostée à 16Go de RAM) dont 8 dédié à HA
  • NVR Reolink + Video Doorbell POE
  • réseau full Gigabit / fibre

Hello,

Bon décidément je n’abandonne pas. Je cherche encore des solutions et en lisant, j’ai vu que Go2RTC était intégré aux dernières versions de Frigate donc plus besoin d’avoir le module complémentaire?
Je suis donc reparti sur une install en y configurant que Frigate avec ceci dans le fichier

frigate.yml :

mqtt:
  enabled: false

cameras:
  visiophone:
    ffmpeg:
      inputs:
        - path: rtsp://mon_user:mon_mdp@IP de mon NVR:554/Preview_01_sub
          roles:
            - detect
    detect:
      enabled: false

go2rtc:
  streams:
    visiophone:
      - rtsp://mon_user:mon_mdp@IP de mon NVR:554/Preview_01_sub
      - "ffmpeg:visiophone#audio=aac"

  webrtc:
    listen: "8555"
    candidates:
      - mon_ip_publique_fixe:8555
      
version: 0.14

J’ai précisé le role detect du flux puis désactivé car sinon l’utilisation du CPU par frigate dépassait le 90% ce qui entrainait une latence > 300ms

La config de frigate :

L’intégration Frigate me remonte bien 2 appareils : Frigate et ma camera Visiophone tel que configuré dans le frigate.yml

Quand je clique sur Frigate que j’ai ajouté à ma barre latérale (=interface utilisateur web), je vois bien mon flux video que je peux mettre en plein écran en cliquant dessus. L’image est limite point de vue fluidité (alors que flux basse def), il y a un décalage de quasiment 2 ou 3 secondes et en cliquant sur le button unmute, j’ai le son pris par la caméra.

La config de ma custom card frigate:

type: custom:frigate-card
cameras:
  - camera_entity: camera.visiophone
menu:
  buttons:
    microphone:
      enabled: true
      type: toggle
    mute:
      enabled: true
    frigate:
      enabled: false
    cameras:
      enabled: false
    substreams:
      enabled: false
    live:
      enabled: true
    clips:
      enabled: false
    snapshots:
      enabled: false
    download:
      enabled: false
    camera_ui:
      enabled: false
    fullscreen:
      enabled: false
    timeline:
      enabled: false
    media_player:
      enabled: false
  style: overlay
  position: left

Si j’utilise l’entité : camera.visiophone (celle qui remonte dans frigate grace au frigate.yml), je vois l’image qui apparait seulement après un bout de temps et je tourne à 1 image par seconde

Si j’utilise l’entité : camera.visiophone_fluent qui est l’entité crée par l’intégration Réolink, l’image est aussi fluide que sur l’interface utilisateur web par contre j’ai quasiment pas de latence, genre une demi seconde. J’ai le bouton haut-parleur pour couper le son mais pas celui du micro. Je suis donc uniquement en 1 way audio.

Et là, je suis re-bloqué… Une idée quelqu’un ?

PS: j’ai l’intégration webRTC Camera qui est installé également en ayant laissé vide l’url (installation pour les noob :blush:)

Bonjour @Cariboune,

Alors je n’ai pas cette sonnette Reolink, en revanche j’avais vu quelques infos passées :
Certains déconseillent le flux RTSP pour les caméras Reolink, pas toutes mais certains modèles ont des bugs.

Certains proposent cette solution :

go2rtc:
  streams:
    visiophone:
      - "ffmpeg:https://192.168.X.XX/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password=password#video=copy#audio=copy#audio=opus"
      - rtsp://admin:password@192.168.X.X:554/h264Preview_01_sub

Je te laisse adapter les infos présentes dans les liens (username, password, IP, ports …etc.).
Avec ça tu devrais avoir :

  • un flux FLV pour un stream stable
  • un flux RTSP pour l’audio bidirectionnelle

Go2RTC se chargera de combiner les 2 flux.

Aussi, pour avoir l’audio bidirectionnelle, il te faut un accès HTTPS à ton serveur Home Assistant, on peut faire sans mais pas compatible avec toutes les configs et ça demande des manipulations en plus.

PS: si tu as installé Frigate juste pour utiliser go2RTC avec ta sonnette, il existe un module complémentaire go2RTC, donc en soit peut-être pas besoin de Frigate.

Bonjour Integra,

Merci pour ton retour, ça n’a pas couté grand chose d’essayer :wink:
Oui j’ai bien un certificat HTTPS configuré pour HA.

J’ai donc utilisé l’adresse IP de mon NVR reolink avec user et password et supprimé ma ligne ffmpeg. Je n’ai rien changé d’autre.
Alors la video est très fluide maintenant dans Frigate et j’ai toujours le son. Par contre, dans la custom card, si je lui renseigne le nom de la caméra référéncée dans frigate, j’ai pas le son. Pour avoir le son, il faut toujours que j’utilise le flux visiophone_fluent de l’intégration Reolink

Mais du coup, si frigate n’est pas indispensable, est-ce important de garder le fichier frigate.yml si on a juste besoin de go2RTC?
Dans ce cas, faudrait-il que je rentre les infos de streams dans un fichier go2rtc.yaml et supprimer tout ce qui concerne frigate ? Comment récupérer alors le flux de go2RTC sur la custom card frigate?

Désolé, questions de débutants… Merci

Problème de paramétrage de la carte je dirai, essaie ceci :

type: custom:frigate-card
cameras:
  - camera_entity: camera.visiophone
    live_provider: go2rtc
    go2rtc:
      modes:
        - mse
        - webrtc
menu:
  buttons:
    microphone:
      enabled: true
      type: toggle
    mute:
      enabled: true
    frigate:
      enabled: false
    cameras:
      enabled: false
    substreams:
      enabled: false
    live:
      enabled: true
    clips:
      enabled: false
    snapshots:
      enabled: false
    download:
      enabled: false
    camera_ui:
      enabled: false
    fullscreen:
      enabled: false
    timeline:
      enabled: false
    media_player:
      enabled: false
  style: overlay
  position: left

Ou sinon ça (pour le début) :

type: custom:frigate-card
cameras:
  - camera_entity: camera.visiophone
    live_provider: auto
menu:
  la suite de ta carte....

Si tu utilises seulement go2RTC et que tu souhaites passer directement par l’add-on alors tu n’auras pas besoin du fichier frigate.yml (garde une copie au cas où). Une fois l’add-on installé évidemment.

Il me semble que c’est bien ça, ou alors directement dans l’onglet « Config » de l’interface de go2RTC (cf. la doc de l’add-on):

go2RTC

PS : si ça fonctionne avec Frigate alors je te conseille de rester en l’état, car maintenant go2RTC peut être intégré nativement à HA mais n’a pas l’air au point ou suffisamment documenté (CF. ce topic)

Ha??? Merci Integra, on avance, maintenant j’ai le micro qui apparait que je peux cliquer pour activer, il devient rouge, j’ai bien la notification que le navigateur utilises le micro mais rien ne sort comme son du visiophone :frowning_face:

Si je mets live_provider sur auto => je n’ai plus rien comme audio, (ni l’écoute ni le micro)
Concernant les modes go2rtc, un autre tuto parlait de la card WebRTC camera qui je me souvenais, affichait le type de flux dans le coin de la video. En la paramétrant avec la camera visiophone, il s’affiche encore mse, je n’ai jamais pu obtenir webrtc. Est-ce un problème pour le micro?

En tout cas merci, la vidéo est super fluide alors que ça me semble être la résolution maximale tellement que c’est nette, et presque pas de latence :innocent:.
A mon avis, il ne manque plus grand chose mais effectivement je vais attendre avant de tout désinstaller. J’ai commencé à lire le topic dont tu fais référence, au cours de mes nombreux essais, je suis aussi passé par du bidouillage via RTSPtoWebRTC et j’ai eu ce message d’alerte d’un ancien fournisseur WebRTC. Mais arrivé à la moitié des messages j’ai commencé à être perdu :laughing:

Pour le flux MSE c’est peut-être une coquille dans le code de la carte que je t’ai donné, en effet on ne peut pas utiliser ce flux pour de l’audio bidirectionnel, seulement du WebRTC.

Tu peux essayer ceci :

type: custom:frigate-card
cameras:
  - camera_entity: camera.visiophone
    live_provider: go2rtc
    go2rtc:
      modes:
        - webrtc
      stream: visiophone
menu:
  buttons:
    microphone:
      enabled: true
      type: toggle
    mute:
      enabled: true
    frigate:
      enabled: false
    cameras:
      enabled: false
    substreams:
      enabled: false
    live:
      enabled: true
    clips:
      enabled: false
    snapshots:
      enabled: false
    download:
      enabled: false
    camera_ui:
      enabled: false
    fullscreen:
      enabled: false
    timeline:
      enabled: false
    media_player:
      enabled: false
  style: overlay
  position: left

J’ai supprimé le mode MSE pour ne laisser que WebRTC et rajouté l’info du nom du stream « visiophone » (peut-être pas nécessaire, ligne a supprimé si config non fonctionnelle).
En espérant que cela fonctionne ?

Désolé pour ma réponse tardive. Je me suis fait peur car cette semaine, je me suis vidé en moins de 2, la batterie de ma tablette de récup qui gère mon HA, associé à une grosse conso de data Wifi. Je pensais que j’avais peut être laissé HA sur la custom card Frigate, et que même si l’écran s’éteignait il continuait de recevoir le flux et donc consommait à la fois de la bande passante et de la batterie. Je me suis installé une app pour mesure le débit instantané et à priori ce n’est pas le cas.

Bref, de retour sur le problème, ce que tu me dis montre bien que j’ai un problème : j’ai reconfiguré une card WebRTC camera, je lui ai demandé d’afficher le flux « visiophone », le code de la card est réduit à son stric minimum :

type: custom:webrtc-camera
url: visiophone

Du coup, en haut à droite s’affiche le type de flux et je suis en RTC, or tu me dis que le 2 way audio ne fonctionne par en RTC!

image

En reprenant ton code pour la custom card frigate, je force le live_provider en go2rtc (à la place de auto) mais je que mette ou non les infos pour le flux go2rtc :

    go2rtc:
      modes:
        - webrtc
      stream: visiophone

cela ne change rien, ça fonctionne pareil audio pour écouter mais le micro n’envoie aucun son.

Serait-ce dû au fait que je passe par duckDNS pour mon accès externe? Cf ce topic

Bonjour @Cariboune,

Non justement c’est l’inverse, l’audio bidirectionnel fonctionne avec le flux WebRTC mais pas avec le flux MSE. Donc tu es bon de ce côté là.

Dans la mesure où la vidéo fonctionne et l’audio également, je ne pense pas que ce soit l’origine du problème, mais je me trompe peut-être. Là seul le micro bloque de ce que je comprends. Si tu essaies avec ton smartphone (une fois l’autorisation d’utiliser le micro accordée) ou sur ton PC qu’est-ce qui fonctionne ? La vidéo + audio + micro ou seulement une partie ?

Hello, peux tu partager ta config go2rtc? je ne souhaiterai pas utiliser frigate sur mon PC, ça prends trop de ressource sans le google coral.
Merci

Bonjour nicocha,

Oui effectivement frigate pompe des ressources surtout en intégrant plusieurs caméra d’où seulement ma sonnette configurée dessus.
Actuellement, je n’ai rien de configuré pour go2RTC (pas de fichier go2rtc.yaml). Cf précédents échanges avec Integra, normalement go2RTC est censé être natif dans HA mais pas encore au point. J’ai donc encore ma config Frigate qui tourne. Est ce que tu veux mon fichier frigate.yml?

Edit : oups. Cela dit, suite à mise à jour HA, Frigate ne veut plus démarrer. Je regarde ça ce week-end

Bonjour
Oui, je suis preneur de ta config car uniquement avec GO2RTC, impossible d’avoir un bouton pour l’activation ou non du micro. l’avantage avec frigate que je voie, c’est l’intégration des bouttons sur le design de la camera. Je ne voie pas franchement l’utilité car la partie détection est intégré à la camera.
Merci

Hello,

Voici ma config mais j’ai un problème actuellement, frigate ne veut plus se lancer et j’ai le message suivant :

image

C’est pénible, je n’ai absolument rien touché (pas le temps la semaine) et d’un coup, ça ne fonctionne plus… je vais essayer de désinstaller et re-installer le module.

Voici mon fichier config.yml actuel

mqtt:
  enabled: false

cameras:
  visiophone:
    ffmpeg:
      inputs:
        - path: rtsp://monlogin:monpassword@IP_du_NVR_sur_mon_réseau:554/Preview_01_sub
          roles:
            - detect
    detect:
      enabled: false

go2rtc:
  streams:
    visiophone:
      - "ffmpeg:https://IP_du_NVR_sur_mon_réseau/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=monlogin&password=monpassword#video=copy#audio=copy#audio=opus"
      - rtsp://monlogin:monpassword@IP_du_NVR_sur_mon_réseau:554/Preview_01_sub
#      - "ffmpeg:visiophone#audio=aac"

 # webrtc:
 #   listen: "8555"
 #   candidates:
 #     - 88.173.227.167:8555
      
version: 0.14

Update :

J’ai décidé de repartir à zéro puisque Frigate ne voulait plus se lancer.
Module complémentaire + intégration Frigate totalement désinstallés, RTSPtoWebRTC désinstallé suite à ce message reçu :

image

J’ai configuré go2rtc comme suit :

streams:
    visiophone: 
        - ffmpeg:https://192.168.0.39/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=mon_login&password=mon_password#video=copy#audio=copy#audio=opus#microphone=copy

Quand je regarde le stream sur go2rtc l’image est nickel fluide, en RTC (et non MSE), le son en réception passe bien

Par contre, pour intégrer ce flux dans une card et accéder aux options de micro, j’utilise toujours la custom card frigate. Lorsque j’avais frigate configuré, je pouvais choisir la caméra à afficher, à savoir toutes les entités caméra générées par l’addon Reolink (ex : visiophone_fluent) sauf que ce flux n’est vraiment pas top dans HA et ne permet pas l’audio bidirectionnelle (à moins d’utiliser l’appli mobile Reolink)
Avec la config Frigate, j’avais une nouvelle entité créée qui s’appelait juste visiophone, probablement issue du fichier frigate.yml mais comme je n’ai plus frigate, je n’ai que les entité Réolink en « _fluent »

Du coup, comment intégrer mon flux issu de go2rtc dans ma card frigate?

Actuellement j’ai ça :

type: custom:frigate-card
cameras:
  - go2rtc:
      modes:
        - webrtc
      stream: visiophone
    camera_entity: camera.visiophone_fluent

Hello,
J’ai le même soucie, impossible d’utiliser avec Go2RTC la carte frigate, car aucune camera n’est crée. Existe il un moyen d’avoir le flux d’origine avec l’autio bi-dir?

Si vous utilisez Frigate pour vos caméras, il faut utiliser le go2rtc là et utiliser Frigate proxy dans HA pour connecter les caméras.

Bonjour,

Si vous décidez d’utiliser l’add-on go2RTC, à savoir celui-ci, alors essayez ceci une fois installé :

  • Dans l’onglet « Config » de go2RTC (ou dans le fichier go2rtc.yaml) renseignez vos caméras comme l’indique la doc.

Pour toi @Cariboune, tu dois déclarer le flux RTSP en plus du FLV comme je te l’avais indiqué précédemment, donc :

streams:
 visiophone:
   - "ffmpeg:https://192.168.0.39/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=mon_login&password=mon_password#video=copy#audio=copy#audio=opus#microphone=copy"
   - rtsp://admin:password@192.168.0.39:554/h264Preview_01_sub

(adapte ton login/password dans les 2 liens)

  • Save & Restart puis vérifiez que votre flux remonte bien dans l’onglet « Streams » de l’add-on
  • Si tout fonctionne, allez dans les paramètres de HA puis « Appareils et services » et « Ajouter une intégration », choisissez « Generic camera », paramétrez comme suit :

« URL de la source du flux » = rtsp://IP DE HA:8554/{stream_name} donc le flux venant de go2RTC (ici rtsp://192.168.X.X:8554/visiophone ou rtsp://localhost:8554/visiophone ou peut-être rtsp://127.0.0.1:8554/visiophone)
Pas d’username ou password à renseigner ici, laisser vide.
Peut-être adapter le framerate pour coller avec votre caméra (2 par défaut c’est un peu faible…).

  • Validez puis si une fenêtre « Apercu » apparaît cocher la case (même si rien n’est affiché en aperçu) et validez

Preview

  • Changez le nom de la caméra dans le menu de vos intégrations (ex: visiophone) et également changez l’entity ID créée par celle-ci (ex: camera.visiphone)

Votre flux venant de go2RTC est maintenant intégré à HA avec une entité correspondante, à utiliser dans vos cartes Frigate ou autres avec son entity ID (ex: camera.visiophone) :

type: custom:frigate-card
cameras:
  - go2rtc:
      modes:
        - webrtc
      stream: visiophone
    camera_entity: camera.visiophone
menu:
  buttons:
    microphone:
      enabled: true
      type: toggle
    mute:
      enabled: true
...
  style: overlay
  position: left

Merci @Integra pour tes explications toujours très claires et pour partager ton expérience (surtout si ça se trouve ta config n’a rien à voir :). Ne pas oublier de redémarrer HA car chez moi, le flux sur ma card frigate n’était pas bon du tout (1 image par seconde) alors que c’etait nickel à la fois en visionnant le flux sur go2rtc ou en cliquant directement sur l’entité créée avec l’intégration caméra générique.

Après redémarrage, image nickel même en laissant 2 en fréquence d’images, ce qui me semble bizarre puisque l’image est bien plus fluide.

Par contre, il y a toujours ce fichu problème de micro qui ne s’affiche pas donc pour l’instant j’ai seulement audio unidirectionnel :frowning_face:

type: custom:frigate-card
cameras:
  - go2rtc:
      modes:
        - webrtc
      stream: visiophone
    camera_entity: camera.visiophone
menu:
  buttons:
    microphone:
      enabled: true
      type: toggle
    mute:
      enabled: true
    frigate:
      enabled: false
    cameras:
      enabled: false
    fullscreen:
      enabled: false
    live:
      enabled: false
  style: overlay
  position: left
  button_size: 100

Du coup, est-ce dû à la config de go2rtc?

streams:
    visiophone: 
      - "ffmpeg:https://IP_NVR/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=mon_login&password=mon_password#video=copy#audio=copy#audio=opus"
      - rtsp://mon_login:mon_password@IP_NVR:554/h264Preview_01_sub

A quoi servent les guillemets sur la ligne ffmpeg?
J’ai vu que certains rajoutaient le paramètre #microphone=copy sur la ligne ffmpeg. Est-ce que ça peut changer quelque chose? si je teste, de mon côté la video ne se lance plus.

De rien, et exact ma config n’a rien à voir, je n’utilise plus l’add-on et je n’ai pas de Reolink :sweat_smile:.

Je pense que la config go2RTC est bonne, en tout cas c’est celle recommandée pour la Reolink Doorbell sur le forum anglophone et qui fonctionne.
Pour les guillemets, elles sont sur la config partagées sur le forum anglophone donc je les laisserais en l’état.
J’ai rajouté le « #microphone=copy » dans mon dernier exemple, car j’ai vu que tu l’avais ajouté de ton côté, mais effectivement je pense que c’est inutile car non présent sur la config du forum anglophone, d’autant plus que l’audio bidirectionnel passe par le lien RTSP et non FLV.

Là j’avoue que je sèche… dernière solution à tester : essaie de passer par l’IP direct de ton visiophone (sans passer par le NVR) peut-être que le soucis vient de là mais ça serait surprenant !

PS: tu peux normalement tester l’audio bidirectionnel directement dans l’add-on : onglet « Streams » puis pour ta caméra le lien « links » dans la colonne « Commands ». Dans cette page, tout en bas tu as une page de test, sélectionner « video+audio+microphone » puis le lien « webrtc.html ».

Links

WebRTC

P.S2: voilà le lien du topic côté anglophone ça pourrait t’aider. Ça pourrait également venir du firmware qui bloque l’audio bidirectionnel par le flux RTSP (cf. ce lien).

Ouaip… quand je pense que je me suis fait rembarré quand j’avais relevé il y a quelques mois dans un autre topic que j’avais lu le 2 way audio avait du mal à fonctionner… :smile:

Moi aussi je vais sécher sur place. J’ai pas d’adresse IP pour ma camera puisque branchée derrière son NVR POE et c’est lui qui alimente + donne l’adresse IP aux caméras qui lui sont connectées. Je ne sais pas si on peut aller se connecter directement sur le flux d’une caméra derrière le NVR. Je vais creuser.

Concernant la page test via les links go2RTC, j’ai bien une demande d’activation du micro qui se fait sur ma page web mais aucun son ne sort du visiophone.

Fin du week-end. Je lirai tes liens le week-end prochain mais c’est bien compliqué cette histoire :crazy_face:

Bonne nuit