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...
patrice a écrit :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
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 8-) ) telque décrit dans ce blog :
http://penhard.anthony.free.fr/?p=283.
A noter que ce n'est pas forcément trivial :shock: 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...
patrice a écrit :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
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&param=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&param=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&param=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&param=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&param=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&param=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 :D ).

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:
Image

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 :D

Manu