Courant porteur (X10 et data) et linky = problème ?

Cela a fait beaucoup de bruit et on entends beaucoup parler .. j’aimerais donc apporter ma pierre à l’édifice : étant dans la domotique, je partais franchement pas conquis par le linky. En effet, j’avais déjà le relevé d’info (teleinfo) sur mon ancien compteur, je n’avais pas attendu pour controller notamment le signal Heure Pleine/Heure Creuse (qui est une fois par an, oups, pas envoyé). En plus, j’utilise à bloc le réseau par courant porteur : pour atteindre mon lointain garage ou encore pour piloter des appareils électriques. Donc à priori le linky = que des ennuis.

Coté réseau de données je ne vois pas d’influence du linky : le débit est mesuré par l’interface Tplink et il n’est pas moins bon qu’avant…

Coté réseau de pilotage, je ne vois pas d’influence du linky : tous les ordres transmis arrivent bien … 100%, comme avant quoi ..

Donc bon .. malgré un gros a priori, je dois bien reconnaitre que le linky ne m’apporte pas d’ennui. Je n’ai même pas eu à recabler ou refaire la carte teleinfo, elle fonctionne comme avant et en plus c’est le technicien qui a changé le compteur qu’il l’a rebranché.

Bref je valide 🙂

Pourquoi mesurer la luminosité ? Quelle(s) utilités ?

Bon déjà première réponse parce que .. oui c’est tout parce que .. ben oui c’est comme ca, ca m’amuse, c’est fun de pouvoir qu’aujourd’hui il ne fait pas juste beau ou très beau il fait 1023 en luminosité .. et que c’est presque le max ..

Bon voila blague à part, comment s’en servir ?

Pour ma part l’utilité majeure a été de mesurer le temps de fonctionnement de ma chaudière à gaz. Oui .. il y un œilleton qui permet de voir (ou non) la flamme.. et bien je me suis servi de cela pour venir y plaquer un capteur de luminosité. Pour cela j’ai utilisé une plaque de test d’esp8266 comme celle ci-dessous qui a déjà ce fameux capteur.

Pour des raisons pratiques, j’ai désoudé le composant et l’ai ressoudé au bout d’un long fil (je suis assez fier de moi malgré la médiocrité de la tâche). Ensuite, je suis venu plaqué (um um scotché en fait, oui je sais c’est pas très pro mais c’est chez moi) le capteur contre la vitre de l’œilleton. Le reste n’est qu’une simple capture de données avec un esp flashé avec espeasy (par exemple) et envoyé dans votre système de domotique (maison dans mon cas).

Le capteur étant plaqué (oui scotché c’est bon!) la lumière ne passe pas autrement dit la valeur est ridiculement petite la plupart du temps (50-100) … et des que la flamme s’allume oh magie .. ca monte nettement ..

J’ai donc post-traité (un grand mot pour rendre classe la suite) mes données en fixant un seuil à 200 : autrement dit je considère que la flamme est vraiment la si j’ai une valeur au dessus de 200 .. donc je remplace toutes les valeurs inférieures à 200 par 0, et toutes celles qui dépassent par un 1 ..

Confronté (voir article sur la domotisation de la chaudière) aux informations venant du relais piloté .. ca marche !!!

Domotiser un radiateur soufflant

Pourquoi faire ? Et bien je me disais que ca serait bien qu’il intégre son petit thermostat .. et oui j’ai envie que mon radiateur réfléchisse un peu et qu’il prenne ses responsabilité : 17 la nuit et 19 en journée.

Pour cela j’ai utilisé plusieurs solutions.

La première est à base de prise X10 .. kesako ? Ce sont des prises télécommandées par courant porteur. Il faut un émetteur qui est relié en RS232 (converti en USB) au raspberry et un petit logiciel sur le raspberry et hop la on peut commander des prises par une simple commande du genre : X10 A2 ON (ou A2 est l’identifiant de la prise).

Etant donné que mon raspberry récupère les températures dans toute la maison, il suffit alors d’un petit script qui regarde la température qui va bien et qui envoie la commande on ou off selon l’heure et la température.

Oui mais voila depuis on a fait mieux (moins cher en tout cas) : Pour cela je vous invite à voir l’article sur le hack du sonoff. Le principe est alors encore plus simple : on a une prise qui contient un ESP8266 qu’on vient flasher avec espeasy (par exemple) et auquel on vient ajouter une petite sonde de température (une dallas 18b20). Reste plus qu’à se connecter à la prise et lui dire d’actionner quand la température est trop basse. Mais en plus, le top, on peut actionner manuellement par le bouton en facade.

compteur d’eau domotisé .. utile ?

Dans ma lubie de vouloir maitriser ma consommation, et donc la comptabiliser, je n’ai pas résister à vouloir suivre ma consommation d’eau .. J’ai donc acheté un compteur d’eau “domotisé” à savoir avec un compteur d’impulsion .. Le principe est simple, quand l’aiguille passe devant l’aimant, cela génère un petit courant, une impulsion, qu’il “suffit de” comptabiliser..

Sur le principe, c’était parfaitement adapté à l’ESP8266 que j’ai muni d’ESPEASY .. facile, il y a déjà une entrée de type impulsion .. le tout envoyé en “http push” sur mon site .. super .. j’ai gagné !

Enfin presque ..

Assez vite je me suis appercu que j’avais des impulsions très souvent .. et parfois très très souvent ..

Qu’a cela ne tienne un petit tour chez mes ami Electronicien qui m’apprenne au passage ce qu’est un filtre : une capa et une résistance et hop, on est censé gommer les impuretés .. et c’est vrai qu’on en gomme ..

Pourtant j’avais toujours des impulsions parasite .. En cherchant longtemps j’ai compris le problème : quand l’aiguille est arrêtée devant le capteur et bien cela génère le petit courant, malgré le filtre (qui retarde le probleme) l’impulsion arrive ..

Donc conclusion, suivre votre consommation est à peu pres possible .. cela ne sera pas exact .. et si vous vouliez, comme moi, détecter des fuites et bien c’est tout à fait hors de propos.

Comment faudrait il faire alors ?

J’ai l’idée mais je ne l’ai pas encore implementée : en fait il faudrait un compteur avec non pas 1 capteur d’impulsion mais au moins 2, voire 3 et même pourquoi pas 4. Et on comptabilise l’impulsion (le tour) qu’une fois qu’on a les 4 impulsions qui se suivent. Si on a qu’une impulsion d’un meme capteur qui revient alors c’est un parasite ..

affaire à suivre …

Domotiser une chaudière ELM Leblanc : comptabiliser

Les chaudières Leblanc sont équipées d’une prise diagnostic mais le service client (qui est au passage d’une médiocrité à toute épreuve) refuse de donner la moindre information sur le format des données qui pourraient transiter .. on peut le comprendre (pas leur médiocrité mais leur discrétion) ..

Donc comment faire pour avoir une petite idée de la consommation .. J’ai bien dit une petite idée, je ne prétend pas ici faire un calcul exact .. ce n’est pas possible de calculer quand on a les yeux fermés et les bras attachés dans le dos ..

Mon idée est basée sur un constat : le chauffe eau chauffe de l’eau .. oui oui .. et il chauffe même des eaux .. soit de l’eau sanitaire, soit de l’eau de chauffage .. en réfléchissant d’avantage je me suis donc dit que si il chauffait l’eau on devait pouvoir mesurer la température de l’eau .. Alors comme je suis un peu tordu j’ai imaginé des systèmes compliqués avec une sonde immergée .. et puis un jour au travail, des gens dont c’est le travail ont présenté plusieurs moyens de mesurer la température d’un liquide dans un tuyau : parmi les systèmes testés l’un d’entre eux consistait à coller une sonde contre le tuyau .. en connaissant l’épaisseur du tuyau, les caractérisque du fluide, le débit .. on arrivait à avoir une valeur très précise de la température .. Alors banco, j’ai pris deux sondes DS18b20 et je les ai collées sur les deux tuyaux de sortie de la chaudiere .. Je passe les détails mais je les ai branchées sur mon raspberry.

On obtient alors deux jolies courbes .. super .. bon déjà on est content car cela reflète la réalité. Le chauffage n’est pas en route donc on ne voit pas de fluctuation sur le tuyau. Coté eau sanitaire, on voit bien à chaque fois qu’on fait appel à de l’eau chaude.

Le reste est très bête : je pourrais parler de dérivée mais pour faire simple je parcours la courbe point à point et je fais la différence entre la valeur actuelle et la valeur précédente. Si je vois que la température augmente de 2% je considère que la chaudière est en train de chauffer (et empiriquement ca colle vu que quand on est devant, on entend et on voit la flamme). j’en déduis donc un temps de fonctionnement.

Donc au final je m’arrête à la dernière donnée relativement fiable, un temps de fonctionnement…

C’est tout me direz vous ?

Non … on peut avoir une idée assez précise de la consommation de gaz dans mon cas parce que vu que la chaudière n’est lancée que sur des temps courts ou elle doit chauffer, elle ne fait pas de régulation. Chaque fois qu’on lui demande, elle allume la flamme et brule du carburant. (petit détour au passage : j’ai mesuré le temps d’allumage de la flamme grâce à un ESP8266 sur une devboard chinoise qui contient un détecteur de luminosité, et je confirme, la flamme est toujours la quand je commande à la chaudière de chauffer). Mais quelle quantité de carburant ? et bien cela dépend du “gicleur” et ca, ca tombe bien c’est une donnée constructeur. Par contre, le gicleur vous donne un débit en Litres par seconde .. mais, problème, votre quantité de gaz est en tonne. L’approche calculatoire est impossible à nous simples mortels, il faudrait en effet pouvoir connaitre la température du carburant, donc dans la cuve .. et il faudrait donc pouvoir convertir en direct vos volumes en kilos ..

Mon approche nécessite un peu plus de patience (mais elle est récompensée) : sur deux ans, j’ai relevé les temps de fonctionnement entre deux recharges. En regardant la facture j’ai obtenu le volume et le poids livré (et je l’ai payée aussi) et la donc (j’arrondis pour simplifier le calcul) :

année 1 : 800kg pour 80h de fonctionnement

année 2 : 400kg pour 40h de fonctionnement

ah ben tiens j’ai 60h de fonctionnement l’année 3 .. voyons donc .. 800 kg/80h, 400kg/40h .. ca ferait pas du 10kg/h ca ?! donc pour 60h je vais payer 600kg ? .. attendons .. ah ben oui ca a marché

10kg par heure donc .. oui mais moi je chauffe par tranche de 5 minutes … 10kg/60minutes ca doit donner 0.83kg pour 5 minutes …

Attendons encore une année maintenant mais a priori la marge d’erreur est de 5% .. quand on sait qu’une cuve vide est à 15% et une cuve pleine à 85% (oui oui véridique) on voit qu’on est pas à 5% près.

Quel modèle de sonde de température choisir ?

Ah ca c’est une question qu’elle est bonne .. toutefois une bonne réponse exige une bonne question et j’ai envie de commencer par : ca dépends. Mais ca serait trop facile .. alors voici plutot les critères que je prends en compte pour vous livrer ma réponse après 10 ans :

  • prix attractif
  • fiabilité
  • facilité d’installation

J’ai expérimenté pas mal de choses :

  • sondes 1-wire (à base de DS18b20) (filaire donc) connectée sur un hub puis avec un convertisseur RS232>USB sur le raspberry
  • sondes sans fil AREXX avec passerelle USB (connectée sur le raspberry)
  • modules ESP8266 équipés d’une sonde DS18b20 (ou DHT11 pour l’humidité)
  • sondes Oregon dont la trame est espionnée par rflink (carte arduino branchée en usb sur le raspberry

Le filaire c’est super, mais quand on construit sa maison et qu’on prévoit tous les fils. Si je construisais ma maison, je prévoierais une salle pour toute mon installation domotique .. mais bon avec des si .. donc bref, je ne retiens pas cette solution. Elle est toutefois utile à connaitre car on peut avoir des mesures a proximité du raspberry. Dans mon cas le raspberry est dans la chaufferie donc j’en profite pour prendre la température des conduits d’eau (et déduite ma consommation mais j’en parle dans un autre topic)

Les sondes AREXX sont également super.. C’est du sans fil et cela m’a grandement simplifié la vie .. mais c’est pas franchement fait pour tourner sous LINUX et il faut un module pour recevoir l’information .. à 25€ la sonde de température (ce qui est déjà pas mal) il faut ajouter encore quelques dizaines d’euros ..Et je ne connais pas de moyen d’avoir en plus un affichage de la température sur la sonde. Bref, je ne conseille pas.

En grand radin que je suis j’ai bien évidemment été attiré par les nombreux billets sur les nombreux blogs qui vantent l’ESP8266 et son capteur autonome à moins de 5€. Mouais .. J’en ai acheté une bonne vingtaine .. seul 1 est en vie après 1 an. La solution est donc, il est vrai, peu couteuse.. mais elle est assez peu robuste et demande beaucoup de temps (le nombre de fois ou la mise à jour du firmware plante). Pire, je n’ai jamais réussi à faire une sonde de température vraiment autonome : elles demandent toutes une alimentation 5V et un bon vieux cable pour être alimentées. J’ai bien sur essayé les piles, les batteries externes .. mais je n’ai jamais réussi à avoir une température pendant plus d’une semaine. Pour info, une sonde Arexx et Oregon produisent des données toutes les minutes pendant des mois .. DES MOIS. Bref, il faut acheter du bon matos, pas n’importe quel ESP8266, mettre le bon firmware .. et régler le deep sleep .. pas si simple .. il faut ensuite un écran adapté et le code qui va bien pour affciher la température … bref, à refaire ben, je ne le referais pas. En plus, si on regarde vraiment le prix tout mis bout à bout, je ne suis pas sur de faire mieux que les 15€ d’une sonde oregon. (mince j’ai trahis la conclusion)

Vous l’aurez compris mon choix se portent vers les sondes Oregon .. V1 ou V2 peu importe .. elles produisent toujours des trames propres .. durent dans le temps .. Elles indiquent dnas la trame si la batterie est OK ou non ..

Petit up 2020 : vu que les sondes Oregon sont désormais introuvables il m’a fallu revoir ma position et tester autre chose. Je me suis orienté vers les dondes “Capteur station météo TX3TH” .. 25€ pour deux (frais de livraison inclus) .. elles sont parfaites !

Sinon pour 15€ vous avez une sonde qui vous affiche la température .. (mais pas connectée)

La seule question à se poser dans ce cas est : est ce que j’achete le Rfxcom USB Transceiver (75€) ou est ce que je fais mon propre émetteur/Récepteur RF ? (25€) .. Pour ca je n’ai pas la réponse 🙂 .. Je vais quand même essayer de vous aider : faire vous même si vous êtes patients et curieux (et un peu radin en argent mais pas en temps) et que vous aimez maitriser exactement ce qui se passe, si vous êtes pressés le rfxcom est parfait.

PS : je le regrette mais je suis un penseur libre, je ne touche d’argent ni aucune forme d’avantage d’aucune marque.

Arexx et raspberry

Avant de m’intéresser à RFLINK je me suis équipé de sondes Arexx. POur cela il faut donc des sondes mais aussi le logger. Pendant longtemps le tout tournait, à merveille je dois dire, sous Windows.. oui mais voila j’ai voulu faire marcher la chose sur raspberry ..

Et bien la on se sent un peu seul voyez vous ..

Il faut télécharger un programme qui date de 2003 ..

http://www.arexx.com/downloads/templogger/linux/rf_usb_http_rpi_0_6.zip

Bien sur on l’installe et on lit le readme .. par chance le programme sait faire un appel http .. on va donc utiliser cela .. voici comment paramétrer le fichier rulefile.txt

Vrulefile
A1php push
B1
C0
E213.186.122.44/getdata.php
Zdata==arexx&&name==$i-$q&&value==$v&&type==$q

en première ligne, vous lui dites que vous faite du “push” php .. ensuite en 5 ieme ligne vous donner l’url de base sans préciser http:// mais avec un E devant

Enfin, après un Z, vous spécifiez les noms des variables et la valeur

dans mon cas donc l’url appelée serait

http://213.186.122.44/getdata.php?data=arexx&name=20242-0&value=12.6&type=hum

Ensuite il ne reste plus qu’à appeler le programme. Mais malheureusement ca ne marche pas, et il n’y aucune doc. Qu’a cela ne tienne, on va le gruger. J’appelle le programme et redirige la sortie standard dans un fichier, le tout pendant 30s.

sudo ./rf_usb_http.elf -v rulefile.txt > logfile < <(sleep 30;echo -e "\n")

Une fois la sortie récupérée je vais nettoyer tout ca et récupérer la partie qui m’intéresse et faire le curl moi meme.

cat logfile | grep GET | uniq | awk '{print $2}' >> tmp
while read -r line
do
        url="http://monsiteamoi$line"
        echo "curl sur $url"
        /usr/bin/curl --connect-timeout 1 --max-time 5  $url
done < tmp

Voila, c’est dégoutant mais ca marche …

J’en profite pour souligner que les sondes Arexx sont de super qualité. Je les utilise depuis 10 ans, j’en ai une qui cessé de vivre après être tombée, mais sinon elles sont super, les piles durent super longtemps.

Malheureusement, le protocol utilisé n’est pas décrypté par rflink .. ce serait un travail à faire … peut etre un jour .. cela permettrait de se passer de la passerelle usb.

Toutefois, si vous avez un rflink, cela ne fait pas le poids avec une sonde Oregon qui a le bon gout d’indiquer, dans la trame, le niveau de batterie..

Publier ses données de son raspberry sur son site

Comme déjà présenté, je n’ai pas opté pour domoticz puisque je veux accéder à mes données de l’extérieur. Pour autant je ne souhaite pas accéder de l’extérieur à ma maison ..

J’ai donc un site chez un hébergeur et une base mysql. C’est un prérequis.

Pour la suite, j’ai opté pour la simplicité : sur mon site j’ai un script getdata.php qui passe en argument le nom de la donnée et sa valeur

Ca donne ca :

<?php
//informations sur l'appelant
$vip=$_SERVER["REMOTE_ADDR"];
$vpays=$_SERVER["HTTP_X_FORWARDED_FOR"] ;
$vua=$_SERVER["HTTP_USER_AGENT"];
$vfr=$_SERVER["HTTP_REFERER"] ;
//récupération des données
if (isset($_GET['name']))$acquired_name=$_GET['name'];
else $acquired_name="UNKNOWN";
if (isset($_GET['value']))$acquired_value=$_GET['value'];
else $acquired_value="UNKNOWN";
if (($acquired_value!="UNKNOWN") && ($acquired_name!="UNKNOWN")) {
  insertValueInDb($acquired_name, $acquired_value);
}

Depuis le raspberry, à chaque lecture d’une valeur, quelqu’elle soit, le principe est toujours le même et cela tient en une commande (shell script)

/usr/bin/curl -s --connect-timeout 5 --max-time 10 http://monsiteamoi.com/getdata.php?name=Tcuisine&value=20.1

lire les trames RF avec RFlink depuis LINUX

RFlink est un super code qui décode à la volée les trame RF, les reconnait et les transmets .. à domoticz ..

Domoticz est un produit super … mais j’ai préféré m’en passer.

J’utilise pour ma part un script shell qui parse le fichier (oui sous LINUX l’arduino connecté en USB peut etre vu comme un fichier) et qui transmet les informations lues à mon site sur lequel un webservice REST tourne.

Pour commencer, comment paramétrer la lecture du “fichier” ou plutot du flux : on utilise pour cela la commande stty en lui donnant les bons paramètres

#8 data bits, 1 stop bit, no parity
/bin/stty -F /dev/ttyACM0 57600 sane -parenb cs8 -cstopb cread inlcr

Ensuite, on peut lire ou écrire, pour ma part je commande à désactiver le mode débug

echo "10;rfdebug=off;" >> /dev/ttyACM0

Enfin, on peut s’atteler à la lecture. Pour cela je fais une boucle infinie dans laquelle je vais décoder chaque ligne avec des awk. Cela permet de savoir quel type de trame on a (la variable what) et son la valeur de son id ..

/bin/cat /dev/ttyACM0 | while read line; do
  fullcontent=`/bin/echo ${line:4} | tr -d ' '`
  what=`/bin/echo $fullcontent | /usr/bin/awk -F";" '{print $2}'`
  id=`/bin/echo $fullcontent | /usr/bin/awk -F";" '{print $3}'`
  id=${id#ID=}
done

On suivra le meme principe en changement la commande pour récupérer, selon le type de trame, la température, la valeur du “switch”, de la commande, de la batterie .. Dans un prochain article je détaillerais comment, avec ce système, je récupère la valeur des sondes oregon ..

Hack de sonoff

Dans ce cas je voudrais asservir un appareil (de chauffage en l’occurence) à la température ambiante.

J’ai retenu le sonoff car il contient un ESP8266 qu’on peut donc “hacker”. Vous aurez sans doute trouvé avant ce blog le papier détaillé de https://projetsdiy.fr/hacker-prise-connectee-sonoff-s20-super-smart-plug-espeasy-rules/

Maintenant que vous avez tout acheté, tout fait .. faisons le marcher !

ESPEasy est merveilleux donc avez accès à votre prise radiocommandée et moyennant l’écriture d’une ou deux règles (que vous aurez la encore trouvé sur le net) cela fonctionne .. une fois .. deux … et la vous voyez qu’il y a un joli bouton, éclairé des fois .. alors vous le toucher.

Et voila, pour moi ca c’est arrêté la ! En effet dans la pratique cela se passe autrement malgré la qualité (toujours meilleure car je pars de loin) de mes soudures/connexions. Concrètement, il semble que le problème vienne du bouton mais il est utile. Et oui, vous peut être pas, mais votre femme voudra sans doute forcer le chauffage même si vous avez décidé que 25° c’est tout à fait suffisant pour une salle de bain et que vous avez coupé le relais .. A l’inverse, quand il fait déjà 35° le 15 Août et que je cherche plutôt du frais, j’apprécie de pouvoir couper le radiateur qui s’est déclenché (parce qu’on m’a obligé sous peine de divorce à le déclencher).

Donc voila le besoin : un relais qui est régit par :

  1. un système automatique qui applique le démarrage/arrêt selon des règles objectives.
  2. plusieurs systèmes manuels (humains ou assimilés) qui appliquent le démarrage/arrêt selon des règles subjectives.

Comment faire ?

Et bien ce que je peux dire c’est qu’il ne faut pas suivre les tuto qui ne prennent en compte que le premier point ..

pour la suite .. bientot !

Bref