Pagina 18 di 25

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 17/05/2020, 17:46
da metus
Flane ha scritto:E' stato rimosso erroneamente da Garluk, ne io ne lui ne abbiamo una copia ed ho più volte chiesto a chi lo avesse a suo tempo scaricato se poteva condividerlo, ma nessuno si è fatto vivo.

Tutti bravi a chiedere ma quando poi si chiede loro qualcosa ...... nessuno si fà vivo. :(


Ora ricordo!!! L'avevo letto nella discussione ma ho fatto il mio impianto quando quel file già mancava... quindi non posso aiutarvi. Mi spiace...

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 17/05/2020, 18:33
da megamarco83
Flane ha scritto:E' stato rimosso erroneamente da Garluk, ne io ne lui ne abbiamo una copia ed ho più volte chiesto a chi lo avesse a suo tempo scaricato se poteva condividerlo, ma nessuno si è fatto vivo.

Tutti bravi a chiedere ma quando poi si chiede loro qualcosa ...... nessuno si fà vivo. :(

mannaggia che sfortuna! :(
ma quindi permettimi di capire, senza il protocollo di trasmissione con monitor, 123solar non si può usare con monitor.
ad ogni modo io volevo usarlo solo perchè ha mqtt a bordo e potrebbe essere interessante
se metern avesse la possibilità di comunicare con una comapp con mqtt sarebbe fantastico per integrarlo facilmente in qualsiasi cosa. provo a sentire JM è sempre disponibile e cordiale, magari lo implementa :D

EDIT: ma mantenere il protocollo sdm120 per 123solar e monitor per metern?
potrebbe andare o si pestano i piedi?
io ho un sdm120 con indirizzo1 per i consumi su meter1 ttyusb1
sdm120 con indirizzo1 per la produzione su meter1 ttyusb0
(ho due usb-rs485, so che potrei usarne una, ma lo feci 4 o 5 anni fa e.....funziona ancora e non lo ho mai cambiato per averne una sola :-)

così magari con monitor potrei mandare i dati di produzione e consumi mqtt?

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 03/06/2020, 9:30
da TonyP62
Un saluto a tutti.
Dopo tanto tempo mi son deciso a rimettere in funzione il sistema, ma nei file scaricati dalla prima pagina, non sono presenti 3 file importanti relativi ai protocolli per 123solar : monitor.php monitor_checks.php monitor_start.php che dovrebbero essere inseriti nella /var/www/123solar/scripts/protocol , se non ricordo male. Qualcuno ne ha copia ?
Nel caso potreste inserirli in questo thread ?
Grazie mille anticipate a tutti.

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 05/06/2020, 23:05
da miki8989
è questo il monitor_protocol.tar

trovato appena prima di formattare un vecchio hd di backup

ciao

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 06/06/2020, 7:59
da TonyP62
miki8989 ha scritto:è questo il monitor_protocol.tar

trovato appena prima di formattare un vecchio hd di backup

ciao


Grazie mille. Chiedo gentilmente a @Flane di inserirlo nella prima pagina così resta facilmente a disposizione di tutti.

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 08/06/2020, 9:30
da Flane
Fatto.
Reinserito nel primo post ed anche nel Repository

Grazie Miki :)

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 11/06/2020, 15:14
da ilmarchese
Salve a tutti,
sono nuovo e vorrei chiedervi un suggerimento, ho installato grazie alla vostra guida e ai vari post un raspberry contenente 123solar sul mio impianto da 16kwh adesso vorrei acquistare un contatore trifase rs485 da collegare al raspberry per controllare l'energia esportata ed importata da un contatore da 80kwh (se era possibile con un'unico contatore) quale modello mi suggerite? ho trovato questo https://it.aliexpress.com/item/32755125115.html per voi e buono? e poi anche vorrei comprare un'altro contatore che mi legga e mi comunica con un'altro raspberry rs485 le letture del consumo delle colonne di ricarica Tesla (ne ho 2 e vorrei controllarle con un'unico contatore se è possibile).
Di quali accessori hanno bisogno i contattori per leggere l'energia?

Grazie mille a tutti voi

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 23/06/2020, 10:59
da ilmarchese
Salve,
da diversi giorni che provo a configurare il mio impianto ma non ci riesco spero che voi tutti capiate dove sta l’errore.
Sto usando un Raspberry Pi4 ed un SDM630MCT V2 collegato tramite porta RS485, vorrei utilizzare meterN per visualizzare i consumi di una colonna di ricarica per auto elettriche.
Sul Raspberry ho installato SOLARBUSTER 0.1 BETA ed eseguito più volte i post Programma MONITOR per la lettura contatori EASTRON [GUIDA] ma non ho avuto grande successo :( :( :( :( .
Quando avvio meterN i valori smettono di funzionare
Vi allego le foto per farvi capire, se occorre altro per capirci meglio fatemi sapere
Grazie anticipatamente :D :D

Immagine

Immagine

Immagine


Immagine

Immagine

Codice: Seleziona tutto

[General]
Port1Dev = /dev/ttyUSB0
Port1Speed = 9600
Port1NBit = 8
Port1Stop = 2
Port1Par = N
;Port2Dev = /dev/ttyUSB1
;Port2Speed = 9600
;Port2NBit = 8
;Port2Stop = 2
;Port2Par = N
Delay = 1               ; Delay time between reading the sensors (sec)
Retry = 3               ; Number of retry on modbus
useMQTT = no           ; Indicate if MQTT is used (valid value are yes/no)
MQTThost = localhost    ; IP Address o FQDN of MQTT broker
MQTTport = 1883         ; TCP/IP port of MQTT broker
MQTTkeepalive = 60      ; keepalive
MQTTusername =          ; username for auth. Leave black for no auth
MQTTpassword =          ; password for auth. Leave black for no auth

[Sensor1]
Name = Consumi          ; Description
Type = 3                ; Sensor type --> SDM630
Port = 1                ; Number of communication port
Address = 1           ; Sensor's modbus address
Delay = 1               ; Delay time (sec)
NumOp = 0               ; Number of correction to do (0 = no correction)
Par1 = 1                ; Number of sensor's value to correct
C1 = 0                  ; Correction value
Op1 = +                 ; Operation (+, -, *, /)
ID = 1                  ; MeterID
OutputType = 2          ; Output format (1=123solar, 2=meterN, 3=detailed)
OutFile = /dev/shm/metern1.txt         ; Full path of output file
MQTTtopic = casa/energia/consumi       ; topic where data are published

;[SensorXX]
;Name = Consumi pdc         ; Description
;Type = 2                ; Sensor type --> SDM220/SDM230
;Port = 1                ; Number of communication port
;Address = 7             ; Sensor's modbus address
;Delay = 1               ; Delay time (sec)
;NumOp = 0               ; Number of correction to do (0 = no correction)
;Par1 = 1                ; Number of sensor's value to correct
;C1 = 0                  ; Correction value
;Op1 = +                 ; Operation (+, -, *, /)
;ID = 7                  ; MeterID
;OutputType = 2          ; Output format (1=123solar, 2=meterN, 3=detailed)


Codice: Seleziona tutto

<?php
/*
Start and stop in metern/config/config_daemon.php

php /var/www/comapps/com_daemon.php { start | stop }

Request values with houseenergy command
*/

if (isset($_SERVER['REMOTE_ADDR'])) {
    die('Direct access not permitted');
}

if (file_exists('/dev/shm/com_daemon.pid')) {
    $cpid = (int) file_get_contents('/dev/shm/com_daemon.pid');
} else {
    $cpid = null;
}

if (isset($argv[1])) {
    if (($argv[1] == 'start' || $argv[1] == 'stop') && file_exists('/dev/shm/metern_log.txt')) {
        unlink('/dev/shm/metern_log.txt');
    }
    if ($argv[1] == 'start') {
        if (is_null($cpid)) {
            $command = 'php /var/www/comapps/com_daemon_loop.php' . ' > /dev/null 2>&1 & echo $!;';
                        $cpid     = exec($command);
            file_put_contents('/dev/shm/com_daemon.pid', $cpid);
        } else {
            echo "com_daemon seem to be running as $cpid";
        }
    } else if ($argv[1] == 'stop') {
        if (!is_null($cpid)) {
            $command = exec("kill -9 $cpid > /dev/null 2>&1 &");
        }
        unlink('/dev/shm/com_daemon.pid');
    } else {
        echo "Usage : com_daemon {start | stop}\n";
    }
} else {
    echo "Usage : com_daemon {start | stop}\n";
}
?>


Codice: Seleziona tutto

#!/usr/bin/php
<?php
// This script will output a meterN compatible format for the main or live command
// You'll need to setup correct permission chmod +x
// then ln -s /var/www/comapps/reqsdm.php /usr/local/bin/reqsdm
// Request command with 'reqsdm tensione' or 'reqsdm corrente' or ......

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/metern1.txt | egrep "^1_VR\(" | grep "*V)"');
                } elseif ($argv[1] == 'corrente') {
                        $outstr =  exec('cat /dev/shm/metern1.txt | egrep "^1_2\(" | grep "*C)"');
                } elseif ($argv[1] == 'freq') {
                        $outstr =  exec('cat /dev/shm/metern1.txt | egrep "^1_3\(" | grep "*Hz)"');
                } elseif ($argv[1] == 'cospi') {
                        $outstr =  exec('cat /dev/shm/metern1.txt | egrep "^1_4\(" | grep "*F)"');
                } elseif ($argv[1] == 'boiler-status') {
                        $outstr =  exec('cat /dev/shm/boiler7.txt | egrep "^7_2\(" | grep "*X)"');
                //} elseif ($argv[1] == 'boiler-status') {
                //      $outstr =  exec('echo "pwm_FLANE("`pgrep -c pwm_FLANE`"*X)"');
                } elseif ($argv[1] == 'boiler-live') {
                        $outstr =  exec('cat /dev/shm/boiler7.txt | egrep "^7\(" | grep "*W)"');
                } elseif ($argv[1] == 'boiler-main') {
                        $outstr =  exec('cat /dev/shm/boiler7.txt | egrep "^7\(" | grep "*Wh)"');
                } elseif ($argv[1] == 'resistenza') {
                        $outstr =  exec('cat /dev/shm/boiler7.txt | egrep "^7_1\(" | grep "*%)"');
                } 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 "*%)"');
                } elseif ($argv[1] == 'cpu-temp') {
                        $outstr =  exec('cat /sys/class/thermal/thermal_zone0/temp');
                        $outstr = $outstr/1000;
                        $outstr = "cpu($outstr*°C)";
                } elseif ($argv[1] == 'load-status') {
                        $outstr =  exec('cat /dev/shm/loadcheck.txt | egrep "^load\(" | grep "*X)"');
                } elseif ($argv[1] == 'garage-temp') {
                        $url = 'http://192.168.3.147/json?tasknr=4';
                        $pagina = file_get_contents($url);
                        $json_output = json_decode($pagina, true);
                        $outstr = $json_output['Temperature'];
                        $outstr = "22($outstr*°C)";


meterN Spento
Immagine
meterN Spento
Immagine

meterN Acceso
Immagine
meterN Acceso
Immagine

Se faccio questo test

root@Tesla:/var/www/comapps# ./testcom.log

mi da questo

Codice: Seleziona tutto

Testing in progress (1)
Array
(
    [0] => 230.43 0.00 1.00 49.98 0 71 OK
    [1] => 230.43 0.00 1.00 49.98 0 71 OK
    [2] => 230.43 0.00 1.00 49.98 0 71 OK
    [3] => 230.43 0.00 1.00 49.98 0 71 OK
    [4] => 230.29 0.00 1.00 49.98 0 71 OK
    [5] => 230.29 0.00 1.00 49.98 0 71 OK
    [6] => 230.29 0.00 1.00 49.98 0 71 OK
    [7] => 230.26 0.00 1.00 49.98 0 71 OK
    [8] => 230.26 0.00 1.00 49.98 0 71 OK
    [9] => 230.26 0.00 1.00 49.98 0 71 OK
)
24/06/2020 08:34:47 : sdm120c -a1 -b9600 -z5 -j5 -w10 -PN -qpievfg -d0 /dev/ttyUSB0
Result : best 227.267 ms - worst 382.4031 ms - 0 error(s)

mi dà solo una Fase quando io ho 3 Fasi come devo fare?

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 27/06/2020, 11:48
da ilmarchese
nessuno riesce ad aiutarmi? :roll: :roll:

ho rifatto il tutto ma non riesco a capire dove sbaglio. :oops: :oops:

Spero in voi Grazie

Re: Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Inviato: 28/06/2020, 15:03
da fuzero
Potrebbe essere un problema di permessi perchè metern non legge alcun valore.

prova da utente root a vedere cosa ti restitusce poolerconsumi sia power che energy.

user e group di tutti gli scripts in comapps devono essere quelli del server web , di solito www-data:www-data, verifica con un semplice

Codice: Seleziona tutto

ls -l /percorso_di_comapps/