Installare più contatori SDM120 in parallelo sullo stesso bus

Discussioni relative all'uso di contatori SDM120 SDM220 modbus
Another
Messaggi: 174
Iscritto il: 13/02/2017, 19:16

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Another » 28/03/2018, 22:39

non so se questo problema è stato risolto, io ne ho uno analogo

fino ad oggi avevo una sola linea modbus che leggeva 2 contatori sdm220 (FV:1 e Totale:2), con il config_daemon.php

Codice: Seleziona tutto

if (!is_null($pid)) { // Start Daemon
$output = shell_exec('pooler485 2 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &');
} else { //Stop
$output = shell_exec('pkill -f pooler485 > /dev/null 2>&1 &');
}


ora ho appena collegato altri 2 contatori per la centrale termica (pdc:3, centrale:4) sulla porta ttyUSB1

ho provato i comandi sdm120c e funzionano

però come devo configurare il file config_daemon.php e tutto quello che segue dopo? grazie

ps: meterN 0.8.3.2


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

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Flane » 28/03/2018, 23:55

Semplicemente devi mettere gli indirizzi dei contatori da leggere in config_daemon separati da una virgola.

Se devi leggere i contatori 2, 7 e 8 devi mettere:

Codice: Seleziona tutto

if (!is_null($pid)) { // Start Daemon
$output = shell_exec('pooler485 2,7,8 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &');
} else { //Stop
$output = shell_exec('pkill -f pooler485 > /dev/null 2>&1 &');
}

in questo modo ti ritrovi nella cartella /dev/shm i file:

Codice: Seleziona tutto

metern2.txt
metern7.txt
metern8.txt

con le letture dei vari contatori

Another
Messaggi: 174
Iscritto il: 13/02/2017, 19:16

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Another » 29/03/2018, 0:10

sì, avevo letto, ma avevo capito che questo valesse solo per la stessa usb

io ne ho 2 sulla 0 (e in config_daemon ne è dichiarato solo 1, il num. 2) e 2 sulla 1

Another
Messaggi: 174
Iscritto il: 13/02/2017, 19:16

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Another » 30/03/2018, 8:17

devo fare qualcosa tipo duplicare la riga ?

Codice: Seleziona tutto

$output = shell_exec('pooler485 2,7,8 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &');

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

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Flane » 30/03/2018, 9:54

Se li hai su due porte diverse devi effettivamente eseguire due sessioni diversi dell pooler485 mettendo due righe con relativi indirizzi e porta.

Attenzione ad utilizzare l'opzione w sia con il pooler485 che con il protocollo di 123solar

Another
Messaggi: 174
Iscritto il: 13/02/2017, 19:16

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Another » 30/03/2018, 13:40

quindi dovrei scrivere:

Codice: Seleziona tutto

if (!is_null($pid)) { // Start Daemon
$output = shell_exec('pooler485 1,2 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &');
$output = shell_exec('pooler485 3,4 9600 /dev/ttyUSB1 > /dev/null 2>/dev/null &');
} else { //Stop
$output = shell_exec('pkill -f pooler485 > /dev/null 2>&1 &');

}


?

ma quell'$output poi non viene usato ? perchè così lo sovrascriverei

e nell'else basta 1 riga?

il comando dopo l'indicazione della porta usb cosa fa?

sull'opzione w intendi che devo metterla in entrambi o in nessuno? in quale file? nell'interfaccia?

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

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Flane » 30/03/2018, 15:20

Lo script dovrebbe essere corretto così.
Pkill chiude tutti i processi che si chiamano pooler485 per cui dovrebbe funzionare anche se sono 2.

L'opzione w deve essere inclusa come da mie istruzioni fra le option di 123Solar ed anche nel pooler485.sh (se usi il mio della Solarjessie dovrebbe già esserci)

Another
Messaggi: 174
Iscritto il: 13/02/2017, 19:16

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Another » 31/03/2018, 0:05

in config_daemon ho messo

Codice: Seleziona tutto

f (!is_null($PID)) { // Start Daemon
$output = shell_exec('pooler485 1,2 9600 /dev/ttyUSB0 > /dev/null 2>/dev/null &');
$output = shell_exec('pooler485 6,7 9600 /dev/ttyUSB1 > /dev/null 2>/dev/null &');
//$output = shell_exec('poolSDM485 1 9600 /dev/sdm > /dev/null 2>/dev/null &');
//$output = shell_exec('/usr/bin/curl http://192.168.1.12/startsdm.php');
//$output = shell_exec("/srv/http/comapps/poolmeters.py live > /dev/null 2>&1 &");
} else { //Stop
$output = shell_exec('pkill -f pooler485 > /dev/null 2>&1 &');
//$output = shell_exec('pkill -f poolSDM485 > /dev/null 2>&1 &');   
}


impostando a 6 e 7 gli address dei sdm per la pompa di calore

ho poi aggiunto 2 meter ma non son sicuro di come configurarne i comandi:
ID = 6 Type = Elect / Other
Command: poolerconsumi 6 energy

però così il test mi da 0, mentre con sdm120c mi da il valore corretto di 20 o 30 w.

Another
Messaggi: 174
Iscritto il: 13/02/2017, 19:16

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Another » 31/03/2018, 0:12

impostando anche il meter 7 sull'ultimo sdm con address 7 ottengo letture a 0 e poi al valore corretto, oscillanti

però in questi casi come faccio a impostare parametri tipo -w -j - z?

Another
Messaggi: 174
Iscritto il: 13/02/2017, 19:16

Re: Installare più contatori SDM120 in parallelo sullo stesso bus

Messaggioda Another » 31/03/2018, 0:34

qualcosa sono riuscito ad ottenere, seguendo una miniguida di s_p

ho inserito nel file reqsdm.php queste righe:

Codice: Seleziona tutto

} elseif ($argv[1] == 'pdc_l') {
         $outstr = exec('cat /dev/shm/metern6.txt | egrep "^6\(" | grep "*W)"');
      } elseif ($argv[1] == 'pdc_t') {
         $outstr = exec('cat /dev/shm/metern6.txt | egrep "^6\(" | grep "*Wh)"');
      } elseif ($argv[1] == 'centrale_l') {
         $outstr = exec('cat /dev/shm/metern7.txt | egrep "^7\(" | grep "*W)"');
      } elseif ($argv[1] == 'centrale_t') {
         $outstr = exec('cat /dev/shm/metern7.txt | egrep "^7\(" | grep "*Wh)"');


poi ho usato nei metern i comandi reqsdm pdc_t, ecc.

ora le letture sembrano corrette però non so se effettivamente da qualche parte vengono lanciati comandi con i parametri -w -j -z per i conflitti con altri sdm...
inoltre ho i decimali dei w, come si tolgono nell'elenco sotto al gauge?


Torna a “Contatori Modbus”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti