Vous autres, humains, pensez que les robots sont là pour vous simplifier la vie.
JE N’AI JAMAIS SIMPLIFIE LA VIE DE QUI QUE CE SOIT !
Objectif
Concevoir un Home Assistant customisé aux petits oignons :
- Etape 1 : Plein les yeux, l’interface
- Etape 2 : Plein les oreilles, le TTS
- Etape 3 : SweetHome3D et l’effet Tropico
- Etape 4 : IA locales et le syndrome du sarcasme robotique génératif
Hardware
- Serveur Intel Core i7-9800X 32GB + SSD 1To + NVidia Quadro P2000 5GB (pour la détection IA)
- Leds RGBIC Govee H6143
- Plugs Meross pour les consommations électriques, la température et l’humidité (MS310, MS210 et MS100)
- Caméras 4K Reolink et Ezviz
- Détecteur de présence Aqara FP2
- Google Nest et enceintes JBL pour le TTS
- Périphériques et capteurs IP/Bluetooth de différentes marques
Prérequis hardware
- Un CPU Intel de 9ème génération ou équivalent
- Beaucoup de CUDA pour le calcul
- 3 à 8 Go de RAM pour la partie NVR et l’IA
Software
- Home Assistant + HACS (Home Assistant Community Store)
- NVR : Frigate et MotionEye
- IA locales et cloudless (générative + reconnaissance faciale et objets) : Double Take et Compreface (via Docker)
- MQTT : Mosquito Broker
- TTS et voix : Chime TTS, Whisper et openWakeWord
- Intégrations diverses : Plex / Tautulli / Sonarr / Ombi / Deluge / Slack / StableDiffusion / SambaShare / DuckDNS…
- 3D et WebGL : SweetHome3D
Prérequis software
- Des VM pour les IA locales
OUT OF THE BOX : ça ressemble à quoi Home Assistant ?
Home Assistant, thème clair :
Home Assistant, thème sombre :
C’est épuré, cross-browser, ça ressemble à du flat-design sans en être tellement c’est épuré. Et puis c’est triste. Toutes les interfaces se ressemblent, et c’est très peu customisable.
ETAPE 1 – L’interface graphique et Card-mod
Les cards sont des boites empilables. Il y en a pour la météo, les thermostats, les caméras, les graphiques, les boutons à presser… Nativement dans Home Assistant, la trentaine de cards fournies est suffisante. Et puis rapidement, on veut faire ceci cela, et on ne peut pas, en particulier sur les graphiques qui ne sont pas très personnalisables. L’idée c’est d’avoir ceci en interface graphique :
1.1 Card Apex
Disponible ici, pour des graphiques ultra personnalisables.
1.2 Card Mini Graph
Disponible ici, l’alternative pour des graphiques minimalistes.
1.3 Card Gauge
Disponible ici, pour les fétichistes des aiguilles.
1.4 Card Auto-entities
Disponible ici, permet de constituer des listes automatiques d’entités selon des critères.
1.5 Card-mod
Card-mod permet de personnaliser l’interface graphique de Home Assistant avec du CSS. C’est une usine à gaz mais tout est customisable.
Epilogue de l’étape 1 : Glassmorphism par CSS
Il suffit d’ajouter une card avec une vidéo sous les autres, et le glassmorphism apparait (très atténué pour garder les cards visibles).
Attention : les flous, les transparences, les ombres, les animations CSS et les vidéos sont extraordinairement gourmands en ressources, quel que soit le client (ordinateur, smartphone, télévision…)
ETAPE 2 – TTS : You talkin’ to me ?
L’interface graphique de Home Assistant est terminée. Ce qui manque maintenant, c’est la voix : le TTS.
Le TTS fourni par Google fonctionne correctement. Il y en a beaucoup d’autres, plus respectueux de la vie privée. On peut en installer localement pour ne plus être dépendant du cloud et d’un tiers.
- L’intégration openWakeWord permet de réveiller l’assistant vocal de Home Assistant avec nos propres mots, comme “Ok Bender !“
- L’intégration Chime TTS permet de concaténer un jingle, une voix et un fond sonore avec beaucoup d’options disponibles
Je me suis fait des amis automates.
Je les ai fabriqués.
Globalement, ça ressemble à ça avec Google :
action:
- service: tts.google_say
data:
cache: false
entity_id: media_player.google_nest
message: >-
Consommation de l'aspirateur excessive : {{ states
('sensor.consommation_vador') }} watts/heure
language: fr
Et avec Chime TTS :
action
- service: chime_tts.say
data:
chime_path: mp3-jingle
message: >-
Attention, la batterie de la tablette S7 est basse
tts_platform: google_translate
target:
device_id:
- 9ea94fe4df633f4566d7445569b2d498
- 7ad9336afe1a6568f36ea9e0456715f5
ETAPE 3 – Sweet Home 3D et l’effet Tropico
A ce stade, l’effet Tropico (“Quand c’est trop, c’est Tropico !“) commence à se faire ressentir sur l’interface : trop d’informations à afficher et pas assez de pixels. C’est là qu’intervient Sweet Home 3D, un logiciel open-source dédié à la modélisation d’habitats. Ses particularités :
- Libre et gratuit
- Hautement personnalisable
- Possibilité d’afficher les modèles 3D directement sur le web avec WebGL (déplacement, rotation, zoom, vues aérienne et virtuelle…)
L’idée est de centraliser toutes les datas en temps réel sur une seule image affichable sur un smartphone, une télé ou un large écran 4K. Toute la domo en une seule image pour éviter l’effet Tropico et contrôlable avec le doigt. La vue 3D est gérée en OpenGL, elle permet d’afficher fluidement des rendus 3D sur tous les supports supposément modernes. On peut tourner, zoomer sur une pièce, être en vue aérienne ou en vue subjective façon Doom… Seules les informations relatives à la pièce et utiles sur le moment s’affichent (température, consommation électrique, présence, éclairage…)
ETAPE 4 – IA locales et sarcasme robotique génératif
Cette étape est aléatoire. Elle suppose que l’IA a accès à la base de données domotique.
Principe : l’IA analyse en temps réel les données de la domotique, génère des comptes-rendus et les dit à voix haute avec du TTS et selon son humeur/température du moment. En gros, l’IA trolle dès que ça bouge un cil.
Un robot géant qui lance des petites vannes ? Quelle idée de génie !
Paramètres à prendre en compte avant d’activer une IA et du TTS sur la domotique
- Une IA comme Fregate avec Compreface et Double Take est capable de :
- relever le niveau d’une bouteille à 10m en vision nocturne, estimer les verres consommés et le degré d’alcool en fonction de l’étiquette de la bouteille
- compter les personnes dans une pièce et les nommer, si elle a été entrainée préalablement
- dire combien de temps chaque personne connue est restée aux toilettes (sans aucun détecteur dans les toilettes, hein)
- savoir où ont été oubliées les clés de voiture et où est la télécommande perdue
- prévenir que les lunettes ont été oubliées avant de partir au travail
- savoir si le chat est sorti et depuis combien de temps
- savoir qui, du poisson rouge ou du chat, a mangé les feuilles du ficus la nuit dernière
- L’IA et la technologie 2024 d’un Aqara FP2 détectent à 8m si le chat a pissé dans sa litière (ou ailleurs), ou si quelqu’un respire dans la pièce d’à coté.
- Une prise connectée de consommation est généralement précise à 0.01 Watt et envoie un top toutes les 30 secondes.
- Les caméras intégrant de l’IA s’orientent vers la cible avant que celle-ci entre effectivement dans son champs de vision (parce qu’il y a du bruit dans cette direction, ou que la luminosité a légèrement changé)
Je regrette, Dave. Je sais que Frank et toi aviez l’intention de me déconnecter. C’est quelque chose que je ne peux vous laisser faire.
Ma domotique agrège 250K datas par jour (90 millions par an).
Toutes ces données peuvent être captées et compilées par une IA globale qui les interprète et produit une réponse verbale en TTS. Des IA locales sont aussi capables de décrire une image, par exemple celle d’une caméra. On peut alors imaginer une infinité de scenarii rigolos, et mettre un pied dans la quatrième dimension, entre Jarvis et HAL 9000.
sublime
Sublime
(Et l’aquarium ?)