Jeedom est une plateforme domotique qui offre de nombreuses possibilités. Il est par exemple facile de produire des dashboards (ou tableaux de bord 😉 ) afin d’agréger et d’afficher toutes les informations que l’on souhaite, issues de notre système domotique.
Cependant, jusqu’ici le seul moyen que j’avais de consulter ces informations était via un périphérique (ordinateur, smartphone ou tablette).
Il me fallait alors :
- réveiller le périphérique,
- ouvrir une page web ou un raccourci,
- attendre le chargement,
pour enfin avoir l’information 🙂
On est d’accord, ce n’est pas la mer à boire, mais toutes ces petites actions mises bout à bout et répétées quotidiennement deviennent fastidieuses.
On le sait: les bons informaticiens sont paresseux. Pour cela, ils se débrouillent pour en avoir le moins à faire, quitte à passer des heures pour gagner quelques minutes ensuite 🙂
Fort de ce constat, je me suis mis en tête de concevoir un petit écran sur une plateforme raspberry pi qui afficherait les informations que j’aurai sélectionnées. Cela fait plusieurs mois que celui ci tourne sans problème 24/7. Je décrirais sans doute celui-ci dans un autre post mais grosso modo, c’est une debian 8 sur laquelle un chromium se lance au démarrage en mode kiosk et qui affiche une vue « plan » de jeedom.
Mon écran ne marche plus depuis Jeedom 2 🙁
Ayant récemment fait la mise à jour vers Jeedom 2, la méthode de connexion utilisée jusque là ne fonctionne plus. En effet, je me servais de l’authentification par hash, passé en paramètre d’appel. Cela ne me posait pas de problème de sécurité particulier puisque tout cela restait strictement cloisonné sur mon réseau local. Cependant, l’équipe de Jeedom a souhaité supprimer cette méthode d’authentification, la jugeant (à juste terme) non sécurisée. Je trouve dommage de ne pas pouvoir la réactiver à la demande via une option dans l’admin utilisateur par exemple.
Après de nombreuses recherches, je n’ai pas trouvé de moyen simple pour m’authentifier facilement à distance. J’ai donc pris le parti d’utiliser la fonction « se souvenir de moi » native de jeedom. Cependant, pour cela, il me fallait prendre la main à distance sur le raspberry qui n’a pas de clavier/souris. Vous me direz qu’en cas de besoin, je peux toujours en brancher, mais je ne trouve pas ca pratique et pas vraiment industrialisé.
Je ne pensais pas que ce serait si compliqué de prendre la main à distance sur l’écran que je vois à quelques centimètre de mon PC…
Pourquoi ?
- Parce que le raspberry est sur une archi ARM
- Parce que le vénérable protocole VNC avec tightvncserver que j’ai vu sur de nombreux blog ouvre une nouvelle session X. On prend bien la main sur la machine, mais pas sur la session X qui tourne sur l’écran allumé …
La solution : x11vnc
Pour prendre la main à distance sur la session X :0 , l’idéal est de passer par le paquet x11vnc .
Après l’avoir installé via apt-get , configurez un mot de passe à l’aide de la commande x11vnc -storepw . Pas besoin de spécifier un emplacement où stocker le mot de passe.
Ensuite, programmez de la manière de votre choix le lancement de la commande x11vnc -display :0 -usepw . Celle-ci va vous permettre de prendre la main à distance via un client VNC de votre choix (pour ma part, j’utilise VNC viewer de RealVNC) et de sécuriser un minimum la connexion. Attention, cette « sécurité » permet simplement d’éviter que votre petit frère prenne la main sur la machine simplement en scannant votre réseau local à la recherche de ports ouverts 😉 Le flux VNC n’est pas crypté, ainsi n’ouvrez pas cela sur une machine connectée directement à internet!
Une fois que vous aurez pris la main, vous pourrez saisir le login/mdp sur l’écran jeedom sur le navigateur web. Au prochain reboot, celui ci utilisera le cookie et vous n’aurez pas besoin de vous réauthentifier.
J’ai donc modifié mon script qui se lance au démarrage en ajoutant la ligne suivante :
#x11vnc -display :0 -usepw 2>/dev/null >/dev/null&
Je laisse la ligne commentée pour que le service ne tourne pas dans le vide tout le temps. Si j’ai besoin de prendre la main sur la machine, je me connecte en ssh dessus, décommente la ligne et reboot la machine.
Merci pour cet article, tres interessant!
Personnellement, j’ai opte pour une tablette low-cost 10′, avec une application qui, a chaque passage devant la tablette, l’allume sur la page web de mon choix.
Puis, l’alimentation est reliee a un module z-wave, et avec une regle tasker, active ou non le courant selon le niveau de la batterie.
>>avec une application qui, a chaque passage devant la tablette, l’allume sur la page web de mon choix.
Peu xtu en dire plus sur l’applic ? est ce une DIY ? ou une appli Google Play particulière ?