Script lua : compteur

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Répondre
davidmarli
Messages : 27
Enregistré le : 19 janv. 2016, 14:54

Script lua : compteur

Message par davidmarli » 11 oct. 2019, 08:01

Bonjour,

nous avons fait récemment installé des panneaux photovoltaiques.
Depuis l'onduleur, je me suis fait un script .sh sur le raspberry, dans lequel je stocke toutes les heures la production en kw et l'heure du relevé. (je stocke les valeurs dans un fichier différent tous les jours (Prod_horaire_2019-10-09.txt, par exemple pour la prod du ç octobre.)

J'aimerais afficher un compteur dans domoticz qui m'affiche la valeur du dernier relevé voire avoir le graphique journalier.

Quelqu'un peut-il prendre un moment pour m'expliquer comment faire avec un script lua ?
J'ai crée un dummy dans domoticz, puis un compteur. Il me semble que c'est lui qu'il faut renseigner, mais je ne sais comment faire ...

Je vous remercie par avance pour votre aide.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


DreamL
Messages : 71
Enregistré le : 20 janv. 2017, 20:03

Re: Script lua : compteur

Message par DreamL » 11 oct. 2019, 11:13

Bonjour
Je pense que tu n'as pas besoin d'un script lua pour ce que tu veux faire.

Il suffit d'utiliser l'api json de domoticz.
Ca me parait beaucoup plus simple.
Dans ton script shell, tu ajoutes une commande curl avec l'url qui correspond a ton device.

ex
curl "url_domoticz/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=POWER;ENERGY"

La doc bien faite en francois
https://easydomoticz.com/traduction-fra ... -domoticz/
ou l'original
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s

cordialement
Domoticz 3.7115, raspberry pi3, (raspbian jessie).
rfx433 (Rfxcom) : sonde innovaley, 1wire (DS9490R) : DS2406 & DS18B20, Zwave (Stick G5) : fgms-001,fgsd-002,zw080.

davidmarli
Messages : 27
Enregistré le : 19 janv. 2016, 14:54

Re: Script lua : compteur

Message par davidmarli » 11 oct. 2019, 22:17

Merci bp. Effectivement c'est simple.
En revanche cela ne fait pas tout à fait ce que je voudrais.

Pour l'instant mon script .sh, récupère les données de production des panneaux solaires en cumulé heure par heure.
Du coup j'ai par exemple :
8h00 : 17000
9h00 : 18500
10h00 : 19000
etc ...

Je voudrais que qd le compteur est actualisé toutes les heures, je puisse avoir un graphique heure par heure de la production horaire : 8h00-->9h00 1500; 9h00-->10h00 : 500 ...

Du coup j'ai essayé un counter, un energy counter et un managed counter, mais j'ai l'impression que je ne peux avoir de graph ...

Merci pour votre aide.

DreamL
Messages : 71
Enregistré le : 20 janv. 2017, 20:03

Re: Script lua : compteur

Message par DreamL » 11 oct. 2019, 22:55

normalement tu dois pouvoir le faire.
Je fais un peu la même chose avec mon chauffe eau.

J'utilise cette url (c'est en python)
url = domoticz_url+'/json.htm?type=command&param=udevice&idx=510&nvalue=0&svalue=0;'+str(val_cosy)

En pj mon dispositif
et le résultat
Fichiers joints
Annotation 2019-10-11 224915.png
Annotation 2019-10-11 224915.png (319.24 Kio) Vu 314 fois
Annotation 2019-10-11 224732.png
Annotation 2019-10-11 224732.png (54.07 Kio) Vu 314 fois
Domoticz 3.7115, raspberry pi3, (raspbian jessie).
rfx433 (Rfxcom) : sonde innovaley, 1wire (DS9490R) : DS2406 & DS18B20, Zwave (Stick G5) : fgms-001,fgsd-002,zw080.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


davidmarli
Messages : 27
Enregistré le : 19 janv. 2016, 14:54

Re: Script lua : compteur

Message par davidmarli » 12 oct. 2019, 06:45

Merci pour ces infos.

Du coup tu as pris quel type de counter ?
De plus dans ta ligne json, nvalue, svalue et val_cosy correspondent à quoi ?

svalue : conso instantannée ?
val_cosy : conso totale ?

Merci.

denis_brasseur
Messages : 264
Enregistré le : 24 déc. 2018, 17:05
Localisation : (26)

Re: Script lua : compteur

Message par denis_brasseur » 12 oct. 2019, 13:18

davidmarli a écrit :
12 oct. 2019, 06:45
Merci pour ces infos.

Du coup tu as pris quel type de counter ?
De plus dans ta ligne json, nvalue, svalue et val_cosy correspondent à quoi ?

svalue : conso instantannée ?
val_cosy : conso totale ?

Merci.
La doc bien faite en francois
https://easydomoticz.com/traduction-fra ... -domoticz/
Électricité (instantané et compteur)
/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=POWER;ENERGY
IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
POWER = Puissance actuelle consommée.
ENERGY = cumul en Watt-heures (Wh) (c’est juste un « compteur virtuel », tous les cumuls doivent être faits par VOUS)
Domoticz + Raspberry Pi3 + Disque Dur PiDrive + RFXtrx433
10 Getdio 54755 (gestion chauffage)
2 CHACON 34131 (détecteur fumées)
5 Bresser Capteur thermo/hygro RC 5CH
2 CHACON DiO 54781 (contacteur porte)
OWL Micro+ CM180
Module D2L LINKY

davidmarli
Messages : 27
Enregistré le : 19 janv. 2016, 14:54

Re: Script lua : compteur

Message par davidmarli » 13 oct. 2019, 19:56

Bon, je suis désolé je reviens à la charge ...
Le script suivant fonctionne bien
#!/usr/bin/python
import urllib,os
import xml.etree.ElementTree as ET
import urllib2
the_location = "/var/tmp/"
urllib.urlcleanup()
url="http://192.168.1.243/yields.xml"
dest=the_location + "yields.xml"
monurl = urllib.urlretrieve(url,dest)
with open("/var/tmp/last_hour_total.txt") as fic :
for line in fic :
val = line[0]
with open(dest) as f :
for line in f :
if line.find('YieldValue') != -1:
index = line.find('YieldValue') + 18
pos2 = line.find(' TimeStamp')
s = line[index:pos2-1]
if line.find(' DateTime=') != -1:
index = line.find(' DateTime') + 11
pos2 = index + 11
heure = line[index:pos2-1]
heure2 = line[pos2:pos2+8]
print the_location + "Production_horaire_" + heure + ".txt"
prod_hor = int(s) - int(val)
print(prod_hor)
fic = open("/var/tmp/last_hour_total.txt",'w')
fic.write(s)
fic.close()
fichier = open(the_location + "Production_horaire_" + heure + ".txt","a")
fichier.write(s + "\n")
#fichier.write(heure + "\n")
fichier.write(heure2 + "\n")
fichier.close()
ENERGY = s
adress = "http://192.168.1.159:8080/json.htm?type ... ";"+ENERGY
r = urllib.urlopen(adress)
Oui, je sais le script est pas optimisé au top, mais bon ...

Si je lance le script pas de soucis, domoticz s'actualise, le compteur fonctionne à merveille.
MAIS en mettant la même commande dans le crontab, rien ne se passe :

*/10 * * * * sudo python /home/pi/domoticz/scripts/piko_heure_mp.py

Chez moi je ne vois pas comment lancer l'url avec CURL ...

PS : je vois que si je fais sudo crontab -e ou crontab -e (sans sudo) j'ai deux fichiers différents ...
Moi j'ai rempli sudo crontab -e. Ce n'est peut-être pas le bon ?

Merci.

DreamL
Messages : 71
Enregistré le : 20 janv. 2017, 20:03

Re: Script lua : compteur

Message par DreamL » 14 oct. 2019, 09:42

Salut
Moi je me suis fait un script shell "cosytouch.sh" qui lance mon scrypt python

Code : Tout sélectionner

LOGFILE="/home/pi/domoticz/scripts/cosytouch.log"

DATE_DEBUT=`date +%d-%m-%Y`
H_DEPART=`date +%H:%M:%S`
echo 'Debut cosytouch.sh ' $DATE_DEBUT $H_DEPART >> $LOGFILE
python /home/pi/domoticz/scripts/cosytouch.py >> $LOGFILE
DATE_FIN=`date +%d-%m-%Y`
H_FIN=`date +%H:%M:%S`
echo 'Fin cosytouch.sh ' $DATE_FIN $H_FIN >> $LOGFILE
echo '=====' >> $LOGFILE
Ensuite dans le crontab -e

Code : Tout sélectionner

#Recupere les informations du chauffe eau cosytouch
*/10 * * * * /home/pi/domoticz/scripts/cosytouch.sh
Domoticz 3.7115, raspberry pi3, (raspbian jessie).
rfx433 (Rfxcom) : sonde innovaley, 1wire (DS9490R) : DS2406 & DS18B20, Zwave (Stick G5) : fgms-001,fgsd-002,zw080.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre