HomeLab
Ma maison pilotée en local, sans le cloud des fabricants, avec une interface et une télécommande que j'ai conçues moi-même.
Le projet
Je voulais faire fonctionner mes équipements du commerce sans dépendre du cloud de leur fabricant, tout regrouper dans un seul tableau de bord, et y accéder depuis l'extérieur sans exposer la maison sur Internet.
HomeLab repose sur Home Assistant, installé dans une machine virtuelle sur un PC Linux qui reste allumé. Il réunit les ampoules, la caméra, ma station météo et une télécommande tactile que j'ai programmée.
L'architecture
Ce qui fonctionne aujourd'hui
- Virtualisation : Home Assistant OS tourne dans une VM KVM/libvirt, reliée au réseau local par un pont Ethernet pour être visible comme un appareil à part entière.
- Installation scriptée : un script installe les paquets, crée la VM et le pont réseau, avec un mode simulation et un retour arrière automatique si le pont n'obtient pas d'adresse.
- Pilotage local : les ampoules et la caméra sont commandées directement sur le réseau, sans passer par l'application du fabricant.
- Station météo : les mesures de WeatherMesh arrivent dans Home Assistant toutes les 30 secondes.
- Accès à distance : par Tailscale, un réseau privé chiffré. Aucun port n'est ouvert sur la box.
- Disponibilité : la VM démarre et s'arrête proprement avec le PC, la mise en veille est désactivée et le PC redémarre seul après une coupure de courant.
- Sauvegardes : complètes, chiffrées, programmées et copiées hors du PC.
La télécommande tactile
Une carte LILYGO T-Pico 2350, à écran tactile de 2,33 pouces, commande l'éclairage du salon. Le fonctionnement est pensé pour être simple à l'usage :
- Deux grands boutons, Allumer et Éteindre, et l'état de la lampe affiché en permanence.
- Un échange dans les deux sens : la télécommande envoie ses commandes à Home Assistant, et une automatisation lui renvoie l'état de la lampe en moins de deux secondes, même quand on l'allume ailleurs.
- Un compte Home Assistant dédié, sans droits d'administration, pour limiter ce qu'une télécommande perdue permettrait de faire.
- Un point rouge discret quand le Wi-Fi ou une commande échoue, et une mise en veille de l'écran après une minute.
Elle est logée dans une coque en deux parties que j'ai modélisée et imprimée.
Télécharger les STL de la coque zip, 4 Mo, face et dos
La sécurité
- Aucun port ouvert vers Internet : l'accès distant passe uniquement par Tailscale.
- Pare-feu du PC limité au réseau local, et pas de serveur SSH quand il n'est pas utile.
- Un seul compte administrateur, avec double authentification. Les autres comptes sont des utilisateurs simples.
- Des jetons d'accès créés seulement quand c'est nécessaire, et supprimés dès qu'ils ne servent plus.
Ce qui a coincé
- Appareils intermittents : en coupant leur accès à Internet, les ampoules et la caméra devenaient instables. J'ai dû leur laisser Internet tout en les pilotant en local.
- Enregistrement de la caméra : le protocole ONVIF refusait un mot de passe pourtant correct, à cause de l'horloge de la caméra. Je suis passé par l'enregistrement sur carte microSD, et par des enregistrements de durée limitée déclenchés depuis Home Assistant.
- Un appareil non pris en charge : l'aspirateur n'est pas encore géré par l'intégration locale, il faut attendre une mise à jour.
- Configuration YAML : des clés déclarées deux fois s'écrasaient sans prévenir. J'ai fusionné les blocs et je vérifie systématiquement la configuration avant de redémarrer.
- Statut
- En service
- Plateforme
- Home Assistant OS, VM KVM/libvirt sur PC Linux
- Réseau
- Pont Ethernet, Tailscale
- Appareils
- Ampoules et caméra en local, station WeatherMesh
- Télécommande
- LILYGO T-Pico 2350 (RP2350), écran tactile
- Interface
- Tableau de bord sur mesure en JavaScript
- Code source
- Lien à venir