Page 1 sur 1
Téléinformation EDF en script
Publié : 18 janv. 2016, 16:22
par pigloox
Bonjour,
Je débute avec Domoticz sur un RPi.
Je possède un stick USB Téléinfo et j'aurais aimais savoir si il était possible de :
-faire en sorte qu'au basculement HC/HP "réel" du compteur un switch dans Domoticz soit lui aussi basculé à ce moment plutôt que de se baser sur les heures ?
- avoir le retour d"information de la couleur du jour actuel ainsi que le lendemain, (valeurs lues par le stick)
Merci de m'aiguiller sur le meilleur moyen d'y arriver
Re: Téléinformation EDF en script
Publié : 18 janv. 2016, 21:26
par mulot35
Salut,
Je suis en compteur HP/HC je n'ai pas donnée a domoticz mais heures de permutation mais je suppose que lorsque le compteur HC augmente et que le compteur HP ne bouge plus il sais que je suis passé en HC.Ca c'est donc fait en automatique chez moi.
Pour les couleurs je ne sais pas
Re: Téléinformation EDF en script
Publié : 18 janv. 2016, 21:48
par patrice
Bonsoir
Pour la couleur du jour tu as une api chez Domogeek qui fait le boulot
http://easydomoticz.com/couleur-tempo-e ... -domoticz/
Si tu interroge l'API avec : /tempoedf/{now | tomorrow} tu obitiens pour ajourd'hui ou demain
ex
http://domogeek.entropialux.com/tempoedf/now
http://domogeek.entropialux.com/tempoedf/tomorrow
Re: Téléinformation EDF en script
Publié : 19 janv. 2016, 09:18
par vil1driver
Salut,
Pour la commutation d'un switch, comme le dit mulot35, ça peut se faire en regardant l'évolution du compteur..
Un script ici à adapter fait très bien l'affaire,
Juste ajouter la commande de switch après les print de passage en HC HP..
viewtopic.php?p=5851#p5851
Re: Téléinformation EDF en script
Publié : 19 janv. 2016, 15:48
par pigloox
mulot35 a écrit :Salut,
Je suis en compteur HP/HC je n'ai pas donnée a domoticz mais heures de permutation mais je suppose que lorsque le compteur HC augmente et que le compteur HP ne bouge plus il sais que je suis passé en HC.Ca c'est donc fait en automatique chez moi.
Pour les couleurs je ne sais pas
Ah ??? Chez moi Domoticz ne m'affiche qu'un seul compteur, de plus j'ai l'impression qu'il est erroné.
Tu as fait une manip particulière pour ça ? Car je devrais avoir 6 compteurs chez moi alors...
J'ai actuellement cette solution mais ça ne reflète pas toujours la vrai couleur du jour et parfois, EDF "oublie" de me basculer en HC ou se trompe dans les couleurs...
vil1driver a écrit :Salut,
Pour la commutation d'un switch, comme le dit oula, ça peut se faire en regardant l'évolution du compteur..
Un script ici à adapter fait très bien l'affaire,
Juste ajouter la commande de switch après les print de passage en HC HP..
viewtopic.php?p=5851#p5851
Je vais essayer de regarder de ce coté mais comme dit plus haut, dans la ligne de la téléinformation, Domoticz n'a l'air de voir que le compteur Bleu
Re: Téléinformation EDF en script
Publié : 21 janv. 2016, 19:39
par meumeu34
Bonjour
Effectivement Domoticz ne récupère pas toutes les données de conso des contrat tempo EDF par le Télé info USB.
Pour ma part j'utilise la solution de collecte et de visualisation de ces données via Highcharts (super classe je trouve

) telque décrit dans ce blog :
http://penhard.anthony.free.fr/?p=283.
A noter que ce n'est pas forcément trivial

mais le jeu en vaut la chandelle.
J ai ensuite créé des devices virtuels dans domoticz alimentés par des scripts shell qui récupèrent les infos (couleur du jour, du lendemain, conso puissance instantanée et HC/HP)directement dans la base de données mysql alimentée par la solution précédente ...
Sinon de manière plus simple si on ne veut pas la solution de visualisation, la seule solution de collecte des infos d alimentation des devices dans domoticz peut se faire avec un shell script exécuté régulièrement automatiquement.
Exemple de commande à scripter :
Code : Tout sélectionner
dd if=/dev/ttyUSB0 bs=512 count=1 iflag=fullblock 2>/dev/null | grep PTEC | tail -1 | awk '{ print $2}'
dd if=/dev/ttyUSB0 bs=512 count=1 iflag=fullblock 2>/dev/null | grep PAPP | tail -1 | awk '{ print $2}'
dd if=/dev/ttyUSB0 bs=512 count=1 iflag=fullblock 2>/dev/null | grep DEMAIN | tail -1 | awk '{ print $2}'
Re: Téléinformation EDF en script
Publié : 09 mars 2016, 21:25
par mulot35
pigloox a écrit :mulot35 a écrit :Salut,
Je suis en compteur HP/HC je n'ai pas donnée a domoticz mais heures de permutation mais je suppose que lorsque le compteur HC augmente et que le compteur HP ne bouge plus il sais que je suis passé en HC.Ca c'est donc fait en automatique chez moi.
Pour les couleurs je ne sais pas
Ah ??? Chez moi Domoticz ne m'affiche qu'un seul compteur, de plus j'ai l'impression qu'il est erroné.
Tu as fait une manip particulière pour ça ? Car je devrais avoir 6 compteurs chez moi alors...
J'ai actuellement cette solution mais ça ne reflète pas toujours la vrai couleur du jour et parfois, EDF "oublie" de me basculer en HC ou se trompe dans les couleurs...
vil1driver a écrit :Salut,
Pour la commutation d'un switch, comme le dit oula, ça peut se faire en regardant l'évolution du compteur..
Un script ici à adapter fait très bien l'affaire,
Juste ajouter la commande de switch après les print de passage en HC HP..
viewtopic.php?p=5851#p5851
Je vais essayer de regarder de ce coté mais comme dit plus haut, dans la ligne de la téléinformation, Domoticz n'a l'air de voir que le compteur Bleu
J'ai bien qu'un seul compteur de type "p1 smart meter" sous domoticz avec deux couleurs une pour mes HC une pour mes HP
et depuis la mise a jour stable v3.brouette j'ai meme la conso instantané alors que je n'ai pas de Papp.
Re: Téléinformation EDF en script
Publié : 25 mars 2016, 08:48
par ded38fr
Hello,
J'utilise un script pour envoyer ma consomation instantannée (en ampères) et la période EDF à Domoticz, via une variable utilisateur:
Code : Tout sélectionner
#!/bin/bash
##########################################################
# Script: send_teleinfo_to_domoticz.sh #
# Auteur: ded38fr #
# Version: 1.01 - 2015/02/26 #
##########################################################
# Description: #
# Envoi des informations recues du TeleInfo EDF a #
# domoticz (Intensite Instantannee par phase, mode de #
# tarification en cours (Heures pleines/Heures creuses #
##########################################################
# V1.01: Correction d'un probleme d'affichage de label #
# sur les variables IntensitePhase1 2 et 3 #
##########################################################
TeleInfoDevice=/dev/ttyAMA0
DomoticzJSONURL="http://127.0.0.1:8080/json.htm"
IDDomConsoInst=27
IDDomVarIPhase1=5
IDDomVarIPhase2=3
IDDomVarIPhase3=4
PIDFile=/home/pi/domoticz/ramfs/send_iinst_to_domoticz.pid
if test -f $PIDFile
then
echo "Another instance already running..."
exit 1
fi
echo $$ > $PIDFile
stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
### Lecture des informations envoyees par le TeleInfo EDF ###
echo -n "Lecture du TeleInfo EDF..."
Value=`head -36 $TeleInfoDevice |awk ' /IINST1/ { I1=$2 } /IINST2/ { I2=$2 } /IINST3/ { I3=$2 } /P
TEC/ { PTEC=$2 } END { print I1";"I2";"I3";"PTEC }'`
echo " OK."
### Memorisation des valeures recues par le TeleInfo ###
I1=`echo $Value|awk -F';' '{printf("%d",$1)}'`
I2=`echo $Value|awk -F';' '{printf("%d",$2)}'`
I3=`echo $Value|awk -F';' '{printf("%d",$3)}'`
PTEC=`echo $Value|awk -F';' '{print $4}'|sed s/[.]//g`
### Lecture et memorisation des valeurs des variables Domoticz ###
for i in `curl -s "$DomoticzJSONURL?type=command¶m=getuservariables"|jq --raw-output '.result
[] | {idx, Value}'|jq --raw-output '"\(.idx);\(.Value)"'|sed s/2\;/OldPTEC=/| sed s/3\;/OldI2=/| s
ed s/4\;/OldI3=/|sed s/5\;/OldI1=/ | grep -v ";"`
do
echo Lu $i
declare $i
done
### Affichage des informations trouvees ###
echo Informations trouvees
echo "I1=$I1 (Old $OldI1)"
echo "I2=$I2 (Old $OldI2)"
echo "I3=$I3 (Old $OldI3)"
echo "PTEC=$PTEC (Old $OldPTEC)"
### Envoi de la consomation instantanee par phase au capteur de mesure ###
echo Envoi des valeurs $Value a Domoticz pour le DeviceID $IDDomConsoInst
curl "$DomoticzJSONURL?type=command¶m=udevice&idx=$IDDomConsoInst&nvalue=0&svalue=$I1;$I2;$I3"
### Mise a jour des variables de Domoticz ###
if [ "$OldI1" != "$I1" ]
then
echo "Envoi de la mise a jour de la variable Intensite Phase 1"
curl "$DomoticzJSONURL?type=command¶m=updateuservariable&idx=$IDDomVarIPhase1&vname=In
tensitePhase1&vtype=0&vvalue=$I1"
else
echo "Pas de mise a jour Intensite Phase 1 a envoyer"
fi
if [ "$OldI2" != "$I2" ]
then
echo "Envoi de la mise a jour de la variable Intensite Phase 2"
curl "$DomoticzJSONURL?type=command¶m=updateuservariable&idx=$IDDomVarIPhase2&vname=In
tensitePhase2&vtype=0&vvalue=$I2"
else
echo "Pas de mise a jour Intensite Phase 2 a envoyer"
fi
if [ "$OldI3" != "$I3" ]
then
echo "Envoi de la mise a jour de la variable Intensite Phase 3"
curl "$DomoticzJSONURL?type=command¶m=updateuservariable&idx=$IDDomVarIPhase3&vname=In
tensitePhase3&vtype=0&vvalue=$I3"
else
echo "Pas de mise a jour Intensite Phase 3 a envoyer"
fi
# Si le tarif EDF a change, mise a jour de la variable PeriodeEDF (Heure creuses/Heures pleines)
if [ "$OldPTEC" != "$PTEC" ]
then
echo "Envoi de la mise a jour de la variable PeriodeEDF"
curl "$DomoticzJSONURL?type=command¶m=updateuservariable&idx=2&vname=PeriodeEDF&vtype=
2&vvalue=$PTEC"
else
echo "Pas de mise a jour PeriodeEDF a envoyer"
fi
rm $PIDFile
J'ai un abonnement triphasé, c'est pourquoi je récupère les 3 intensitées instantannées (ce qui me permet aussi de m'aider à équilibrer mes phases

).
Dans domoticz, j'ai ensuite un petit évenement pour basculer un switch.
J'airai pu basculer directement le switch via le script, mais cela me faisait faire une seconde requete http à Domoticz pour récupérer l'état de mon switch. J'avai choisi d'utiliser les évènements pour diminuer le nombre d'envoi d'URLs.
Il faudrait probablement refaire cela en lua, histoire de tout avoir à un seul endroit, mais je n'ai pas eu le temps de faire un script lua pour cela
Voici l'évenement blocky qui permet de basculer mon switch:
Si cela peut t'aider
A+,
Ded
Re: Téléinformation EDF en script
Publié : 25 mai 2019, 14:51
par manuloup
meumeu34 a écrit : 21 janv. 2016, 19:39
Exemple de commande à scripter :
Code : Tout sélectionner
dd if=/dev/ttyUSB0 bs=512 count=1 iflag=fullblock 2>/dev/null | grep PTEC | tail -1 | awk '{ print $2}'
dd if=/dev/ttyUSB0 bs=512 count=1 iflag=fullblock 2>/dev/null | grep PAPP | tail -1 | awk '{ print $2}'
dd if=/dev/ttyUSB0 bs=512 count=1 iflag=fullblock 2>/dev/null | grep DEMAIN | tail -1 | awk '{ print $2}'
Merci à toi, je viens de mettre à jour mon script, car j'utilisais teleinfuse pour cela, mais il ne fonctionne plus.
Du coup mon script fonctionne à nouveau
Manu