Domotiser la charge d’une tablette ou téléphone Android

Dans ma salle de bain, j’ai intégré un petit téléphone Android pas cher et surtout, qui ne craint pas l’eau. Ce téléphone est utilisé pour plusieurs choses :

On ne juge pas!

Oui, mais voilà, utiliser un téléphone / tablette tous les matins et tous les soirs imposent la contrainte de … penser à le recharger.

Et plutôt que de le laisser brancher en permanence… j’ai souhaité domotiser sa charge.

Prérequis

  • 1 prise commandable via Jeedom : dans mon cas, il s’agit d’une Kasa TPLink (lien affiliée)

Une fois reçue, la prise doit être configurée avec l’application android Kasa. L’application existe également sous iOS : Kasa Smart

  • 1 téléphone / tablette sous Android. 
  • 1 Jeedom fonctionnel
  • 1 compte Telegram fonctionnel ou Pushbullet

Configuration de Jeedom

Côté Jeedom : installer les plugins nécessaires

  • 1 plugin Jeedom Telegram ou Pushbullet préalablement configuré.
  • 1 plugin Jeedom pour gérer votre prise (dans mon cas: kkasa )

Si vous souhaitez de l’aide pour installer le plugin Telegram, je vous conseille le tutoriel suivant : https://www.maison-et-domotique.com/70896-piloter-jeedom-avec-telegram/

Une fois le plugin installé sur votre jeedom, commencer par activer le plugin… Puis installer les dépendances.

N’oubliez pas de rentrer votre compte / mot de passe kasa.

Puis rendez vous dans la page de configuration : menu plugin, Objets Connectés, kKasa

Un clic sur synchroniser, puis appuyer sur F5… Magie, vos prises apparaissent dans périphériques

Votre seule activité consistera alors à régler vos prises en renommant le périphérique avec un nom explicite, unique.

Dans mon cas, j’ai nommé la prise en « Prise téléphone« , associé à la zone « salle de bain ». Retenez bien ce nom, ça sera utile pour la suite!

Configuration d’android

Il est nécessaire d’installer quelques applications sur le téléphone android :

Programmation de Tasker

Sur le téléphone Android, j’ai programmé Tasker ainsi :

J’ai créer une première tâche « Activation prise » consistant à envoyer une notifcation via l’application pushbullet/Telegram à destination de Jeedom le message « Prise téléphone on« 

J’ai ensuite créé une seconde tâche « Désactivation prise », envoyant sur le même principe « Prise téléphone off« 

Ensuite, j’ai créé deux profils « Prise on » et « Prise off« .

Prise On se déclenche sur les events suivants :

  • « Niveau de batterie de 10% à 10% » et
  • « Source AC » case « Inverser » à oui

Et son action consiste à démarrer la tâche « Activation prise« .

Prise off se déclenche sur les événements suivants :

  • Niveau de batterie de 100% à 100% et
  • « Source AC » case Inverser non coché

Et bien entendu l’action associée… consiste à démarrer la tâche « Prise off« .

En rédigeant cet article, je ne pouvais pas m’empêcher de penser à JourNuit de Pixar…

Et là normalement tout marche par la magie Jeedom! Enfin presque. Car si comme moi, vous avez désactiver les interactions automatiques… ben rien ne se passe.

Configuration de Jeedom

Dans le menu configuration, Interactions, pensez à activer les interactions automatiques.

Pour conclure : pensez aux économies

Cet article m’a été inspiré en partie de l’article de Sarakha63 sur son centre de contrôle. Je le remercie grandement 🙂

Le fait de ne pas avoir à penser a la recharge du téléphone c’est pratique… mais vu que je vous ai fait installer Tasker, profitez-en pour régler finement vos paramètres d’énergie avec des modes agressifs pendant les périodes d’absences : par exemple pas de réseau, pas de GPS, puissance minimale etc. L’électricité qu’on ne dépense pas, c’est toujours de l’électricité qu’on ne paie pas !

Webmin en 2018

Webmin est un outil d’administration graphique que j’utilise depuis quelques années sur mes serveurs personnels. Il a pas mal d’avantages, gère assez bien la sécurité des utilisateurs connectés et permet de réaliser quasiment toutes les opérations sans se connecter sur une machine en SSH.

Il a aussi l’avantage de s’installer sur quasiment toutes les distributions, même assez exotiques (oui, unraid, c’est à toi que je pense!) et possède son propre serveur web intégré.

Mais comme je ne réalise que les mises à jour régulières de sécurité sans modifier ma configuration, et ben celle-ci est restée la même au cours des 10 dernières années (sic). Bref, c’est stable, mais assez moche … Pour vous donner une idée du résultat, ça ressemblait à ça http://www.stress-free.co.nz/node/139/2/

Oui, j’ai pas osé faire une capture d’écran. En prime, j’ai désormais un ensemble de machines à gérer, que ça soit le RPI de jeedom ou celui d’octoprint. Bref, il est grand temps de dépoussiérer tout ça.

Thème graphique

C’est le point le plus visuel, autant commencer par ça 😉 Désormais, le thème par défaut s’appelle « Authentic Theme ». C’est un thème moderne, bien plus graphique.

Webmin sur Raspberry PI

Il est désormais possible d’installer l’interface webmin sur les raspberry pi de manière assez rapide. Ne rigolez pas, ça n’a rien d’évident, il faut savoir qu’il y a pas si longtemps, on devait le compiler soi-même. Bref, les bibliothèques et dépendances sont toutes disponibles, et ça fonctionne « presque » tout seul. En prérequis, il faut avoir raspbian, ou tout autre distib basé sur raspbian et en s’aidant de ce genre de tutorial comme celui-ci https://www.instructables.com/id/Adding-Webmin-to-manage-a-Raspberry-Pi/

Bon, si vous voulez pas cliquer (bande de feignasse !!!) voilà rapidement ce qu’il faut faire avec un compte sudo et en se connectant en ssh sur votre RPI raspbian (et à jour). Attention, la ligne de commande pour récupérer la bonne version est à vérifier ici : http://www.webmin.com/deb.html

sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
mkdir ~/webmin_tmp
cd ~/webmin_tmp
wget https://prdownloads.sourceforge.net/webadmin/webmin_1.890_all.deb
sudo dpkg -i webmin_1.890_all.deb
cd - ; rm -rf ~/webmin_tmp

Une fois l’installation finie, vous pouvez accèder à webmin via un navigateur à l’URL suivante 
https://<adresse_ip_RPI>:10000

Attention à bien taper le httpS

Il faut utiliser un compte local à la machine, de préférence qui a les droits sudo (c’est important).

Selon votre besoin, vous pouvez désactiver les SSL (accès en http vs https) surtout si la machine ne sera jamais accessible par internet OU que celle-ci sera proxifié derrière une autre machine / serveur web.

Un Webmin pour les contrôler tous…

Non, je vais pas tourner ténébreux…

Si vous avez plusieurs instances webmin sur le réseau, ça va vite devenir ingérable d’aller ouvrir chacune des machines pour les contrôler (et se rappeler des mots de passes etc…), savoir qui est en ligne et qui ne l’est pas, ou tout bêtement contrôlé à distance tout ce petit monde sans ouvrir 36.000 ports externes. Il permet également de savoir si tout va bien sans installer l’artillerie lourde tel qu’heartbeat et compagnie

Heureusement webmin possède d’excellents modules pour gérer tout ça de manière efficace en 5 étapes

Etape 1 : définir le webmin principal et votre organisation réseau derrière. Faites un dessin s’il le faut vraiment ;-). Vous avez choisi ? Très bien, passez à l’étape 2

Etape 2 : sur votre webmin principal, démarrer le module webmin server index. Derrière ce nom barbare se cache la base permettant de référencer toutes les autres instances de webmin. Le module est décrit ici https://doxfer.webmin.com/Webmin/Webmin_Servers_Index

En gros, je vous conseille de les ajouter manuellement en indiquant pour chacun si vous vous connectez en https, le compte éventuel de la machine

Etape 3 : toujours sur votre webmin principal, utilisez le module « System and server status ». La documentation est disponible à l’adresse suivante https://doxfer.webmin.com/Webmin/System_and_Server_Status

Je vous conseille d’activer dans un premier temps des moniteurs de type « alive system » sur vos différents équipements. Mais enfin, là, ça dépend vraiment de votre installation. Attention, si vous devez vous envoyer un email, n’oubliez pas de le configurer au préalable dans webmin.

Proxifier webmin derrière apache

Alors tout ça c’est beau, mais s’il faut ouvrir des ports dans tous les sens pour y accéder depuis l’extérieur, on a pas fini. Personnelement, j’ouvre le minimum de port à l’extérieur et les services web/http je me débrouille pour tous y accéder en port 80 /443 via des sous URL xxxxxx/<logiciel>

Mais pour webmin, c’est assez compliqué de le « proxifier » via un autre serveur web type apache car il ne supporte pas bien de se retrouver en sous-domaine. Après quelques temps, j’ai trouvé la méthode pour proxifier webmin

Par exemple : pour y accéder via http://monnomdedomaine.extension/webmin

Préalable : pouvoir se connecter en ssh sur le serveur sur lequel réaliser les manipulations.

Vérifier que mod_proxy est présent ET activé sur votre installation d’apache via la commande

sudo a2enmod mod_proxy

Dans le fichier de configuration d’apache, rajouter les directives.

<Location "/webmin/">
ProxyPass http://localhost:10000/
ProxyPassReverse http://localhost:10000/
</Location>

Attention, si l’installation de webmin à provifier est sur une autre machine, il faudra remplacer localhost par l’adresse ip / nom de votre machine.

Sur la machine hébergeant le webmin que vous voulez proxifier, dans le fichier /etc/webmin/config, ajouter les lignes suivantes:

webprefix=/webmin
webprefixnoredir=1
referer=1

Si nécessaire, il faut supprimer la redirection ssl vers le https (forcément…) en éditant le fichier /etc/webmin/miniserv.conf

ssl_redirect=0
ssl=0

Redémarrer les services apache et webmin de la machine.

All requests to /webmin on the Apache server will then be passed through to the Webmin server on localhost port 10000. All features should work fine, including themes, with the exception of IP access control (because as far as Webmin is concerned, all connections will be coming from localhost).

Voir la documentation associée.

Ci-après, une méthode pour également rediriger les ports 443: (SSL) https://ubuntuforums.org/showthread.php?t=2167370


Quels sont les manques à Webmin en 2018?

  • En premier point : un mode « simple » et visuel, une vraie supervision de pro. c’est quand même dommage de ne pas pouvoir visualiser rapidement sur une interface l’intégralité de son réseau / serveur pour avoir un état de la supervision. Des actions correctives rapides accessibles dans ce mode (par exemple, redémarrer le service …)
  • L’intégration d’outils de communication plus efficace. Sérieusement, envoyer un mail à l’admin? Sachant que l’on est rarement à côté des serveurs mais toujours avec un téléphone portable, il vaudrait mieux utiliser des outils tels que Pushbullet, telegram, des SMS… ou autres messageries instantanées.

Peut être des modules pour régler wordpress? Un meilleur gestionnaire de fichier à distance (java…)