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

  • Ah ecco, allora l'errore che avevo era perchè avevo un solo spazio
    Monitoraggio energetico con Raspberry – 123Solar e MeterN
    Monitoraggio energetico con Raspberry – Guida all’installazione e configurazione - IMPULSI
    Monitoraggio energetico con Raspberry e contatori EASTRON SDM120modbus e/o SDM220modbus

    Commenta


    • gianfrdp c'è qualcosa che non va con cron.d

      Ho inserito lo script in cron.d, ma non viene eseguito.
      Se lancio manualmente il comando presente nello script in cron.d funziona e il file meterX.txt viene aggiornato.
      Però l'esecuzione non avviene in automatico ogni 15 min come dovrebbe (al 2,17,32,47 minuto di ogni ora)
      Ho provato anche a dare i permessi in esecuzione allo script in cron.d ma non funziona lo stesso.
      Monitoraggio energetico con Raspberry – 123Solar e MeterN
      Monitoraggio energetico con Raspberry – Guida all’installazione e configurazione - IMPULSI
      Monitoraggio energetico con Raspberry e contatori EASTRON SDM120modbus e/o SDM220modbus

      Commenta


      • A mè sembra che fallisci la lettura più spesso di prima...

        Clicca sull'immagine per ingrandirla. 

Nome:   Immagine.jpg 
Visite: 1 
Dimensione: 35.1 KB 
ID: 1951773

        come dice flane forse c'è un errore in dht22

        root echo "4($(ds18b20.py 000005b8a78e)*C)" > /run/shm/metern4.txt
        root /usr/local/bin/dht22.sh 22 24 8 > /dev/null 2>&1
        ho evidenziato in grassetto

        grazie
        località Frosinone; inclinazione 30^; direzione sud;
        13 pannelli schott solar da 230w; inverter Power-One PVI-OutD 3.0
        Solar logger RASPBERRY-PI3
        23Solar feed PVout - MeterN - DOMOTICZ

        Commenta


        • ciao, io uso il dht22 con metern e tengo sotto controllo temperatura ed umidità con successo

          sudo nano /etc/cron.d/dht22
          questo è il mio:

          #!/bin/bash

          SHELL=/bin/bash
          PATH=/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
          MAILTO=""

          2,17,32,47 * * * * root /usr/local/bin/dht.sh temperature 7 > /dev/null 2>&1
          2,17,32,47 * * * * root /usr/local/bin/dht.sh temperature2 8 > /dev/null 2>&1
          uso in metern il meter 7 ed 8
          uso lo script temperature.py con le librerie di AdafruitDHT

          non so se può essere di aiuto....

          Commenta


          • invece, che voi sappiate...avendo il fotovoltaico e tariffa bioraria, quindi "sbilanciata" nei costi di prelievo tra giorno e sera, e weekend.....non c'è un modo in metern per visualizzare i prelievi divisi per fascia oraria?
            andrebbe benissimo averne traccia anche nella scheda che si chiama "letture" dove divide i prelievi mensilmente.
            Sarebbe carino, vedere in che percentuale i prelievi sono stati fatti in fascia F1-2 oppure in fascia F3 non trovate? :-)

            Commenta


            • ciao megamarco, potresti postare una videata del tuo monitoraggio del dht22? anche a me fa la stessa cosa dMIKI e da quando ho la powerline inserita il raspberry non si blocca più, quindi dovrei escludere la connessione come causa, sarebbe interessante capire perché a qualcuno lo fa e ad altri no
              Il mio l'ho escluso anche dalla videata dell'indice principale, mi basta la linea di monitoraggio, ma lo fa lo stesso.
              5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115

              Commenta



              • Ciao Domenico!
                questa è quella della mia configurazione (il DH22 è il meter che si chiama temp_corridoio, e umidità) gli altri meter relativi alla temperatura (temperatura_solaio, e temperatura) sono DS18B20 che sto usando per studiare gli isolamenti che devo fare a casa

                Commenta


                • eflow.php "live" (eflowlive.php)

                  Mi sono sempre chiesto come mai metern non includa al suo interno la possibilità di definire dei contatori virtuali, frutto di semplici operazioni di addizione/somma fra meter già presenti.

                  Stavolta non ho modificato metern per supportare questo tipo di contatori virtuali, ma ho snellito lo script eflow per essere più semplice da implementare, più rapido nell'essere eseguito e altrettanto efficace delle versioni precedenti. Per creare nuovi meter virtuali si potrebbe modificare la sola parte dei calcoli e non dovrebbe essere particolarmente problematico.

                  Tutto nasce su da questo post sul forum metern, ma qui ci sono alcune ulteriori modifiche ai file che serviranno per il mio prossimo post...

                  Per implementare il nuovo script bisogna modificare il file metern.php (io sono partito dalla versione 0.7.7.1) inoculando un po' di codice. Poi non serve nient'altro che lo script, installato come al solito. Basta modificare al suo interno i numeri dei meter che conterranno prelievi/immissioni/autoconsumo.

                  // This script will output --virtuals and estimated-- Wh in/out and
                  // self-consumption counters into a meterN compatible format.
                  // It's based on your household's production and consumption real meters.
                  // The power values will be averaged during a 5 min period and will lag from 5 min.
                  // The self-consumption estimation is only valid if the consumption and
                  // production are on the same phase.
                  // ln -s /var/www/metern/comapps/eflowlive.php /usr/local/bin/eflowlive
                  // eflowlive {whout|whin|selfc} {power|energy} [--plain]


                  // Setup your virtual meters identification numbers:
                  $whinmet = 5; // Meter Number Prelievi (Whin)
                  $whoutmet = 6; // Meter Number Immissioni (Whout)
                  $selfcmet = 7; // Meter Number Autoconsumo (selfc)


                  I parametri sono analoghi alla vecchia versione di eflow.

                  eflowlive {whout|whin|selfc} {energy|power} --plain


                  Allego uno zip col file diff per metern/scripts/metern.php e il file full metern/comapps/eflowlive.php

                  eflowlive.zip

                  Enjoy,
                  /drk

                  Commenta


                  • pooler-wout - Sfruttare l'energia prodotta in eccesso

                    Lo script che segue, serve per attivare o disattivare "qualcosa" quando wout supera una certa soglia.

                    Come esempio pratico ho pensato di attivare o disattivare l'elaborazione di BOINC sul raspberry e sui PC di casa in base alla sovraproduzione di energia. Ho voluto provare qualcosa di disponibile senza mettere ancora in campo dell'hardware. Viene appositamente rieseguito in automatico il comando di attivazione o di spegnimento ogni X secondi.

                    La lettura avviene con un minimo di isteresi e viene fatta 3 volte prima di proseguire, se il valore non è abbastanza stabile. Lo script è configurabile con un elenco di comandi da eseguire nel caso di stop e in quello di start, timeout vari, energia minima, tolleranza di lettura, log, ecc...

                    L'installazione è da fare, come per gli tool di metern, nella directory comapps.

                    Enjoy,
                    /drk

                    pooler-wout.sh

                    codice:
                    #!/bin/ksh
                    #
                    # pooler-wout.sh
                    # ver 0.1
                    #
                    # Needs metern with eflowlive.php configured, working and running
                    #
                    
                    
                    # Command to get liwe power out (wout)
                    WOUTPOOLER="eflowlive whout power --plain"
                    
                    
                    MINPOWER=200
                    POWERTOLERANCE=50
                    REFRESHTIMEOUT=60
                    TIMELOOP=5
                    
                    
                    # Log output 0/1
                    LOG=1
                    
                    
                    # Commands to run when live WOUT > MINPOWER 
                    set -A startcmds  "boinccmd --host myboinchost --set_run_mode auto" \
                                          "boinccmd --set_run_mode auto" #"echo start done"
                    
                    
                    # Commands to run when live WHOUT <= MINPOWER 
                    set -A stopcmds  "boinccmd --host myboinchost --set_run_mode never $(((REFRESHTIMEOUT+10)))" \
                                         "boinccmd --set_run_mode never $(((REFRESHTIMEOUT+TIMELOOP*2)))" \
                                         #"echo stop done"
                    
                    
                    # End of parameters
                    
                    
                    timestart=$(($(date +"%s")-REFRESHTIMEOUT))
                    laststatus=''
                    
                    
                    if [ log ]; then echo "$(date) $0 starting $0"; fi
                    
                    
                    while [ true ]; do
                    
                    
                        # Read at least 3 times: stable read.
                        readcount=0
                        WOUTDIFF=$POWERTOLERANCE
                        WOUT=`$WOUTPOOLER`
                        until (( (( WOUTDIFF < POWERTOLERANCE )) || (( readcount > 2 )) )); do
                          sleep 4
                          WOUT2=`$WOUTPOOLER`
                          if ((WOUT > WOUT2)); then
                              ((WOUTDIFF=WOUT-WOUT2))
                          else
                              ((WOUTDIFF=WOUT2-WOUT))    
                          fi
                          #echo "WOUT=$WOUT, WOUT2=$WOUT2, WOUTDIFF=$WOUTDIFF, readcount=$readcount"
                          ((readcount+=1))
                          WOUT=$WOUT2
                        done
                            
                        timenow=$(date +"%s")
                        timediff=$(($timenow-$timestart))
                        #echo "$timenow,$timediff"
                        
                        # Jobs will run only if WOUT is > MINPOWER
                        if (( WOUT > MINPOWER )); then
                        
                            # let boinc run
                            if [ "$laststatus" != 'OK' ]; then
                              timediff=REFRESHTIMEOUT
                              if [ log ]; then echo "$(date) $0 WOUT=$WOUT W: Status stopped->started"; fi
                            fi
                            
                            # Renew current status every REFRESHTIMEOUT
                            if (( timediff >= REFRESHTIMEOUT )) ; then
                              for i in "${startcmds[@]}"; do
                                 $i
                              done
                              laststatus='OK'; timestart=$(date +"%s")
                            fi
                           
                        else
                        
                            #Stop
                            if [ "$laststatus" != 'KO' ]; then
                              timediff=REFRESHTIMEOUT
                              if [ log ]; then echo "$(date) $0 WOUT=$WOUT W: Status started->stopped"; fi
                            fi
                            
                            # Renew current status every REFRESHTIMEOUT
                            if (( timediff >= REFRESHTIMEOUT )); then
                              for i in "${stopcmds[@]}"; do
                                 $i
                              done
                              laststatus='KO'; timestart=$(date +"%s")
                            fi
                            
                        fi
                    
                        sleep $TIMELOOP
                    
                    done

                    Commenta


                    • The Drake, grazie del tuo aiuto , è quello che serve a tutti. Anch'io uso qualcosa del genere fatto da gianfrdp da un paio d'anni che non fa il controllo tre volte ma una sola volta al minuto e posso dirti in via pratica d'utilizzo che non c'è un'isteresi così frequente da necessitare il controllo tre volte.

                      I parametri sono un po' più elevati e si basano su 100w di differenza ( ovviamente modificabili) che sono buoni perché meno oscillanti dei 50w previsti, unica cosa che vedo ad occhio è che il tuo script è più snello nel vedersi ( sulla sua sintassi non posso parlare perché assolutamente incompetente) .

                      Però volevo chiederti come faresti poi ad utilizzare più di un attuatore, ovvero si possono pilotare più consumi o sfruttare solo l'eccesso di produzione su una sola uscita? con quale periferica si può poi attivare un carico?
                      il sistema di gianfrdp si basa sui GPIO ed i relè da loro pilotati, il tuo come si può materialmente collegare ad una resistenza ad esempio?

                      Non vorrei ingenerare ipotesi di confronto tra le due cose , mi sembrano frutto di una grande conoscenza informatica di entrambi ma è solo per capirne il funzionamento e se si può sfruttare senza appesantire la RAM del Raspberry.

                      il sistema di gianfranco usa ben 8 GPIO per altrettanti comandi indipendenti, è possibile farlo anche dal tuo?

                      l'allego per farmi capire meglio
                      e ti ringrazio sempre del grande contributo che dai a "ignoranti informatici" come me per farci capire le cose che possiamo fare con il Raspy
                      5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115

                      Commenta


                      • ciao

                        sono riuscito ad avere i grafici della temperatura e umidità senza buchi
                        ho fatto varie prove, grazie ai suggerimenti di Gianfranco, ed alla fine ho ottenuto questo

                        Clicca sull'immagine per ingrandirla. 

Nome:   Immagine.jpg 
Visite: 1 
Dimensione: 26.8 KB 
ID: 1951806

                        per i comandi del ds18b20 (temperatura ext) ho usato i comandi del post 1316 tranne l'ultimo comando (comando da mettere in metern)
                        per i comandi del dht22 (temperatura ed umidità interna) ho usato i comandi del post 1341 tranne la creazione del dth22

                        sudo -s
                        nano
                        /etc/cron.d/sensori
                        #!/bin/bash


                        SHELL=/bin/bash
                        PATH=/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
                        MAILTO=""


                        # Minute Hour Day Month Day of Week User Command
                        # (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
                        2,17,32,47 * * * * root ADHT_metern.py 22 24 6 > /run/shm/metern6.txt
                        2,17,32,47 * * * * root echo "7($(ds18b20.py 00000615324d)*C)" > /run/shm/metern4.txt
                        poi
                        sudo chmod +x /etc/cron.d/sensori
                        i valori in grassetto vanno personalizzati con i propri

                        per la temperatura interna ho usato
                        cat /run/shm/metern8.txt | grep C

                        per l'umidità interna ho usato
                        cat /run/shm/metern8.txt | grep %

                        per la temperatura esterna ho usato
                        cat /run/shm/metern4.txt

                        scusate se ho deto qualche castroneria ma ... funziona..

                        grazie
                        località Frosinone; inclinazione 30^; direzione sud;
                        13 pannelli schott solar da 230w; inverter Power-One PVI-OutD 3.0
                        Solar logger RASPBERRY-PI3
                        23Solar feed PVout - MeterN - DOMOTICZ

                        Commenta


                        • Originariamente inviato da dolam Visualizza il messaggio
                          The Drake, grazie del tuo aiuto , è quello che serve a tutti. Anch'io uso qualcosa del genere fatto da gianfrdp da un paio d'anni che non fa il controllo tre volte ma una sola volta al minuto e posso dirti in via pratica d'utilizzo che non c'è un'isteresi così frequente da necessitare il controllo tre volte.

                          I parametri sono un po' più elevati e si basano su 100w di differenza ( ovviamente modificabili) che sono buoni perché meno oscillanti dei 50w previsti, unica cosa che vedo ad occhio è che il tuo script è più snello nel vedersi ( sulla sua sintassi non posso parlare perché assolutamente incompetente) .

                          Però volevo chiederti come faresti poi ad utilizzare più di un attuatore, ovvero si possono pilotare più consumi o sfruttare solo l'eccesso di produzione su una sola uscita? con quale periferica si può poi attivare un carico?
                          il sistema di gianfrdp si basa sui GPIO ed i relè da loro pilotati, il tuo come si può materialmente collegare ad una resistenza ad esempio?

                          Non vorrei ingenerare ipotesi di confronto tra le due cose , mi sembrano frutto di una grande conoscenza informatica di entrambi ma è solo per capirne il funzionamento e se si può sfruttare senza appesantire la RAM del Raspberry.

                          il sistema di gianfranco usa ben 8 GPIO per altrettanti comandi indipendenti, è possibile farlo anche dal tuo?

                          l'allego per farmi capire meglio
                          e ti ringrazio sempre del grande contributo che dai a "ignoranti informatici" come me per farci capire le cose che possiamo fare con il Raspy
                          Ciao Dolam,
                          il mio piccolo script è solo una semplice implementazione per permettere a chiunque di avere un programmino per attivare o disattivare "qualcosa" in base alla sovraproduzione complessiva del sistema tramite comandi da shell. Nulla che sia paragonabile alla complessità e alla versatilità di quanto ha fatto gianfrdp che ha anche una bellissima interfaccia, nel mio caso totalmente assente. Se si volessero gestire più output indipendenti sarebbe necessario almeno avere una priorità di attivazione dei singoli consumi. Anzi, hai un link al quale posso trovare il suo programma? Ho mooooolto da imparare prima di avvicinarmi al suo livello.

                          Per il discorso dell'isteresi, visto che io ho un loop abbastanza stretto perchè leggo i dati live, mi è capitato di avere a volte letture molto oscillanti (es passaggio di nuvole) e a volte dei singoli picchi a zero che dopo poco si riprendono. Soprattutto qualche lettura a 0 mi ha fatto pensare ad un problema di lettura nascosto nei valori shm di 123solar e metern che però non ho ancora individuato, così ho deciso di mettere questo minimo controllo per evitare letture errate e/o per variazioni istantanee ininfluenti. E' un di più che volendo si toglie cancellando poche righe al prezzo di qualche attivazione/disattivazione in più.

                          Bye,
                          /drk

                          Commenta


                          • the drake , si lo so che gianfranco è inarrivabile, essendo un vero professionista.

                            Ho il suo file da tempo anche se non saprei dirti come funziona e posso solo dirti che dal primo minuto che me lo ha fornito è sempre stato in funzione senza mai un solo errore e quindi avevo solo imparato dove si potevano modificare i parametri d'intervento ( regolazione dei watt di riferimento) e i corrispondenti PIN del GPIO per i collegamenti.

                            detto questo ho capito che anche il tuo script può essere utile se ha la possibilità di avere qualcosa che lo traduca in comando meccanico on/off , un relè o qualsiasi altro modo con una presa wireless, mi chiedevo se era possibile replicare la funzione si da trasformarlo in una serie ripetuta di comandi on/off.

                            Per lo script che potrebbe esserti utile devi chiederlo direttamente a lui perché non saprei indicarti qual'è e forse è una combinazione di più file.
                            5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115

                            Commenta


                            • Originariamente inviato da TheDrake Visualizza il messaggio
                              Anzi, hai un link al quale posso trovare il suo programma? Ho mooooolto da imparare prima di avvicinarmi al suo livello.
                              ciao, questa è la discussione di riferimento dove Gianfranco aveva spiegato come funziona il suo programma
                              http://www.energeticambiente.it/tecn...egnimento.html
                              io lo uso, grazie a lui, al suo post pubblico che ti ho segnalato, e grazie alla sua pazienza nello spiegarmi ed insegnarmi..... riesco a pilotare il deumidificatore ed il chiller, usando appunto la "sovraproduzione"

                              Commenta


                              • Ciao, rieccomi.

                                La discussione in cui si parlava del sw per controllare i carichi è questa http://www.energeticambiente.it/tecn...egnimento.html
                                In particolare i sorgenti sono qui https://github.com/gianfrdp/PvLoadsDomotic

                                @flane
                                se non ti funziona cron... avevo riportato il mio in cui c'era anche il comando per il sensore DS18B20... prova a commentare quella riga
                                Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
                                PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

                                Commenta


                                • Non sò che cosa aveva cron, poi l'ho lasciato li acceso ed ha cominciato ad andare regolare. GRAZIE
                                  Monitoraggio energetico con Raspberry – 123Solar e MeterN
                                  Monitoraggio energetico con Raspberry – Guida all’installazione e configurazione - IMPULSI
                                  Monitoraggio energetico con Raspberry e contatori EASTRON SDM120modbus e/o SDM220modbus

                                  Commenta


                                  • virtmet.php - semplice meter virtuale add+sub

                                    Altra applicazione di meter virtuale, in questo caso vengono sommati n meter e sottratti altri n meter da un elenco configurato all'interno dello script.

                                    Io l'ho usato per ricavare e memorizzare una misura con la differenza fra il meter del piano e il meter del solo condizionatore per avere il consumo del piano escluso il condizionatore. La prossima applicazione sarà per trovare gli scostamenti fra i dati letti dell'inverter e quelli rilevati dai contatori. Per ogni "calcolo" aggiuntivo, basta duplicare lo script (virtmet1, virtmet2, ecc...) e chiamarlo con la sintassi classica:

                                    virtmet1 energy
                                    virtmet1 power
                                    ...

                                    N.B.: Serve la versione modificata di metern, come da mio precedente post.

                                    Segue script:

                                    virtmet.php
                                    codice:
                                    #!/usr/bin/php
                                    
                                    									
                                    								
                                    								
                                    							
                                    								
                                    									
                                    									
                                    								
                                    								
                                    									
                                    									
                                    									
                                    									
                                    										
                                    									
                                    
                                    									
                                    										
                                    
                                    
                                    
                                    
                                    	
                                    	
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    	
                                    
                                    
                                    
                                    
                                    

                                  • Come da precedente post, avendo connesso l'impianto recentemente con modalità ASAP, ho provato a loggare i dati con metern usando un solo SDM120C.
                                    L'impianto ha un solo contatore bidirezionale e non ho un inverter compatibile con 123solar.
                                    Questo è quello che è uscito fuori ma ho un problema con la lettura dei 15 giorni, Come faccio a modificare la scala segnalata in rosso volendo vedere solo i KWh di Prelievi e Immissioni che vengono sfalsate da Consumi che usa Wh?

                                    Clicca sull'immagine per ingrandirla. 

Nome:   Cattura_metern.JPG 
Visite: 1 
Dimensione: 131.7 KB 
ID: 1951829

                                    Clicca sull'immagine per ingrandirla. 

Nome:   Cattura_metern1.JPG 
Visite: 1 
Dimensione: 89.1 KB 
ID: 1951830

                                    Commenta


                                    • virtmet.php

                                      Originariamente inviato da flane Visualizza il messaggio
                                      Drake ..... il codice non si vede .....
                                      Infatti, pensavo che fosse solo un mio problema invece no...

                                      Ci riprovo qui con Firefox :

                                      codice:
                                      #!/usr/bin/php
                                      <!--?php
                                       if (isset($_SERVER['REMOTE_ADDR'])) die('Direct access not permitted');
                                      
                                      // Setup your virtual meters identification numbers:
                                      $metnum     = 10; // Virtual Meter Number
                                      
                                      $metnumtoadd  = array(3);       // Meternum list to add 
                                      $metnumtosub  = array(1);       // Meternum list to subtract
                                      
                                      // No edit is needed below -----------------------------------------------------
                                      if (!isset($argv[1])) $argv[1]=null;
                                      
                                      if ( $argv[1] != NULL 
                                           && ($argv[1]=='energy' || $argv[1]=='power')) {
                                      
                                          $val=0.0;
                                          $toadd=0.0;
                                          $tosub=0.0;
                                      
                                          $addnumlist = array();
                                          $subnumlist = array();
                                      
                                          define('checkaccess', TRUE);
                                          include("../config/config_main.php");
                                          include("../scripts/memory.php");
                                      
                                          // Read MeterN meters types and config
                                          for ($i = 1; $i <= $NUMMETER; $i++) {
                                              include("../config/config_met$i.php");
                                              if (in_array ( $i, $metnumtoadd, true) && !${"SKIPMONITORING$i"}) $addnumlist[] = $i;
                                              if (in_array ( $i, $metnumtosub, true) && !${"SKIPMONITORING$i"}) $subnumlist[] = $i;
                                          }
                                      
                                          if ($argv[1] == 'power') {
                                      
                                          // Read MeterN Livememory
                                          @$shmid = shmop_open($LIVEMEMORY, 'a', 0, 0);
                                          if (!empty($shmid)) {
                                                  $data = shmop_read($shmid, 0, 0);
                                                  shmop_close($shmid);
                                                  $memarray = json_decode($data, true);
                                              }
                                      
                                              $cnt = count($addnumlist);
                                              for ($i = 0; $i < $cnt; $i++)
                                              if (isset($memarray["${'METNAME'.$addnumlist[$i]}$addnumlist[$i]"]))
                                                      $toadd += $memarray["${'METNAME'.$addnumlist[$i]}$addnumlist[$i]"];
                                      
                                              $cnt = count($subnumlist);
                                              for ($i = 0; $i < $cnt; $i++)
                                              if (isset($memarray["${'METNAME'.$subnumlist[$i]}$subnumlist[$i]"]))
                                                  $tosub += $memarray["${'METNAME'.$subnumlist[$i]}$subnumlist[$i]"];
                                      
                                          } elseif ($argv[1] == 'energy') {
                                      
                                          // Read MeterN Memory
                                          @$shmid = shmop_open($MEMORY, 'a', 0, 0);
                                          if (!empty($shmid)) {
                                                  $data = shmop_read($shmid, 0, 0);
                                              shmop_close($shmid);
                                                  $memarray = json_decode($data, true);
                                              }
                                      
                                              $cnt = count($addnumlist);
                                              for ($i = 0; $i < $cnt; $i++) if (isset($memarray["Diffcounter$addnumlist[$i]"])) $toadd += $memarray["Diffcounter$addnumlist[$i]"];
                                      
                                              $cnt = count($subnumlist);
                                              for ($i = 0; $i < $cnt; $i++) if (isset($memarray["Diffcounter$subnumlist[$i]"])) $tosub += $memarray["Diffcounter$subnumlist[$i]"];
                                      
                                          }
                                      
                                          $ID = ${"ID$metnum"};
                                      
                                          // Computations
                                          $val = $toadd - $tosub; if ($val  < 0) $val=0;
                                      
                                          // Output
                                          settype($val, 'float');
                                      
                                          if ($argv[1] == 'energy') {
                                          $val+= isset($memarray['Totalcounter'.$metnum]) ? $memarray['Totalcounter'.$metnum] : 0;
                                          $val = round($val, ${'PRECI' . $metnum});
                                          if (isset($argv[2]) && $argv[2] == '--plain') $str = utf8_decode("$val");
                                              else $str = utf8_decode("$ID($val*Wh)");
                                          } else {
                                          $val = round($val, ${'PRECI' . $metnum});
                                          if (isset($argv[2]) && $argv[2] == '--plain') $str = utf8_decode("$val");
                                          else $str = utf8_decode("$ID($val*W)");
                                          }
                                          echo "$str\n";
                                      
                                      } else {
                                          die("Usage: $argv[0] {energy|power} [--plain]\n");
                                      }
                                      ?>

                                      Commenta


                                      • @Gianfrdp
                                        ho eseguito tutti i comandi del tuo post #1341 e se lancio il comando
                                        sudo ADHT_metern.py 22 21 8 ( 21 è il mio GPIO e 8 il DHT22)
                                        mi restituisce
                                        8(28.1*C)
                                        8(30.7*%)
                                        che sono valori reali
                                        ma sul grafico di MeternN non li scrive e anzi se setto la voce value ( scrivere sulla casella laterale della pagina indice) non solo non li scrive ma mi blocca tutto

                                        cioè tutti i valori diventano zero.
                                        5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115

                                        Commenta


                                        • ciao, hai creato il file /usr/local/bin/dht22.sh ? Hai creato il file /etc/cron.d/dht22 ? hai aggiunto una riga a /etc/rc.local? Li hai resi eseguibili? posta i loro contenuti.
                                          Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
                                          PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

                                          Commenta


                                          • Si ho fatto tutto e fino alle 2 stamattina ha sembrato che funzionasse ma poi ha ripreso l'andamento a dente di sega , ma c'è da pensare che va in conflitto di lettura con qualche vecchio file che è in giro, potrebbe essere?
                                            ecco i file comunque ( qualche errorino ci sarà)

                                            cron.d/dht22
                                            #!/bin/bash


                                            SHELL=/bin/bash
                                            PATH=/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
                                            MAILTO=""




                                            # Minute Hour Day Month Day of Week User Command
                                            # (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
                                            2,7,12,17 * * * * root /usr/local/bin/dht22.sh 22 21 8


                                            nano rc.local

                                            #!/bin/sh -e
                                            #
                                            # rc.local
                                            #
                                            # This script is executed at the end of each multiuser runlevel.
                                            # Make sure that the script will "exit 0" on success or any other
                                            # value on error.
                                            #
                                            # In order to enable or disable this script just change the execution
                                            # bits.
                                            #
                                            # By default this script does nothing.


                                            # Print the IP address
                                            _IP=$(hostname -I) || true
                                            if["$_IP"];then
                                            printf "My IP address is %s\n""$_IP"
                                            fi


                                            /usr/local/bin/123meterN.sh



                                            /usr/local/bin/dht22.sh 22 21 8


                                            #echo "$(date -R): avvio sistema" >> /var/log/debug.log
                                            #ln -s /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 /dev/ttymetern
                                            #ln -s /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 /dev/ttysolar


                                            #echo "$(date -R): prima di stty" >> /var/log/debug.log
                                            #sleep 10s
                                            #stty -F /dev/ttysolar 19200 # imposta la velocita della seriale a 19200
                                            #echo "$(date -R): prima di 123solar" >> /var/log/debug.log
                                            #/usr/bin/123solar start # avvia 123solar ad ogni riavvio


                                            #echo "$(date -R): dopo 123solar" >> /var/log/debug.log
                                            #touch /run/shm/metern1.txt
                                            #touch /run/shm/metern2.txt
                                            #touch /run/shm/consumi1.txt
                                            #touch /run/shm/consumi2.txt
                                            #chown www-data:www-data /run/shm/metern*.txt /run/shm/consumi*.txt


                                            #echo "$(date -R): prima di meterN" >> /var/log/debug.log
                                            # start meterN
                                            #/usr/bin/curl -v http://localhost/metern/scripts/bootmn.php 2>> /va/log/debug.log
                                            #echo "$(date -R): dopo meterN" >> /var/log/debug.log


                                            exit 0



                                            /usr/local/bin# nano dht22.sh


                                            #!/bin/sh


                                            DATA="$(ADHT_metern.py $1 $2 $3)"
                                            #echo $DATA


                                            if[ x"$DATA"!= x ]&&["$DATA"!="ERROR"];then
                                            echo $DATA | cut -d\ -f 1 > /run/shm/metern$3.txt
                                            echo $DATA | cut -d\ -f 2 >> /run/shm/metern$3.txt
                                            fi
                                            5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115

                                            Commenta


                                            • mi sembra tutto corretto. L'unica cosa che farei è invertire in rc.local le 2 righe di avvio metern e lettura sendore.Togli da webiopi la riga che legge il dht22 e riavvialo. ultimo dubbio: posta il contenuto della directory /etc/cron.d
                                              Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
                                              PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

                                              Commenta


                                              • eccomi, sono stato fuori rispondo con leggero ritardo perché non potevo accedere a putty.

                                                questo il contenuto di rc.local, il file dht2233 che vedi era il vecchio dht22 che non ho cancellato l'ho solo rinominato, devo eliminarlo?

                                                root@raspberrypi:/etc/cron.d# ls
                                                dht22 dht2233 fv_loads measureit metern php5

                                                root@raspberrypi:/etc/cron.d#
                                                5.76 kW 24 IBC SOLAR Tilt 19°, Azimut+54° S-SO, Power-One 6 kW , 2 boiler 0-1200W in serie, controllo domotico , SDM220Modbus x monitoraggio consumi con MeterN, 7 split a PDC, http://pvoutput.org/list.jsp?userid=8660 Aderite al Team di monitoraggio denominato EnergeticAmbiente su Pvoutput.org , così sapremo ogni giorno quanta energia pulita hanno prodotto gli amici del forum. Questo il link del Team ?https://pvoutput.org/listteam.jsp?tid=1115

                                                Commenta


                                                • Ciao a tutti ,
                                                  domandina : se utilizzo un SDM120C sulla produzione e quindi solamente la potenza istantanea e l'energia , posso installare solo MeterN e tralasciare 123solar ?
                                                  AUTO BANNATO

                                                  Commenta


                                                  • @dolam toglilo@spider61 si
                                                    Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
                                                    PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

                                                    Commenta


                                                    • Grazie Gianfr , quindi installo piu' o meno tutto come da 123solar e copio meterN nella cartella di default poi ci sara' da configurare e da trovare il modo di leggere con la mia USB->1Wire per le sonde di temperatura , visto che voglio utilizzare un Pogo che ho fermo li' ......
                                                      AUTO BANNATO

                                                      Commenta


                                                      • ciao a tutti
                                                        ho un problema: dopo aver avuto la corruzione della microsd causa ripetuti sbalzi di tensione, ho ripristinato il sistema da un'immagine clonata ed ho ripristinato i dati di produzione e consumo, mi sono accorto dopo alcuni giorni che la data di memorizzazione dei valori è ferma alla data di "corruzione" 06092015 ed il sistema pur monitorando non registra i dati ? sapete darmi una dritta?
                                                        5kw 21 panels 240w monocristallino.
                                                        inverter Aurora Power One 6.0.
                                                        Raspberry programmato grazie al forum

                                                        PVOUTPUT RENDIMENTO-SOLARE

                                                        Commenta


                                                        • Controlla i permessi dei file nella cartella data di metern. Il proprietario dei file deve essere www-data altrimenti meterN non riesce a scrivere.
                                                          Monitoraggio energetico con Raspberry – 123Solar e MeterN
                                                          Monitoraggio energetico con Raspberry – Guida all’installazione e configurazione - IMPULSI
                                                          Monitoraggio energetico con Raspberry e contatori EASTRON SDM120modbus e/o SDM220modbus

                                                          Commenta

                                                          Attendi un attimo...
                                                          X