Raspberry + MeterN - Monitoraggio energetico valido ed economico - GUIDA - EnergeticAmbiente.it

annuncio

Comprimi
Ancora nessun annuncio.

Raspberry + MeterN - Monitoraggio energetico valido ed economico - GUIDA

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • provato a fare la correzione, messo file D3 con entrambe le righe tariffa, continua a leggere la tariffa del 2015,
    però adesso non so se la legge dal file D3 o usa quella preimpostata su virtmet, non ho provato con una sola riga tariffa.
    14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
    Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
    Eflow Live rev. 3.2
    (funziona anche con multi inverter e multi contatori consumo)

    Commenta


    • Scusate se approfitto ancora vorrei chiedervi una cosa : Dopo aver istallato metern solo per il monitoraggio della corrente consumata ora borri configurare gli indicators per vedere sul pannello la corrente e la tensione il comando da manuale è questo: cat /run/shm/metern2.txt | egrep "^2_1\(" | grep "*V)" al test mi risponde:
      is novaliddthe correct format is 2_1(1234.5*) entro in : cat/run/shm il file txt si chiama metern1 cambio il comando ma nulla e all'interno trovo scritto così 1(526.35*w) 1(37847*wh) 1_1(232.95*v)1_2(2.30*A)1_3(50.04*Hz)1_4(0.98*F) sapete dirmi come compilare il comando esatto?

      Commenta


      • cesare prova con
        cat /run/shm/metern1.txt | egrep "^1_1\(" | grep "*V)"
        cat /run/shm/metern1.txt | egrep "^1_2\(" | grep "*A)"
        cat /run/shm/metern1.txt | egrep "^1_3\(" | grep "*Hz)"
        cat /run/shm/metern1.txt | egrep "^1_4\(" | grep "*F)"
        14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
        Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
        Eflow Live rev. 3.2
        (funziona anche con multi inverter e multi contatori consumo)

        Commenta


        • Provato mi risponde sempre con errore

          Commenta


          • Originariamente inviato da cesare.braga Visualizza il messaggio
            Provato mi risponde sempre con errore
            hai messo l'unità di misura corrispondente nell'ultima casella a destra?
            V per tensione
            A per corrente
            ecc...
            14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
            Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
            Eflow Live rev. 3.2
            (funziona anche con multi inverter e multi contatori consumo)

            Commenta


            • The drake ho modificato la riga 83 in questo modo
              codice:
              if (isset($options['tariffa'])) $filenameTariffa = '/var/www/metern/comapps/tariffe/' . $options['tariffa'] . '.csv';
              adesso legge il file D3.csv
              14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
              Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
              Eflow Live rev. 3.2
              (funziona anche con multi inverter e multi contatori consumo)

              Commenta


              • Originariamente inviato da ninodifranco Visualizza il messaggio
                provato a fare la correzione, messo file D3 con entrambe le righe tariffa, continua a leggere la tariffa del 2015,
                però adesso non so se la legge dal file D3 o usa quella preimpostata su virtmet, non ho provato con una sola riga tariffa.
                Scaricate da qui la versione 2.6 di prova: https://raw.githubusercontent.com/Th...rtmet-F123.php

                Per il discorso percorso dei file tariffa, lo script è fatto per prendere i file rispetto alla directory corrente da cui viene eseguito (che per metern dovrebbe sempre essere la comapps). Se si vuole fare dei test in un'altra dir andrà copiata anche la dir tariffe in locale.
                1. C'era un errore che impediva di ricavare la riga con la tariffa in vigore quando i mesi erano di una sola cifra... (!)
                2. Ora dovrebbe funzionare meglio e potete lanciarlo con l'opzione --debug per vedere parametri letti e calcoli nel dettaglio.
                Sorry, fatemi sapere i risultati!

                /drk
                Ultima modifica di TheDrake; 11-01-2016, 23:20.

                Commenta


                • adesso provo,
                  però non capisco come mai mettendo il persorso completo del file D3.csv riesca a leggere correttamente la tariffa che si trova dopo quella del 2015?
                  Se come dici tu c'era un problema con le date non avrebbe dovuto leggere la tariffa corretta.
                  14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                  Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                  Eflow Live rev. 3.2
                  (funziona anche con multi inverter e multi contatori consumo)

                  Commenta


                  • Originariamente inviato da ninodifranco Visualizza il messaggio
                    adesso provo,
                    però non capisco come mai mettendo il persorso completo del file D3.csv riesca a leggere correttamente la tariffa che si trova dopo quella del 2015?
                    Se come dici tu c'era un problema con le date non avrebbe dovuto leggere la tariffa corretta.
                    Ho fatto varie prove e a me non la trovava (prima della modifica date()).

                    Per il percorso, ho lasciato commentate nello script le istruzioni per cercare le tariffe rispetto alla directory in cui si trova lo script, così si può modificare rapidamente.

                    /drk

                    Commenta


                    • Originariamente inviato da TheDrake Visualizza il messaggio
                      Per il percorso, ho lasciato commentate nello script le istruzioni per cercare le tariffe rispetto alla directory in cui si trova lo script, così si può modificare rapidamente.
                      Ma ora l'ho modificato per usare sempre un percorso relativo rispetto allo script. Non voglio rischiare...

                      Download sempre allo stesso percorso: https://raw.githubusercontent.com/Th...rtmet-F123.php

                      /drk

                      Commenta


                      • Drake provata la nuova release,
                        ho dovuto utilizzare la riga 89 e commentare la riga 90 altrimenti non acquisiva il file della tariffa.
                        Per oggi la laurea in tariffe by metern ci spetta di diritto, questa notte sogneremo tariffe di metern.
                        14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                        Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                        Eflow Live rev. 3.2
                        (funziona anche con multi inverter e multi contatori consumo)

                        Commenta


                        • Originariamente inviato da ninodifranco Visualizza il messaggio
                          Drake provata la nuova release,
                          ho dovuto utilizzare la riga 89 e commentare la riga 90 altrimenti non acquisiva il file della tariffa.
                          Per oggi la laurea in tariffe by metern ci spetta di diritto, questa notte sogneremo tariffe di metern.
                          Non so come ringraziarti, mi hai permesso di rimuovere un paio di brutti bug!

                          Per me numero uno!

                          Ora sono pià tranquillo anche io...

                          Direi che passo subito la release a ufficiale.

                          /drk

                          Commenta


                          • Prima di andare a nanna ti segnalo un altro piccolo bug che per quest'anno ti puoi permettere anche di lasciare,
                            le frazioni di 5' dei costi fissi sono calcolati su 366 giorni, meglio farli su 365 e sbagliare un anno su 4 e non 366 e sbagliare 3 anni ogni 4.
                            14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                            Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                            Eflow Live rev. 3.2
                            (funziona anche con multi inverter e multi contatori consumo)

                            Commenta


                            • Originariamente inviato da ninodifranco Visualizza il messaggio
                              Prima di andare a nanna ti segnalo un altro piccolo bug che per quest'anno ti puoi permettere anche di lasciare,
                              le frazioni di 5' dei costi fissi sono calcolati su 366 giorni, meglio farli su 365 e sbagliare un anno su 4 e non 366 e sbagliare 3 anni ogni 4.
                              No, dai questa no... Stavolta il calcolo è giusto.

                              codice:
                              $yeardays = date("z", strtotime( date('Y') . '-12-31')) + 1;
                              PHP: date - Manual

                              /
                              drk

                              Commenta


                              • Per confrontare le tariffe ho usato questo file exel
                                calcolo costi bolletta.zip
                                per il 2016 i costi corrispondevano perfettamente
                                per il 2015 invece c'era una piccola differenza, appena l'ho impostato su 366 giorni tutto combaciava alla perfezione

                                edit: ho capito perchè il calcolo non combaciava, quest'anno è di 366 giorni e io confrontavo la tariffa 2015 nell'anno 2016
                                hai pienamente ragione, la formula si adatta automaticamente tenendo conto degli anni bisestili. argomento chiuso.
                                Ultima modifica di ninodifranco; 12-01-2016, 01:13.
                                14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                                Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                                Eflow Live rev. 3.2
                                (funziona anche con multi inverter e multi contatori consumo)

                                Commenta


                                • buongiorno ragazzi,
                                  vedo che la notte porta buoni frutti, per cui ho aggiornato virtmet alla ver. 0.2.6.1 ultima, riaggiornato il file D2.csv aggiungendo la seconda riga
                                  codice:
                                  DVAL,QS,QP,F1PE,F23PE,S1,S1PE,S2,S2PE,S3,S3PE,S4,S4PE,ACCISA,IVA
                                  20151001,26.6508,7.0145,0.06730,0.06186,1800,0.062402,2640,0.122162,4440,0.191782,99999999,0.238252,0.0227,0.10
                                  20160101,42.6248,10.0565,0.06111,0.05298,1800,0.061522,2640,0.113742,4440,0.186792,99999999,0.186792,0.0227,0.10
                                  fatto ripartire metern, ora chiedo se gentilmente (leggi ninodifranco ) qualcuno può indicarmi il modo più semplice per verificare se funziona correttamente, grazie

                                  mio metern
                                  FV 2,550 kWp azimut 30° S-SO tilt 25°, 10 Q.Cells 255Wp, Inverter ABB-PVI-3.0-OUTD-S, monitor made in energeticambiente con raspberry meterN 123solar e PVoutput.org connesso dal 29 Aprile 2015

                                  Commenta


                                  • Originariamente inviato da ninodifranco Visualizza il messaggio
                                    hai messo l'unità di misura corrispondente nell'ultima casella a destra?
                                    V per tensione
                                    A per corrente
                                    ecc...
                                    Buonasera sono riuscito alla grande mi blocco sempre per delle stupidate ultima domanda nel grafico quando produco più' di quello che consumo nan va a - come nell'indicatore dei watt c'è qualche possibilità' per cambiarlo vi allego la foto ( sono poco pratico dei forum)
                                    Clicca sull'immagine per ingrandirla. 

Nome:   Schermata 2016-01-12 alle 21.54.35.png 
Visite: 1 
Dimensione: 110.5 KB 
ID: 1954279

                                    Commenta


                                    • Buonasera,
                                      cortesemente qualcuno può aiutarmi?
                                      ho letto le ultime trenta pagine del forum, e un problema simile lo aveva amorospo.

                                      la mia configurazione è la seguente:
                                      -inverter aurora monitorato da un raspberry con 123solar
                                      -consumi monitorati su tre linee da tre sdm120c in serie, collegati ad un secondo raspberry, con metern

                                      la produzione viene presa con una versione modificata di 123solar, presa sul sito di Jeanmarc
                                      meterN and 123solar on different computers - 123solar meterN

                                      il problema è che i grafici generati da eflow sono completamente sballati:
                                      i prelievi sono elevatissimi (megawatt)
                                      la produzione a zero
                                      l' autoconsumo negativissimo

                                      http://perillo.no-ip.org:88/metern/

                                      i meter sono i seguenti:
                                      1-produzione - pool123www energy
                                      2-consumi2 - poolerconsumi 2 energy
                                      3-consumi3 - poolerconsumi 3 energy
                                      4-consumi4 - poolerconsumi 4 energy
                                      5-prelievi - eflow whin
                                      6-immissioni - eflow whout
                                      7-autoconsumo - eflow selfc

                                      i files:

                                      root@raspberrypi2:/var/www/metern/data/csv# ls -al
                                      totale 96
                                      drwxrwxrwx 2 pi pi 4096 gen 12 00:00 .
                                      drwxrwxrwx 4 pi pi 4096 gen 11 19:28 ..
                                      -rw-r--r-- 1 www-data www-data 99 gen 8 00:26 20160107.csv
                                      -rw-r--r-- 1 www-data www-data 10391 gen 9 00:00 20160108.csv
                                      -rw-r--r-- 1 www-data www-data 13041 gen 10 00:00 20160109.csv
                                      -rw-r--r-- 1 www-data www-data 18025 gen 11 00:00 20160110.csv
                                      -rw-r--r-- 1 www-data www-data 16983 gen 12 00:00 20160111.csv
                                      -rw-r--r-- 1 www-data www-data 16077 gen 12 21:25 20160112.csv

                                      root@raspberrypi2:/var/www/metern/data/csv# cat 20160112.csv
                                      Time,Produzione(Wh),Consumi-2(Wh),Consumi-3(Wh),Consumi-4(Wh),Prelievi(Wh),Immissioni(Wh),Autoconsumo(Wh)
                                      00:00,20551267,113599,175583,156643,736248566,0,-736245612
                                      00:05,20551267,113606,175608,156649,756699871,0,-756696879
                                      00:10,20551267,113614,175633,156656,777151178,0,-777148146
                                      ......
                                      21:15,20564045,116974,180263,160770,5952753710,0,-5952738574
                                      21:20,20564045,117017,180280,160775,5973217820,0,-5973202619
                                      21:25,20564045,117060,180298,160779,5993681930,0,-5993666664
                                      root@raspberrypi2:/var/www/metern/data/csv#


                                      root@raspberrypi2:/run/shm# ls -al
                                      totale 28
                                      drwxrwxrwt 2 root root 200 gen 6 01:40 .
                                      drwxr-xr-x 16 root root 640 gen 6 01:24 ..
                                      -rw-r--r-- 1 www-data www-data 13 gen 12 21:25 consumi2.txt
                                      -rw-r--r-- 1 www-data www-data 13 gen 12 21:25 consumi3.txt
                                      -rw-r--r-- 1 www-data www-data 13 gen 12 21:25 consumi4.txt
                                      -rw-r--r-- 1 www-data www-data 77 gen 12 23:15 metern2.txt
                                      -rw-r--r-- 1 www-data www-data 77 gen 12 23:15 metern3.txt
                                      -rw-r--r-- 1 www-data www-data 76 gen 12 23:15 metern4.txt
                                      -rw-r--r-- 1 www-data www-data 8 gen 7 23:01 produzione1.txt
                                      -rw-r--r-- 1 root root 0 gen 1 1970 .tmpfs
                                      root@raspberrypi2:/run/shm#




                                      root@raspberrypi2:/run/shm# cat produzione1.txt
                                      1(0*Wh)
                                      root@raspberrypi2:/run/shm# cat consumi2.txt
                                      2(117060*Wh)
                                      root@raspberrypi2:/run/shm# cat consumi3.txt
                                      3(180298*Wh)
                                      root@raspberrypi2:/run/shm# cat consumi4.txt
                                      4(160779*Wh)
                                      root@raspberrypi2:/run/shm# cat metern2.txt
                                      2(332.20*W)
                                      2(117653*Wh)
                                      2_1(236.80*V)
                                      2_2(1.66*A)
                                      2_3(50.00*Hz)
                                      2_4(0.85*F)
                                      root@raspberrypi2:/run/shm# cat metern3.txt
                                      3(223.70*W)
                                      3(180572*Wh)
                                      3_1(236.10*V)
                                      3_2(0.94*A)
                                      3_3(50.00*Hz)
                                      3_4(1.02*F)
                                      root@raspberrypi2:/run/shm# cat metern4.txt
                                      4(50.90*W)
                                      4(160874*Wh)
                                      4_1(236.70*V)
                                      4_2(0.41*A)
                                      4_3(50.00*Hz)
                                      4_4(0.52*F)
                                      root@raspberrypi2:/run/shm#


                                      GRAZIE

                                      Commenta


                                      • ugo, il pool123s che tu chiami pool123www non salva il totale nel file produzione1.txt, salva valore 0
                                        non so se lo hai modificato, ma se usi il file pool123s che trovi nel pacchetto eflow della guida di flane dovrebbe funzionare tutto.

                                        cesare, nel grafico io non vedo nessuna produzione, il consumo negativo, che io sappia, non esiste,
                                        se riesci ad avere anche la produzione su metern puoi usare eflow per monitorare immissioni, prelievi ed autoconsumo.
                                        Ultima modifica di ninodifranco; 13-01-2016, 03:13.
                                        14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                                        Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                                        Eflow Live rev. 3.2
                                        (funziona anche con multi inverter e multi contatori consumo)

                                        Commenta


                                        • ho metern in funzione da un paio d'anni (i dati fv vengono letti da 123solar, quelli dei consumi da emoncms), i miei meter principali sono:
                                          pooler solar che legge i consumi da "php /var/www/123solar/scripts/metern.php"
                                          pooler elect che legge i consumi da "php /var/www/metern/comapps/metern_consumi.php"

                                          ad ogni aggiornamento è il caos, adesso volevo riprovarci ma credo di dover sicuramente sistemare pooler.php perchè crea dei grafici corretti ma dei totali almeno quintunplicati.

                                          nel sito di menetern vedo comapps_examples20160108.tar.gz che contiene housenergy.php e pool123s.php e import123solar.php
                                          poi poolmeters20151128.tar.gz che contiene pooler.php
                                          e voi proponete eflow_rev_3.1 che contiene.

                                          cosa devo correggere? sostituire pooler.php con eflow.php?
                                          mi sa che sto facendo un po' di confusione.
                                          grazie

                                          Commenta


                                          • Originariamente inviato da modenet Visualizza il messaggio
                                            cosa devo correggere? sostituire pooler.php con eflow.php?
                                            mi sa che sto facendo un po' di confusione.
                                            grazie
                                            Scarica e segui la guida di flane 2.20 ed è tutto spiegato per filo e per segno. Così ti togli tutti i dubbi.
                                            FV 4,59 Kwp - 17 QCell G4 270w - Inverter ABB 4.2 - VSN300 Wifi Logger Card - 2 Contatori SDM120C - Tanta buona volontà - Poca pazienza - PVOutput - Aurora Power Plant Viewer - SestoSG

                                            Commenta


                                            • Originariamente inviato da cesare.braga Visualizza il messaggio
                                              Buonasera sono riuscito alla grande mi blocco sempre per delle stupidate ultima domanda nel grafico quando produco più' di quello che consumo nan va a - come nell'indicatore dei watt c'è qualche possibilità' per cambiarlo vi allego la foto ( sono poco pratico dei forum)
                                              Non dovrebbe segnare misure negative. Se posti i parametri dei config dei metern produzione e consumi è più facili aiutarti
                                              FV 4,59 Kwp - 17 QCell G4 270w - Inverter ABB 4.2 - VSN300 Wifi Logger Card - 2 Contatori SDM120C - Tanta buona volontà - Poca pazienza - PVOutput - Aurora Power Plant Viewer - SestoSG

                                              Commenta


                                              • Finalmente ho installato gli script di drake e posso godere appieno dei virtual meter.
                                                Già che c'ero ho provveduto a standardizzare la mia installazione cambiando il metern di produzione che prima utilizzava un secondo pooler485 con il più classico pool123s.
                                                Avevo notato che prima che facessi la modifica, quando mi collegavo al metern (o a 123solar) da esterno (e NON tramite intranet) ogni tanto (un paio di volte ogni 15 secondi) i valori live di prelievi e consumi (assieme o alternativamente) cambiavano repentinamente prendendo il valore istantaneo della tensione di rete (ca. 223). Questo ovviamente non comportava problemi di contabilizzazione delle energie, però a parte esser brutto esteticamente portava a cose del genere: PVOutput. Ora che non ho più poolerconsumi non lo fa più. Qualcuno ha idea del perchè?

                                                Per ora mi son rimasti solo un paio di dubbi:
                                                - nonostante abbia impostato in main config la timezone giusta (roma) ho l'orario di sistema di metern e 123solar indietro di un'ora. I graifici li elabora giusti con le ore giuste, solo che ad esempio per le bollette mi sbaglia il passaggio da F1 a F3 di un'ora! Come faccio ad aggiustare sta cosa?
                                                - ho impostato il virt-met per una potenza di 3kw ed ho messo il file D3.csv sotto /comapps/tariffe. Penso che legga i valori corretti. Però non capisco come mai ad esempio in piena notte mi segni un incremento del risparmio infinitesimale anzichè stare a zero. QUI il mio metern (grafico 4 serie azzurra) per farvi vedere e capire.

                                                Ora mi butto sui sensori. Questo metern è una droga.
                                                FV 4,59 Kwp - 17 QCell G4 270w - Inverter ABB 4.2 - VSN300 Wifi Logger Card - 2 Contatori SDM120C - Tanta buona volontà - Poca pazienza - PVOutput - Aurora Power Plant Viewer - SestoSG

                                                Commenta


                                                • Amorospo hai impostato la time zone nel file di configurazione di Apache? Se apri la guida di Walter trovi un paragrafo che spiega i passaggi per la configurazione.
                                                  14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                                                  Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                                                  Eflow Live rev. 3.2
                                                  (funziona anche con multi inverter e multi contatori consumo)

                                                  Commenta


                                                  • Originariamente inviato da amorospo Visualizza il messaggio
                                                    Per ora mi son rimasti solo un paio di dubbi:
                                                    - nonostante abbia impostato in main config la timezone giusta (roma) ho l'orario di sistema di metern e 123solar indietro di un'ora. I graifici li elabora giusti con le ore giuste, solo che ad esempio per le bollette mi sbaglia il passaggio da F1 a F3 di un'ora! Come faccio ad aggiustare sta cosa?
                                                    Prova a controllare la timezone del sistema operativo:

                                                    raspi-config + Opzione 4 + Opzione I2

                                                    /drk

                                                    Commenta


                                                    • Scusa amorospo, la time zone oltre che da raspi-config come suggerito da drake, si dovrebbe impostare nel file di configurazione di php, e non su Apache come erroneamente suggerimento da me sopra, comunque fai riferimento sempre alla guida di Walter e dovresti trovare i passaggi.
                                                      14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                                                      Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                                                      Eflow Live rev. 3.2
                                                      (funziona anche con multi inverter e multi contatori consumo)

                                                      Commenta


                                                      • pooler485 rewamp

                                                        Vorrei proporre una versione diversa di pooler485 che è quella che uso io e che usa un approccio leggermente differente rispetto al pooler485 standard per la lettura dei dati dai meter srm120c.

                                                        Caratteristiche migliorative
                                                        • gestisce correttamente gli errori basandosi sul codice di errore ritornato da sdm120c
                                                        • è transazionale, cioè scrive valori solo se non ci sono errori
                                                        • gestisce meter multipli
                                                        • impegna meno il bus485 perchè accoda in background, in stretta sequenza i poll di tutti i meter
                                                        • scrive due file con i valori misurati, divisi per tipologia (metern-energy.txt e metern-live.txt)
                                                        • I dati live sono letti molto frequentemente, quelli dell'energia meno frequentemente, ma tutti sono letti il più contemporaneamente possibile
                                                        • i dati letti da più meter sono scritti contemporaneamente sullo stesso file
                                                        • la scrittura su file è atomica (nessun rischio di letture di dati parziali) - perchè il multitasking è sempre in agguato
                                                        • utilizza direttamente sdm120c per la formattazione dei dati compatibile metern
                                                        • è compatibile mono-linea e multi-linea 485
                                                        • genera i file con ID significativi rispetto al valore letto (formato ID_GRANDEZZA(valore*UM), es.: 1_P(valore*W) per la potenza istantanea)
                                                        • genera un file di log relativo all'ultima lettura effettuata in /tmp/lastrun-pooler485-*.log per eventuale debug
                                                        • stringhe di lettura metern più semplici (ndr: forse converrebbe creare un piccolo script anche per queste visto che sono fonte di errori)
                                                        • E' possibile modificare gli script far leggere solo i dati strettamente necessari (es. solo P e V) e solo dai meter interessanti. (Che senso ha leggere tutti i valori live da 4 meter quando probabilmente bastano solo P e V del contatore principale?)
                                                        • ultimo ma non ultimo, gli script sono in grado di convivere fianco a fianco con il pooler485 classico (per chi volesse fare dei test)
                                                        Prerequisiti
                                                        • Ultima versione di sdm120c (TheDrake)
                                                        Preview istruzioni sintetiche per i temerari volonterosi, da utilizzare solo se sapete quello che state facendo... Preparate un backup :
                                                        1. copiare ed installare i due file pooler485-live.sh e pooler485-energy.sh nella dir metern/comapps come già descritto nelle varie guide per il file pooler485.sh "classico" (chmod +x pooler485-*, solito ln verso /usr/local/bin)
                                                        2. stop metern
                                                        3. modifica comandi di lettura energia e live con le nuove stringhe dove ID è l'id FISICO del meter da leggere:
                                                          • per valore energia: egrep "^ID_IE\(" /run/shm/metern-energy.txt
                                                          • per valore potenza: egrep "^ID_P\(" /run/shm/metern-live.txt
                                                        4. modifica comappdaemon.php o rc.local per far partire i nuovi script
                                                        5. se si usa rc.local, far partire manualmente i due pooler (live/energy).
                                                        6. restart metern
                                                        Estratto per lancio da metern/config/config_daemon.php

                                                        ----
                                                        $output = shell_exec('pkill -f pooler485-energy > /dev/null 2>&1');

                                                        $output = shell_exec('pooler485-energy 1,10,11,12 9600 /dev/ttyUSB0 > /dev/null 2>&1 &');
                                                        sleep(10);
                                                        $output = shell_exec('pkill -f pooler485-live > /dev/null 2>&1');
                                                        $output = shell_exec('pooler485-live 1 9600 /dev/ttyUSB0 > /dev/null 2>&1 &');
                                                        sleep(10);
                                                        ----

                                                        Esempio di /run/shm/metern-live.txt

                                                        codice:
                                                        root@datalogger01:~# cat /run/shm/metern-energy.txt
                                                        1_V(233.87*V)
                                                        1_C(2.55*A)
                                                        1_P(595.72*W)
                                                        1_PF(1.00*F)
                                                        1_F(50.03*Hz)
                                                        Esempio di /run/shm/metern-energy.txt

                                                        codice:
                                                        root@datalogger01:~# cat /run/shm/metern-energy.txt
                                                        1_IE(1765772*Wh)
                                                        1_EE(745185*Wh)
                                                        10_IE(535435*Wh)
                                                        10_EE(0*Wh)
                                                        12_IE(380954*Wh)
                                                        12_EE(0*Wh)
                                                        11_IE(2342042*Wh)
                                                        11_EE(0*Wh)
                                                        Qui sotto i file (sperando che la formattazione non si mangi mezzi gli script

                                                        root@datalogger01:~# cat metern/comapps/pooler485-live.sh
                                                        Codice PHP:
                                                        #!/bin/bash
                                                        POOLER='/usr/local/bin/sdm120c-td'CMD='-d1 -m -pvcfg'
                                                        OUTPUT='/run/shm/metern-live.txt'
                                                        LASTRUNLOG='/tmp/lastrun-pooler485-live.log'

                                                        ADDRESSES="$1"
                                                        BAUD_RATE="$2"
                                                        DEVICE="$3"
                                                        ADDR_ARR=$(echo $ADDRESSES tr "," "\n")

                                                        while [ 
                                                        true ];
                                                         do
                                                            
                                                        fexit=0
                                                            
                                                        {
                                                               
                                                        # Launch readings
                                                               
                                                        for ADDRESS in $ADDR_ARR
                                                               
                                                        do
                                                                 
                                                        $POOLER -a${ADDRESS} -b${BAUD_RATE} -PN -w12 -z10 -j15 $CMD ${DEVICE} &
                                                                 
                                                        pids[$ADDRESS]=$!
                                                               
                                                        done;
                                                            } > 
                                                        "$OUTPUT.tmp" 2"$LASTRUNLOG"
                                                         
                                                            
                                                        # Check results
                                                            
                                                        for ADDRESS in $ADDR_ARR
                                                            
                                                        do
                                                                
                                                        wait ${pids[${ADDRESS}]}
                                                                
                                                        rv=$?
                                                                if [ 
                                                        $rv != ]; then
                                                                        fexit
                                                        =1
                                                                fi
                                                            done

                                                            
                                                        if [ $fexit != ]; then
                                                                mv 
                                                        -uf "$OUTPUT.tmp" $OUTPUT
                                                            fi

                                                            sleep 0.5s
                                                        done 
                                                        root@datalogger01:~# cat metern/comapps/pooler485-energy.sh
                                                        Codice PHP:
                                                        #!/bin/bash
                                                        POOLER='/usr/local/bin/sdm120c-td'
                                                        CMD='-d1 -m -ie'
                                                        OUTPUT='/run/shm/metern-energy.txt'
                                                        LASTRUNLOG='/tmp/lastrun-pooler485-energy.log'

                                                        ADDRESSES="$1"
                                                        BAUD_RATE="$2"
                                                        DEVICE="$3"
                                                        ADDR_ARR=$(echo $ADDRESSES tr "," "\n")

                                                        while [ 
                                                        true ]; do
                                                            
                                                        fexit=0
                                                            
                                                        {
                                                               
                                                        # Launch readings
                                                               
                                                        for ADDRESS in $ADDR_ARR
                                                               
                                                        do
                                                                 
                                                        $POOLER -a${ADDRESS} -b${BAUD_RATE} -PN -w12 -z10 -j15 $CMD ${DEVICE} &
                                                                 
                                                        pids[$ADDRESS]=$!
                                                               
                                                        done ;
                                                            } > 
                                                        "$OUTPUT.tmp" 2"$LASTRUNLOG"

                                                            
                                                        # Check results
                                                            
                                                        for ADDRESS in $ADDR_ARR
                                                            
                                                        do
                                                                
                                                        wait ${pids[${ADDRESS}]}
                                                                
                                                        rv=$?
                                                                if [ 
                                                        $rv != ]; then
                                                                        fexit
                                                        =1
                                                                fi
                                                            done
                                                            
                                                        if [ $fexit != ]; then
                                                                mv 
                                                        -uf "$OUTPUT.tmp" $OUTPUT
                                                            fi

                                                            sleep 5s
                                                        done 
                                                        /drk
                                                        Ultima modifica di TheDrake; 14-01-2016, 11:51. Motivo: riformattazione script

                                                        Commenta


                                                        • io ho sempre utilizzato questo pooler485:
                                                          Codice PHP:
                                                          #!/bin/bash

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

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

                                                          while [ true ]; do

                                                              
                                                          ID=0
                                                              VOLTAGE
                                                          =""
                                                              
                                                          CURRENT=""
                                                              
                                                          POWER=""
                                                              
                                                          PFACTOR=""
                                                              
                                                          FRQ=""
                                                              
                                                          ENERGY=""
                                                              
                                                          CHECK=""

                                                              
                                                          for ADDRESS in $ADDR_ARR
                                                              
                                                          do
                                                              
                                                          #((ID++))
                                                              
                                                          ID=$ADDRESS
                                                              CMD
                                                          ="sdm120c -a ${ADDRESS} -b ${BAUD_RATE} -d 0 -j 20 -z 10 -i -p -v -c -f -g -P E -q ${DEVICE}"
                                                              
                                                          #echo $CMD
                                                              
                                                              
                                                          VALUE=`$CMD`
                                                              
                                                          VOLTAGE=$(echo ${VALUE} | cut -d\  -f1)
                                                              
                                                          CURRENT=$(echo ${VALUE} | cut -d\  -f2)
                                                              
                                                          POWER=$(echo ${VALUE} | cut -d\  -f3)
                                                              
                                                          PFACTOR=$(echo ${VALUE} | cut -d\  -f4)
                                                              
                                                          FRQ=$(echo ${VALUE} | cut -d\  -f5)
                                                              
                                                          ENERGY=$(echo ${VALUE} | cut -d\  -f6)
                                                              
                                                          CHECK=$(echo ${VALUE} | cut -d\  -f7)
                                                              
                                                          timestamp=$(date +"%d-%m-%Y %H:%M:%S")
                                                              
                                                              if [ 
                                                          "$CHECK== "OK" ]; then
                                                                  count
                                                          =0
                                                                  
                                                          echo -"$ID($ENERGY*Wh)\n" > /run/shm/meter${ADDRESS}.txt
                                                                  
                                                          echo -"$ID($VOLTAGE*V)\n$ID($CURRENT*A)\n$ID($POWER*W)\n$ID($PFACTOR*PF)\n$ID($FRQ*Hz)" > /run/shm/meterlive${ADDRESS}.txt
                                                                  
                                                          #echo -e "$timestamp > VALUE > $VALUE" >> /var/www/metern/data/meter485-${ADDRESS}.log
                                                              
                                                          else
                                                                  
                                                          count=$(expr $count 1)
                                                                if [ 
                                                          $count -ge 1000 ]; then
                                                                   
                                                          exit
                                                                
                                                          fi
                                                                  
                                                          echo -"$ID(0*V)\n$ID(0*A)\n$ID(0*W)\n$ID(0*PF)\n$ID(0*Hz)" > /run/shm/meterlive${ADDRESS}.txt
                                                                  
                                                          echo -"$timestamp > NOK" >> /var/www/metern/data/check485-${ADDRESS}.err
                                                              fi
                                                              sleep 0.5s

                                                              done

                                                          done 
                                                          separa i valori live dai totali,
                                                          fa il contollo check OK e se il check fallisce non sovrascrive il totale energia e mantiene l'ultimo valore letto correttamente,
                                                          porta a zero tutti i valori live in caso di contatore non leggibile o spento e salva il log in caso di check NOK.

                                                          poi utilizzo questo script per acquisire i valori live:
                                                          Codice PHP:
                                                          #!/usr/bin/php
                                                           
                                                          if (isset($_SERVER['REMOTE_ADDR'])) {
                                                              die(
                                                          'Direct access not permitted');
                                                          }
                                                          // This script will output a meterN compatible format for the main command
                                                          // You'll need to setup the path to meterN ($pathtomn). Put the meters numbers ($metnum) and the corresponding command ($cmd) :
                                                          // ln -s /var/www/metern/comapps/pooler120c.php /usr/bin/pooler120c
                                                          // pooler120c [IndicatorID] [voltage | current | pfactor | frq | aapower]

                                                          $consmet 4// Meter ID Consumi

                                                          // No edit is needed below
                                                          if (!isset($argv[1],$argv[2])) {
                                                          $argv[1]=null;
                                                          }

                                                          if (
                                                          $argv[1]!= null && ($argv[2]== 'voltage' || $argv[2]== 'current' || $argv[2]== 'pfactor' || $argv[2]== 'frq' || $argv[2]== 'aapower')) {
                                                              
                                                              
                                                          $pathtomn '/var/www/metern';
                                                              
                                                          $indicator $argv[1];

                                                              
                                                          define('checkaccess'TRUE);
                                                              include(
                                                          "$pathtomn/config/config_main.php");
                                                              include(
                                                          "$pathtomn/config/config_indicator.php");
                                                              include(
                                                          "$pathtomn/config/config_met$consmet.php");
                                                              
                                                              if (
                                                          $argv[2]== 'voltage') {
                                                                  
                                                          $cmd "more /run/shm/meterlive$consmet.txt | egrep \"^$consmet\(\" | grep \"*V)\""// Request Voltage values
                                                                  
                                                          $datareturn shell_exec($cmd);
                                                                  
                                                          $datareturn trim($datareturn);
                                                                  
                                                          $datareturn preg_replace("/^${'ID'.$consmet}\(/i"''$datareturn); // VALUE*UNIT)
                                                                  
                                                          $voltageval   preg_replace("/\*[a-z0-9]+\)$/i"''$datareturn); // VALUE
                                                                  #echo "$voltageval\n";
                                                                  
                                                                  
                                                          $str     utf8_decode("${'INDID'.$indicator}($voltageval*${'INDUNIT'.$indicator})\n");
                                                                  echo 
                                                          "$str";
                                                              
                                                              }elseif (
                                                          $argv[2]== 'current') {
                                                                  
                                                          $cmd "more /run/shm/meterlive$consmet.txt | egrep \"^$consmet\(\" | grep \"*A)\""// Request Current values
                                                                  
                                                          $datareturn shell_exec($cmd);
                                                                  
                                                          $datareturn trim($datareturn);
                                                                  
                                                          $datareturn preg_replace("/^${'ID'.$consmet}\(/i"''$datareturn); // VALUE*UNIT)
                                                                  
                                                          $currentval   preg_replace("/\*[a-z0-9]+\)$/i"''$datareturn); // VALUE
                                                                  #echo "$currentval\n";
                                                                  
                                                                  
                                                          $str     utf8_decode("${'INDID'.$indicator}($currentval*${'INDUNIT'.$indicator})\n");
                                                                  echo 
                                                          "$str";
                                                              
                                                              }elseif (
                                                          $argv[2]== 'pfactor') {
                                                                  
                                                          $cmd "more /run/shm/meterlive$consmet.txt | egrep \"^$consmet\(\" | grep \"*PF)\""// Request Power Factor values
                                                                  
                                                          $datareturn shell_exec($cmd);
                                                                  
                                                          $datareturn trim($datareturn);
                                                                  
                                                          $datareturn preg_replace("/^${'ID'.$consmet}\(/i"''$datareturn); // VALUE*UNIT)
                                                                  
                                                          $pfactorval   preg_replace("/\*[a-z0-9]+\)$/i"''$datareturn); // VALUE
                                                                  #echo "$pfactorval\n";

                                                                  
                                                          $str     utf8_decode("${'INDID'.$indicator}($pfactorval*PF)\n");
                                                                  echo 
                                                          "$str";
                                                                  
                                                              }elseif (
                                                          $argv[2]== 'frq') {
                                                                  
                                                          $cmd "more /run/shm/meterlive$consmet.txt | egrep \"^$consmet\(\" | grep \"*Hz)\""// Request Frequency values
                                                                  
                                                          $datareturn shell_exec($cmd);
                                                                  
                                                          $datareturn trim($datareturn);
                                                                  
                                                          $datareturn preg_replace("/^${'ID'.$consmet}\(/i"''$datareturn); // VALUE*UNIT)
                                                                  
                                                          $frqval      preg_replace("/\*[a-z0-9]+\)$/i"''$datareturn); // VALUE
                                                                  #echo "$frqval\n";

                                                                  
                                                          $str     utf8_decode("${'INDID'.$indicator}($frqval*${'INDUNIT'.$indicator})\n");
                                                                  echo 
                                                          "$str";
                                                                  
                                                              }elseif (
                                                          $argv[2]== 'power') {
                                                                  
                                                          $cmd "more /run/shm/meterlive$consmet.txt | egrep \"^$consmet\(\" | grep \"*W)\""// Request Power values
                                                                  
                                                          $datareturn shell_exec($cmd);
                                                                  
                                                          $datareturn trim($datareturn);
                                                                  
                                                          $datareturn preg_replace("/^${'ID'.$consmet}\(/i"''$datareturn); // VALUE*UNIT)
                                                                  
                                                          $powerval   preg_replace("/\*[a-z0-9]+\)$/i"''$datareturn); // VALUE
                                                                  #echo "$powerval\n";

                                                                  
                                                          $str     utf8_decode("${'INDID'.$indicator}($powerval*${'INDUNIT'.$indicator})\n");
                                                                  echo 
                                                          "$str";
                                                                  
                                                              }elseif (
                                                          $argv[2]== 'aapower') {
                                                                  
                                                          $cmd "more /run/shm/meterlive$consmet.txt | egrep \"^$consmet\(\" | grep \"*VA)\""// Request Apparent Power values
                                                                  
                                                          $datareturn shell_exec($cmd);
                                                                  
                                                          $datareturn trim($datareturn);
                                                                  
                                                          $datareturn preg_replace("/^${'ID'.$consmet}\(/i"''$datareturn); // VALUE*UNIT)
                                                                  
                                                          $aapowerval   preg_replace("/\*[a-z0-9]+\)$/i"''$datareturn); // VALUE
                                                                  #echo "$aapowerval\n";

                                                                  
                                                          $str     utf8_decode("${'INDID'.$indicator}($aapowerval*${'INDUNIT'.$indicator})\n");
                                                                  echo 
                                                          "$str";
                                                              }
                                                              
                                                          } else {
                                                              die(
                                                          "Usage: pooler120c {IndicatorID} {voltage | current | pfactor | frq | aapower}\n");
                                                          }
                                                          ?> 
                                                          un po rozzo come codice, ma non ha mai fallito un colpo.
                                                          Drake quando posti scripts, postali come php, sono più leggibili e non si mangia nessun carattere.
                                                          comunque la tua idea non è male.
                                                          Ultima modifica di ninodifranco; 14-01-2016, 04:43.
                                                          14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
                                                          Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
                                                          Eflow Live rev. 3.2
                                                          (funziona anche con multi inverter e multi contatori consumo)

                                                          Commenta


                                                          • Originariamente inviato da ninodifranco Visualizza il messaggio
                                                            Amorospo hai impostato la time zone nel file di configurazione di Apache? Se apri la guida di Walter trovi un paragrafo che spiega i passaggi per la configurazione.
                                                            Sì, il server php era corretto.

                                                            Originariamente inviato da TheDrake Visualizza il messaggio
                                                            Prova a controllare la timezone del sistema operativo:

                                                            raspi-config + Opzione 4 + Opzione I2

                                                            /drk
                                                            TROVATO! Era proprio l'ora di sistema settata su Londra. Grazie
                                                            FV 4,59 Kwp - 17 QCell G4 270w - Inverter ABB 4.2 - VSN300 Wifi Logger Card - 2 Contatori SDM120C - Tanta buona volontà - Poca pazienza - PVOutput - Aurora Power Plant Viewer - SestoSG

                                                            Commenta


                                                            • Originariamente inviato da amorospo Visualizza il messaggio
                                                              Avevo notato che prima che facessi la modifica, quando mi collegavo al metern (o a 123solar) da esterno (e NON tramite intranet) ogni tanto (un paio di volte ogni 15 secondi) i valori live di prelievi e consumi (assieme o alternativamente) cambiavano repentinamente prendendo il valore istantaneo della tensione di rete (ca. 223). Questo ovviamente non comportava problemi di contabilizzazione delle energie, però a parte esser brutto esteticamente portava a cose del genere: PVOutput. Ora che non ho più poolerconsumi non lo fa più. Qualcuno ha idea del perchè?

                                                              - ho impostato il virt-met per una potenza di 3kw ed ho messo il file D3.csv sotto /comapps/tariffe. Penso che legga i valori corretti. Però non capisco come mai ad esempio in piena notte mi segni un incremento del risparmio infinitesimale anzichè stare a zero. QUI il mio metern (grafico 4 serie azzurra) per farvi vedere e capire.
                                                              il primo problema credo che tu lo abbia ancora (collegandomi da esterno) vedo che oltre ai valori da te indicati anche il cosfi ha, ogni tot secondi, prende il valore di tensione di rete. Era successo anche a me ed il problema veniva dal fatto che avevo più istanze di pooler485.sh attive. Poi con l'aiuto di The Drake ho risolto.

                                                              Il secondo caso da te esposto non è un errore ma sono i costi fissi determinati dalla tua tariffa riferiti ai cinque minuti, non so se mi sono spiegato
                                                              Antonio
                                                              FV 2,550 kWp azimut 30° S-SO tilt 25°, 10 Q.Cells 255Wp, Inverter ABB-PVI-3.0-OUTD-S, monitor made in energeticambiente con raspberry meterN 123solar e PVoutput.org connesso dal 29 Aprile 2015

                                                              Commenta

                                                              Attendi un attimo...
                                                              X