SolarBuster 0.1 beta - TEST PRELIMINARE

Discussioni relative al software di monitoraggio energetico METERN
CDN75
Messaggi: 38
Iscritto il: 11/01/2019, 11:28

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda CDN75 » 21/05/2023, 18:48

Ciao, questo è il mio file:

Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}
// Manage com. apps daemon as 'http' user if needed

if (is_null($PID)) { // Stop Daemon
   exec("pkill -f pooler485 > /dev/null 2>&1 &");
   
} else { //Start
   exec("pooler485 2,6,7 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &");

}
?>


ma nella cartella dev/shm ci sono i seguenti files:

Codice: Seleziona tutto

123s_LIVEMEMORY.json
123s_MEMORY.json
consumi2.txt
consumi7.txt
mN_ILIVEMEMORY.json
mN_LIVEMEMORY.json
mN_MEMORY.json
produzione1.txt
ups.txt

tra l'altro non c'è quello del metern6, allego il mio file reqsdm.php

Codice: Seleziona tutto

#!/usr/bin/php
<?php

if (isset($_SERVER['REMOTE_ADDR'])) {
    die('Direct access not permitted');
}
if (!isset($argv[1])) {
   die("Abording: no valid argument given.\n");
      } elseif ($argv[1] == 'tensione') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_1\(" | grep "*V)"');
      } elseif ($argv[1] == 'corrente') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_2\(" | grep "*A)"');
      } elseif ($argv[1] == 'freq') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_3\(" | grep "*Hz)"');
      } elseif ($argv[1] == 'cospi') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_4\(" | grep "*F)"');
      } elseif ($argv[1] == 'cpu-temp') {
         $outstr =  exec('cat /sys/class/thermal/thermal_zone0/temp');
         $outstr = $outstr/1000;
         $outstr = "cpu($outstr*°C)";
      } elseif ($argv[1] == 'babbo-live') {
         $outstr =  exec('cat /dev/shm/metern6.txt | egrep "^6\(" | grep "*W)"');
      } elseif ($argv[1] == 'babbo-main') {
         $outstr =  exec('cat /dev/shm/metern6.txt | egrep "^6\(" | grep "*Wh)"');
                } elseif ($argv[1] == 'bat_ten') {
                        $outstr =  exec('cat /dev/shm/ups.txt | grep "*V)"');
                } elseif ($argv[1] == 'bat_cap') {
                        $outstr =  exec('cat /dev/shm/ups.txt | grep "*%)"');
   } else {
    die("Usage: reqsdm (tensione|corrente|freq|cospi|cpu-temp|babbo-live|babbo-main|bat_ten|bat_cap)\n");
   }
echo "$outstr";
?>


Ripeto che i contatori li leggo bene da terminale e riga di comando (sdm120c -a 2 -P N -b 9600 -j10 -z10 -w10 /dev/ ttyUSB0) ma i comandi lanciati in Metern non sembrano funzionare, cos'altro posso controllare?


fucimin
Messaggi: 41
Iscritto il: 15/02/2023, 9:01

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda fucimin » 21/05/2023, 19:46

La lettura dei contatori da terminale è slegata dalla configurazione di meterN, è per quello che leggi correttamente i contatori.

Il file config_daemon.php sembra ok.

Da quel poco che ne capisco, non mi torna il file reqsdm, manca la definizione del contatore #7 e quella del #6 mi sembra incompleta.

Nel pannello admin "Main" di mN, hai definito il contatore 6 e 7? (Number of meters & sensors?)
Idem per il pannello "Meters & Sensors" e poi anche gli "Indicators".

Però se qualcuno più esperto ha qualche suggerimento da darti, avanti pure :-)
Ti interesserebbe aumentare l'efficienza energetica della tua casa col fai da te? Allora dovresti visitare il sito: https://efficienzaenergetica.altervista.org/

CDN75
Messaggi: 38
Iscritto il: 11/01/2019, 11:28

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda CDN75 » 21/05/2023, 20:01

Grazie per la risposta. Scusami ma non capisco perchè mi dici che nel file reqsdm il contatore 6 che nella precedente mia configurazione funzionava...probabilmemente c'è qualcosa che non riesco a notare e che tu hai visto. Manca il contatore 7 perchè l'ho dovuto sostituire e mi sono quindi accorto che reqsdm non gestisce un offset del progressivo di lettura. Ho quindi fatto una copia del poolerconsumi.php chiamandolo poolerconsumiCond.php; ho poi scoprendo che Flane ha modificato il file originale e quindi è possibile usare il nuovo poolerconsumi.php indicando i contatori da "manipolare". In realtà è nel poolerconsumi.php che vedo che alla fine si fa riferimento ad un nuome file (sotto /deh/shm) chiamato consumi, ma non so se dipende da questo...

CDN75
Messaggi: 38
Iscritto il: 11/01/2019, 11:28

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda CDN75 » 21/05/2023, 22:51

se attivo il debug di metern mi rendo conto che ci sono problemi con eflow.php

Codice: Seleziona tutto

PHP Warning:  Undefined variable $housec in /var/www/comapps/eflowlive.php on line 95
PHP Warning:  Undefined variable $housec in /var/www/comapps/eflowlive.php on line 86
PHP Warning:  Undefined variable $housec in /var/www/comapps/eflowlive.php on line 104

e quindi penso di avere problemi con le comapps native della versione SolarBuster...
Chiedo al'utente fucimin se mi può far avere in qualche modo le sue comapps in modo da vedere le differenze...
Nell'aggiornamento della versione (secondo indicazioni di Jeanmarc) all'ultimissima versione forse non si sono aggiornate bene le comapps...
Comunque ho provato anche a semplificare reqsdm.php con solo le letture del contatore dei consumi (2) lasciando l'UPS e la cpu (che risultano funzionanti) ho quindi allineato le configurazioni di metern con i 5 misuratori standard base, e settando il file config_daemon.php con il solo contatore 2, ma il risultato non cambia; solo se forzo il file poolerconsumi.php facendogli scrivere metern.... allora viene scritto un file metern2.txt nella cartella /dev/shm ma chiaramente risulta non corretto, con valori a nulli...
Grazie per la collaborazione a chiunque possa darmi qualche dritta....

fucimin
Messaggi: 41
Iscritto il: 15/02/2023, 9:01

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda fucimin » 21/05/2023, 23:48

Ciao CDN75, in allegato trovi le comapps, tieni conto che la mia è l'installazione di solar_stretch, non ho idea se ci siano differenze con la solar_buster.
Nel mio caso, ho solo 2 contatori, il primo misura l'energia prodotta dall'inverter+batterie (impianto ad isola), mentre il secondo la corrente che prelevo dalla rete, entrambi i contatori vengono letti da 1 singolo adattatore rs485.
Tra i file allegati, l'unico che ho modificato è il file reqsdm (se vuoi c'è anche il backup per vedere le differenze).
Allegati
comapps.zip
comapps solar_stretch
(24.85 KiB) Scaricato 641 volte
Ti interesserebbe aumentare l'efficienza energetica della tua casa col fai da te? Allora dovresti visitare il sito: https://efficienzaenergetica.altervista.org/

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

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda Flane » 22/05/2023, 10:42

Se i software singolarmente funzionano sembrerebbe un problema di saturazione del bus quando attivi sia 123solar che Metern.

Hai forse aggiornato il software sdm120c o aurora ?

Perchè funzioni il sistema di gestione delle code sul bus (parametro -w) è necessario che i due software non vengano aggiornati ma rimangano le versioni già installate sull'immagine.

CDN75
Messaggi: 38
Iscritto il: 11/01/2019, 11:28

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda CDN75 » 22/05/2023, 23:26

Spero con i vostri suggerimenti di venirne a capo...
versione aurora 1.9.4 non l'ho aggiornato
versione sdm120c 1.3.5.4 non l'ho aggiornato
versione libmodbus 3.1.4 non l'ho aggiornato
versione PHP 8.2.6 si dovrebbe essere aggiornato con gli aggiornamenti del raspi...
MeterN 1.2.4.1 l'ho aggiornato seguendo la procedura manuale di jeanmarc
123Solar 1.8.4.5 l'ho aggiornato seguendo la procedura manuale di jeanmarc

In realtà i comandi (delle comapps) non sembrano funzionare bene.
Chiaramente i contatori con il comando sdm120c li leggo bene ma metern lancia comandi diversi...
Se ho capito bene /metern/config/config_daemon.php lancia il comando /comapps/pooler485.sh che a sua volta aggiorna i files /de/shm/meternX.txt
Il comando reqsdm.php è associato alla lettura del contatore dei consumi [id2, tensione, corrente...] la lettura della cpu, dell'ups e del contatore di mio padre (sdm120 id6),se lancio il comando da terminale per i due contatori non viene creato il file txt e quindi l'errore è che non trova il file txt che si aspetta di trovare, mentre lo stesso non vale per cpu e ups. Dentro metern, nella pagina indicators ovviamnete avviene lo stesso.
In metern il contatore dei consumi id2 viene letto con il comando poolerconsumi.php (quello aggiornato da Flane) ma questo non funziona!
Ho provato a modificare la riga 101:

Codice: Seleziona tutto

        file_put_contents("/dev/shm/consumi$metnum.txt", $str);

sostituendo consumi con metern, in questo caso funziona la creazione del file metern2.txt ma non genera letture corrette...siccome non ho mai messo mano a questo file e funzionava con la voce consumi anche in passato non penso che sia questo il problema...
Quello che noto è che il mio sistema non riesce a scrivere i file corretti sotto /dev/shm/meternX.txt

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

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda Flane » 23/05/2023, 10:08

Nelle ultime versioni per una falla di sicurezza segnalata in Metern nell'esecuzione di script esterni, Jean Marc ho aggiunto questo file di configurazione:

Codice: Seleziona tutto

meterN/config/allowed_comapps.php


Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}
// For safety reason, manually complete this data array to permit mN to use those commands
// Keep 'http' user file permission

//$ALLWDCMD[0] = 'houseenergy -energy';
//$ALLWDCMD[1] = 'houseenergy -power';
//$ALLWDCMD[2] = 'pooler -gas';
//$ALLWDCMD[3] = 'poolmeters gs';
//$ALLWDCMD[4] = 'pooler -water';
//$ALLWDCMD[5] = 'poolmeters ws';
//$ALLWDCMD[6] = 'pool123s -energy';
//$ALLWDCMD[7] = 'pool123s -power';
//$ALLWDCMD[8] = 'houseenergy -eimp';
//$ALLWDCMD[9] = 'houseenergy -powerimp';
//$ALLWDCMD[10] = 'houseenergy -eexp';
//$ALLWDCMD[11] = 'houseenergy -powerexp';
//$ALLWDCMD[12] = 'houseenergy -self';
//$ALLWDCMD[13] = 'houseenergy -powerself';
//$ALLWDCMD[14] = 'houseenergy -volt';
//$ALLWDCMD[15] = 'houseenergy -frq';
//$ALLWDCMD[16] = 'houseenergy -cos';
//$ALLWDCMD[17] = 'meterud -energy';
//$ALLWDCMD[18] = '';
//$ALLWDCMD[19] = '';
//$ALLWDCMD[20] = '';

?>


dove vanno sostanzialmente inseriti tutti gli script esterni che vengono eseguiti.
Penso che il problema sia quello

CDN75
Messaggi: 38
Iscritto il: 11/01/2019, 11:28

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda CDN75 » 23/05/2023, 20:02

Grazie Flane, in realtà avevo già percorso questa strada, e riesco quindi a "vedere" i comandi presenti nelle comapps. Il mio file allowed_comapps.php è questo:

Codice: Seleziona tutto

<?php
if(!defined('checkaccess')){die('Direct access not permitted');}
// For safety reason, manually complete this data array to permit mN to use those commands
// Keep 'http' user file permission
$ALLWDCMD[0] = 'houseenergy -energy';
$ALLWDCMD[1] = 'houseenergy -power';
$ALLWDCMD[2] = 'poolerconsumi 2 energy';
$ALLWDCMD[3] = 'poolerconsumi 2 power';
$ALLWDCMD[4] = 'pool123s energy';
$ALLWDCMD[5] = 'pool123s power';
$ALLWDCMD[6] = 'eflow whin';
$ALLWDCMD[7] = 'eflowlive whin';
$ALLWDCMD[8] = 'eflow whout';
$ALLWDCMD[9] = 'eflowlive whout';
$ALLWDCMD[10] = 'eflow selfc';
$ALLWDCMD[11] = 'eflowlive selfc';
$ALLWDCMD[12] = 'reqsdm babbo-main';
$ALLWDCMD[13] = 'reqsdm babbo-live';
$ALLWDCMD[14] = 'poolerconsumi 7 energy';
$ALLWDCMD[15] = 'poolerconsumi 7 power';
$ALLWDCMD[16] = 'reqsdm bat_ten';
$ALLWDCMD[17] = 'reqsdm bat_cap';
$ALLWDCMD[18] = 'reqsdm tensione';
$ALLWDCMD[19] = 'reqsdm corrente';
$ALLWDCMD[20] = 'reqsdm cospi';
$ALLWDCMD[21] = 'reqsdm freq';
$ALLWDCMD[22] = 'reqsdm cpu-temp';
$ALLWDCMD[23] = 'poolerconsumiCond 7 energy';
$ALLWDCMD[24] = 'poolerconsumiCond 7 power';
?>

Proprietario e gruppo www-data, permessi con ottale 0644, come per gli altri files presenti nella cartella metern/config (la cartella config ha i permessi con l'ottale 0755)
Cartella /var/www/comapps ed i files al suo interno hanno proprietario e gruppo www-data ed i permessi con l'ottale 0755)
Faccio le varie prove con i files *.php tramite WinSCP, le salvo e vado sulla finestra Metern (e quindi dal browser) per vedere gli effetti, chiaramente nel test dei comando metern si ferma di default e quindi uscendo dalla schermata admin devo riavviarlo, ma non faccio riavvi del raspberry, penso non sia necessario...
Vedo comunque che nell'esempio del file allowed_comapps.php che hai citato non vedo eflow.php ed eflowlive.php come indicato storicamente nel'ottimo wiki nelle impostazioni standard, penso comunque che debbano funzionare almeno che non siano andate in conflitto con l'ultima versione...Ance provando poolerconsumi.php vecchia versione (non modificata da Flane) gentilmente fornitami il risultato non cambia, non mi funziona la creazione dei file di lettura sotto la cartella /dev/shm
Gli unici comandi che funzionano sono:
pool123s.php
reqsdm bat_ten
reqsdm bat_cap
reqsdm cpu-temp
con il comando sdm120c leggo i tre contatori presenti nel mio sistema ( -a X -P N -b 9600 -j10 -z10 -w10 /dev/ttyUSB0) con X pari ai tre indirizzi)
Quindi adesso loggo il fotovoltaico ma non Metern dei consumi e tutto ciò che serve...

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

Re: SolarBuster 0.1 beta - TEST PRELIMINARE

Messaggioda Flane » 24/05/2023, 16:02

Io non ho ancora aggiornato proprio perchè non avevo tempo per sistemare i problemi che avrei incontrato proprio per questa novità.

Se non vengono creati i file di lettura dei contatori in /dev/shm, ho idea che nei comandi consentiti si debbano mettere anche i comandi di lettura dei contatori richiamati tramite config_daemon all'avvio di metern (o solo il pooler485 o propri i comandi pe esteso di ogni contatore)

PS: se usi la mia configurazione non credo che usi lo script houseenergy di JM, devi mettere gli script che usi tu


Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti