Programma MONITOR per la lettura contatori EASTRON [GUIDA]

Discussioni relative al software di monitoraggio energetico METERN
ilmarchese
Messaggi: 20
Iscritto il: 11/06/2020, 15:02

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

Messaggioda ilmarchese » 30/06/2020, 9:06

Ciao Fuzero,
il tuo script funziona alla grande ma mi legge i valori 1_1 1_2 1_3 ecc... io avevo postato un immagine dove venivano raffigurate le letture 1_VS ecc.. (trifase) ma le ho ottenute digitando da terminale ./monitor con il meterN spento quando lo accendevo meterN mi andava a sostituire i valori aggiornandoli nel file /dev/shm/metern1.txt
Adesso ho capito dove sta il problema e sta nella scrittura del file metern1.txt, Fezero quale è il file che scrive metern1.txt? secondo me è li che bisogna intervenire cominciandogli che deve scrivere 1_VS ecc.. (trifase)
Non sono un programmatore ma correggimi se sbaglio raggionamento.

Grazie

Immagine

FORSE MI SBAGLIO MA SECONDO ME IL FILE CHE SCRIVE metern1.txt E' QUESTO :!: :!: :!:
Immagine

ESEGUO ./monitor CON METERN SPENTO ECCO IL RISULTATO
Immagine

QUANDO AVVIO METERN ECCO IL RISULTATO DEL FILE metern1.txt
Immagine


Avatar utente
fuzero
Messaggi: 39
Iscritto il: 27/04/2017, 22:00

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

Messaggioda fuzero » 30/06/2020, 17:56

...
Ultima modifica di fuzero il 30/06/2020, 21:58, modificato 1 volta in totale.

ilmarchese
Messaggi: 20
Iscritto il: 11/06/2020, 15:02

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

Messaggioda ilmarchese » 30/06/2020, 18:12

fuzero ha scritto:Credo sia l'eseguibile monitor che crea il file , monitor.conf è solo un file di configurazione dove imposti i parametri dell'eseguibile monitor.
"which monitor" per vedere dove si trova, poi prova a leggerlo per capire se è un programma compilato o in che linguaggio è scritto.


lo trovato non è leggibile

ilmarchese
Messaggi: 20
Iscritto il: 11/06/2020, 15:02

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

Messaggioda ilmarchese » 30/06/2020, 18:36

in rete ho trovato questi codici secondo me dovrei inserirli anche io ma non so dove

OpCodeSDML1Voltage   = 0x0000
OpCodeSDML2Voltage = 0x0002
OpCodeSDML3Voltage = 0x0004
OpCodeSDML1Current = 0x0006
OpCodeSDML2Current = 0x0008
OpCodeSDML3Current = 0x000A
OpCodeSDML1Power = 0x000C
OpCodeSDML2Power = 0x000E
OpCodeSDML3Power = 0x0010
OpCodeSDML1Import = 0x015a
OpCodeSDML2Import = 0x015c
OpCodeSDML3Import = 0x015e
OpCodeSDMTotalImport = 0x0048
OpCodeSDML1Export = 0x0160
OpCodeSDML2Export = 0x0162
OpCodeSDML3Export = 0x0164
OpCodeSDMTotalExport = 0x004a
OpCodeSDML1Cosphi = 0x001e
OpCodeSDML2Cosphi = 0x0020
OpCodeSDML3Cosphi = 0x0022

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

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

Messaggioda Flane » 30/06/2020, 20:46

Se leggete il primo post è chiaramente spiegato come utilizzare il software monitor e aggiungo che state facendo un gran casino nelle prove ed indicazioni che vedo negli ultimi post......

Per utilizzare monitor è necessario editare e configurare il file di configurazione monitor.conf come spiegato nel primo post.

ilmarchese
Messaggi: 20
Iscritto il: 11/06/2020, 15:02

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

Messaggioda ilmarchese » 30/06/2020, 21:06

Flane ha scritto:Se leggete il primo post è chiaramente spiegato come utilizzare il software monitor e aggiungo che state facendo un gran casino nelle prove ed indicazioni che vedo negli ultimi post......

Per utilizzare monitor è necessario editare e configurare il file di configurazione monitor.conf come spiegato nel primo post.


Ai ragione Flane, sto facendo un gran casino da due settimane lo letto il primo post è tanti altri ma non trovo ancora la soluzione quando in metern inserisco i valori 1_VR ecc per il trifase il programma non trova le lettere per questo ho pensato che mancassero i codici per sdm630

ilmarchese
Messaggi: 20
Iscritto il: 11/06/2020, 15:02

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

Messaggioda ilmarchese » 02/07/2020, 18:59

Flane ha scritto:Se leggete il primo post è chiaramente spiegato come utilizzare il software monitor e aggiungo che state facendo un gran casino nelle prove ed indicazioni che vedo negli ultimi post......

Per utilizzare monitor è necessario editare e configurare il file di configurazione monitor.conf come spiegato nel primo post.


Ciao Flane
chiedo il vostro aiuto perchè in questi giorni ho fatto altri tentativi (inutili) non riuscendo ad ottenere i valori delle 3 fasi ma ottengo sempre il valore della VR, ho modificato altri file cercando di risolvere ho riletto il post 1 forse 100 volte ma non riesco.
Vi allego la mia configurazione e i file che ho modificato (ma posso rimettere il tutto come prima).

Spero in voi. Grazie

Configurazione

Immagine

Immagine

FILE CHE MI SONO PERMESSO DI MODIFICARE

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=""
        CHECK=""

    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 -w 10 -j 10 -d 0 -q ${DEVICE}"

    #echo $CMD

    VALUE=`$CMD`
    VR=$(echo ${VALUE}   | awk '{print $1}')
    VS=$(echo ${VALUE}   | awk '{print $8}')
    VT=$(echo ${VALUE}   | awk '{print $9}')
        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}')
        CHECK=$(echo ${VALUE}     | awk '{print $7}')

        if [ "$CHECK" = "OK" ]; then
                echo -e "$ID($POWER*W)\n$ID($ENERGY*Wh)\n${ID}_VR($VR*V)\n${ID}_VS($VS*V)\n${ID}_VT($VT*V)\n${ID}_2($CURRENT*A)\n${ID}_3($FREQUENCY*Hz)\n${ID}_4($FACTOR*F)" > /$
    else
        if [ -f /dev/shm/metern${ADDRESS}.txt ]; then
            POWER="0.00"
            ENERGY=`sed -n '2p' /dev/shm/metern${ADDRESS}.txt`
                        VR="0.00"
                        VS="0.00"
                        VT="0.00"
                        CURRENT="0.00"
                        FREQUENCY="0.00"
                        FACTOR="0.00"
                        VOLTAGES="0.00"
                         echo -e "$ID($POWER*W)\n$ENERGY\n${ID}_VR($VR*V)\n${ID}_VS($VS*V)\n${ID}_VT($VT*V)\n${ID}_2($CURRENT*A)\n${ID}_3($FREQUENCY*Hz)\n${ID}_4($FACTOR*F)" > /dev/shm/mete$
        fi
    fi
    sleep 0.2

    done

done



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] == 'VR') {
                        $outstr =  exec('cat /dev/shm/metern1.txt | egrep "^1_VR\(" | grep "*V)"');
                } elseif ($argv[1] == 'VS') {
                        $outstr =  exec('cat /dev/shm/metern1.txt | egrep "^1_VS\(" | grep "*V)"');
                } elseif ($argv[1] == 'VT') {
                        $outstr =  exec('cat /dev/shm/metern1.txt | egrep "^1_VT\(" | grep "*V)"');
                } elseif ($argv[1] == 'corrente') {
                        $outstr =  exec('cat /dev/shm/metern1.txt | egrep "^1_2\(" | grep "*A)"');
                } 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';


TESTCOM

Codice: Seleziona tutto

Testing in progress (1)
Array
(
    [0] => 228.58 0.00 1.00 49.99 0 71 OK
    [1] => 228.55 0.00 1.00 49.99 0 71 OK
    [2] => 228.55 0.00 1.00 49.99 0 71 OK
    [3] => 228.57 0.00 1.00 49.99 0 71 OK
    [4] => 228.57 0.00 1.00 49.99 0 71 OK
    [5] => 228.57 0.00 1.00 49.99 0 71 OK
    [6] => 228.57 0.00 1.00 49.99 0 71 OK
    [7] => 228.48 0.00 1.00 49.99 0 71 OK
    [8] => 228.48 0.00 1.00 49.99 0 71 OK
    [9] => 228.48 0.00 1.00 49.99 0 71 OK
)
02/07/2020 18:44:16 : sdm120c -a1 -b9600 -z5 -j5 -w10 -PN -qpievfg -d0 /dev/ttyUSB0
Result : best 221.514 ms - worst 1421.2661 ms - 0 error(s)

root@Tesla:/var/www/comapps#


AVVIO MONITOR CON METERN SPENTO ./monitor ecco cosa scrive nel metern1.txt

Codice: Seleziona tutto

1_VR(228.87*V)
1_VS(228.72*V)
1_VT(228.82*V)
1_CR(0.00*A)
1_CS(0.00*A)
1_CT(0.00*A)
1_PR(0.00*W)
1_PS(0.00*W)
1_PT(0.00*W)
1_APR(0.00*VA)
1_APS(0.00*VA)
1_APT(0.00*VA)
1_RPR(0.00*VAR)
1_RPS(0.00*VAR)
1_RPT(0.00*VAR)
1_PFR(1.00*PF)
1_PFS(1.00*PF)
1_PFT(1.00*PF)
1_PAR(-121.26*°)
1_PAS(-93.35*°)
1_PAT(-81.38*°)
1_AVN(228.70*V)
1_ALC(0.00*A)
1_SLC(0.00*A)
1_TP(0.00*W)
1_TAP(0.00*VA)
1_TRP(0.00*VAE)
1_TPF(1.00*PF)
1_TPA(-98.66*°)
1_F(49.97*Hz)
1_IE(0*Wh)
1_EE(0*Wh)
1_RIE(0*VARh)
1_REE(0*VARh)
1_VRS(395.68*V)
1_VST(0.00*V)
1_VTR(396.34*V)
1_AVLL(264.05*V)
1_NC(0.00*V)
1_TE(71*Wh)
1_TRE(146*VARh)


dopo che avvio meterN e vado in metern1.txt ecco cosa trovo

Codice: Seleziona tutto

1(0.00*W)
1(0*Wh)
1_VR(231.28*V)
1_VS(*V)
1_VT(*V)
1_2(0.00*A)
1_3(50.01*Hz)
1_4(1.00*F)


quale è la motivazione? dove sbaglio?

Grazie


ilmarchese
Messaggi: 20
Iscritto il: 11/06/2020, 15:02

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

Messaggioda ilmarchese » 06/07/2020, 12:05

Flane ha scritto:Io non uso monitor ed ho fatto al tempo della pubblicazione solo qualche test con un contatore monofase per cui mi è difficile poterti aiutare.

Esiste un'altro modo?

Grazie

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

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

Messaggioda Flane » 06/07/2020, 12:12

Qui sul forum per i contatori trifase c'è solo monitor.

Ma con tutta la confusione che è stata fatta sopra io non ho capito se sei riuscito a configurare monitor e se hai una lettura completa dei dati del contatore trifase da monitor.


Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti