[Tuto] Compteur pellets pour poele Palazzetti
Publié : 20 déc. 2016, 23:28
J'ai modestement écrit un bout de code pour compter les pellets consommés par mon poele. Il s'agit d'un poele de marque Palazzetti modèle Lola. Il est possible de récupérer pas mal de données de l'appareil grâce à un boitier vendu par le fabricant et qui dispose d'une API très bien renseignée, détaillée sur ce forum dédié : http://palazzetti.lola.free.fr/forum/vi ... t=25#p2364
Mon serveur Domoticz se trouve sur un Raspberry Pi 3
Pré-requis : - Connection Box installée, connectée au réseau (au moins local)
Dans Domoticz :
Créer un compteur virtuel -> Réglages/Matériel : ajouter un périphérique virtuel (Dummy)
Sur ce matériel virtuel -> créer capteurs virtuels -> compteur (donnez le nom que vous voulez)
Il apparait dans la page des dispositifs, on peut y récupérer l'IDX (premier chiffre à gauche)
Sur le Pi via la console :
Installation de jq (je ne sais pas s'il existe une version windows)
Jq est un programme qui permet de filtrer et extraire des données : https://stedolan.github.io/jq/manual/
Sur le pi via Winscp ou la console :
Le script à copier ou vous voulez. Personnellement je ne l'ai pas mis dans le répertoire /home/pi/domoticz/scripts (Peut-être ai-je tord mais je me dis que c'est pour les scripts utilisés directement par domoticz). Je l'ai installé dans /home/pi
on rend le script exécutable :
on l'installe dans le crontab
J'ai mis une vérification toutes les 10 minutes, c'est rapide mais ça permet de voir les moments ou le poêle consomme le plus.
Lors de la première exécution chez moi le compteur a fait un bond, il est passé de 0 à 1539 Kg, forcément ça fait plus d'un an qu'il tourne...
Pour y remédier (je n'ai pas trouvé dans domoticz l'endroit ou l'on renseigne la valeur de départ du compteur) j'ai modifié la valeur directement dans la base de données.
Pour cela j'ai installé dans firefox l'extension SQL lite Manager : https://addons.mozilla.org/fr/firefox/a ... e-manager/
Comme indiqué dans ce sujet : viewtopic.php?t=250#p1645
On arrête Domoticz :
A l'aide de winscp on récupère la bdd en local sur le pc. On l'ouvre avec l'extension firefox.
Dans la liste des tables on cherche Meter_Calendar, on repère l'IDX dans la colonne DeviceRowId, puis on modifie la valeur value (soit on la mets soit à 0 soit à la même valeur que la suivante, ou autre chose à vous de voir!)
On renomme la base de donnée originale sur le Pi en .old, puis on colle la base modifiée.
On relance Domoticz :
Et voilà!!
Étant novice je suis sûr qu'il y a des choses à améliorer, n'hésitez pas à me faire vos remarques!!
Mon serveur Domoticz se trouve sur un Raspberry Pi 3
Pré-requis : - Connection Box installée, connectée au réseau (au moins local)
Dans Domoticz :
Créer un compteur virtuel -> Réglages/Matériel : ajouter un périphérique virtuel (Dummy)
Sur ce matériel virtuel -> créer capteurs virtuels -> compteur (donnez le nom que vous voulez)
Il apparait dans la page des dispositifs, on peut y récupérer l'IDX (premier chiffre à gauche)
Sur le Pi via la console :
Installation de jq (je ne sais pas s'il existe une version windows)
Jq est un programme qui permet de filtrer et extraire des données : https://stedolan.github.io/jq/manual/
Code : Tout sélectionner
sudo apt-get updateCode : Tout sélectionner
sudo apt-get install jqLe script à copier ou vous voulez. Personnellement je ne l'ai pas mis dans le répertoire /home/pi/domoticz/scripts (Peut-être ai-je tord mais je me dis que c'est pour les scripts utilisés directement par domoticz). Je l'ai installé dans /home/pi
Code : Tout sélectionner
#!/bin/bash
# On récupère la variable :
var_pellet=$(curl -s "http://IP_DU_POELE/sendmsg.php?cmd=GET%20ALLS" | jq '. | ."All Data".PELLET_QTUSED')
# La commande n'est pas très réactive, on attend 10 sec
sleep 10
# On envoi la variable vers le compteur domoticz :
curl -s "http://IP_DOMOTICZ:PORT/json.htm?type=command¶m=udevice&idx=IDX&svalue=$var_pellet"Code : Tout sélectionner
chmod +x nom_du_scriptCode : Tout sélectionner
crontab -eCode : Tout sélectionner
*/10 * * * * /home/pi/nom_du _scriptPour y remédier (je n'ai pas trouvé dans domoticz l'endroit ou l'on renseigne la valeur de départ du compteur) j'ai modifié la valeur directement dans la base de données.
Pour cela j'ai installé dans firefox l'extension SQL lite Manager : https://addons.mozilla.org/fr/firefox/a ... e-manager/
Comme indiqué dans ce sujet : viewtopic.php?t=250#p1645
On arrête Domoticz :
Code : Tout sélectionner
sudo service domoticz stopDans la liste des tables on cherche Meter_Calendar, on repère l'IDX dans la colonne DeviceRowId, puis on modifie la valeur value (soit on la mets soit à 0 soit à la même valeur que la suivante, ou autre chose à vous de voir!)
On renomme la base de donnée originale sur le Pi en .old, puis on colle la base modifiée.
On relance Domoticz :
Code : Tout sélectionner
sudo service domoticz startÉtant novice je suis sûr qu'il y a des choses à améliorer, n'hésitez pas à me faire vos remarques!!