gianfranco come va dato il comando della lettura ciclica a 10" ?
annuncio
Comprimi
Ancora nessun annuncio.
Misuratore di consumi con seriale RS485 - SDM120
Comprimi
X
-
5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115
-
Gianfrd sei un grande , alla fine ti chiedo se mi fai uno script per la lettura dei Danfoss , che ci metta meno dei 5-6" a inverter che ci mette rklogger, visto che alla fine e' un modbus (secondo me) anche quello.....AUTO BANNATO
Commenta
-
Finalmente il Raspberry, quindi installazione Raspian, e prg sdm120c di gianfrdp, quindi collego convertitore usb-rs485 a sdm120c
(A con pin 10 sdm120, B con pin 9 centrale):
Quindi inizio le prove
pi@raspberrypi ~ $ cd SDM120C
pi@raspberrypi ~/SDM120C $ ls
123solar LICENSE metern sdm120c sdm120c.o
libmodbus Makefile README.md sdm120c.c
pi@raspberrypi ~/SDM120C $ sdm120c
sdm120c 1.1.3: ModBus RTU client to read EASTRON SDM120C smart mini power meter registers
Copyright (C) 2015 Gianfranco Di Prinzio
Complied with libmodbus 3.0.3
Usage: sdm120c [-a address] [-d] [-p] [-v] [-c] [-e] [-i] [-t] [-f] [-g] -m]|[-q]] [-b baud_rate] [-P parity] [-z num_retries] [-j seconds] device
sdm120c [-a address] [-d] [-b baud_rate] -s new_address device
sdm120c [-a address] [-d] [-b baud_rate] -r baud_rate device
sdm120c [-a address] [-d] [-b baud_rate] -R new_time device
where
-a address Meter number (between 1 and 247). Default: 1
-s new_address Set new meter number (between 1 and 247)
-p Get power (W)
-v Get voltage (V)
-c Get current (A)
-f Get frequency (Hz)
-g Get power factor
-e Get exported energy (Wh)
-i Get imported energy (Wh)
-t Get total energy (Wh)
-T Get Time for rotating display values (0 = no rotation)
-d Debug
-b baud_rate Use baud_rate serial port speed (1200, 2400, 4800, 9600)
Default: 2400
-P parity Use parity (E, N, O)
-r baud_rate Set baud_rate meter speed (1200, 2400, 4800, 9600)
-R new_time Change rotation time for displaying values (0 - 30s) (0 = no totation)
-m Output values in IEC 62056 format ID(VALUE*UNIT)
-q Output values in compact mode
-z num_retries Try to read max num_retries times on bus before exiting
with error. Default: 1
-j seconds Response timeout. Default: 2
device Serial device, i.e. /dev/ttyUSB0
Serial device is required. When no parameter is passed, retrives all values
pi@raspberrypi ~/SDM120C $ sdm120c -a 1 -b 2400 -z 5 /dev/ttyUSB0
ERROR Connection timed out, 1
ERROR Connection timed out, 2
ERROR Connection timed out, 3
ERROR Connection timed out, 4
ERROR Connection timed out, 5
Per installare il prg sdm120c ho seguito la guida di flane:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git libmodbus-dev
cd /home/pi
git clone https://github.com/gianfrdp/SDM120C.git (questo è diverso l'ho preso dal link Github)
cd /SDM120C
make clean && make
sudo cp sdm120c /usr/local/bin/
Cosa non vàUltima modifica di Aledav; 01-06-2015, 11:21.
Commenta
-
Manca convertitore Rs485 to USB, senza non va5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115
Commenta
-
codice:ls -l /dev/ttyUSB*
codice:lsusb
codice:sdm120c -a 1 -b 2400 -z 5 -P E /dev/ttyUSB0
codice:sdm120c -a 1 -b 2400 -z 5 -P N /dev/ttyUSB0
Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E
Commenta
-
Originariamente inviato da gianfrdp Visualizza il messaggiocodice:ls -l /dev/ttyUSB*
codice:lsusb
codice:sdm120c -a 1 -b 2400 -z 5 -P E /dev/ttyUSB0
codice:sdm120c -a 1 -b 2400 -z 5 -P N /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 0 giu 1 13:17 /dev/ttyUSB0
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
pi@raspberrypi ~ $ sdm120c -a 1 -b 2400 -z 5 -P E /dev/ttyUSB0
ERROR Connection timed out, 1
ERROR Connection timed out, 2
ERROR Connection timed out, 3
ERROR Connection timed out, 4
ERROR Connection timed out, 5
pi@raspberrypi ~ $ sdm120c -a 1 -b 2400 -z 5 -P N /dev/ttyUSB0
Voltage: 221.50 V
Current: 1.33 A
Power: 283.50 W
Power Factor: 0.93
Frequency: 50.04 Hz
Import Active Energy: 478954 Wh
Export Active Energy: 0 Wh
Total Active Energy: 478954 Wh
OK
pi@raspberrypi ~ $
FANTASTICO Grazie
Commenta
-
Stavo leggendo questo interessante post e mi chiedo se nessuno ha mai provato a visualizzare i dati fornibili dal SDM120C tramite Arduino (p. es su monitor seriale o su display) e non con Rasp. Ho trovato questo software che forse potrebbe interessarvi per sviluppare le comunicazioni in Modbus. Modbus Doctor E' gratuito e non richiede installazione. Appena mi arriva il contatore e l'interfaccia USB rs485 lo provo per cerare di capire come leggere i dati sul contatore.Franco
2.88KWp Pannelli Sanyo Panasonic VBHN240SE1 tecnologia HIT
Inverter Samil Power SolarRiver Dual MPPT
Automazione SSP basato su PLC Siemens
Commenta
-
Originariamente inviato da flane Visualizza il messaggioSul 120 basta premere lo stesso tastino che si preme per la modalità di configurazione.
A volte premendolo semplicemente non fà niente anche a me
mi piace perche' ha sia la potenza istantanea fino al decimo di watt (ma basta il watt) prima avevo questo 5 (65) a 230 v 50 hz display tensione corrente positiva inversione attivo potenza reattiva monofase contatore di energia su guida din kwh watt ora in Benvenuti a arlen & alice 5(65)A 230Vda Contatore di energia su AliExpress.com che aveva una risoluzione alla decina di watt ma senza 485...
si puo' bloccare su un dato che interessa : a me interesserebbe la potenza istantanea....
e lo script di gianfrd per la lettura nessuno lo ha implementato in emoncms , devo fare uno script che lanci la lettura , e poi i dati li aggiungo alle mie temperature lette sulla 1wire , immagino devo fare cosi' ?
grazieAUTO BANNATO
Commenta
-
Se prendi il pooler485.sh lo modifichi per mandare i valori a emoncms invece di salvarli su un file txtImpianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E
Commenta
-
ma vi capitano letture falsate?
La lettura dei Watt mi da dei picchi di oltre 40000W mentre il contatore sta salendo a oltre 120 e mi da un valore di 90 e poi ritorna a 120.... questo diverse volte al giorno e ovviamente senza motivo...
La lettura del SDM120 la faccio ogni 2 secondi, mentre l'input su emoncms è settato a 5s... può essere un problema dello strumento o di lettura di emoncms?
Commenta
-
Finalmente oggi ho rimesso mani sul raspy-sdm120c.
Due settimane fa’ ho passato un cavo citofonico dal quadretto generale al terrazzo (40mt) dove adesso vive con il suo powerline il raspy!
Faticaccia ma la moglie mi aveva dato l'ultimatum .
Ho quindi iniziato a scrivere qualche linea di codice per monitorare in tempo reale i consumi di casa.
(L'ip che vedete in figura purtroppo non è statico).
Ho utilizzato ovviamente le API di gianfrdp incapsulate in una tecnologia NodeJS-Express-socket.io.
-Sono riuscito a monitorare ogni 700ms con un numero di letture errate accettabili ma presenti, alla fine ho settato anch'io a 2000 ms.
Considerate che inviando i dati via socket.io non vi è refresh della paginetta html e l'impegno della cpu (top) del raspy è quasi nullo.
-Il primo LED sotto l'amperometro si accende di rosso quando sdm120c non torna OK (API gianfrdp).
-Il secondo led in giallo salva ogni 2 minuti la lettura su un cloudDB nosql, ho usato Firebase (registrazione gratis 100MB )
-l'ultimo led verde letture con OK.
Le librerie usate per la strumentazione sono le Drinks.js.
Facendo un po’ di analisi dei dati salvati (2 settimane), ti dico loop_1, che scartando le letture che non tornano l’OK non ho salvato picchi anomali come te. (Hai sicuramente settato la velocità del sdm120 a 9600 baud)
Domanda:
- Avevo in mente di disegnare in real-time un canvas (html5) con il Triangolo delle Potenze (a Palermo diciamo p'ammuttari u fumu ca stagna!! [vedi Wikipedia]).
Ma mi sono accorto e chiedo a voi che conoscete SDM120 da più tempo, come interpretate invece le letture di cosphi maggiore di 1?Ultima modifica di Aledav; 27-06-2015, 20:35.
Commenta
-
Originariamente inviato da gianfrdp Visualizza il messaggioSe prendi il pooler485.sh lo modifichi per mandare i valori a emoncms
#!/usr/bin/php
inizio:
$x = exec("digitemp_DS9097 -t1 -s /dev/ttyUSB1 -c /home/pi/digitemp.conf");
if ($x > -20 and $x < 100) {
$esterna = $x ;
}
$x = exec("digitemp_DS9097 -t0 -s /dev/ttyUSB1 -c /home/pi/digitemp.conf");
if ($x > -20 and $x < 100) {
$andata = $x ;
}
$x = exec("digitemp_DS9097 -t3 -s /dev/ttyUSB1 -c /home/pi/digitemp.conf");
if ($x > -20 and $x < 100) {
$ritorno = $x ;
}
$x = exec("digitemp_DS9097 -t2 -s /dev/ttyUSB1 -c /home/pi/digitemp.conf");
if ($x > -20 and $x < 100) {
$ambiente = $x ;
}
$x = exec("sdm120c -q -z5 -P N /dev/ttyUSB0");
$dataarray = preg_split('/[[:space:]]+/', $x);
//if $dataarray[8] = ('OK') {
$tensione = $dataarray[0];
$corrente = $dataarray[1];
$potenza = $dataarray[2];
$cosfi = $dataarray[3];
$frequenza = $dataarray[4];
$energia = $dataarray[5];
//}
$data = $esterna.",".$andata.",".$ritorno.",".$ambiente.",".$tensione.",".$corrente.",".$potenza.",".$cosfi.",".$energia;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.0.10/emoncms/input/post.json?csv=$data&apikey=b53ec1abe610c66009b207d6207f2c9e");
$oem = curl_exec($ch);
curl_close($ch);
sleep (10);
goto inizio;
?>
e comemai ad ogni riavvio mi inverte la porta USB dei due adattatori ?!?! quello per la rete 1wire e quello per la 485.....
grazie GianfrdpAUTO BANNATO
Commenta
-
Ti inverte gli adattatori in modo alternato?
O te li inverte, tu li rimetti a posto e poi al riavvio te li inverte di nuovo?Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E
Commenta
-
Ho rifatto un po' di prove , gli adattatori sono un PL2303 che fa da USB-1WIRE e un HL-340 USB-485 , nello script setto USB0 uno e USB1 l'altro , salvo faccio partire a mano e funziona , spengo lo faccio partire da crond all'avvio e non arriva nessun dato a Emon , vado a vedere e si trovano invertite , se faccio dei reboot rimangono sempre invertite rispetto allo script , se modifico lo script al riavvio le reinverte nuovamente sembra ci sia un puffo rompiglione nel raspberry.....
a parte e' argomento da OEM , la sezione 485 va bene perde 1 colpo ogni 100 , la sezione 1wire invece ha dei problemi di lettura piu' spesso , passa molti piu' metri assieme al 230 potrebbe essere quello.....
si possono creare due script diversi con la stessa chiave per OEM io sono in locale e mi sembra anche che ci sinao meno opzioni che di quello online ?! , in modo che la 485 e i parametri elettrici li aggiorno in maniera continua ogni pochi secondi , mentre le T non hanno questa 'urgenza' e se anche me le legge ogni minuto o due non muore nessuno ?!AUTO BANNATO
Commenta
-
Originariamente inviato da Aledav Visualizza il messaggio....
Facendo un po’ di analisi dei dati salvati (2 settimane), ti dico loop_1, che scartando le letture che non tornano l’OK non ho salvato picchi anomali come te. (Hai sicuramente settato la velocità del sdm120 a 9600 baud)
Commenta
-
Dopo che ho settato la velocità a 9600 il numero di letture errate si è ridotto abbastanza. Quindi loop_1 ti consiglio di provare.
Ricordati dopo che invii il comando di fare il reset del sdm120 (io ho staccato la corrente dal contatore enel), e di dare nei successivi comandi anche il nuovo valore
di velocità(9600).
Commenta
-
Tempo fa' avevo letto sul forum qualcosa , su come settare due dispositivi USB in modo che alla partenza avessero sempre la stessa porta ttyUSBX , questa discussione l'ho scorsa tutta e non c'e' niente , quella sul Rasp ci ho provato ma e' impossibile ritrovare il punto ; qualcuno si ricorda come si fa' ?AUTO BANNATO
Commenta
-
Commenta
-
Ho inserito anche questa parte nella mia nuova guida con modbus ..... mi manca ancora un pò per finirla ..... spero di non dover attendere le ferie dell'anno prossimo per trovare un pò di tempo
Commenta
-
Qualcuno mi riesce a spiegare perche' lo script che ho messo al reply #102 , se lo lancio da riga comando funziona tutto , se lo metto in crontab -e , o in /etc/rc.local , anche se metto uno sleep all'avvio , mi aggiorna solo i dati che arrivano da digitemp , mentre quelli letti dal SDM120 sono tutti a 0 , puo' darsi che quando parte SDSM deve essere ancoraavviata qualche libreria ? ma non torna lo stesso , altrimenti alla lettura successiva dovrebbe funzionare ... o no ?
Nel frattempo avevo renominato le USB come da script di gianfrd e quindi non c'e' piu' il problema di invertire le porta all'avvio....
AUTO BANNATO
Commenta
-
Per lo script con valori a 0 dovrei provarlo... ad occhio non mi viene in mente niente.
Per ArchLinux... Jeanmarc c'è riuscito SDM120C how to for Arch ARM - 123solar meterNImpianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E
Commenta
-
-
forse il pathImpianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E
Commenta
-
Sono nella stessa path /var/www , adesso li ho divisi : uno chiama le temperature e uno i parametri elettrici , aggiunti a crontab
@reboot php /var/www/ele.php&
@reboot php /var/www/temp.php&
lo script ele , non e' che non funziona , viene lanciato in auo ma da valori 0 , se lo rilancio da riga di comando mi da' i valori giusti per 1 volta e poi torna a funzionare quello in batch....AUTO BANNATO
Commenta
-
Intendevo la variabile d'ambiente PATH dove va a cercare i comandi, tr cron e linea di comando potrebbero essere diverseImpianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E
Commenta
-
Salve,
è da un po' che manco dal forum, ora con le vacanze vorrei riprendere l'installazione del mio impianto di monitoraggio
Ho due Raspberry:
Uno con 123Solar, collegato via USb/RS485 all'ingresso RS485 dell'inverter Aurora, che uso regolarmente per monitorare la produzione,
L'altro vorrei usarlo collegando, sempre via USB/RS485, tre contatori SDM120C, che ho acquistato un po' di tempo fa, collegandoli a monte delle tre sottolinee dell'impianto di casa, con MeterN
Ho seguito la guida di Walter62 e quella di Flane, fino all'installazione di MeterN, non ho però capito bene, anche leggendo tutte le pagine del forum, come utilizzare il SDM120C in modalità 485 e non ad impulsi.
Ho letto in diverse parti di un software di GianfrDP, e di un pooler485, ma non ho le idee molto chiare..
Nell'attesa che Flane integri la sua guida, potreste darmi qualche dritta su come andare avanti e dove prendere i software necessari?
Grazie mille!
Commenta
-
pi@raspberrypi ~ $ sdm120c -a 1 -b 9600 -z 5 -P N /dev/ttyUSB0
Voltage: 234.00 V
Current: 0.89 A
Power: 208.30 W
Power Factor: 1.00
Frequency: 50.00 Hz
Import Active Energy: 84609 Wh
Export Active Energy: 0 Wh
Total Active Energy: 84609 Wh
OK
Il live command per la produzione mi da ok,mentre ho ancora il problema del live command per la dashboard live pooling e MeterN non acquisisce nessun dato
cat /run/shm/metern1.txt | egrep "^1\(" | egrep "\*W\)$" (is not valid, the correct format is 1(1234.5*W) )
e non si crea il file metern1.txt
In comappsdaemon.php ho messo
if (isset($_SERVER['REMOTE_ADDR'])) {
die('Direct access not permitted');
}
// Startup of the com apps daemon as 'http' user if needed
$output = shell_exec('pkill -f pooler485 > /dev/null 2>&1 &');
sleep(1);
$output = shell_exec('pooler485 1 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &');
?>
In rc.local
/usr/bin/curl http://127.0.0.1/metern/scripts/bootmn.phpUltima modifica di thx; 15-08-2015, 07:32.Impianto 2,66 kWp - Power One 3.0 - 8 moduli Sunpower E20 333W - Raspberry con 123Solar@Walter62
https://www.dropbox.com/s/ag0k3azvne...rev04.pdf?dl=0 --> Guida Raspberry + Envir Cost con Measureit 118
Commenta
Commenta