Où sommes nous ?

Retour

Tableaux de bord

Souvent délaissés, les tableaux de bord (ou dashboard en version british) sont l’élément visible de toute la domotique. Non seulement ils vous permettent de garder un œil sur ce qu’il se passe dans la maison, mais ce sont aussi une bonne méthode de promotion de ce que vous avez fait et améliore grandement le WAF.

La page web

La solution la plus rependue est d’exposer les informations de domotique à travers une « simple » page web … enfin, simple n’est qu’une expression, car les données étant par essence changeantes (sinon, pourquoi les surveiller ?) il faut maitriser le web Dynamique, PHP voir Ajax, tout ça …
L’avantage est que si votre site web est exposé sur la toile, vous pourrez voir ce qui se passe chez vous depuis votre taf … ou n’importe où d’ailleurs par votre smartphone. Je vous laisse vous pencher sur les problèmes de sécurité que cela pose et les mesures indispensables à mettre en place.

C’est la solution que j’avais déployé avec mon architecture V1 : Domestik collecte régulièrement toutes les informations, les agrège en base de données et les affiche à travers son interface Web avec moult graphiques.

L’écran du salon

Vous rentrez chez vous tard le soir … la porte du garage est-elle fermée ? Fallait-il passer par la boite aux lettres ? Les plantes ont-elles besoin d’être arrosées ?
Voilà, le besoin se fait sentir d’avoir toutes ces informations accessibles à n’importe quel moment : le besoin d’avoir un tableau de bord dans le salon.

La solution de facilité, et donc la plus courante est de recycler un vieux PC (vous rendez-vous compte de l’electricité que vous allez gaspiller ?) ou mieux de mettre un SBC tel qu’un BananaPI ou un Raspberry, avec un navigateur ouvert plein écran qui affichera la page décrite ci-dessus, en mode rafraîchissement automatique toutes les 30 secondes.
Le gros avantage est que le travail à accomplir est minime, n’importe quel distribution Linux graphique fait l’affaire. Ensuite, tout n’est qu’une question de configuration :

rien que tu classique, et ça se trouve facilement sur le web.

A noté qu’il est parfaitement possible d’écrire des pages web dynamique clientes MQTT, à base de websockets.

Mais le problème est alors de trouver un navigateur léger qui supporte ces extensions.

Cette solution ne m’a pas paru très élégante :

La suite de cette page décrit les solutions que j’emploie sur ma propre domotique, à l’exclusion de la page web de Domotik abordée plus haut et qui ne nécessite pas plus de commentaire.

Conky

Le premier tableau de bord que j’ai mis en place tourne en arrière plan sur l’écran de mes PCs : il s’agit d’un « simple » script Lua pour Conky qui affiche les données lives issues de mes flux MQTT, sans autre fioriture. J’ai décrit dans cette page le mode opératoire et les scripts sont publiés sur mon GitHub.

Tablette

Comme tableau de bord dans le salon, j’ai recyclé une tablette Android Brickée (l’Android embarqué ne boot plus) : J’avais narré par ailleurs sur ce site l’aventure qui a conduit à sa résurrection. Sa lecture étant un peu indigeste voici une version un peu plus civilisée .

Booter sous Linux

Une tablette Android propulsée par un processeur Allwinner (je ne sais pas pour les autres fondeurs), boote en priorité sur sa carte SD puis, si elle n'y trouve pas de système, bascule sur sa NAND : la solution était donc d'installer linux sur une SD d'au moins 1Go (et oui, X n'est pas nécessaire pour mon dashboard, du coup, les besoins de stockage sont réduits) et de la rendre bootable. Comme bonus, je ne touche pas à la NAND, et peut-être qu'un jour, j'essaierai d'y réactiver Android … peut-être .

Installer Linux sur une SD, on sait faire : il suffit de suivre les indications du site SunXI ou de ma page dédiée au BananaPI. Elles indiquent aussi comment rendre la carte bootable en y installant uboot, qui est l'équivalent à la fois du boot sector et du BIOS des PC, en mieux.

La carte contiendra au moins 2 partitions :

A noter que pour économiser 10% de place supplémentaire sur la SD, j'ai choisie une version du système utilisant uclibc … 1Go commence en effet à devenir serré surtout lorsqu'on y installe la chaîne complète de développement (GCC, …). Mais du coup, je n'ai pu installer syslog : rotatelog à besoin d'une API non disponible dans uclibc ... on fera avec.

Sauvons notre SD

Profitons-en pour parler un peu de l'endurance de la SD : comme toute mémoire NAND (ce qui inclut les disques SSD), elle s'use rapidement face aux écritures, créant des blocs défectueux. Pas de risques pour nos données : chaque SD contient un petit processeur qui élimine ces blocs et les remplace par des saints, mais la place disponible diminue peu à peu.
Pour pallier ce problème, j'ai mis en RAM tout ce qui nécessite des écritures : les homes, les logs, … Ce qui me donne le /etc/fstab suivant :

/dev/mmcblk0p1		/boot		vfat		noauto,noatime	1 2
/dev/mmcblk0p2 / ext4 noatime 0 1
#/dev/SWAP none swap sw 0 0
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0

none /var/tmp tmpfs defaults 0 0
none /tmp tmpfs defaults 0 0
none /home/laurent tmpfs defaults 0 0

Évidemment, tout sera perdu lors d'un reboot … mais on s'en fout.

Le réseau

Toute tablette peut évidemment se connecter par WiFi … pour peu qu'on lui fournisse le driver qui va bien.
Et dans mon cas, ce n'était pas si simple : le dit driver n'existe qu'avec un kernel très récent, qui nécessite lui-même un uboot tout aussi récent, uboot pour lequel je n'avais pas de fichier de configuration. Bref, pas gagné.

Mais comme ma tablette se trouve juste à côté de ma Freebox, j'ai simplifié les choses en utilisant la possibilité d'établir un réseau par USBSimple USB Network Links » ou « CDC Ethernet subset ») : il suffit juste de compiler les modules kernel cdc_ether & usbnet.

On reboote, et voilà, la tablette accède à mon réseau et à ses précieux messages MQTT.

DirectFB

La partie matérielle étant maintenant couverte, passons au côté logiciel.

DirectFB (Direct Frame Buffer) est une librairie qui facilite la programmation aux couches graphique bas niveau de Linux et en particulier son fameux Frame Buffer (fbdev) et aux input devices s'y rapportant (clavier, souris). Il fournit même un système de fenêtrages simple mais qui va nous être bien utile.

Ses objectifs sont :

Y a-t-il un avenir pour DirectFB ?

A l'heure où j'écris ces lignes, août 2016, le projet semble en déshérence : son site ne répond plus, pas d’activité sur son git hub.

Cependant, il reste inclus dans la majorité des distributions (dont heureusement Gentoo) et est beaucoup utilisé dans l’embarqué d’où pleins de forks. Reste à savoir s’il y aura un repreneur officiel.

De toute façon, n’ayant pas d’autre solution pour le moment, je reste avec DirectFB.

A suivre ...

(quand j'aurai le temps)


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2017
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.