Téléinformation EDF en script

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
pigloox
Messages : 78
Inscription : 18 janv. 2016, 16:12

Téléinformation EDF en script

Message 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
Raspberry PI 3 & Raspbian 9 (Stretch) sur disque dur, Domoticz Beta Release,
RFX433E + USB Teleinfo + Zwave Stick
Modules Chacon DI-O, Fibaro, Qubino et sondes de températures
mulot35
Messages : 200
Inscription : 20 déc. 2014, 00:27

Re: Téléinformation EDF en script

Message 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
Raspi B+ avec Domoticz ,6 Chacon 2300W , 6 Sondes Oregon, 1 Sonde DIY Oregon ds18b20, Téléinfo sur photovoltaique, script backup ftp & anti offline.
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Téléinformation EDF en script

Message 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
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Téléinformation EDF en script

Message 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
Dernière modification par vil1driver le 19 janv. 2016, 19:01, modifié 1 fois.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
pigloox
Messages : 78
Inscription : 18 janv. 2016, 16:12

Re: Téléinformation EDF en script

Message 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
Raspberry PI 3 & Raspbian 9 (Stretch) sur disque dur, Domoticz Beta Release,
RFX433E + USB Teleinfo + Zwave Stick
Modules Chacon DI-O, Fibaro, Qubino et sondes de températures
meumeu34
Messages : 4
Inscription : 21 janv. 2016, 08:16

Re: Téléinformation EDF en script

Message 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}'
mulot35
Messages : 200
Inscription : 20 déc. 2014, 00:27

Re: Téléinformation EDF en script

Message 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.
Raspi B+ avec Domoticz ,6 Chacon 2300W , 6 Sondes Oregon, 1 Sonde DIY Oregon ds18b20, Téléinfo sur photovoltaique, script backup ftp & anti offline.
ded38fr
Messages : 6
Inscription : 23 janv. 2016, 09:17

Re: Téléinformation EDF en script

Message 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
manuloup
Messages : 781
Inscription : 18 févr. 2015, 13:05

Re: Téléinformation EDF en script

Message 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
Synology DS920+ avec VM Debian 12, Aeon Labs Z-Stick Gen5, Aeon Zwave et devices zwaves , Teleinfo USB, devices Zigbee, batterie Marstek Venus E, Shelly Pro 3EM...
Répondre