Lettura indicators corrente errata

Discussioni relative al software di monitoraggio energetico METERN
dottorniù
Messaggi: 36
Iscritto il: 16/03/2016, 23:49

Lettura indicators corrente errata

Messaggioda dottorniù » 02/04/2016, 1:25

Ciao a tutti,
ho finito di configurare metern 0.8.2.1 sulla nuova distro jassie e con il nuovo contatore sdm120, è stata dura ma alla fine ce l'ho fatta a farlo funzionare a dovere... ora però mi rimane solo un errore banale ma che mi piacerebbe risolvere.

Ho configurato gli indicators tensione, corrente e cos pi e tensione e cos pi funzionano a dovere mentre l'indicatore della corrente visualizza la tensione.
Spulciando un pò i file ho capito che le varie grandezze solo lette dal pooler485 che gli assegna i numeri (2_1, 2_2, etc) che vengono poi scritti in metern2.txt, guardando il pooler485 e la stringa inserita sembra tutto corretto ma poi nel metern2.txt il valore di tensione e corrente sono sempre identici posto di seguito i vari file:

pooler485

Codice: Seleziona tutto

#!/bin/bash

ADDRESSES="$1"
BAUD_RATE="$2"
DEVICE="$3"

ADDR_ARR=$(echo $ADDRESSES | tr "," "\n")

while [ true ]; do

    ID=0
    POWER=""
    ENERGY=""

    for ADDRESS in $ADDR_ARR
    do
   #((ID++))
   ID=$ADDRESS
   CMD="sdm120c -a ${ADDRESS} -b ${BAUD_RATE} -z 10 -i -p -v -c -f -g -P N -j 5 -w 10 -q ${DEVICE}"

   #echo $CMD
   
   VALUE=`$CMD`
   
   VOLTAGE=$(echo ${VALUE}   | awk '{print $1}')
   CURRENT=$(echo ${VALUE}   | awk '{print $2}')
   POWER=$(echo ${VALUE}     | awk '{print $3}')
   FACTOR=$(echo ${VALUE}    | awk '{print $4}')
   FREQUENCY=$(echo ${VALUE} | awk '{print $5}')
   ENERGY=$(echo ${VALUE}    | awk '{print $6}')

   if [ "$ENERGY" != "0" -a x"$ENERGY" != x -a "$POWER" != "0" -a x"$POWER" != x ]; then
       echo -e "$ID($POWER*W)\n$ID($ENERGY*Wh)\n${ID}_1($VOLTAGE*V)\n${ID}_2($CURRENT*A)\n${ID}_3($FREQUENCY*Hz)\n${ID}_4($FACTOR*F)" > /run/shm/metern${ADDRESS}.txt
       #echo -e "$VALUE"  > /run/shm/metern${ADDRESS}.txt
   fi
   sleep 5s

    done

done


metern2.txt

Codice: Seleziona tutto

2(566.90*W)
2(102801*Wh)
2_1(231.00*V)
2_2(231.00*A)
2_3(50.00*Hz)
2_4(0.99*F)


allego anche uno screen di putty in cui lancio la stringa di pooler485 da terminale e come si vede su più prove solo una volta il risultato della corrente è identico al voltaggio però su metern l'amperaggio corretto non si visualizza mai

metern.png


Dove sta l'errore?


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

Re: Lettura indicators corrente errata

Messaggioda Flane » 02/04/2016, 16:48

Tu hai un contatore SDM120 o SDM220 ?

Prova a fermare MeterN, verifica che non ci siano altre sessioni del software sdm120c attive e poi prova ad eseguire a mano da putty lo stesso comando di lettura presente in pooler485 e postami i risultati.

dottorniù
Messaggi: 36
Iscritto il: 16/03/2016, 23:49

Re: Lettura indicators corrente errata

Messaggioda dottorniù » 04/04/2016, 7:30

Buongiorno,

grazie per l'interessamento e scusami se rispondo solo ora ma è stato un fine settimana caotico :?

Ho un SDM120C, spento metern e killato gli altri processi che risultavano in funzione con ps -ef | grep metern e poi lanciato il comando ed ecco i risultati, dall'immagine che allego si vede che il numero delle letture errate è più alto di quelle giuste
Allegati
metern2.png

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

Re: Lettura indicators corrente errata

Messaggioda Flane » 04/04/2016, 8:49

E' la prima volta che sento di un problema del genere.

Che cavo hai usato per il bus e quanto è lungo ?

Prova a leggere solo la corrente con il comando:

Codice: Seleziona tutto

sdm120c -a 2 -b 9600 -c -P N -q /dev/metern


e vedi se così le letture sono corrette.
In caso positivo prova ad aggiungere un pò alla volta i vari parametri e vedi quando ti si presenta il problema.

Avatar utente
dadelinux
Messaggi: 23
Iscritto il: 29/03/2016, 11:43

Re: Lettura indicators corrente errata

Messaggioda dadelinux » 04/04/2016, 11:13

Questo problema ce l'ho avuto anch'io con la lettura tramite sdm220.
Dopo varie prove e modifiche del file pooler485 ho raggiunto la stabilità e ora la lettura ogni 5sec è impeccabile, il valore della corrente sempre corretto.
Credo che alcuni SDM220 abbiano un bug sul protocollo...
Davide
-----------------------------------------
Linux, the Art of GNU Generation

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

Re: Lettura indicators corrente errata

Messaggioda Flane » 04/04/2016, 11:21

In questo caso l'utente dottorniù ha un SDM120 e non un SDM220.

Comunque che modifiche hai fatto al pooler, puoi postare il tuo comando di lettura del pooler485?

Avatar utente
dadelinux
Messaggi: 23
Iscritto il: 29/03/2016, 11:43

Re: Lettura indicators corrente errata

Messaggioda dadelinux » 04/04/2016, 11:45

Mi sono accorto che il mio SDM220 digerisce meglio la chiamata di smd120c senza specificare i parametri -z 10 -i -p -v -c -f -g -P N
quindi ho cambiato la riga di codice da così:
CMD="sdm120c -a ${ADDRESS} -b ${BAUD_RATE} -z 10 -i -p -v -c -f -g -P N -q ${DEVICE}"
a così:
CMD="sdm120c -a ${ADDRESS} -P N -b ${BAUD_RATE} -q ${DEVICE}"

e riassegnato in modo corretto il puntamento alle variabili che servono:

VOLTAGE=$(echo ${VALUE} | awk '{print $1}')
CURRENT=$(echo ${VALUE} | awk '{print $2}')
POWER=$(echo ${VALUE} | awk '{print $3}')
FACTOR=$(echo ${VALUE} | awk '{print $6}')
FREQUENCY=$(echo ${VALUE} | awk '{print $8}')
ENERGY=$(echo ${VALUE} | awk '{print $9}')

Questo potrebbe essere oggetto di spunto per creare una versione di pooler485 che preveda anche la gestione di quest' anomalia di lettura dato che sia qui che su energeticambiente.it viene più volte segnalata...

Che ne pensi Flane?
Davide
-----------------------------------------
Linux, the Art of GNU Generation

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

Re: Lettura indicators corrente errata

Messaggioda Flane » 04/04/2016, 14:27

In effetti il primo ad accorgersi di questo problema con SDM220 è stato proprio Jeanmarc.
C'è una discussione a riguardo sul forum ufficiale.
Anche se per lui il problema degli errori li aveva quando leggeva tutti i parametri.

Ci deve essere un qualche bug in libmodbus oppure nel software degli SDM220.

Potresti aprire una discussione specifica per SDM220 in MeterN - Contatori Modbus per questi problemi di letture errate e magari postare qualche test con l'opzione -d per avere un debug di cosa fà.

Poi sottoponiamo la questione a -Gianfrdp o Thedrake che hanno sviluppato il software. ;)

dottorniù
Messaggi: 36
Iscritto il: 16/03/2016, 23:49

Re: Lettura indicators corrente errata

Messaggioda dottorniù » 05/04/2016, 8:12

:shock: quanta roba mi ero perso... scusate se rispondo solo ora ma tra famiglia e lavoro è difficile trovare il tempo per tutto... e poi prima di rispondere ho voluto fare diverse prove.

Il cavo che utilizzo è un doppino telefonico della lunghezza di circa 15 metri, per escludere problemi di cavo stamani ho portato il raspy vicino al contatore e li ho collegati con 10 cm di cavo... stesso identico problema.

leggendo solo la corrente da vicino o da lontano non sbaglia mai un colpo :?:

Ora proverò a modificare il pooler485 come suggerito da dadelinux.

Grazie mille ad entrambi per l'interessamento ed i suggerimenti.

dottorniù
Messaggi: 36
Iscritto il: 16/03/2016, 23:49

Re: Lettura indicators corrente errata

Messaggioda dottorniù » 06/04/2016, 6:09

Buongiorno,

ieri mattina ho modificato poolers485 come cuggerito da dadelinux ed ora le letture sono ok, controllato più volte e l'amperaggio è sempre giusto.

Grazie mille :D


Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 58 ospiti