Script virtmeter.php [GUIDA]

Discussioni relative al software di monitoraggio energetico METERN
Avatar utente
Flane
Messaggi: 2486
Iscritto il: 16/01/2016, 15:02

Re: Script virtmeter.php [GUIDA]

Messaggioda Flane » 05/12/2018, 17:04

megamarco83 ha scritto:come faccio a passare i valori a domoticz e lcd con questi due script senza dover rieseguire i pooler o virtmet o eflow?


Ti avevo già risposto sopra e allegato anche un esempio.
Devi prelevare le letture dai file temporanei creati da 123solar e/o MeterN.


megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

Re: Script virtmeter.php [GUIDA]

Messaggioda megamarco83 » 05/12/2018, 17:17

ciao Flavio si ti avevo anche io già risposto e ringraziato
viewtopic.php?f=4&t=2003&start=130#p7213
sono quindi quei due idx da passare a domoticz?
non è che abbia poi capito benissimo il meccanismo per poterno estendere a metern e riportare quindi i consumi, i prelievi, l'autoconsumo ecc ecc
ad ogni modo, a parte ciò, rimane il problema per quanto riguarda virtmet che mi genera nel csv valori "strani"
grazie ancora

Avatar utente
Flane
Messaggi: 2486
Iscritto il: 16/01/2016, 15:02

Re: Script virtmeter.php [GUIDA]

Messaggioda Flane » 05/12/2018, 19:07

Quello è solo un esempio che importa i valori di 123solar in domoticz. Personalizza tu quali valori ti interessano.
Per MeterN c'è da farsi uno script tipo questo .... ma è da fare... io in questo periodo non ti posso proprio aiutare ... sono preso fino ai capelli

megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

Re: Script virtmeter.php [GUIDA]

Messaggioda megamarco83 » 06/12/2018, 0:19

va bene, vediamo se riesce garluk a darmi una mano con virtmet che mi genera quei due problemi (tra l'altro solo su prelievi ed immissioni, l'autoconsumo funziona bene).... e se ha tempo e voglia con lo script per domoticz ed lcd :)

megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

Re: Script virtmeter.php [GUIDA]

Messaggioda megamarco83 » 14/12/2018, 10:10

Garluk ha scritto:Marco tranquillo.
I csv dovrebbero sistemarsi da soli al cambio giorno.

Che LCD hai usato e collegato?

ciao ho usato un OLED1306 ma puoi usare anche un lcd2004

ho cambiato lo script con cui inviavo i valori all'lcd ora leggo il json generati da metern
ho aggiunto anche il json per leggere i valori di temperatura dei sensori collegati ad espeasy con i nuovi FW che hanno json
riporto lo script se serve a qualcuno:)

per virtmet garluk quando puoi vediamo se riusciamo a sistemare anche per chi ha il meter produzione e consumi invertiti?
grazie!!

Codice: Seleziona tutto

#!/bin/sh
### lcd

curl -s http://192.168.0.195/control?cmd=oledcmd,clear
curl -s http://192.168.0.198/control?cmd=lcdcmd,clear


curl -s "http://192.168.0.195/control?cmd=oled,1,3,Via.Ancona"


# import live consumi
 x2=`cat /dev/shm/mN_LIVEMEMORY.json | python -c "import sys, json; print(json.load(sys.stdin)['Consumi1'])"`
curl -s "http://192.168.0.195/control?cmd=oled,2,2,Consumi+$x2+W"
curl -s "http://192.168.0.198/control?cmd=lcd,2,1,Consumi+$x2+W"


# import live produzione
 x1=`cat /dev/shm/mN_LIVEMEMORY.json | python -c "import sys, json; print(json.load(sys.stdin)['Produzione2'])"`
x4=`cat /dev/shm/mN_LIVEMEMORY.json | python -c "import sys, json; print(json.load(sys.stdin)['Immissioni4'])"`
curl -s "http://192.168.0.195/control?cmd=oled,3,2,Produz.+$x1+W"
curl -s "http://192.168.0.198/control?cmd=lcd,3,1,Prod+$x1+W%20Im+$x4+W"


# import live prelievi
x3=`cat /dev/shm/mN_LIVEMEMORY.json | python -c "import sys, json; print(json.load(sys.stdin)['Prelievi3'])"`
curl -s "http://192.168.0.195/control?cmd=oled,4,2,Prelievi+$x3+W"



# import live immissioni
x4=`cat /dev/shm/mN_LIVEMEMORY.json | python -c "import sys, json; print(json.load(sys.stdin)['Immissioni4'])"`
curl -s "http://192.168.0.195/control?cmd=oled,5,2,Immisio+$x4+W"


#importo temp MANSARDA e lo pubblico su LCD in corridoio
tMANS=`curl -s http://192.168.0.198/json?tasknr=3 | python -c "import sys, json; print(json.load(sys.stdin)['TaskValues'][0]['Value'])"`
hMANS=`curl -s http://192.168.0.198/json?tasknr=3 | python -c "import sys, json; print(json.load(sys.stdin)['TaskValues'][1]['Value'])"`
curl -s "http://192.168.0.195/control?cmd=oled,6,2,1P+$tMANS%20+$hMANS+%"


#importo accumulo solare
AC=`cat /dev/shm/mN_LIVEMEMORY.json | python -c "import sys, json; print(json.load(sys.stdin)['Temperatura Boiler11'])"`
curl -s "http://192.168.0.195/control?cmd=oled,8,2,Boiler:%20$AC+C"


miki8989
Messaggi: 299
Iscritto il: 22/01/2016, 6:39

Re: Script virtmeter.php [GUIDA]

Messaggioda miki8989 » 14/12/2018, 11:16

ciao Marco

stasera ti giro lo script per inviare i dati all'LCD

ciao

megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

Re: Script virtmeter.php [GUIDA]

Messaggioda megamarco83 » 14/12/2018, 11:26

miki8989 ha scritto:ciao Marco

stasera ti giro lo script per inviare i dati all'LCD

ciao

ciao miki, grazie!
hai visto quello che ho postato qui sopra?
è uno script sh con cui leggo i dati da json che crea metern e li mando all'lcd
adesso sto provando con domoticz a fare uno script con dzvents (lua) in modo che si importi direttamente i dati prendendoli anche lui da json in /run/shm

miki8989
Messaggi: 299
Iscritto il: 22/01/2016, 6:39

Re: Script virtmeter.php [GUIDA]

Messaggioda miki8989 » 14/12/2018, 15:42

si quelli che ho fatto e funziona da un pò fa tutte e due le cose
invia i dati a domoticz ed all'ldc

ciao

miki8989
Messaggi: 299
Iscritto il: 22/01/2016, 6:39

Re: Script virtmeter.php [GUIDA]

Messaggioda miki8989 » 15/12/2018, 11:30

ciao Marco

scusa il ritardo questo è lo script che uso per il mio sistema, invia i dati live sia a domoticz che all'LCD
logicamente devi personalizzare gli indirizzi

Codice: Seleziona tutto

#!/usr/bin/php
<?php
// LIVE
// Live (/dev/shm/mN_LIVEMEMORY.json)
//
// Produzione1      produzione   L1
// Consumi2      consumi      L2
// Prelievi3      prelievi   L3
// Immissioni4      immissioni   L4
// Autoconsumo5      autoconsumo   L5
// PdC6         pompa di calore   L6
// 1_piano7      1^ piano   L7
// 2_piano8      2^ piano   L8
// servizi9      servizi      L9
// Prelievi_F110   Prelievi_F1   L10
// Prelievi_F2311   Prelievi_F23   L11
// Bilancio            L12

// IMPOSTAZIONI LETTURA JSON
$url_live = '/dev/shm/mN_LIVEMEMORY.json';
$json_live = json_decode((file_get_contents($url_live)), true);

// LETTURA DATI
$L1 = $json_live['Produzione1'];
$L2 = $json_live['Consumi2'];
$L3 = $json_live['Prelievi3'];
$L4 = $json_live['Immissioni4'];
$L5 = $json_live['Autoconsumo5'];
$L6 = $json_live['PdC6'];
$L7 = $json_live['1_piano7'];
$L8 = $json_live['2_piano8'];
$L9 = $json_live['servizi9'];
$L10 = $json_live['Prelievi_F110'];
$L11 = $json_live['Prelievi_F2311'];
$L12 = $L2 - $L1;

// ARROTONDA A 2 CIFRE DECIMALI
// $L1 = number_format($L1, 1);      // con 1 arrotonda a 1 cifra decimale

// INVIO DATI A DOMOTICZ
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=1&nvalue=0&svalue=$L1"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=2&nvalue=0&svalue=$L2"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=3&nvalue=0&svalue=$L3"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=4&nvalue=0&svalue=$L4"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=5&nvalue=0&svalue=$L5"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=6&nvalue=0&svalue=$L6"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=7&nvalue=0&svalue=$L7"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=8&nvalue=0&svalue=$L8"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=9&nvalue=0&svalue=$L9"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=78&nvalue=0&svalue=$L10"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=79&nvalue=0&svalue=$L11"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=90&nvalue=0&svalue=$L12"));
//  pwm
// curl_exec(curl_init("http://192.168.0.192/control?cmd=PWM,"  ..PIN.. ",$PWM;
//  INVIO DATI A LCD
curl_exec(curl_init("http://192.168.0.192/control?cmd=lcd,1,1,Produz.+$L1+w"));
curl_exec(curl_init("http://192.168.0.192/control?cmd=lcd,2,1,Consumi+$L2+w"));
curl_exec(curl_init("http://192.168.0.192/control?cmd=lcd,3,1,Bilanc.+$L12+w"));
?>


il tutto lo metti in esecuzione nel crontab

Codice: Seleziona tutto

*/1   * * * * root   /var/www/MyScripts/live.php
*/1   * * * * root sleep 20;   /var/www/MyScripts/live.php
*/1   * * * * root sleep 40;   /var/www/MyScripts/live.php


in questo modo lo faccio girare ogni 20 secondi se ti necessita + o - cicli puoi personalizzare gli sleep

ciao

Garluk
Messaggi: 80
Iscritto il: 01/10/2017, 22:00

Re: Script virtmeter.php [GUIDA]

Messaggioda Garluk » 15/12/2018, 13:45

megamarco83 ha scritto:per virtmet garluk quando puoi vediamo se riusciamo a sistemare anche per chi ha il meter produzione e consumi invertiti?
grazie!!


Marco virtmet non ha bisogno di adattamenti. Sa quali sono i meter di produzione e di consumi dal tipo.


Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti