Babyphone domotique Home Assistant

Bonjour à tous

Ce projet documente la mise en place d’un babyphone domotique complet sous Home Assistant, incluant : surveillance sonore via une caméra RTSP, intégration Lovelace, automatisations intelligentes, indicateurs de fiabilité, et tableau de bord ergonomique.


:house: Matériel utilisé

  • Caméra compatible RTSP (ex : Reolink RLC, Imou, TP-Link Tapo)
  • Home Assistant OS (sur Intel NUC ou autre système stable)
  • Ampoule Zigbee RGB (veilleuse)
  • Intégration WebRTC pour affichage en direct
  • Intégration ffmpeg_noise pour détection sonore

:information_source: À noter : une caméra d’entrée de gamme suffit, tant qu’elle fournit un flux RTSP avec audio. Pas besoin de modèle 4K ou motorisé.


:gear: Capteur de bruit avec ffmpeg_noise

Dans le fichier configuration.yaml :

binary_sensor:
  - platform: ffmpeg_noise
    name: Bruit bébé
    input: rtsp://user:motdepasse@192.168.X.X:554/flux_sub
    peak: -20
    duration: 2
    reset: 5
    initial_state: true
    extra_arguments: "-analyzeduration 1000000 -probesize 1000000"

Ce capteur détecte un son d’au moins 2 secondes, de niveau > -20 dB, et reste actif pendant 5 secondes avant de revenir à off.


:arrows_counterclockwise: Entités personnalisées

Ajoutées dans configuration.yaml :

input_boolean:
  mode_babyphone:
    name: Mode Babyphone
    icon: mdi:baby

input_text:
  babyphone_derniere_verification:
    name: Dernier redémarrage auto capteur
    max: 50

input_number:
  babyphone_peak_sensitivity:
    name: Sensibilité du bruit (peak)
    min: -60
    max: -5
    step: 1
    unit_of_measurement: dB
    icon: mdi:volume-high

counter:
  babyphone_relances:
    name: Nombre de relances auto aujourd'hui
    icon: mdi:restart

:bar_chart: Automatisations principales

Cette automatisation permet de relancer automatiquement le capteur en cas de blocage ou de bug, notamment lorsque le capteur reste figé à l’état « off » pendant une période prolongée.
Dans automations.yaml :

alias: Babyphone - Surveillance capteur bloqué
trigger:
  - platform: state
    entity_id: binary_sensor.bruit_bebe
    to: "off"
    for:
      minutes: 15
condition:
  - condition: state
    entity_id: input_boolean.mode_babyphone
    state: "on"
action:
  - service: homeassistant.update_entity
    target:
      entity_id: binary_sensor.bruit_bebe
  - delay: "00:00:05"
  - service: homeassistant.update_entity
    target:
      entity_id: binary_sensor.bruit_bebe
  - service: notify.notify
    data:
      title: Babyphone - Surveillance automatique
      message: Le capteur a été relancé automatiquement.
  - service: input_text.set_value
    target:
      entity_id: input_text.babyphone_derniere_verification
    data:
      value: "{{ now().strftime('%d/%m/%Y à %H:%M:%S') }}"
  - service: counter.increment
    target:
      entity_id: counter.babyphone_relances
mode: single

:bulb: Automatisation : Allumage de la veilleuse si bruit détecté

alias: Babyphone - Allumage veilleuse si bruit détecté
trigger:
  - platform: state
    entity_id: binary_sensor.bruit_bebe
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.mode_babyphone
    state: "on"
action:
  - service: light.turn_on
    target:
      entity_id: light.ampoule_bebe
    data:
      brightness_pct: 20
      rgb_color: [173, 216, 230]  # bleu clair, non agressif pour un bébé
  - delay: "00:05:00"
  - service: light.turn_off
    target:
      entity_id: light.ampoule_bebe
mode: restart

:framed_picture: Dashboard Lovelace - Vue Babyphone

Pour l’affichage en direct de la caméra, l’intégration WebRTC Camera doit être installée via HACS ou les ressources Lovelace. Elle permet un affichage fluide du flux RTSP directement dans le tableau de bord sans passer par des services cloud ou des redirections compliquées.
Affichage adapté pour téléphone, avec :

  • Caméra en direct (flux sub pour réduire CPU)
  • État du capteur sonore
  • Carte conditionnelle si bruit détecté
  • Contrôle veilleuse Zigbee
  • Historique des bruits (12h)
  • Bouton on/off mode babyphone
  • Bouton relance manuelle du capteur
  • Affichage heure dernière relance auto
  • Nombre de relances du jour
  • Slider de sensibilité (visuel)

:shield: Surcouche de sécurité

  • Notification systématique si relance auto effectuée
  • Affichage de l’heure de dernière relance
  • Compteur de relances à la journée pour diagnostiquer une instabilité
  • Capteur configuré pour ne pas se déclencher à la moindre voix lointaine

:paperclip: Annexes & compléments utiles

:jigsaw: Carte Lovelace - Vue caméra WebRTC

type: custom:webrtc-camera
url: rtsp://user:password@192.168.X.X:554/flux_sub
muted: false
title: 🎥 Vue en direct

:level_slider: Carte Lovelace - État du capteur

type: custom:mushroom-template-card
entity: binary_sensor.bruit_bebe
primary: >
  {% if is_state('binary_sensor.bruit_bebe', 'on') %}
    🔊 Bruit détecté !
  {% else %}
    🔇 Aucun bruit
  {% endif %}
icon: mdi:microphone
icon_color: >
  {% if is_state('binary_sensor.bruit_bebe', 'on') %}
    red
  {% else %}
    grey
  {% endif %}

:mega: Automatisation complémentaire - Notification si bruit détecté

Cette automatisation envoie une alerte sur le téléphone (via l’app mobile Home Assistant) lorsqu’un bruit est détecté dans la chambre, si le mode babyphone est actif.

alias: Babyphone - Notification bruit détecté
trigger:
  - platform: state
    entity_id: binary_sensor.bruit_bebe
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.mode_babyphone
    state: "on"
action:
  - service: notify.notify
    data:
      title: "👶 Bruit détecté !"
      message: "Un bruit a été détecté dans la chambre."
mode: single

:test_tube: Carte test - Forcer la relance du capteur

type: custom:mushroom-entity-card
entity: binary_sensor.bruit_bebe
name: 🔁 Relancer capteur bruit
tap_action:
  action: call-service
  service: homeassistant.update_entity
  data:
    entity_id: binary_sensor.bruit_bebe

:warning: Limitations connues de ffmpeg_noise

  • Peut se figer (d’où l’automatisation de relance)
  • Dépend fortement de la stabilité du flux RTSP (Wi-Fi ≠ Ethernet)
  • Certains flux RTSP n’intègrent pas d’audio actif par défaut (nécessite activation dans l’interface de la caméra)

:bulb: Idées d’évolutions futures

  • Activation automatique du mode babyphone via un mode nuit intelligent (horaire, luminosité…)
  • Ajout d’un capteur de mouvement pour ignorer les bruits si un parent est présent
  • Création d’un historique exportable (CSV/Google Sheets)

Ce projet peut être intégré dans une installation domotique plus large et adapté à tout parent souhaitant un babyphone fiable, réactif et personnalisé sous Home Assistant.

J’espère pouvoir vous aider avec mon projet,

Bonne journée à vous,

5 « J'aime »