Présentation, progression et utilisation de domotique que j'ai faite jusque là + projets

Bonjour à tous, je suis un geek/nerd massif (comme l’indique mon pseudo) et je suis webdev depuis plus de 20 ans.

Au départ, j’emménage dans mon appartement à moi que j’ai acheté avec mes soussous avec l’idée d’en faire un endroit sympa custom avec des jolies lumières, des couleurs, toussa. The sky is the limit.
J’avais quelques ampoules leds multicolores avec télécommande IR que j’avais envisagé d’interfacer avec des montages à base de soudures et d’une carte contrôleur dans un PC; j’ai vite abandonné l’idée (lol).

Arrive le moment d’installer des volets roulants électriques, je commence à envisager des solutions domotiques domestiques propriétaires et là… début des emmerdes : tout le monde a sa propre norme propriétaire et son hub fermé.
Idem pour le remplacement chauffage, j’opte pour des vannes connectées Netatmo. Pareil : hub dédié, solution fermée.

J’avais dans l’idée d’utiliser IFTTT, mais très vite, après plusieurs essais, le truc fonctionnait peu ou mal ou pas du tout, donc j’ai dumpé tout ça. Quelques mois plus tard, le truc devient payant, donc bon, no regrets.
N’ayant pas d’autre solution que de passer par le cloud, j’utilise Google Home, pour unifier tout ça, je peux piloter par le téléphone, mais ça n’est pas concluant (ceux qui ont essayé de faire des routines sur Google Home savent de quoi je parle). Je tente un retour sur IFTTT, mais … heuu… NAN !

La dessus arrive confinement + chômage partiel total.
J’investi dans une énorme TV Ambilight + Hue (faut bien s’occuper sur Netflix) et je commence à explorer sérieusement le milieu de la domotique et je passe des journées entières à regarder des vidéos Youtube pour me familiariser avec tout ça.
J’ai commencé à gérer mes lumières avec Hue, mais très vite le système a ses limites en terme d’automatisation et surtout en nombre d’appareils. (je parle même pas du prix !!)
On commence à voir du monde parler de Home Assistant, et ayant quelques RPI sous la main, je commence à installer le truc, et j’arrive à relier ensemble Hue + Netatmo + VR. Nice !
Ensuite, j’investie dans un dongle Zigbee, histoire de voir si je peux avoir plus que 5 capteurs PIR et 12 ampoules Hue; bingo !
J’arrive même à faire fonctionner du IKEA/LiDL/whatever !! Champaaaaagne !

Depuis, j’ai plus lâché le truc, et voici où j’en suis arrivé aujourd’hui dans ma domotique :

Environnement & matos :

  • Appartement ~80m² dans immeuble collectif
  • Home Assistant sur RPI4 + dongle Conbee (ZHA)
  • Fibre 5 Gb, équipements sur réseau Ethernet 1 Gb + WiFi 6 mesh
  • TV Ambilight 75" & 7.2.2 sur Ampli Denon (Dolby Vision/Atmos de malade !) + Hue extended
  • Une tonne d’ampoules Zigbee d’un peu toutes les marques (surtout Hue) pour lumière d’ambiance
  • Presque tous les interrupteurs muraux connectés (Zigbee)
  • Des prises connectées en tout genre (Zigbee)
  • 1 Google Nest Hub
  • 1 Google Mini
  • Capteurs PIR dans toutes les pièces à des endroits stratégiques
  • Capteurs d’ouverture sur porte d’entrée + fenêtres
  • vannes connectées Netatmo (HK)
  • volets roulants Bubendorff + Legrand Diamond (HK)
  • 1 Roborock (WiFi) <= peux plus vivre sans
  • 1 ventilateur de plafond (WiFi)
  • 1 compte Nabu Casa pour accès sécurisé cloud

Automatisations notables :

  • Lumière allumée automatiquement par motion PIR dans chaque pièce
  • Température et luminosité automatique des lumières selon heure de la journée (respect cycle circadien)
  • « Mode Zzz » avec lumière à 1% pour circuler sans se péter les orteils et éviter de se calciner la rétine lors des visites aux toilettes/sdb nocturnes. Le « Mode Zzz » est activé par un bouton Ikea tout cheap à coté du lit; accessoirement, il ferme tous les volets et il éteint toutes les lumières de l’appartement et tout ce qui n’est pas nécessaire la nuit.
  • Ouverture/Fermeture des volets automatique selon contexte, arrivée/départ, météo, routine jour de travail, réveil, weekend, vacances, grasse mat, guests, épisodes météo extrêmes (genre grand froid ou canicule - vivre en Alsace oblige !). Fermeture automatique au couché du soleil.
  • Rappel en cas d’ouverture de porte / fenêtre anormaux (fenêtre ouverte + froid + chauffage = pas bien)
  • Bouton de départ qui éteint TOUT et émet une notification si porte ou fenêtre restée ouverte ou appareil resté allumé
  • Mode « alone at home » qui éteint toutes les lumières automatiquement dans les pièces où je suis pas
  • Comptage du temps de présence effectif dans l’appartement : au delà de 50h, lancer le robot aspirateur dès qu’il n’y a plus personne de présent.
  • Mode cinéma qui détecte le lancement d’un programme sur plateforme. Cerise sur gâteau : si je quitte le salon (cause snack ou pipi ou whatever), la lumière s’allume plus fort, la TV se met en pause, dès que je reviens, le programme reprend, la lumière se tamise. Fonctionne aussi si j’utilise la télécommande pour faire Pause/Play (fa-bu-leux, selon les guests => fierté !)
  • Gestion du chauffage : mode absent (17°C partout) automatique si personne dans l’appartement, allumage forcé du radiateur sdb le matin au réveil (uniquement workday) pour avoir des serviettes chaudes
  • Détection fin de cycle lave-linge, lave-vaisselle, notification + annonce TTS pour pas oublier de les vider.
  • Monitoring kwh du compteur Linky (via Lixee Zlinky) et autres appareils énergivores (via prises connectées) => économie de 20% de facture EDF depuis
  • Aucune notification ou annonce TTS durant la nuit
  • Tous les contrôles des appareils possible en cas de panne internet/réseau/HA
  • Tous les automatismes sont débrayables
  • Tous les automatismes sont testés pour être FAF (Family Acceptance Factor) et BAF (Boomer Acceptance Factor)

Evolution / projet :

  • Sonorisation musicale connectée toutes pièces (en recherche de solutions)
  • Assistant vocal à base de ESP32+micro toutes pièces avec HomeAssistant Assist (en recherche de solutions)
  • Migration volets roulants & vanne radiateurs en Zigbee ($$$)

Questions et remarques sont les bienvenues !

9 « J'aime »

comme quoi
le covid est passé par là…
:rofl:

mais pas que

bienvenue dans la grande famille de HA

Bienvenue parmi nous :+1:

Ah ouais y’a de l’idée quand même :joy:

Je suis la depuis pas longtemps mais je te souhaite la bienvenue quand même :wink:

Bienvenue a toi jeune utilisateur de HA. :wink:

Salut massive_geek,

Belle présentation, bien ordonnée.
Ca sent le sérieux :star_struck:
Pas mal de matos déjà et une belle brochette d’automatisations :sweat_smile:
:wink: T’avais vraiment rien à foutre durant le COVID :wink:
Soit le bienvenu sur HACF
@+ Guy

Étant possesseur d’une TV ambilight avec spot hue je suis intéressé par le mode cinéma accepterais tu de partager ton code de mécanismes :smile: @massive_geek

Bienvenu et belle présentation, c’est très bien resumé !

Belle présentation, belle installation, j’espere que.tu.partagera certaines de tes automatisations.
bienvenue dans la.communauté

Pour le mécanisme de l’automatisme Play/Pause de la TV, il faut :

  • la tv en mode développeur
  • l’intégration android TV dans HA

Étape 1 :
Faire un binary_sensor.tv qui donne l’état de la TV (allumée=on, sinon=off) et quelques attributs utiles genre status (playing/paused/idle/off):

  - name: TV
    unique_id: tv
    state: >
      {% if is_state('media_player.android_tv_salon','off') or is_state('media_player.android_tv_salon','unavailable') %}
        false
      {% else %}
        true
      {% endif %}
    attributes:
      status : >
        {% if is_state('media_player.android_tv_salon','off')
        or is_state('media_player.android_tv_salon','unavailable')
        or is_state('switch.salon_plug_tv','off') %}
          off
        {% elif is_state('media_player.android_tv_salon','playing') %}
          playing
        {% else %}
          {% if state_attr('media_player.android_tv_salon','app_id')=='org.droidtv.playtv'
             or state_attr('media_player.android_tv_salon','app_id')=='net.oqee.androidtv.store'
             or state_attr('media_player.android_tv_salon','app_id')=='com.orange.ocsgo' %}
            playing
          {% elif is_state('media_player.android_tv_salon','idle')
             or state_attr('media_player.android_tv_salon','app_id')=='com.google.android.tvlauncher' %}
            idle
          {% else %}
            paused
          {% endif %}
        {% endif %}
      plateform : >
        {% if state_attr('media_player.android_tv_salon','app_id')=='org.droidtv.playtv' %}
          TV
        {% else %}
          {{ state_attr('media_player.android_tv_salon','app_name') }}
        {% endif %}
    icon: >
      {% if is_state('binary_sensor.tv','on') %}
        {% if state_attr('binary_sensor.tv','status')=='playing' %}
          mdi:television-play
        {% else %}
          mdi:television-pause
        {% endif %}
      {% else %}
        mdi:television-off
      {% endif %}

Il y a des petits tracas avec l’état du media_player quand on est en HDMI ou quand on utilise genre l’appli OCS ou OQEE (free) qui ne remontent pas l’état play/pause du player, c’est pour ça que je teste la valeur du « app_id ». Pour le reste, ça marche avec Netflix/Disney/Prime/Canal/Youtube

Étape 2 :
Faire une automatisation qui déclenche quand l’attribut « status » du binary_sensor.tv change :

alias: "Selon : TV (play/pause/off)"
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.tv
    attribute: status
  - platform: state
    entity_id:
      - binary_sensor.besoin_lumiere_salon
    from: "off"
    to: "on"
  - platform: state
    entity_id:
      - binary_sensor.besoin_lumiere_salon
    from: "on"
    to: "off"
condition:
  - condition: state
    state: "on"
    entity_id: input_boolean.presence_salon
action:
  - if:
      - condition: state
        state: playing
        entity_id: binary_sensor.tv
        attribute: status
    then:
      - service: script.tv_play
        data: {}
    else:
      - service: script.tv_pause
        data: {}
    alias: "Script TV : play or pause"
mode: restart

Nota : on ne veut pas que le script déclenche un peu n’importe comment (parce que l’état du media_player peut changer pour plein de raisons autres que play/pause - genre quand HA démarre ou qu’on recharge des intégrations), j’ajoute une condition sur input_boolean.presence_salon, qui me sert à savoir s’il y a une présence en cours dans le salon. A vous de tweeker selon vos besoins.

J’ai aussi ajouté un déclencheur sur la luminosité de la pièce pour ne pas allumer la lumière s’il fait grand jour dans le salon, et pour l’allumer tout seul s’il y a besoin de lumière (binary_sensor.besoin_lumiere_salon). Les conditions pour que besoin_lumiere_salon soient on sont :

  • luminosité salon <30 lux
  • présence de qqun dans le salon
  • état des volets roulants
    A vous de paramétrer ça quoi.

Étape 3 :
faire les scripts script.tv_play et script.tv_pause qui vont définir les états des lumières; chez moi

  • pause : lumières salon luminosité 80%
  • play : lumières salon luminosité 40% + éteindre toutes les lumières dans les pièces innocupées ou couloirs, etc.
    Ca, vous saurez faire.

Étape 4 :
Si je détecte un mouvement en cuisine ou wc ou sdb, et que la TV est en play, je mets la TV en pause en éxécutant « Service Lecture mulitmedia : Pause » :

service: media_player.media_pause
data: {}
target:
  device_id:
    - 183b8310c46ff00b0bf89bb7e43c8f87

Si je détecte un mouvement dans le salon et que la tv est en pause, faire play.
… vous saurez faire.

Il faudra que je peaufine un peut le truc, parce que si je suis sur Spotify/Deezer/etc., je ne souhaite pas que la musique s’arrête si je change de pièce… il faudra que je teste l’état de l’attribut « plateform ».

Vouâla !

2 « J'aime »

Tu as pensé à utiliser des ESP8266 ou 32 pour ta domotique ?

Tout passe par WIFI et avec un peu de bricolage tu obtiens un truc fonctionnel.

Moi perso je prévois d’en mettre partout, après je dit pas que c’est la solution ultime.

Mais j’aime l’électronique et l’informatique donc ? :blush: