SDM220 in Emoncms su Raspi 3B+ - EnergeticAmbiente.it

annuncio

Comprimi
Ancora nessun annuncio.

SDM220 in Emoncms su Raspi 3B+

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

  • SDM220 in Emoncms su Raspi 3B+

    Salve a tutti.
    Avendo un impianto FV offgrid basato su inverter MPP Solar PIP che monitoravo con un programma su Windows, sto testando da alcuni giorni un software di monitoraggio (Solpiplog) che gira su Raspi e logga in locale su emoncms e mi ci sto trovando bene.
    Manco a dirlo non so quasi nulla di Raspberry e di Emoncms e sono giusto riuscito a veder funzionare il tutto perchè ho installato un'immagine preconfigurata.

    Ora, dopo aver configurato qualche feed e abbozzata una dashboard, mi piacerebbe creare un nodo di input per leggere i dati da un paio di contatori SDM220 che stanno già da tempo nel mio quadro elettrico come semplici visualizzatori, rispettivamente all'ingresso ENEL e all'uscita inverter.
    Grazie soprattutto alla guida di Flane, sono riuscito a collegare correttamente i contatori al raspi tramite doppino ritorto e interfaccia USB-RS485 e, installato lo script di gianfrdp, i seguenti comandi funzionano
    codice:
    pi@solpiplog:~ $ sdm120c -a 1 -P N -b 9600 /dev/ttyUSB0
    Voltage: 230.12 V 
    Current: 0.92 A 
    Power: 172.79 W 
    Active Apparent Power: 211.52 VA 
    Reactive Apparent Power: -122.00 VAR 
    Power Factor: 0.82 
    Phase Angle: -35.23 Degree 
    Frequency: 50.01 Hz 
    Import Active Energy: 4453959 Wh 
    Export Active Energy: 0 Wh 
    Total Active Energy: 4453959 Wh 
    Import Reactive Energy: 862789 VARh 
    Export Reactive Energy: 247457 VARh 
    Total Reactive Energy: 1110246 VARh 
    OK
    pi@solpiplog:~ $ sdm120c -a 2 -P N -b 9600 /dev/ttyUSB0
    Voltage: 236.53 V 
    Current: 0.06 A 
    Power: 0.00 W 
    Active Apparent Power: 13.74 VA 
    Reactive Apparent Power: -13.74 VAR 
    Power Factor: 1.00 
    Phase Angle: 0.00 Degree 
    Frequency: 50.01 Hz 
    Import Active Energy: 1029035 Wh 
    Export Active Energy: 0 Wh 
    Total Active Energy: 1029035 Wh 
    Import Reactive Energy: 37686 VARh 
    Export Reactive Energy: 780154 VARh 
    Total Reactive Energy: 817840 VARh 
    OK
    Purtroppo però la parte dolente è che non sono ancora riuscito a inserire uno script funzionante per caricare i dati degli SDM su Emoncms.
    Ho provato a modificare con i miei parametri uno script postato da spider61
    codice:
    #!/usr/bin/php
    
    // Inizio sezione impostazioni utente == Modificare secondo i propri parametri ==
    $chiave = "xxxxxxxxxxxxxxxxxxxxxxxxx"; // Chiave di accesso a OpenEnergiMonitor
    // Fine sezione
    
    inizio:
    
    $x = exec("sdm120c -q -z5 -b 9600 -P N /dev/ttyUSB0");
    
    $dataarray = preg_split('/[[:space:]]+/', $x);
    
    //if $dataarray[8] = ('OK') {
    
    $tensione = $dataarray[0];
    $corrente = $dataarray[1];
    $potenza = $dataarray[2];
    $cosfi = $dataarray[3];
    $frequenza = $dataarray[4];
    $energia = $dataarray[5];
    //}
    
    $data = $tensione.",".$corrente.",".$potenza.",".$cosfi.",".$energia;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://localhost/input/post.json?csv=$data&apikey=$chiave");
    $oem = curl_exec($ch);
    curl_close($ch);
    
    sleep (10);
    goto inizio;
    
    ?>
    salvandolo sia come .php che come .sh e, non avendo un percorso var/www/script, l'ho messo in var/www/emoncms/scripts.

    Poi ho fatto altri tentativi basati su altri script trovati in giro ma mi rendo conto che, data la mia scarsissima competenza in materia, procedere così a casaccio non mi porta da nessuna parte
    Se ci fosse qualcuno capace di spiegarmi abbastanza nel dettaglio i vari passi da fare gliene sarei immensamente grato.

  • #2
    Originariamente inviato da Allen Visualizza il messaggio
    salvandolo sia come .php che come .sh e, non avendo un percorso var/www/script, l'ho messo in var/www/emoncms/scripts.

    Poi ho fatto altri tentativi basati su altri script trovati in giro ma mi rendo conto che, data la mia scarsissima competenza in materia, procedere così a casaccio non mi porta da nessuna parte
    Se ci fosse qualcuno capace di spiegarmi abbastanza nel dettaglio i vari passi da fare gliene sarei immensamente grato.
    Nello script che sembra essere in php ( quindi va salvato come .php ) vedo che manca il tag di apertura all'inizio .. che qua non mi riesce di scrivere ( viene cancellato ).
    Comunque si tratta di questa combinazione di segni 'minore puntodidomanda PHP' per intenderci in totale 5 caratteri.



    Che errore ti restituisce e come avvii lo script ?

    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


    • #3
      Il tag è così ? [PHP]
      Edit: niente, non lo visualizza, comunque ho capito
      E va messo subito sotto la prima riga (quella con #)?

      Lo script sinceramente pensavo partisse da solo
      forse è proprio questo il problema, infatti non mi pare vengano mostrati errori, semplicemente noto che non mi si creano gli input in Emoncms.
      Ho anche provato ad aggiungere 'node=1&' nella riga del comando curl, dopo il punto di domanda, o a sostituire localhost con l'indirizzo IP, ma non cambia nulla.

      Edit2: Ok, aggiungendo il tag e lanciandolo manualmente ora funziona.
      Grazie della preziosa dritta fcattaneo
      Non mi resta che scovare come avviarlo automaticamente
      Ultima modifica di Allen; 03-05-2020, 21:53. Motivo: Aggiornamento

      Commenta


      • #4
        C'è poi un'altra questione:
        lo script legge i dati di 1 sdm ... ma io ne ho 2 da leggere

        Commenta


        • #5
          Devi aggiungere un altra riga
          $x = exec("sdm120c -aX -q -z5 -b 9600 -P N /dev/ttyUSB0");
          aggiungendo l'opzione -aX dove X è l'indirizzo el secondo SDM , indirizzo che devi cambiare dal setup del SDM , credo che di default sia 1 e devi mettere 2 per il secondo leggi nella discussione dove hai trovato il mio script
          poi ti crei altre variabili (io salterei tensione e frequenza che sono le solite dell'altro) e aggiungerle al comando che trasmette a emoncms

          più o meno è così
          AUTO BANNATO

          Commenta


          • #6
            Originariamente inviato da Allen Visualizza il messaggio
            ...
            Lo script sinceramente pensavo partisse da solo
            forse è proprio questo il problema,

            ..e direi proprio di si.

            Devi lanciarlo cosi :

            php var/www/emoncms/scripts/nomescript.php

            Se vuoi che al riavvio del raspberry questo script parta da solo, devi aggiungere lo stesso comando, cosi come l'ho scritto io, nel file /etc/rc.local .. in fondo nell'ultima riga.

            sudo nano /etc/rc.local

            edita, poi...
            ctrl X , y, enter


            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


            • #7
              @ spider Anzitutto grazie! Sia per la condivisione che per la disponibilità a darmi una mano.
              Sto editando lo script ma c'è ancora qualcosa che non torna.
              codice:
              $x = exec("sdm120c -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0");
              $x = exec("sdm120c -a2 -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0"); 
              
              $dataarray = preg_split('/[[:space:]]+/', $x);
              
              //if $dataarray[8] = ('OK') {
              
              $tensione_inv = $dataarray[0];
              $corrente_inv = $dataarray[1];
              $potenza_inv = $dataarray[2];
              $cosfi_inv = $dataarray[3];
              $frequenza_inv = $dataarray[4];
              $energia_inv = $dataarray[5];
              $tensione_rete = $dataarray[6];
              $corrente_rete = $dataarray[7];
              $potenza_rete = $dataarray[8];
              $cosfi_rete = $dataarray[9];
              $frequenza_rete = $dataarray[10];
              $energia_rete = $dataarray[11];
              //}
              
              $data = $tensione_inv.",".$corrente_inv.",".$potenza_inv.",".$cosfi_inv.",".$energia_inv.",".$tensione_rete.",".$corrente_rete.",".$potenza_rete.",".$cosfi_rete.",".$energia_rete;
              Pensavo che negli input di Emon mi accodasse le nuove variabili a quelle già presenti, invece si sono in qualche modo mischiate (le prime 5 non sono più le stesse di prima) e non è facile individuarle.

              Sarà forse dovuto al fatto che il comando sdm120c restituisce più valori (io ne conto 14) di quanti ne vengano processati qui? E quella riga di controllo 'if $dataarray[8]' su cosa si basa?

              Vado avanti a far prove ma sto PHP mi pare veramente poco intuitivo.

              @ fcattaneo Grazie per il tuo contributo. Non appena avrò sistemato lo script lo testerò in avvio automatico

              Commenta


              • #8
                Cosi non funziona devi fare , semplificato
                $x = exec("sdm120c -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0");
                .........
                $tensione_inv = $dataarray[0];
                .......
                $energia_inv = $dataarray[5];

                $x = exec("sdm120c -a2 -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0");
                .......
                $tensione_rete = $dataarray[6];
                ......
                $energia_rete = $dataarray[11];
                cioè prima leggere un contatore salvare le variabili, e dopo leggere l'altro e salvare le altre variabili

                per il fatto che emoncms ti fà altre posizioni , ci ho battuto la testa poi và fatto così :
                curl_setopt($ch, CURLOPT_URL, "http://localhost/emoncms/input/post?node=elettrico&csv=$valori&apikey=
                dai un nome al nodo e ti mette le variabili nel nodo elettrico o come lo vuoi chiamare , poi cancella tutti gli input in più che non vengono più aggiornati , dopo saprai che devi creare dei feeds in base agli inpunts usando anche le formule dove servono
                AUTO BANNATO

                Commenta


                • #9
                  Breve aggiornamento.
                  Per farlo funzionare ho dovuto correggere così:
                  $x = exec("sdm120c -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0");
                  .........
                  $tensione_inv = $dataarray[0];
                  .......
                  $energia_inv = $dataarray[5];

                  $x = exec("sdm120c -a2 -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0");
                  .......
                  $tensione_rete = $dataarray[0];
                  ......
                  $energia_rete = $dataarray[5];
                  poi si, per il nome del nodo avevo già intuito e anche per i feed di Emoncms sono sufficientemente erudito

                  Mi resta il dubbio se questi 6 valori per ciascun smd siano gli unici disponibili o se ce ne siano altri che magari per me possano essere più significativi.
                  Appena ho un po più di tempo faccio altre prove.

                  Commenta


                  • #10
                    Non ne sono ancora venuto a capo ...

                    Mentre stavo smanettando per automatizzare lo script secondo le indicazioni di fcattaneo, mi sono accorto che lo stesso non funzionava più e non funzionava più neppure la sola stringa 'sdm120c ... ... ttyUSB0'.
                    Dopo non pochi smadonnamenti ho scoperto che il raspi ha modificato l'ordine delle porte USB facendo diventare 'ttyUSB1' quella che fino al giorno prima era 'ttyUSB0'.

                    Ora sto seguendo alcune guide per assegnare alla porta USB in questione un nome persistente ma sembra che il raspi non voglia starmi a sentire

                    Commenta


                    • #11
                      Bene, ora la porta usb dei contatori si chiama sempre ttyUSB-modbus, indipendentemente dalla numerazione che gli viene assegnata dal raspberry

                      Permane invece il problema dell'avvio automatico dello script:
                      se lancio da riga di comando la stringa 'php var/www/emoncms/scripts/sdm120c.php',
                      lo script viene regolarmente eseguito; nel momento in cui faccio quanto gentilmente suggeritomi da fcattaneo

                      Se vuoi che al riavvio del raspberry questo script parta da solo, devi aggiungere lo stesso comando, cosi come l'ho scritto io, nel file /etc/rc.local .. in fondo nell'ultima riga.

                      sudo nano /etc/rc.local

                      edita, poi...
                      ctrl X , y, enter
                      non accade nulla, anche dopo il riavvio.
                      Ho controllato e nel file rc.local la stringa viene correttamente inserita.

                      Per fortuna il weekend è alle porte e avrò un po' di tempo per approfondire

                      Commenta


                      • #12
                        Originariamente inviato da Allen Visualizza il messaggio
                        .....
                        non accade nulla, anche dopo il riavvio.
                        Ho controllato e nel file rc.local la stringa viene correttamente inserita.
                        Credo che sia dovuto a quello che hai fatto per mantenere la nomenclatura della porta USB.. forse è un qualcosa che viene caricato dopo l'avvio dello script da parte di rc.local...

                        Ad ogni modo puoi risolvere in quest'altro modo che è pure meglio dato che i programmi php non sono adatti ad essere lanciati come servizi ( anche se possono esserlo, solo che non sono fatti propriamente per questo ).

                        1- modifichi lo script in php togliendo la riga circa all'inizio:

                        inizio:

                        e togliendo infondo :

                        sleep (10);
                        goto inizio ;

                        Salvi e poi togli i riferimenti in rc.local che hai messo prima.

                        Infine devi chiamare lo script in automatico da cron ogni minuto ( è l'intervallo minore possibile ) ; per farlo :

                        sudo crontab -e

                        ti si apre il file di cron .
                        Aggiungi in fondo questa riga :

                        ***** php var/www/emoncms/scripts/sdm120c.php > /dev/null

                        crtl x, Y ed esci.

                        da quel momento in poi ogni minuto dovrebbero arrivare i dati su emoncms .

                        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


                        • #13
                          non usare il crontab -e
                          perchè non puoi gestire poi il tempo che se vuoi leggere variazioni veloci della potenza non le vedi,

                          va bene il file rc.local

                          però in fondo al comando metti la E commerciale &
                          e usa tutta la radice del file

                          io uso questo

                          php /home/pi/ele.php&

                          non mi chiedere perchè vuole &
                          ma così funziona perfettamente da anni
                          AUTO BANNATO

                          Commenta


                          • #14
                            Allora ... anche a beneficio di chi in futuro dovesse ritrovarsi gli stessi problemi, riassumo come (prendendo spunto da una guida di flanesi) ho cambiato l'identificatore della porta USB cui è collegato l'adattatore USB-serial degli SDM.
                            • ho lanciato il comando lsusb per visualizzare l'elenco dei dispositivi usb collegati
                            • dopo aver individuato quello facente capo agli SDM220 ho annotato le sigle ID vendor e ID Product che lo contraddistinguevano
                            • attraverso il comando sudo nano /etc/udev/rules.d/10-local.rules ho creato un file con nome 10-local.rules contenente la seguente stringa
                              ACTION=="add", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyUSB-modbus"
                            • ctrl+O - Invio - ctrl+X e poi riavvio

                            Ora, vedendo discordanza nei vostri suggerimenti, sono un attimo disorientato.
                            Ho provato quello di Spider perchè sembrava più semplice e veloce da attuare... ma non ha funzionato (@spider tutta la radice intendi anche la' /' davanti a var/www..., vero?).

                            Riguardo l'intervallo minimo consentito da crontab sono anch'io dell'idea che potrebbe non essere sufficiente per certi scopi.
                            Ultima modifica di Allen; 18-09-2021, 13:34.

                            Commenta


                            • #15
                              Ho avuto anche io il problema dello scambio dell'interfaccia USB , ho una USB-1wire per le temperature e 1 USB-485 credo di aver parlato nella discussione dove hai preso questo script o in altra , ho montato il tutto su un RASP B con immagine già pronta low write version , ora nn riesco a trovare dove ho la rules
                              A permessi come stai del file ?
                              prova a dare ls -l
                              io ho questo per il file ele.php
                              -rw-r--r-- 1 root root 873 May 4 08:04 ele.php
                              AUTO BANNATO

                              Commenta


                              • #16
                                Ecco qua:
                                pi@solpiplog:~ $ ls -l
                                total 44
                                drwxr-xr-x 2 pi pi 4096 Mar 17 15:28 Desktop
                                drwxr-xr-x 2 pi pi 4096 Dec 15 12:56 Documents
                                drwxr-xr-x 2 pi pi 4096 May 2 14:13 Downloads
                                drwxr-xr-x 2 pi pi 4096 Sep 26 2019 MagPi
                                drwxr-xr-x 2 pi pi 4096 Dec 15 12:56 Music
                                drwxr-xr-x 2 pi pi 4096 Dec 15 12:56 Pictures
                                drwxr-xr-x 2 pi pi 4096 Dec 15 12:56 Public
                                lrwxrwxrwx 1 root root 53 Dec 14 15:57 readme.md -> /opt/openenergymonitor/EmonScripts/defaults/readme.md
                                drwxr-xr-x 8 root root 4096 May 6 21:13 SDM120C
                                drwxrwxrwx 2 pi pi 4096 Mar 17 15:30 sol
                                drwxr-xr-x 2 pi pi 4096 Dec 15 12:56 Templates
                                drwxr-xr-x 2 pi pi 4096 Dec 15 12:56 Videos
                                pi@solpiplog:~ $
                                Però quel SDM120C scritto così, tutto maiuscolo, mi fa dubitare che sia quello giusto poichè nei giorni precedenti avevo fatto altre prove con approcci differenti.
                                Eventualmente cosa scrivo per dare i permessi a quello che nel mio caso si chiama sdm120c.php?

                                Commenta


                                • #17
                                  Attento : intendevo il tuo file xxx.php con cui leggi i parametri elettrici
                                  si và a tentativi , anche io sono terra terra,
                                  vai nella cartella dove lo hai posizionato e dai il comando , poi potrebbe essere come dice FC che ti parte prima lui delle rules e allora da avvio non funziona
                                  prova a mettere uno sleep 10 nel file rc,local prima del comando php, nel mio che è di default ci sono due sleep 5 prima dell'avvio di alcuni servivi potrebbe essere quel ritardo che fà avviare altro, li hai te degli sllepp nel file ?

                                  ma te hai installato una immagine rasp con emoncms , ha installato una low write versione che altrimenti distruggi la SD in un anno?
                                  AUTO BANNATO

                                  Commenta


                                  • #18
                                    Si si spider, intendi dire il file con il tuo script, no?
                                    Io ce l'ho in var/www/emoncms/scripts e se lo faccio partire da riga di comando allora funzica, in automatico no.

                                    Ora sto indagando su quella stringa sopra (dove si legge SDM120C con i permessi di root), che non dovrebbe esserci più perchè dovrei averlo cancellato (era un tentativo di avviare lo script come servizio inserendo un file nella cartella /etc/systemd/system/ e dandogli i relativi permessi)... mah!
                                    Se per fare 2 cose in croce è un put...naio del genere, va a finire che dico che winzozz è figo.

                                    Tra oggi e domani smanetterò ancora, vedremo anche con gli sleep, poi farò sapere.

                                    Poi si, l'immagine che uso è già low write, ma io in questo sono già andato un po' oltre e, prevedendo di integrare il monitoraggio con un po di domotica, ho già messo tutto su un disco esterno SSD eliminando la microSD.

                                    Edit: dimenticavo di dire che nella cartella rules.d c'erano già un altro paio di files di regole, vedrò di capire se in qualche modo si creano delle interferenze.

                                    Commenta


                                    • #19
                                      Alla fine ci sono riuscito
                                      anche se ho dovuto cambiare rotta, creando un file appropriato nella cartella /etc/init.d/
                                      Spero che questa soluzione non comporti eventuali controindicazioni.
                                      Approfitto per ringraziare fcattaneo e spider61 , senza l'aiuto dei quali starei ancora qui a brancolare nel buio
                                      e, in attesa dei prossimi inevitabili ostacoli, vi mostro il primo abbozzo funzionante della mia dashboard Emoncms

                                      Commenta


                                      • #20
                                        Ciao Allen, sto provando anche io a far leggere altri dati a solpiplog, anche se provenienti da sensori collegati a NodeMCU, e mi pierebbe capire come tu abbia risolto. Anche io non sono molto pratico di Raspberry e Emoncms. Se vorrai darmi una mano te ne sarei grato

                                        Commenta


                                        • #21
                                          Ciao, ben disponibile ad aiutarti, anche se nei limiti della mia scarsissima competenza.
                                          Comunque io sono riuscito ad integrare in Emoncms dati provenienti da un'interfaccia connessa direttamente ad una porta USB del Raspberry, mentre tu devi passare attraverso il nodeMCU, immagino che questo possa fare una certa differenza.
                                          Ora dal tuo raspy vedi i sensori collegati al nodeMCU?

                                          Commenta


                                          • #22
                                            Ogni tuo consiglio sarà ben accetto. Attualmente il nodeMCU invia i dati in wifi ad un server remoto (sulla mia rete domestica), uno script PHP nel server riceve i dati e produce una pagina HTML che posso visualizzare accedendo all'indirizzo del server. Io vorrei integrare quei dati in Emoncms così da poter gestire i dati provenienti dai due sistemi. Comunque, se non ci riesco, potrei anche provare ad utilizzare una porta USB per ricevere i dati come fatto da te.

                                            Commenta


                                            • #23
                                              Ok, ti consiglierei innanzitutto di aprire una discussione apposita con titolo appropriato, in quanto proseguendo qui, dove si parla specificamente di Eastron SDM220, saremmo OT.
                                              Poi sicuramente altri oltre a me, e sicuramente più esperti, potranno darti dei suggerimenti.

                                              Detto questo riporto qui integralmente lo script che ho adattato per me copiando da quello di Spider61, che lui usa per i suoi sensori 1-wire
                                              codice:
                                              #!/usr/bin/php
                                              
                                              <?PHP
                                              
                                              // Inizio sezione impostazioni utente == Modificare secondo i propri parametri ==
                                              $chiave = "++++++++++++++++++++++++++++++++"; // Chiave di accesso a OpenEnergiMonitor
                                              // Fine sezione
                                              
                                              inizio:
                                              
                                              $x = exec("sdm120c -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0");
                                              
                                              $dataarray = preg_split('/[[:space:]]+/', $x);
                                              
                                              //if $dataarray[11] = ('OK') {
                                              
                                              $tensione_inv = $dataarray[0];
                                              $corrente_inv = $dataarray[1];
                                              $potenza_inv = $dataarray[2];
                                              $cosfi_inv = $dataarray[3];
                                              $frequenza_inv = $dataarray[4];
                                              $energia_inv = $dataarray[5];
                                              $totale_energia_inv = $dataarray[10];
                                              
                                              $x = exec("sdm120c -a2 -q -z5 -b 9600 -P N -2 -w 1 /dev/ttyUSB0");
                                              
                                              $dataarray = preg_split('/[[:space:]]+/', $x);
                                              
                                              //if $dataarray[11] = ('OK') {
                                              
                                              $tensione_rete = $dataarray[0];
                                              $corrente_rete = $dataarray[1];
                                              $potenza_rete = $dataarray[2];
                                              $cosfi_rete = $dataarray[3];
                                              $frequenza_rete = $dataarray[4];
                                              $energia_rete = $dataarray[5];
                                              $totale_energia_rete = $dataarray[10];
                                              //}
                                              
                                              $data = $tensione_inv.",".$corrente_inv.",".$potenza_inv." ,".$cosfi_inv.",".$energia_inv.",".$totale_energia _inv.",".$tensione_rete.",".$corrente_rete.",".$po tenza_rete.",".$cosfi_rete.",".$energia_rete.",".$ totale_energia_rete;
                                              $ch = curl_init();
                                              curl_setopt($ch, CURLOPT_URL, "http://localhost/input/post?node=sdm220&csv=$data&apikey=$chiave");
                                              $oem = curl_exec($ch);
                                              curl_close($ch);
                                              
                                              sleep (8);
                                              goto inizio;
                                              
                                              ?>
                                              Ultima modifica di Allen; 11-02-2021, 13:18.

                                              Commenta


                                              • #24
                                                Ok, hai ragione.
                                                Seguirò il tuo consiglio.
                                                Grazie

                                                Commenta

                                                Attendi un attimo...
                                                X