Script virtmeter.php [GUIDA]

Discussioni relative al software di monitoraggio energetico METERN
Avatar utente
TonyP62
Messaggi: 151
Iscritto il: 25/05/2016, 13:18

Re: Script virtmeter.php [GUIDA]

Messaggioda TonyP62 » 28/11/2017, 9:25

Sto analizzando il problema riscontrato da molti di noi nella nuova versione di VirtMeter e credo che i problemi possano essere molteplici.
In primis esiste sicuramente un problema di trasferimento del file zip sulla raspberry in quanto non si riesce a scaricare il file direttamente dal forum con WGET http://etc.etc . Lo ho scaricato da computer e trasferito sulla Raspy con samba, cosa che potenzialmente potrebbe aver corrotto il file originale.

In secondo luogo facendo ulteriori prove ho constatato quanto segue (sulla SolarJessie pura):
dando

Codice: Seleziona tutto

virtmeter 3 0 0 energy 0
bash: /usr/bin/virtmeter: /usr/bin/php^M: interprete errato: File o directory non esistente


mentre con

Codice: Seleziona tutto

php virtmeter.php 3 0 0 energy 0
3(4358736*Wh)


Quindi a parer mio è un problema legato al fatto che non trova il PHP.
La soluzione ideale sarebbe quella di definire una variabile nel file per indicare dove si trova il PHP perché il semplice #!/usr/bin/php in cima al file non è sufficiente ed inoltre il file virtmeter.php dovrebbe essere compresso con il tarball ossia in tar.gz e posizionato in una directory del sito scaricabile direttamente dalle nostre Raspy con WGET.
Spero di essere stato d'aiuto e chiaro nella spiegazione .


cosimo61
Messaggi: 45
Iscritto il: 20/11/2017, 14:32

Re: Script virtmeter.php [GUIDA]

Messaggioda cosimo61 » 28/11/2017, 12:18

TonyP62 ha scritto:In secondo luogo facendo ulteriori prove ho constatato quanto segue (sulla SolarJessie pura):
dando

Codice: Seleziona tutto

virtmeter 3 0 0 energy 0
bash: /usr/bin/virtmeter: /usr/bin/php^M: interprete errato: File o directory non esistente


Si tratta di una interpretazione errata dei caratteri di fine linea che nel file originale è settato come Windows anziché UNIX.
Si risolve aprendo il file con Notepad++ e dal menu Modifica - Converti carattere di fine linea - scegliere il comando UNIX.
A me così ha funzionato.

Avatar utente
TonyP62
Messaggi: 151
Iscritto il: 25/05/2016, 13:18

Re: Script virtmeter.php [GUIDA]

Messaggioda TonyP62 » 28/11/2017, 13:05

Grazie dell'aiuto cosimo61. Purtroppo non ho sistemi Windows. Come posso risolvere ?

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

Re: Script virtmeter.php [GUIDA]

Messaggioda miki8989 » 28/11/2017, 21:10

cosimo61 ha scritto:aprendo il file con Notepad++ e dal menu Modifica - Converti carattere di fine linea - scegliere il comando UNIX.


ho provato a farlo sul nuovo php ed l'opzione UNIX si illumina (è possibile settarlo)
con la vecchia versione, che non dà problemi, non è possibile settare UNIX

non è che fosse questo il problema??

domani appena l'inverter parte provo

ciao

Avatar utente
TonyP62
Messaggi: 151
Iscritto il: 25/05/2016, 13:18

Re: Script virtmeter.php [GUIDA]

Messaggioda TonyP62 » 29/11/2017, 22:04

Alla fine è stato facile convertire il file direttamente dalla Raspy.
E' bastato inserire il commando

Codice: Seleziona tutto

awk '{ sub("\r$", ""); print }' windows.txt > unix.txt
come suggerito dalla guida. ora non mi resta che trasferirlo su tutte le Raspy.

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

Re: Script virtmeter.php [GUIDA]

Messaggioda miki8989 » 02/12/2017, 12:53

ciao

sono riuscito a mettere mano a metern e virtmeter
confermo il funzionamento dopo aver "pulito" i caratteri fine linea come detto da cosimo61

come confermo una maggior utilizzo di cpu e memoria (circa 1%, misurato con domoticz in circa 30 minuti di funzionamento)
su questo, visto che con domoticz posso analizzare tutto il giorno, vorrei testare una settimana

grazie
Allegati
cpu.png
cpu.png (9.39 KiB) Visto 7951 volte
memoria.png
memoria.png (9.75 KiB) Visto 7951 volte

FaManY77
Messaggi: 74
Iscritto il: 24/10/2017, 12:20

Re: Script virtmeter.php [GUIDA]

Messaggioda FaManY77 » 04/12/2017, 17:25

Quando c'è il problema del carattere di fine linea per file editati da windows basta dare:

# apt-get install dos2unix
# dos2unix nomefile

Ed il file viene ripulito

Avatar utente
TonyP62
Messaggi: 151
Iscritto il: 25/05/2016, 13:18

Re: Script virtmeter.php [GUIDA]

Messaggioda TonyP62 » 06/12/2017, 14:02

Ho ripreso in mano la sperimentazione di VirtMeter, visto che adesso dopo la conversione Unix sono riuscito a farlo andare.
Volevo chiedere maggiori ragguagli a @Flane circa il fatto di usare VirtMeter al posto di poolerconsumi .
In pratica bisogna comunque lasciare che venga avviato il pool485 con gli appositi parametri e si deve settare VirtMeter come Elect - House Consumption e virtmeter 2 0 0 energy 0 su Command mentre su Live Command va messo virtmeter 2 0 0 power 0 . Dico bene ? Era questo il concetto ?

Volevo però segnalare che genera uno strano problemino in fase di avvio di meter che dopo però si stabilizza.
Ho provato da riga commando a dare virtmeter 3 0 0 impenergy 0 e mi restituisce:

Codice: Seleziona tutto

virtmeter 3 0 0 impenergy 0
PHP Notice:  Undefined variable: PASSO3 in /var/www/comapps/virtmeter.php on line 430
PHP Notice:  Undefined variable: PASSO3 in /var/www/comapps/virtmeter.php on line 574
PHP Notice:  Undefined variable: PASSO3 in /var/www/comapps/virtmeter.php on line 575
PHP Notice:  Undefined variable: PRECI3 in /var/www/comapps/virtmeter.php on line 695
PHP Notice:  Undefined variable: ID3 in /var/www/comapps/virtmeter.php on line 715
PHP Notice:  Undefined variable: UNIT3 in /var/www/comapps/virtmeter.php on line 715
(0*)


Sicuramente c'è un controllo da inserire nel codice sorgente, credo si possa fare con degli if & else, in maniera tale che se non trova i dati sui meter.json allora deve visualizzare solo il valore null ossia (0*) .

Avatar utente
TonyP62
Messaggi: 151
Iscritto il: 25/05/2016, 13:18

Re: Script virtmeter.php [GUIDA]

Messaggioda TonyP62 » 06/12/2017, 15:24

A tutti coloro che utilizza no gli SDM120C o SDM220C per misurare la produzione, potete verificare se spegnendo 123solar dal pannello di Admin , gli strani aumenti di utilizzo CPU diminuiscono drasticamente ?
Facendo un controllo con journalctl -r ho notato che il problema viene generato proprio da 123Solar

Codice: Seleziona tutto

dic 06 15:20:48 tonysolar sdm120c[30438]: Response timeout gave up after 200362us
dic 06 15:20:48 tonysolar sdm120c[30438]: ERROR (110) Connection timed out, 1/1, Address 30001 [0000]
dic 06 15:20:48 tonysolar sdm120c[30438]: sdm120c -a2 -b9600 -PN -w9 -2 -vpcfi -q /dev/ttyUSB0
dic 06 15:20:48 tonysolar sdm120c[30438]: parent: sh(30437)
dic 06 15:20:48 tonysolar sdm120c[30438]: sdm120c v1.3.5.3
dic 06 15:20:13 tonysolar sdm120c[29672]: NOK

e siccome sono ripetitivi ogni pochi secondi, questo fa aumentare drasticamente il carico CPU.

Edit:

Forse ho risolto prendendo spunto dal pooler485.sh .
Praticamente bastava aggiungere il parametro -z10 alla riga di commando per far cessare il problema.

Non so se anche da voi si presenta il problema legato all'utilizzo degli SDM come misuratori di produzione.
Praticamente con la nuova versione di 123solar non è possibile modificare il valore della porta (RS485) e questo costringe ad editare il file sdm120c.php all'interno dei protocolli (/var/www/123solar/scripts/protocols) modificando la riga in questo modo:

Codice: Seleziona tutto

$CMD_POOLING = "sdm120c -a2 ${'COMOPTION'.$invt_num} -z10 -w9 -j10 -2 -vpcfi -q ${'PORT'.$invt_num}";


Come vedete, in questa riga ho aggiunto il parametro -z10 a quella di default della SolarJessie.



Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti