OpenEnergyMonitor su RaspberryPi - EnergeticAmbiente.it

annuncio

Comprimi
Ancora nessun annuncio.

OpenEnergyMonitor su RaspberryPi

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

  • ciao thunderblu, in pratica mi sembrava che dopo aver ricevuto l'input su emoncms non arrivasse il dato, cioè mi sembrava che arrivassero tipo 1 input ogni 3, invece facendo la prova con il "print gas" risponde praticamente subito.
    Grazie per lo schema, comunque le avevo collegate correttamente
    Lo script lo faccio partire da rc.local, questo il comando impartito: sudo /var/www/myscripts/gas/gas.py
    dovrebbe essere giusto vero?
    ultimo dubbio, nel mio contatore che è un sacofgas G4 c'è scritto che 1 imp equivale a 10dm, ecco mi chiedevo se il valore 0.001 dello script è corretto.
    in emoncms ho lasciato il nodo 0 e infatti mi appaiono 5 input, quello totale del contatore ok no problem, mentre x l'input 2 (gas giornaliero) come lo devo interpretare, tipo 0.40 significa quasi mezzo metro cubo?

    grazie ancora!! ciaooo
    123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

    Commenta


    • Se il tuo contatore ha 3 cifre decimali 0.001 e giusto. 0.4 e quasi 1/2 m3.
      Impianto 3kw 10 Moduli SUNPOWER SPR 300 WHT 1 inverter SUNPOWER SPR 3300.

      Commenta


      • Originariamente inviato da khael Visualizza il messaggio
        L'inverter non ha uscite seriali per il controllo purtroppo. Servono delle schede molto costose e di difficile reperibilità (sono dei fronius ig20) e che comunque non si interfacciano con 123solar.
        Io monitorizzo un inverter IG15 con emoncms... funziona benissimo.
        Ti serve una interface easy card della fronius e lo script che ho realizzato posso passartelo senza problemi.
        Oltre a questo serve un cavetto usb - 232 ( io l'ho acquistato x 15 euro ).

        Ciao,
        F.
        Segui on-line il funzionamento dei miei impianti in tempo reale.
        Impianto Fotovoltaico grid: 7 pannelli Sanyo HIP 205, 1.44 kWp, Az 90°, Tilt 17°, Inverter Fronius IG.15 + Impianto fotovoltaico in isola da 0,86 kWp con 10 kWh di accumulo + impianto solare termico a svuotamento da 7mq + pompa di calore Altherma 3 Compact R32 da 8 kW.

        Commenta


        • @thunderblu, allora lo script direi che risponde perfettamente.
          Stamattina ho fatto ancora delle altre prove, allora se collego nel mio caso la gpio 24 e il cavo ground il raspi risponde ma moooolto lentamente, invece stramente se tocco il cavo diretto con un dito alla gpio risponde immediatamente, ho fatto queste prove con il "print gas" del tuo script.
          Mi chiedo, devo forse alimentare il sensore?
          cioè prendere tipo la +3,3 del raspi e portarla al sensore e gpio?
          Tu come lo hai collegato?
          Grazie mille, ciaooo
          123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

          Commenta


          • Il test con il sensore lo devi fare avvicinando una calamita al sensore.forse non hai trovato il punto ottimale dove mettere il sensore sul contatore.per un test ottimale sul contatore tieni aperto rubinetto acqua calda e vedi se incrementi corruspondono a rotazione del contatore.
            Impianto 3kw 10 Moduli SUNPOWER SPR 300 WHT 1 inverter SUNPOWER SPR 3300.

            Commenta


            • @thunderblu, infatti adesso proverò diverse zone del contatore. ti faccio sapere.
              grazie ciaooo
              123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

              Commenta


              • @thunderblu
                ciao, allora ho provato in tutti i modi ma l'aggiornamento dei dati è molto incostante / lento.
                Ho collegato ora il sensore alla GPIO10 e al pin 3,3V.
                Sembra funzionare tutto perfettamente, rilevazione praticamente immediata dell'impulso, leggendo su vari forum sembra che questi sensori che sono del tipo reed abbiano comunque bisogno di un'alimentazione.
                Ho provato con il tester a vedere la tensione che ritorna al raspi e segna un 0.4v, quindi a sto punto direi che non devo nemmeno mettere un resistore.
                Cosa ne pensi thunderblu?
                Più che altro ho paura di rovinare il raspino, però cavolo ora funzia tutto benissimo!
                grazieeeeee
                123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                Commenta


                • Pierantonio complimenti…bellissima la tua dashboard!!!
                  2,94 Kw - 12 moduli Solarwatt P210-60 GET AK - Power One 3.0 Outd - Orientamento : -20° - Tilt : 15° - Pvoutpout - 123solar

                  Commenta


                  • @pierantonio81
                    il raspy nelle ultime versione ha i resistori interni è sono abilitati nello script. Quindi non corri nessun rischio.
                    Impianto 3kw 10 Moduli SUNPOWER SPR 300 WHT 1 inverter SUNPOWER SPR 3300.

                    Commenta


                    • Originariamente inviato da thunderblu Visualizza il messaggio
                      @pierantonio81
                      il raspy nelle ultime versione ha i resistori interni è sono abilitati nello script. Quindi non corri nessun rischio.
                      grazie mille per l'info, ora sono più tranqui!!
                      123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                      Commenta


                      • @borghese
                        grazie mille!
                        123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                        Commenta


                        • Originariamente inviato da thunderblu Visualizza il messaggio
                          Se leggi il mio post 450 vedi che ho postato anche un script in pyton che gestisce il sensore. Il sensore è solo un on/off che legge il magnete dell'ultima cifra del contatore del gas.
                          Avrei un'altra domandina.

                          Avendo necessità di misurare altri parametri sarebbe possibile aggiungere una emontx e collegare il sensore di impulsi ad essa? Altra domanda, sarebbe possibile avere anche una misura di corrente continua sempre in una ingresso di un'eventuale emontx? Quest'ultimo poichè l'impianto luci di casa, e servizi (tapparelle, pc, caldaia) è alimentatato da una struttura ad isola autosostenuta a 24v e volevo memonitorarne la corrente di carica e scarica.

                          Grazie mille.
                          Credo che l'uomo possa migliorare le sue condizioni di Vita grazie alla scienza e sempre grazie ad essa possa vivere su questo pianeta senza sfruttarlo ma anzi migliorarlo.

                          Commenta


                          • @thunderblu
                            ciaooo, non maledirmi hihhihi, volevo dirti che ho provato a fare una modifica allo script, nel senso che ho notato che il sensore faceva compiere 2 input quando si apriva e un'altro quando chiudeva.
                            Ad oggi non mi trovo con il calcolo, allora provo anche questa strada... ho inserito nelle stringhe "GPIO.add_event_detect(9, GPIO.RISING)" e nella "GPIO.add_event_callback(9, GetGas)" un bouncetime di 5 secondi, tempo che impiega il sensore tra apertura e chiusura.
                            Ora segna 1 input ad ogni rivoluzione , spero sia questo il motivo che non mi calcola giusto il consumo.
                            chissà, bel dilemma
                            cosa dici?
                            grazie mille, ciaoooo
                            123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                            Commenta


                            • @pierantonio81
                              strano la funzione di incremento dovrebbe essere eseguita solo quando il segnale passa ad 1 una sola volta, e non dovrebbe + essere esguita fino a un cambio di stato 0 1. Inoltre il sensore potrebbe rimanere chiuso anche giorni se la rotellina con il magnete si ferma sul sensore e non ho + consumo di gas.
                              Impianto 3kw 10 Moduli SUNPOWER SPR 300 WHT 1 inverter SUNPOWER SPR 3300.

                              Commenta


                              • Originariamente inviato da thunderblu Visualizza il messaggio
                                @pierantonio81
                                strano la funzione di incremento dovrebbe essere eseguita solo quando il segnale passa ad 1 una sola volta, e non dovrebbe + essere esguita fino a un cambio di stato 0 1. Inoltre il sensore potrebbe rimanere chiuso anche giorni se la rotellina con il magnete si ferma sul sensore e non ho + consumo di gas.
                                infatti, adesso vediamo se riesco a capire qualcosa... non pensavo fosse così complicato, probabile che non sia posizionato giusto il sensore... nessuno che abbia il sacofgas lpn At g4?
                                123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                                Commenta


                                • Piccolo dubbio matematico

                                  Buongiorno, grazie alla guida del progetto ed a tutte le varie informazioni del forum ho completato il lavoro. Ho un dubbio matematico che vorrei chiarire, nel codice del display viene indicata la formula :

                                  cval_gen = cval_gen + (emontx.power2 - cval_gen)*0.50

                                  cval_gen dovrebbe essere la potenza generata. Ma perchè viene moltiplicato il valore per 0.5 sommato e poi detratto?

                                  Non riesco a giustificare questa formula.

                                  Grazie
                                  Credo che l'uomo possa migliorare le sue condizioni di Vita grazie alla scienza e sempre grazie ad essa possa vivere su questo pianeta senza sfruttarlo ma anzi migliorarlo.

                                  Commenta


                                  • Parlo da perfetto pivello del settore, si trova qualcosa del genere, già assemblato e plug&play a 60/70 euro?
                                    4,41 Kwp : Q-cells Q.Pro G2 245W + SMA; solare termico CF 300 lt schuco
                                    Costa tirrenica cosentina

                                    Commenta


                                    • Originariamente inviato da michelinodj Visualizza il messaggio
                                      Buongiorno, grazie alla guida del progetto ed a tutte le varie informazioni del forum ho completato il lavoro. Ho un dubbio matematico che vorrei chiarire, nel codice del display viene indicata la formula :

                                      cval_gen = cval_gen + (emontx.power2 - cval_gen)*0.50

                                      cval_gen dovrebbe essere la potenza generata. Ma perchè viene moltiplicato il valore per 0.5 sommato e poi detratto?

                                      Non riesco a giustificare questa formula.

                                      Grazie
                                      Mi rispondo da solo avendo fatto una simulazione in ambiente vb.net. Esso non è altro che un sistema per avvicinarsi al valore trovato senza dare sbalzi eccessivi dovuti ad errori di misurazione.

                                      Ora ho invece un altro problema che giro agli esperty di Python :

                                      - E' possibile inviare al display la data completa invece della sola ora ? Questo in quanto vorrei visualizzare anche la data completa su arduino. Quello di cui ho bisogno è eventualmente la stringa da modificare nel raspberry aggiungendo il dettaglio della data completa.

                                      Qualcuno mi sà aiutare?

                                      Grazie mille
                                      Credo che l'uomo possa migliorare le sue condizioni di Vita grazie alla scienza e sempre grazie ad essa possa vivere su questo pianeta senza sfruttarlo ma anzi migliorarlo.

                                      Commenta


                                      • Originariamente inviato da pieruzzu Visualizza il messaggio
                                        Parlo da perfetto pivello del settore, si trova qualcosa del genere, già assemblato e plug&play a 60/70 euro?
                                        Cosa intendi del genere?

                                        Tutto il sistema di openenergymonitor?

                                        Sinceramente è già preassemblato, display escluso tutto il resto è pappa pronta e basta un minimo di configurazione.

                                        Tanto di cappello a chi lo ha meticolosamente messo al mondo. Chiaramente il costo è un po' piu' alto, ci vorranno circa 130 150 € senza display con un minimo di sensori e il raspberry per avere il pacchetto con l'emontx montanto, scheda sd ecc.

                                        Un prezzo più che meritato visto il risultato.
                                        Credo che l'uomo possa migliorare le sue condizioni di Vita grazie alla scienza e sempre grazie ad essa possa vivere su questo pianeta senza sfruttarlo ma anzi migliorarlo.

                                        Commenta


                                        • Intendo un sistema di monitoraggio wifi (senza quindi collegarlo via lan) che si colleghi all'inverter e che sia operativo in 5 minuti, che invii i dati su un portale tipo PVoutput e che abbia in app per smartphone.
                                          Se poi costa 130/150 euro e magari si può implementare successivamente con un sistema di monitoraggio dei consumi di casa, ancora meglio.
                                          4,41 Kwp : Q-cells Q.Pro G2 245W + SMA; solare termico CF 300 lt schuco
                                          Costa tirrenica cosentina

                                          Commenta


                                          • E a lampada di Aladino dov'è ?
                                            3,84 KWp - 16 moduli SCHOTT PERFORM POLY 240 - Tilt 30° - Azimut -10° ESTInverter PowerOne Aurora PVI 3.0 OUTD. == Guida Raspberry come datalogger == Guida configurazione Raspberry == OEM su Raspberry

                                            Commenta


                                            • @thunderblu
                                              Ciao, sono ancora alle prese con la misurazione del gas che mi sta facendo impazzire, in pratica non riesco a trovare modo di misurare i consumi correttamente.
                                              Ho provato di tutto, anche a creare un pull down con resistore tipo questo schema perché il raspi dalla gpio mi tirava su segnali falsi (ora è ok) ho 15mt di cavo, ma non riesco a capire cosa c'è che non và, il contattore mi segna un valore e lo script un'altro... ho provato anche con il tester e gli impulsi ci sono a ogni rotazione, cosa mi consigli di provare a fare? mi piacerebbe proprio risolvere questo dilemma ...grazie mille!!
                                              l'unica cosa che noto è che il reed switch non pulsa perfettamente allo 0,00 ma allo 0,01, ma in teoria non dovrebbe cambiar nulla...
                                              ecco lo schema di come è collegato il mio raspi al reed switch(sensore) che è nel contatore
                                              Clicca sull'immagine per ingrandirla. 

Nome:   Schermata 2014-03-20 alle 00.02.26.png 
Visite: 1 
Dimensione: 33.1 KB 
ID: 1942894
                                              123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                                              Commenta


                                              • @pierantonio Ciao da quello che scrivi mi sebra di capire che il tuo contatore ha 2 cifre decimali perche aumenta ogno 0,01, se controlli nello scrip invece io aumento di 0,001 il progressivo perchè il mio contatore ha 3 cifre decimali. Basta che modifichi gli incrementi da 0,001 a 0,01.
                                                Impianto 3kw 10 Moduli SUNPOWER SPR 300 WHT 1 inverter SUNPOWER SPR 3300.

                                                Commenta


                                                • Originariamente inviato da thunderblu Visualizza il messaggio
                                                  @pierantonio Ciao da quello che scrivi mi sebra di capire che il tuo contatore ha 2 cifre decimali perche aumenta ogno 0,01, se controlli nello scrip invece io aumento di 0,001 il progressivo perchè il mio contatore ha 3 cifre decimali. Basta che modifichi gli incrementi da 0,001 a 0,01.
                                                  ciao thunder, ok mi sa che è proprio quello che non va..
                                                  un'altra piccola info perchè io di python non è che so molto, secondo te è fattibile dire allo script di ascoltare l'input ma di fare una pausa prima di esserne in ascolto di un'altro? tipo una specie di delay o qualcosa del genere...

                                                  ciaooooo e grazie ancora!
                                                  123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                                                  Commenta


                                                  • pierantonio quello script è basato su un interrupt. Ogni volta che il valore passa da 0 a 1 viene eseguita una funzione. Niente vieta di non usare un interrupt e di fare un polling manuale. Facendo un polling manuale puoi gestire i ritardi, ma devi anche gestire la variazione di stato perche se la rotellina con il magnete si ferma proprio sul sensore potresti avere per un lungo periodo sempre 1. Quindi devi anche gestire una variabile che ti segna la variazione di stato precedente. In pratica devi fare l'incremento solo se lo stato precedente era 0.

                                                    laststate = 0
                                                    while True:
                                                    ----if(GPIO.input(4) == 1 ):
                                                    -------if (laststate == 0):
                                                    -----------gastotale = gastotale+0.01
                                                    -----------laststate=1

                                                    ----else:
                                                    -------laststate=0

                                                    ----time.sleep(30)


                                                    NB i - sono spazi
                                                    Impianto 3kw 10 Moduli SUNPOWER SPR 300 WHT 1 inverter SUNPOWER SPR 3300.

                                                    Commenta


                                                    • grazie grazie davvero Thunderblu, penso che con queste poche righe mi hai risolto i problemi che avevo, sopratutto i falsi positivi che mi entravano in GPIO avendo da quello che ho intuito un cavo lungo che fa come una specie di antenna.
                                                      123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                                                      Commenta


                                                      • @thunderblu
                                                        ciao e scusami, spero tanto che sia l'ultima volta che ti disturbo, ora non ho più falsi positivi ecc.. tutto perfetto, l'unica cosa che ho notato è che dopo un po' lo script si termina, in pratica non resta in esecuzione, forse ho sbagliato io ad aggiungere il codice? l'ho messo così, lo allego, grazie mille!!
                                                        codice:
                                                        
                                                        
                                                        GPIO.add_event_callback(10, GetGas)
                                                        
                                                        
                                                        laststate = 0
                                                        while True:
                                                            if (GPIO.input(10) == 1) :
                                                                if (laststate == 0):
                                                                    gastotale = gastotale+0.01
                                                                    laststate=1
                                                        
                                                        
                                                            else:
                                                               laststate=0
                                                        
                                                        
                                                            time.sleep(30)
                                                        123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                                                        Commenta


                                                        • Nei pochi ritagli di tempo sto finendo di portare a termine l'installazione di open energy monitor su raspberry.
                                                          L'emontx funziona a dovere, collegata via usb al programmatore, e collegato il misuratore di tensione, dal monitor seriale rileva correttamente i dati.

                                                          Ora devo pensare alla calibrazione. ho provato a dare uno sguardo al sito di oem dove spiega il procedimento di taratura, ma prima di procedere volevo chiedervi alcune info :

                                                          1) Mi pare di capire che la formula da adottare sia - (Lettura Tensione Corretta/Lettura Rilevata da Emontx) * Coefficiente di calibrazione, che per il trasformatore che abbiamo preso noi, dovrebbe essere 228,268…. corretto ?

                                                          2) La lettura di Tensione corretta, mi conviene misurarla con un multimetro su una qualsiasi fase in casa giusto ?

                                                          3) Fatta questa operazione, devo materialmente correggere il valore presente alla riga : ct1.voltageTX giusto ?

                                                          4) Per il valore di corrente, invece, non ben capito come fare : Prendo la pinza amperometrica e misuro l'amperaggio di una fase, ma a questa fase ci deve essere un carico che assorbe o no ?!?

                                                          5) Fatto il punto 5, per dividerlo con la lettura corrente misurata da emontx, nella pinza amperometrica di emontx ci deve essere la fase di un carico che assorbe, allo stesso modo del punto 5, giusto ?

                                                          6) Il coefficiente di calibrazione è sempre 228,268 ?!?

                                                          Grazie in anticipo a chiunque mi vorrà rispondere...
                                                          2,94 Kw - 12 moduli Solarwatt P210-60 GET AK - Power One 3.0 Outd - Orientamento : -20° - Tilt : 15° - Pvoutpout - 123solar

                                                          Commenta


                                                          • @pierantonio

                                                            GPIO.add_event_callback(10, GetGas) questa riga non serve piu va eliminata


                                                            Impianto 3kw 10 Moduli SUNPOWER SPR 300 WHT 1 inverter SUNPOWER SPR 3300.

                                                            Commenta


                                                            • @thunderblu
                                                              grazie come sempre, allora ti incollo tutto lo script, secondo può andare cosi?
                                                              grazie ancora ciaooo
                                                              codice:
                                                              #!/usr/bin/env python
                                                              import time
                                                              import datetime
                                                              import os.path
                                                              import pycurl
                                                              import RPi.GPIO as GPIO
                                                              
                                                              GPIO.setmode(GPIO.BCM)
                                                              GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
                                                              
                                                              GPIO.add_event_detect(10, GPIO.RISING)
                                                              
                                                              def GetGas(arg):
                                                              
                                                                      time.sleep(0.01)         # need to filter out the false positive of some power fluctuation
                                                                      if GPIO.input(10) != GPIO.HIGH:
                                                                          return
                                                              
                                                                      gastotale=0
                                                                      if os.path.isfile('/var/www/myscripts/gas/gastotale.txt'):
                                                                              file = open("/var/www/myscripts/gas/gastotale.txt","r")
                                                                              gastotale = float(file.read())
                                                                              file.close()
                                                                      gastotale = gastotale+0.01
                                                              
                                                                      file = open("/var/www/myscripts/gas/gastotale.txt","w")
                                                                      file.write(str(gastotale))
                                                                      file.close()
                                                              
                                                                      now = datetime.datetime.now()
                                                                      fileday = '/var/www/myscripts/gas/'+now.strftime("%Y-%m-%d")+'.txt'
                                                                      gasday = 0
                                                              
                                                                      if os.path.isfile(fileday):
                                                                              file = open(fileday,"r")
                                                                              gasday = float(file.read())
                                                                              file.close()
                                                                      gasday = gasday+0.01
                                                              
                                                                      file = open(fileday,"w")
                                                                       gasday = float(file.read())
                                                                              file.close()
                                                                      gasday = gasday+0.01
                                                              
                                                                      file = open(fileday,"w")
                                                                      file.write(str(gasday))
                                                                      file.close()
                                                              
                                                                      oem = pycurl.Curl()
                                                                      oem.setopt(oem.URL, 'http://emoncms.org/input/post.json?node=0&csv=0,'+str(gasday)+',0,0,'+str(gastotale)+'&apikey=cfceedfb6ccf')
                                                                      oem.perform()
                                                              
                                                              laststate = 0
                                                              while True:
                                                                  if (GPIO.input(10) == 1 ):
                                                                      if (laststate == 0):
                                                                          gastotale = gastotale+0.01
                                                                          laststate=1
                                                              
                                                                  else:
                                                                     laststate=0
                                                              
                                                                  time.sleep(30)
                                                              123 solar + openenergy monitor qui www.pierantonio81.dyndns.org

                                                              Commenta

                                                              Attendi un attimo...
                                                              X