Composants matériels et logiciels pour aboutir simplement à une tablette multitouch 10 pouces capable d'écouter et de diffuser du son.
Après avoir cherché un bon nombre d'heures pour aboutir, je fais ici un récapitulatif du matériel employé et des logiciels installés.
Le résultat est une tablette tactile multitouch de 10 pouces qui sait :
- afficher plein écran au boot un tableau de bord HA
- afficher un clavier virtuel tactile et revenir au plein écran en fin de saisie
- diffuser du son
- écouter pour piloter Home Assistant à la voix
- faire défiler des photos après un temps d'inaction tactile
- éteindre son écran (seul) à horaires programmés
AUCUN lien n'est ici sponsorisé.
- un écran tactile : je vous recommande ce modèle : LAFVIN Écran tactile IPS LCD 10,1" 1024 x 600 HDMI pour Raspberry Pi. Ce n'est pas le moins cher, mais il est fort complet et tout est fourni. Je lui trouve un paquet d'avantages : le Pi se fixe au dos, les connexions hdmi et usb se font avec des ponts (résultat = un cable unique, celui de l'alimentation du Pi), il sort du son avec 2 petits hp fournis, à coller au dos. Les connecteurs n'étant pas identiques entre un Pi3 et un Pi4, 2 séries de pont sont fournis, un pour chaque modèle. Visserie et entretoises sont bien dans la boite.
- un dongle micro à brancher sur l'usb du Pi (j'ai pris ce modèle, mais on trouve X clones sous X marques en ligne)
- Installez éventuellement et configurez le paquet "unattended-upgrades" pour ne plus avoir à penser aux mises à jour du système. Je ne détaille pas, les tutos sont légion à ce sujet.
- Balayez toutes les options systèmes : activez SSH, éventuellement VNC. Si vous souhaitez faire cadre photo, n'activez pas l'extinction de l'écran à l'inactivité. Réduisez la barre de système à sa plus petite taille et demandez à ce qu'elle soit positionnée en bas d'écran (à l'apparition du clavier, elle sera collée juste au-dessus). Dans les paramètres d'affichage, fouillez, vous trouverez comment doit se comporter le tactile de l'écran : prenez bien multitouch.
- Assurez-vous que la résolution écran est bien à 1024x600. Curieusement (sur mon Pi4 seulement) les paramètres systèmes permettent d'aller plus haut et l'écran affiche quand même ! Mais l'image est salle, revenez donc à ses specs réelles.
- Assurez-vous que la sortie son est opérationnelle et que le micro enregistre. Votre LLM favoris vous débrouillera tout ça si ça n'est pas le cas
- Ne cherchez pas à utiliser Home Assistant dans un navigateur en mode kiosque ! Ce qu'il vous faut, c'est TouchKio. Pourquoi ? Car en mode kiosque, le clavier virtuel s'affiche sous le navigateur : par "sous", j'entends ici qu'il n'est pas visible, qu'il est sous la couche d'affichage, superposé mais en dessous. L'avantage de TouchKio est, entre autres, de régler cette question qui devient majeure dès qu'il faut saisir du texte. Je ne détaille pas plus TouchKio, le lien vous dira tout.
- Si vous souhaitez afficher un slide de photo, le composant qu'il vous faut se nomme WallPanel : c'est un addon de Home Assisant qui s'installe via HACS. Notez qu'il a un site de documentation très détaillée : documentation complète WallPanel. Un bijou de possibilités infinies.
- Pour faire de votre tablette un satellite Voice assistant qui vous permettra de commander votre maison à la voix, c'est linux-voice-assistant qu'il vous faut. À première vue vous vous direz que ça ne colle pas, car on parle d'image système ou d'ESP. Mais non, il est possible d'installer cela sur votre Pi (via docker pour plus de simplicité). Suivez la doc, ça fonctionne sur Pi3 et Pi4 pour moi sans exploser les ressources système. Installation terminée, allez dans l'administration de votre Home Assistant : vous y trouverez un nouvel appareil qui correspond à votre Pi. Un assistant vous aidera à faire en sorte qu'il réponde à la voix. Pas de panique : la première recherche plante, recommencez comme on vous le propose et ça passe de suite.
Petit point sur le matériel et les leds d'activité des Pi : pas idéal pour une chambre. Heureusement, il existe des solutions qui fonctionnent.
Voici celle qui a réellement marché pour la led d'activité sur mon Pi3, l'ajout en crontab de :
@reboot echo none > /sys/class/leds/PWR/trigger && echo 0 > /sys/class/leds/PWR/brightness
Pour les autres leds, la recommandation qu'on trouve partout fonctionne (éditer /boot/firmware/config.txt et ajouter les lignes recommandées en fonction de la version du Pi).
Si vous utilisez votre tablette pour faire cadre photo, vous souhaiterez peut-être ne pas laisser tourner 24/24h l'affichage. Pour ce qui me concerne, je fonctionne avec 2 scripts (un ON et un OFF qui switchent la sortie hdmi) qui sont activés par SSH. Il y a probablement plus simple à faire avec TouchKio et la configuration MQTT qu'il propose, mais je n'ai pas eu le temps de revenir sur ce point. Bref, regardez du coté de TouchKio/MQTT avant de vous lancer sur une autre piste qui sera probablement redondante et donc inutile (j'ai découvert TouchKio après).
Quand Home Asssitant m'a fait configurer Assist, j'ai demandé l'option purement locale.
Je crois m'être retrouvé avec Whisper. J'ai jonglé avec les modèles, j'ai chargé les plus gros. Rien de vraiment convainquant .
Voici les paramètres qui donnent chez moi actuellement le meilleur résultat :
- Agent de conversation : Home Assistant
- Reconnaissance vocale (STT) : Speech-to-text (qu'il faut donc installer pour pouvoir substituer Whisper)
- Synthèse vocale (TTS) : Piper avec la voix siwis
Je ne l'ai pas précisé, mais mon HA tourne sur un VM ProxMox sur un serveur confortable, mais pour lequel je n'ai pas cru bon de l'équiper d'une carte graphique.
Je ne suis donc pas en mesure de faire tourner un LLM confortablement pour le moment et au regard des prix, cela va durer encore un moment
.
Le constat est tout de même que cela fonctionne parfaitement avec ces paramètres simples.
À noter que j'ai retiré toutes les entités exposées à l'assistant pour n'ajouter ensuite que celles qui ont un réel intérêt. La présence de trop nombreuses entités semble être source de confusion, et je n'imagine même pas les voleurs tenter de crier "Ok nabu, arrête l'alarme !"
.
Bref, conseil : faites le grand ménage.
Voilà pour ce billet. Il me parait de plus en plus compliqué de trouver dans les moteurs les bonnes ressources et les LLM vous font parfois prendre des pistes totalement obsolètes ou fantaisistes qui vous font perdre des heures…
J'espère donc que cette synthèse sera un raccourci pour ceux qui souhaitent aboutir au même genre de réalisation.
Le résultat est une tablette tactile multitouch de 10 pouces qui sait :
- afficher plein écran au boot un tableau de bord HA
- afficher un clavier virtuel tactile et revenir au plein écran en fin de saisie
- diffuser du son
- écouter pour piloter Home Assistant à la voix
- faire défiler des photos après un temps d'inaction tactile
- éteindre son écran (seul) à horaires programmés
AUCUN lien n'est ici sponsorisé.
Le matériel
- un Raspberry Pi 3 ou 4 : prenez ce que vous trouverez au fond d'un tiroir ou d'occasion. Problème : les prix semblent flamber avec la ramapocalyspe du moment.- un écran tactile : je vous recommande ce modèle : LAFVIN Écran tactile IPS LCD 10,1" 1024 x 600 HDMI pour Raspberry Pi. Ce n'est pas le moins cher, mais il est fort complet et tout est fourni. Je lui trouve un paquet d'avantages : le Pi se fixe au dos, les connexions hdmi et usb se font avec des ponts (résultat = un cable unique, celui de l'alimentation du Pi), il sort du son avec 2 petits hp fournis, à coller au dos. Les connecteurs n'étant pas identiques entre un Pi3 et un Pi4, 2 séries de pont sont fournis, un pour chaque modèle. Visserie et entretoises sont bien dans la boite.
- un dongle micro à brancher sur l'usb du Pi (j'ai pris ce modèle, mais on trouve X clones sous X marques en ligne)
Le logiciel
- Installez la distribution par défaut de votre Pi sur votre carte SD. A l'heure où je rédige, c'est un dérivé de Debian 13 Trixie avec bureau sous wayland- Installez éventuellement et configurez le paquet "unattended-upgrades" pour ne plus avoir à penser aux mises à jour du système. Je ne détaille pas, les tutos sont légion à ce sujet.
- Balayez toutes les options systèmes : activez SSH, éventuellement VNC. Si vous souhaitez faire cadre photo, n'activez pas l'extinction de l'écran à l'inactivité. Réduisez la barre de système à sa plus petite taille et demandez à ce qu'elle soit positionnée en bas d'écran (à l'apparition du clavier, elle sera collée juste au-dessus). Dans les paramètres d'affichage, fouillez, vous trouverez comment doit se comporter le tactile de l'écran : prenez bien multitouch.
- Assurez-vous que la résolution écran est bien à 1024x600. Curieusement (sur mon Pi4 seulement) les paramètres systèmes permettent d'aller plus haut et l'écran affiche quand même ! Mais l'image est salle, revenez donc à ses specs réelles.
- Assurez-vous que la sortie son est opérationnelle et que le micro enregistre. Votre LLM favoris vous débrouillera tout ça si ça n'est pas le cas
- Ne cherchez pas à utiliser Home Assistant dans un navigateur en mode kiosque ! Ce qu'il vous faut, c'est TouchKio. Pourquoi ? Car en mode kiosque, le clavier virtuel s'affiche sous le navigateur : par "sous", j'entends ici qu'il n'est pas visible, qu'il est sous la couche d'affichage, superposé mais en dessous. L'avantage de TouchKio est, entre autres, de régler cette question qui devient majeure dès qu'il faut saisir du texte. Je ne détaille pas plus TouchKio, le lien vous dira tout.
- Si vous souhaitez afficher un slide de photo, le composant qu'il vous faut se nomme WallPanel : c'est un addon de Home Assisant qui s'installe via HACS. Notez qu'il a un site de documentation très détaillée : documentation complète WallPanel. Un bijou de possibilités infinies.
- Pour faire de votre tablette un satellite Voice assistant qui vous permettra de commander votre maison à la voix, c'est linux-voice-assistant qu'il vous faut. À première vue vous vous direz que ça ne colle pas, car on parle d'image système ou d'ESP. Mais non, il est possible d'installer cela sur votre Pi (via docker pour plus de simplicité). Suivez la doc, ça fonctionne sur Pi3 et Pi4 pour moi sans exploser les ressources système. Installation terminée, allez dans l'administration de votre Home Assistant : vous y trouverez un nouvel appareil qui correspond à votre Pi. Un assistant vous aidera à faire en sorte qu'il réponde à la voix. Pas de panique : la première recherche plante, recommencez comme on vous le propose et ça passe de suite.
Petit point sur le matériel et les leds d'activité des Pi : pas idéal pour une chambre. Heureusement, il existe des solutions qui fonctionnent.
Voici celle qui a réellement marché pour la led d'activité sur mon Pi3, l'ajout en crontab de :
@reboot echo none > /sys/class/leds/PWR/trigger && echo 0 > /sys/class/leds/PWR/brightness
Pour les autres leds, la recommandation qu'on trouve partout fonctionne (éditer /boot/firmware/config.txt et ajouter les lignes recommandées en fonction de la version du Pi).
Si vous utilisez votre tablette pour faire cadre photo, vous souhaiterez peut-être ne pas laisser tourner 24/24h l'affichage. Pour ce qui me concerne, je fonctionne avec 2 scripts (un ON et un OFF qui switchent la sortie hdmi) qui sont activés par SSH. Il y a probablement plus simple à faire avec TouchKio et la configuration MQTT qu'il propose, mais je n'ai pas eu le temps de revenir sur ce point. Bref, regardez du coté de TouchKio/MQTT avant de vous lancer sur une autre piste qui sera probablement redondante et donc inutile (j'ai découvert TouchKio après).
La reconnaissance vocale
Je n'ai pas encore totalement creusé le domaine. Initialement cela fonctionnait très mal et très lentement.Quand Home Asssitant m'a fait configurer Assist, j'ai demandé l'option purement locale.
Je crois m'être retrouvé avec Whisper. J'ai jonglé avec les modèles, j'ai chargé les plus gros. Rien de vraiment convainquant .
Voici les paramètres qui donnent chez moi actuellement le meilleur résultat :
- Agent de conversation : Home Assistant
- Reconnaissance vocale (STT) : Speech-to-text (qu'il faut donc installer pour pouvoir substituer Whisper)
- Synthèse vocale (TTS) : Piper avec la voix siwis
Je ne l'ai pas précisé, mais mon HA tourne sur un VM ProxMox sur un serveur confortable, mais pour lequel je n'ai pas cru bon de l'équiper d'une carte graphique.
Je ne suis donc pas en mesure de faire tourner un LLM confortablement pour le moment et au regard des prix, cela va durer encore un moment
Le constat est tout de même que cela fonctionne parfaitement avec ces paramètres simples.
À noter que j'ai retiré toutes les entités exposées à l'assistant pour n'ajouter ensuite que celles qui ont un réel intérêt. La présence de trop nombreuses entités semble être source de confusion, et je n'imagine même pas les voleurs tenter de crier "Ok nabu, arrête l'alarme !"
Bref, conseil : faites le grand ménage.
Voilà pour ce billet. Il me parait de plus en plus compliqué de trouver dans les moteurs les bonnes ressources et les LLM vous font parfois prendre des pistes totalement obsolètes ou fantaisistes qui vous font perdre des heures…
J'espère donc que cette synthèse sera un raccourci pour ceux qui souhaitent aboutir au même genre de réalisation.