Une alimentation PC en guise de boitier raspberry

Je sais pas vous, mais moi, j’ai peine à intégrer mes différents raspberry/Arduino/ESP dans des boitiers qui font, à vue de néophyte, fini. Dans mon cas ca fini souvent collé au mur avec tout un tas de cables. Alros c’est décidé, nouvelle résolution, je fais quelque chose de fini. Bon à défaut je vais cacher le tout dans un truc qui donne l’impression que c’est fini !

En faisant la poubelle, j’ai trouvé une alimentation de PC, mais celle ci bien que HS était jolie .. un joli métal brossé… c’est la que j’ai eu l’idée. L’avantage est que c’est donc une jolie boite avec une entrée 220V, un bouton et un ventilateur .. mais c’est génial !

Alors donc première étape, j’ai démonté l’intérieur pour ne garder que les composant de la face arrière. Il reste cela, c’est joli non ?

Ensuite, j’ai trouvé, dans la même poubelle mais un peu plus tôt une carte d’alimentation (de PC toujours) qui fournit du 5V et 12V à partir du 220V .. trop bien .. il ne reste plus qu’à brancher le tout !

Mirroir magique .. dis moi qui est le plus .. non laisse tomber, affiches moi justes les infos !

Comme vous l’aurez compris, je vous présente ici la première partie de la mise en place d’un mirroir magique, magic mirror. Et dans cette première partie, je ne parlerais ni de magie ni de mirroir. En effet, quite à vous décevoir, sachez qu’il y a un truc, en fait derrière le mirroir il y a un écran et un raspberry. ouaaaaaaaaaaaaaa..

Bon l’idée de départ était de pouvoir présenter en une page synthétique toutes les informations utiles pour la maison : les températures bien sur, l’état de fonctionnement de la VMC, de la piscine, de la chaudière etc etc .. Tout ce qu’on a en ligne sur mon intranet de domotique mais en une page, faite exprès pour mon écran. Cela évite en effet d’ouvrir le site depuis un téléphone (ben oui on est de l’ancienne école) mais surtout cela donne toutes les informations en un coup d’oeil .. et puis surtout ca m’amuse (en fait c’est le seul argument).

Au niveau du matériel :

  • un très vieux pc portable que je désosse et dont je récupère l’écran uniquement
  • un raspberry modèle 3 A+ (wifi donc)
  • pour relier les 2, une carte controlleur LVDS (https://fr.aliexpress.com/item/4001139239839.html?spm=a2g0s.9042311.0.0.27426c375xyxT7)
  • quelques bout de bois taillés à 45° pour faire un cadre (y a du travail de finition ici)

Comme on a deux besoins en alimentation différent 12V et 5v et qu’on a pas beaucoup d’espace j’ai opté pour un convertisseur 12V > 5V (https://fr.aliexpress.com/item/1005001382654920.html?spm=a2g0s.9042311.0.0.27426c379NVtSd). Je n’ai donc qu’un adaptateur secteur 12V qui alimente tout.

La partie logicielle n’est pas forcément aisée mais ce n’est que de l’intégration web donc une page web qui se rafraichit toutes les secondes et qui va chercher ses données dans une base locale (SQLite dans mon cas présent) .. surtout pas sur la base de données en ligne sinon on génèrerait trop de trafic réseau.

Il reste plus qu’à démarrer chromium en mode plein écran et automatiquement au démarrage : pour cela il faut ajouter la ligne suivante au fichier /etc/xdg/lxsession/LXDE-pi/autostart :

@chromium-browser –kiosk http://localhost/display.php –force-device-scale-factor=0.8

le deuxième paramètre permet de dezoomer la page dans mon cas à 80% de sa valeur

Quel modèle de raspberry choisir ?

Cela ne vous aura pas échappé, il y a plusieurs versions et modèles de raspberry et donc .. plusieurs prix .. Alors, lequel choisir ? Souvent, on vous répond, ben le dernier, qui peut le plus peut le moins. Oui mais mon compte en banque lui il peut le moins donc j’aimerais être, la encore, EFFICACE ! Qu’est ce que ca veut dire encore ? Mais je vous l’ai déjà dit ca veut dire qu’on met le prix et la qualité qui va bien, pas besoin d’un bazooka pour tuer une mouche.. Oui mais pour commencer il faut définir quel est le besoin, le mien en tout cas. Pour ma part le raspberry c’est pour mesurer des températures, des niveaux, des fronts montants ou descendants, et actionner via un relais. Je l’utilise également pour faire un “magic mirror” et pour gestionnaire de télévision.

Je dirais donc que le raspberry 4 selon moi devient un bazooka. Pour domotiser, je vois mal comment utiliser toute cette puissance si ce n’est pour gérer des flux vidéos par exemple (mais moi je n’ai pas assez de débit à la maison pour m’amuser à cela).

Pour ma part, je distinguerais donc plusieurs groupes :

  • les vieux modèles d’occasion sur thegoodcorner: et oui, les plus ancien, on ne le trouve plus. pour moi, on est au top de l’efficacité. On trouve des raspberry à 20€ qui n’ont certes pas tous les GPIO des derniers modèles mais largement de quoi mais une petite station de mesure.
  • Le raspberry 3 modèle A+ : parfait pour mes utilisations qui sont proches d’une source de WIFI. En effet, ce modèle n’a pas de port éthernet. A la base on le trouvait à 20€ sur amazing mais il semble qu’il y ait eu de l’inflation. Il est parfait typiquement pour faire une station d’affichage (interactive ou pas)
  • Le raspberry 3 modèle B+ : un peu trop pour mon besoin, mais moins pire que le 4. Je m’en sers donc pour une station de mesure un peu plus évoluée et qui fait plus de chose (par exemple des petits traitements d’image vite fait). Il est un peu plus cher mais

Hack ZIGBEE de Philips HUE (partie 1)

Vaste programme ..

J’écrirai dans un autre poste pourquoi je considère la solution Philips HUE efficace : nous partirons donc ici du postulat qu’elle l’est.

Il faut d’abord distinguer deux installations : celles avec pont HUE et celle sans. Et oui ce n’est pas la même chose. Il faut savoir que si vous utilisez le pont pour commander une ampoule alors vous ne pourrez plus utiliser la télécommande comme avant. En effet, quand le pont commande une ampoule celle ci rejoint le réseau du pont. Si vous voulez qu’une télécommande pilote l’ampoule il faut que celle-ci rejoigne le même réseau. La télécommande ne parle alors plus directement à l’ampoule mais au pont HUE, qui parle à l’ampoule. Ca n’a l’air de rien mais il y a un gap d’efficacité : je n’ai jamais rencontré le moindre problème quand il n’y avait pas le pont HUE. A chaque appui sur les télécommandes, l’action était immédiate. Après mise en place du pont, ce n’est plus la même chose. J’ai notamment constaté qu’en cas d’utilisation de la bande passante internet (un téléchargement très long), le pont n’arrive pas à commander les ampoules (ni depuis le téléphone, ni par l’intermédiaire des télécommandes).

Je parlerais ici de l’installation avec pont HUE. En effet, sans lui, vous ne pourrez pas parler aux ampoules/prises depuis votre téléphone ou votre raspberry. Mise à part ce problème qui relève plus de la performance que de la fiabilité (j’entends par la qu’on arrive toujours à allumer ou éteindre, c’est juste le délai qui peut être de plusieurs secondes), je trouve la solution vraiment bonne dans la mesure ou elle est très bien documentée. Il y a toutefois un manque qui est cruel pour moi : on ne peut pas réagir à un événement (ie changement d’état) à la volée (trigger). C’est affreux nan ?

Nan ? Mais si mais si .. rendez-vous compte, pour avoir le statut d’un appareil (lampe ou prise), il faut le demander au pont. AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH !!!! non ? Cela ne vous effraie toujours pas ?! Mais quand même, pour avoir le statut en temps réel (je déteste cette appellation qui a le bon gout d’être toujours fausse) il faut interroger en boucle le pont .. c’est à dire générer du trafic réseau, manger du CPU de raspberry .. nan nan nan cela ne va pas du tout.

C’est la raison pour laquelle j’ai voulu écouter sur le réseau zigbee dans l’espoir d’intercepter à la source le message qui dit “Lampe 1 ON”. Pitié, s’il y avait un autre moyen, ne me le dites pas ! 🙂

Fort de cette volonté j’ai fait quelques recherches et en grand radin que je suis j’ai arrêté mon choix sur un dongle équipé d’une puce texas instrument CC2531 dont voici la datasheet

https://www.ti.com/product/CC2531

On trouve le produit sur amazon à 30€ (https://www.amazon.fr/Zigbee-CC2531-Antenne-Bo%C3%AEtier-Coordinator/dp/B0843SL7WM) environ mais surtout, sur leboncoin à 10€ ..

Coté firmware, vu que je suis passé par leboncoin, je n’ai pas eu le choix > zboss

https://zboss.dsr-wireless.com/projects/zboss/wiki/What_is_ZBOSS

Pour les premiers tests, je suis passé par Windows. En effet, zboss propose un sniffer qui fonctionne sans rien faire dans cet environnement et, cela va nous être utile plus tard, Il faudra juste s’enregistrer. Il vous faudra le célèbre analyseur de paquets Wireshark qui est gratuit (et qui fonctionne sous Windows et raspberry).

Vous voila fin prêts .. mais si vous foncez comme je l’ai fait, vous allez, comme moi perdre du temps pour rien. En effet la première information à récupérer c’est le canal ZIGBEE que votre pont utilise !

Pour cela, il y a plusieurs moyens :

  1. sur l’application philips HUE de votre téléphone en allant dans le menu “Ponts Hue” puis en affichant les informations (petit “i” entouré à droite) puis tout en bas dans “Modification du canal Zigbee” >> sans le modifier bien sur, il est affiché.
  2. via l’utilitaire html qui intérroge l’API REST >> http://IPHUE/debug/clip.html : en mettant l’url /api/votreid/config vous obtiendrez une réponse commencant par : { “name”:”Pont Hue”, “zigbeechannel”:24, …. vous l’avez !
  3. via un curl depuis votre raspberry >> curl -s http://IPHUE/api/votreid/config | jq -r ".zigbeechannel"

Voila, on va pouvoir commencer.. La suite au prochain épisode

Hack SONOFF T4EU1C

Hack de l’interrupteur sans Neutre T4EU1C de SONOFF.

Description de la partie électronique

Le T4EU1C se compose de 2 parties reliées par un connecteur header 2×4 pins. (Récupéré sur le site SuperHouse.tv)

La partie commande avec le touch sensor pad et l’ESP8285 :

La partie 230V avec le relais et l’alimentation 1 fil AC-DC 230VAC/12VDC.

Reprogrammation avec le firmware Tasmota

Il s’agit de remplacer le firmware constructeur par un firmware Tasmota SONOFF basic tasmota.bin à récupérer ici :

https://github.com/arendst/Tasmota/releases/tag/v8.3.1

Utiliser l’outil FlashESP8266 basé sur une version de esptool pour programmer l’ESP8285, que l’on peut récupérer ici dans la release de ESPEASY ici (ou tout autre Flasheur, Tasmotizer …) :

https://github.com/letscontrolit/ESPEasy/releases/tag/mega-20200608

Préparation de la carte de commande :

Préparer la carte de commande avec 2 boutons poussoir qui agiront sur le Reset et GPIO0 (il est important d’utiliser des 2 boutons pour que le touch sensor pad fonctionne correctement au final).

Gratter la piste pour souder GPIO0, Reset sur R3 entre R3 et R4 et GND sur C21 côté plan de masse.

Souder un header 4 pin sur J1 pour le programmateur.

Programmation :

Copier le fichier tasmota.bin dans le répertoire bin du programme FlashESP8266.exe.

Lancer le programme FlashESP8266.exe.

Brancher le programmateur FTDI au PC, choisir tasmota.bin dans la liste à programmer et le port COM adéquat.

Débrancher le programmateur. Côté PC et le connecter côté SonOff.

Maintenir les 2 boutons poussoir.

Brancher le programmateur au PC.

Attendre 2s

Relâcher le Reset

Attendre 2s

Relâcher GPIO0

La programmation est lancée, attendre la fin.

Faire un Reset de la carte ou débrancher/rebrancher le programmateur pour relancer le SONOFF.

Dans la liste des réseaux WIFI, rechercher l’appareil portant un nom de SSID « tasmota_XXXXXX-####».

Connecter ce réseau.

L’interface de configuration de Tasmota est accessible à l’adresse 192.168.4.1

Configuration de Tasmota :

Renseigner ssid et password WIFI  perso.

Sauver et redémarrer le module 

Ouvrir la console Tasmota : 

Saisir une adresse IP fixe : 

Saisir : IPAddress1 192.168.11.xx 

Mise à l’heure : 

Saisir : TimeZone 99 

Sauver et redémarrer le module 

Configuration MQTT : 

Configuration Domoticz : 

Ouvrir Domoticz : 

Créer un nouveau Matériel – Dummy 

Récupérer le numéro Idx dans la liste Dispositifs. 

Configurer le HA bridge pour inclure le switch dans Alexa. 

Configurer Alexa pour insérer le switch dans les appareils Alexa. 

La domotique efficace ? mais qu’est ce que c’est ?

Après plusieurs mois d’existence, le blog tient enfin son titre : la domotique “efficace” .. super ! Mais qu’est ce que cela veut dire ?

Pour tout dire à la base mes attentes vis à vis de la domotique était d’avantage le coût au plus faible possible. Le titre aurait donc été “la domotique pour les radins”. Le truc c’est qu’en étant radin en argent, je me suis rendu compte, après plusieurs années, que :

  • les solutions “à pas cher” n’étaient pas toutes très fiables dans le temps
  • les solutions “sur l’étagère” permettaient parfois de gagner beaucoup de temps

Donc l’idée d’efficacité est désormais de trouver un juste milieux entre un prix raisonnable, un temps de “maintenance” raisonnable et une durabilité raisonnable. Une solution “efficace” pour moi est donc une solution qui dure dans le temps sans qu’on ait d’opération à faire et sans s’être ruiné. Avant d’écrire des articles plus concrets, voici un exemple concernant les sondes de températures.

Solution : WIFI ESP8266#1 nu avec DS18B20 >> pas efficace (pas cher mais pas fiable dans le temps et long à faire), pas fun car trop complexe mais intéressant pour entrer dans le sujet

Solution : WIFI ESP8266#12 sur devboard NodeMCU >> efficace et fun

Solution : RF433 Sonde Lacrosse ou Oregon avec RFXCOM >> pas efficace (Trop luxueux) et pas fun du tout.

Solution : RF433 Sonde Lacrosse ou Oregon et RFLINK >> efficace et fun

Domotiser la piscine – quand faut il laver votre filtre à sable ?

Je vous invite à faire la recherche et à noter la divergence des avis .. toutes les semaines, toutes les 2 semaines ? Certains disent même qu’il faut qu’un filtre soit “un peu sâle” pour bien fonctionner. Ok ok .. mais quand faut il le faire ?

Moi j’aime bien mesurer .. Alors j’ai mesuré : en l’occurence le courant consommé par la pompe. .. ou disons plutôt une proportion de courant car je ne mesure pas des ampères. Par ce que pour les amperes en fait c’est écrit sur la pompe : elle fait 750W et vu qu’elle est sur du 220V, ben on sait qu’elle consomme 3,4A chaque heure. Mais ce qui m’intéresse ce sont les variations .. Grâce à une bobine sur un capteur qui va bien, j’obtiens une valeur entre 0 et 1024. Quand elle est éteinte on a pas vraiment 0 et quand elle fonctionne on a qq chose autour de 570. Je pourrais filtrer un peu les données mais je n’ai même pas besoin.

mesure de courant – filtre propre

Quand on regarde les données après plusieurs jours (et années pour moi), on s’aperçoit d’un phénomène : plus le filtre s’encrasse, plus la pompe consomme. Et oui, c’est comme pour l’aspirateur (merci Benoit pour l’expérience), quand on le bouche il accélère (et consomme plus donc). Et c’est cela qui va nous être utile. La valeur qu’on mesure va en effet augmenter au fil des jours. Il suffit donc de définir une valeur seuil et de faire envoyer un mail quand on la lit (allez pour assurer le coup, on fera une petite moyenne pour éviter les phénomènes dispersés).

Voila ! Maintenant vous nettoyez votre filtre quand il faut. Des fois, il faudra le faire après 2j, des fois après 10. En passant, vous avez fait des économies : votre filtre pas encrassé votre pompe travaille moins, elle consomme moins et durera aussi plus longtemps !

Domotiser la piscine – partie 1 : la pompe

Avant toute chose, je ne saurais que trop vous déconseiller d’avoir une piscine, je vous préviens c’est beaucoup d’ennui. Bon, trop tard, vous avez fait la bétise et maintenant vous voulez vous facilitez un peu la vie et économiser un peu d’argent ? Alors voici le programme : 1 raspberry (pour changer), 1 sonde DS18B20, un relai 5V .. et c’est parti. Ah non j’oubliais il faut un peu vérifier qu’on fait ce qu’il faut donc il faut un capteur de courant (mais c’est pas obligé).

Tout d’abord, il faut commencer par prendre la température de la piscine, c’est la que la sonde entre en jeux. Et oui, la durée de pompage (et donc la facture d’électricité) dépend de la température.

Ensuite, il faut “domotiser” la pompe. On va juste mettre un relais 5V/220V 4A qui permettra au raspberry de piloter la pompe.

Ensuite ce n’est plus que de l’algorithmie de bas étage. L’idée étant de prendre la température, de diviser par deux et cela vous donner la durée de filtration. En passant vous en déduisez donc le cout journaliser de la pompe car vous connaissez sa puissance et le prix de l’électricité. Pour ma part l’algo est donc basique (efficace devrais je dire) : je fixe l’heure d’arrêt de la pompe à 22h. Je relève la température, divise par 2 pour obtenir le temps de filtration en heure et je le retranche à 22. J’obtiens l’heure de début.

Mon script sait donc entre quelle heure et quelle heure il doit fonctionner. Vu qu’il est lancé en cron toutes les minutes, il regarde à chaque fois quelle heure il est, quelles sont les conditions et il dit si, oui ou non, on active la pompe (le relais).

En écrivant cet article je m’appercois que c’est peut etre mieux de faire à l’envers. En effet, quand il y a le plus besoin de filtration, l’été, la température augmente dans la journée. Or mon script calcule la date de début donc il ne pourra pas augmenter la durée de pompage.

Il faut donc mieux définir l’heure de démarrage, disons 7h et calculer au fur et à mesure de la journée la date de fin. Si la température augmente il la repousse, si elle descend il la recule.

La mesure de courant dans la pompe permet de vérifier que la consigne est appliquée et de sévir le cas échéant .. ou en tout cas d’alerter .. Pour ma part, chaque soir je vérifie qu’elle a bien tourné le temps temps prévu (je mesure à 22h) et sinon je m’envoie un petit mail pour éviter que l’eau tourne. Je suis moins embeté depuis !

interagir avec les ampoules Philips Hue en HTTP (avec curl..)

Bon c’est vrai, Philips Hue c’est cher .. mais pour avoir testé par mal d’autres choses, il y a quand même deux avantages :

  • ca marche .. et ca marche bien. Ca fait simplement ce qu’on demande. L’appairage est facile, on peut appairer une ampoule à plusieurs télécommandes et plusieurs télécommandes à une ampoule .. finis les vas et viens ..
  • c’est documenté et bien documenté ! .. Donc tout ce que je vous dis la en fait vous le trouvez facilement ..

Reste donc plus qu’à traduire en curl pour faire les actions en scripts depuis votre raspberry. Vu que le pont hue va vous parler json, il est de bon ton d’installer jq, un utilitaire pour processer le json. Il faut aussi connaitre l’IP de votre pont hue ..

Avoir la liste des ampoules (et toutes les infos en fait) :

curl http://192.168.1.30/api/votreidavous/lights | jq -r

ou encore

curl http://192.168.1.30/api/votreidavous | jq -r “.lights”

avoir le nom de l’ampoule 8

curl http://192.168.1.30/api/votreidavous/lights/8 | jq -r ".name"

ou encore (celle ci j’ai mis du temps à la trouver)

curl http://192.168.1.30/api/votreidavous | jq -r “.lights.”8″.name”

avoir le statut (ON / OFF) de l’ampoule 8

curl http://192.168.1.30/api/votreidavous/lights/8 | jq -r ".state.on" | sed "{s/true/ON/;s/false/OFF/}

avoir la luminosité de l’ampoule 8

curl http://192.168.1.30/api/votreidavous/lights/8 | jq -r ".state.on"

Pour fixer les valeurs c’est un poil plus compliqué .. je pourrais expliquer si ca intéresse quelqu’un mais ca donne :

Pour éteindre (avec false sinon devinez ce qui se passe quand vous mettez true)

curl -X PUT http://192.168.1.30/api/votreidavous/lights/8/state -H "Content-Type: application/json" -d "{\"on\":false}"

Fixer la luminosité à 1 :

curl -X PUT http://192.168.1.30/api/votreidavous/lights/8/state -H "Content-Type: application/json" -d "{\"dim\":1}"

Raspberry – gérer les coupures (et redémarrages ..)

Votre raspberry vous rend bien des services, et il ne parait pas, mais il a besoin qu’on prenne un peu soin de lui. Enfin plus précisément, il a besoin qu’on prenne soin de la carte SD. En effet, les cartes SD aussi performantes soient-elles sont limitées en nombre d’écriture. Si vous ne faites rien, tôt ou tard, votre machine ne démarrera pas.

~1 : Premier tips pour Alain : pour qu’un script soit executé au démarrage : il y a plusieurs méthodes mais celle que je préfère (car tout est centralisé ainsi chez moi) en ajoutant une ligne dans la crontab :

Pour cela taper la commande :

crontab -e

Si c’est votre première fois, il faut choisir un éditeur > nano est le moins pire.

Entre ensuite la ligne puis faite CONTROL+X et y (ou o) pour dire oui à l’enregistrement.

@reboot /home/pi/atstart.sh

~2 : Il est bon d’éviter les coupures brutales. Pour cela, j’ai deux solutions. La première consiste à installer un shield qui gère les arrêt/démarrage du raspberry. Concrêtement c’est une carte qu’on branche sur le raspberry et qu’on alimente. Ce sera elle qui arrêtera le raspberry quand il n’y a plus de courant (un arrêt propre) et qui le démarrera. Et en cas de problème, c’est elle qui prendra.

On peut aussi installer une powerbank qui prendra le relais en cas de coupure, qui vous alertera, et qui permettra de faire un arrêt propre. Pour cela, je conseille, tant pour le prix que pour la facilité de mise en oeuvre : http://raspi-ups.appspot.com/en/index.jsp

~3 : la partie la plus pénible et subjective : éviter les écritures sur votre carte SD. Oui, oui. Pour votre scripts, c’est simple, il suffit d’utiliser /dev/shm (la mémoire vive) plutôt que /tmp (votre carte SD). Mais pour le système, il va falloir faire des choix. Par exemple, a-t-on besoin des /var/log/message d’il y a 2 ans ? 2 mois ? 2 jour ? d’avant le redémarrage ? Vous aurez compris, on peut dire au système de “monter” certains répertoires en mémoire vive et économiser ainsi un nombre important d’écriture. Mais les fichiers seront en mémoire vive donc perdu au prochain redémarrage. Affaire à suivr