Une discussion sur le forum dont la magnifique réponse à été donné par jackslayter m’a incité à reprendre en partie les propos échangés pour cet article.
La finalité était de récupérer le tarif Tempo EDF en cours (bleu,blanc,rouge) pour piloter les radiateurs électriques, et éviter les casse têtes :
La couleur Tempo d’aujourd’hui et demain est mise à disposition grâce à domogeek.entropialux.com (entre autres choses, mais nous y reviendrons tellement l’outil et l’idée sont pratiques pour de la domotique)
Au final le scénario est celui ci :
Création d’un switch virtuel, interrogation via script bash de l’api, si le tarif est bleu alors passe le switch à On ce qui permettra de piloter nos équipements puis mise en place du script dans un crontab pour interrogation régulières.
1 – Création d’un switch virtuel.
Depuis l’onglet « Matériel » , ajoutez un Interrupteur.
Dans l’onglet des périphériques cliquez sur la flèche verte, nommez le, puis notez l’IDX de cet équipement.
2 – Interrogation du tarif Tempo.
Dans le dossier domoticz/scripts créons un script nommé edftempo.sh
sudo pico domoticz/scripts/edftempo.sh
[codesyntax lang= »bash » lines= »no »]
#!/bin/bash
tempo=$(curl -s http://domogeek.entropialux.com/tempoedf/now)
if [ $tempo = "bleu" ]; then
curl "http://192.168.1.81:8080/json.htm?type=command¶m=switchlight&idx=101&switchcmd="On"&level=0"
else
curl "http://192.168.1.81:8080/json.htm?type=command¶m=switchlight&idx=101&switchcmd="Off"&level=0"
fi
[/codesyntax]
Changez ici l’IP de Domoticz et le IDX de votre switch virtuel suivant votre config.
un chmod +x sur le fichier puis l’exécution de ./edftempo.sh doit faire basculer l’état du switch virtuel à On si la journée est bleue sinon on reste à Off.
<digresssion>
On peut aussi récupérer les tarifs EJP par zone
/ejpedf/:zone/:date/:responsetype
Example usage:
curl http://domogeek.entropialux.com/ejpedf/nord/today
curl http://domogeek.entropialux.com/ejpedf/sud/tomorrow
curl http://domogeek.entropialux.com/ejpedf/paca/today/json
Les régions sont {nord|sud|ouest|paca} : 1 seule à la fois !!!
on a today ou tomorrow pour les jours
Le retour est False nous ne sommes pas en EJP pour la date demandée
et True quand nous sommes en EJP
Le script bash ci-dessous pourra être modifié pour tenir compte de l’EJP
</digression>
3 – Pilotage des équipements liés
Plusieurs méthodes pour déclencher les radiateurs sont possibles
Soit :
- Un script blocky qui pilote un groupe de dispositifs en se basant sur l’état du switch virtuel.
- Soit pilotage direct via le script,
ajoutez autant de lignes que d’équipements à piloter à l’intérieur du if $tempo=bleu en indiquant les idx des radiateurs, supprimez les lignes else et curl, au final on a:
#!/bin/bash
tempo=$(curl -s http://domogeek.entropialux.com/tempoedf/now)
if [ $tempo = "bleu" ]; then
curl "http://192.168.1.81:8080/json.htm?type=command¶m=switchlight&idx=67&switchcmd="On"&level=0"
curl "http://192.168.1.81:8080/json.htm?type=command¶m=switchlight&idx=68switchcmd="On"&level=0"
curl "http://192.168.1.81:8080/json.htm?type=command¶m=switchlight&idx=69&switchcmd="On"&level=0"
fi
4- crontab
un crontab -e puis placer cela qui se lancera tous les jours à 00h 10 minutes
10 00 * * * sudo /home/pi/domoticz/scripts/edftempo.sh 2>&1 >> /dev/null