- Dettagli
- Visite: 30757
Input
Questo modulo raccoglie i dati che arrivano dal monitoraggio e li invia ai feed per l'archiviazione, così come sono "grezzi" o li formatta appropriatamente per poi inviarli. Qualsiasi elaborazione che si voglia fare con i dati deve essere fatta all'interno di questo modulo sfruttando gli "elaboratori di ingresso" o "Input processing". I dati cosi processati vengono archiviati dai Feed e resi disponibili per gli altri moduli.
Per far capire come funziona farò due esempi che sono quelli che poi dovremmo realizzare.
Esempio n° 1: dal monitoraggio ci arriva il valore della potenza assorbita in Watt, ma a noi interessa avere il valore in kWh e sapere quanti ne ho assorbiti nel giorno quindi i kWh/d, lo schema sarà quindi
==> W ==> kWh ==> kWh/d |
Esempio n° 2: dal monitoraggio arriva la tensione, che però è moltiplicata per 100 per avere una definizione più alta (220V arrivano come 22000) ma il modo corretto di visualizzarlo è in Volt quindi dovremmo dividere il valore per 100, lo schema sarà
==> V(x100) ==> x0.01 ==> V |
Vediamo ora come si ottiene questo risultato. Al primo invio di dati dal sistema, Emoncms sulla scheda Input visualizzerà il set di dati che sta ricevendo come da immagine, se non vedete nessun Input qualcosa non funziona e non si può proseguire, bisogna prima risolvere il problema.
Come si può notare ha ricevuto 4 tipi di dati dal nodo 10, il sistema non è in grado di sapere che tipo di dato ha ricevuto e quindi lo dobbiamo istruire inserendo una descrizione del tipo di dato (si clicca sulla matita) e poi inserendo degli Input processing per formattare i dati.
Per prima cosa bisogna sapere a cosa corrispondono i dati da 1 a 4, questo si vede nello sketch di gestione dei dati, nel nostro caso emonTx_CT123_Voltage, ovvero:
- CT1 - Sensore di corrente n°1 - [W]
- CT2 - Sensore di corrente n°2 - [W]
- CT3 - Sensore di corrente n°3 - [W]
- VAC - sensore di tensione reale - [Vx100]
andiamo quindi ad assegnare una descrizione ai dati 1 e 4, che usiamo in questo esempio, mentre il 2 e 3 non sono in uso quindi li lasciamo vuoti, per far questo si clicca sull'icona a forma di matita della riga da modificare
Come vedete si è attivata anche la casella "name" ma il valore non deve essere cambiato altrimenti quel dato cambierà identificativo, ma al successivo invio di dati il n° 1 che non esisterà più verrà ricreato e ripartirà da zero.
Inserite una descrizione a vostro piacimento su "Description" e poi clicchiamo sul simbolo di spunta che ha sostituito la matita per salvare.
Facciamo la stessa cosa per il 4 così da ottenere qualcosa di simile a questo
Ora passiamo a formattare i dati, clicchiamo sull'icona a forma di chiave inglese della riga del dato che ci interessa e si apre la finestra dei processi
Il sistema avverte che non ci sono processi definiti per quel dato (per intenderci senza definire un processo tutti i dati che arrivano vanno persi) quindi ne definiamo un, il primo processo è sempre la memorizzazione del dato grezzo che arriva, questo processo si chiama "Log to feed (TIMESTORE)" [il TIMESTORE è stato introdotto da inizio agoato 2013 per velocizzare la lettura del database e ridurre le dimensioni dello stesso] che è anche il processo presentato di default (pos.1), diamo un nome a questo processo es. Potenza (pos.2), selezioniamo un intervallo di tempo per la registrazione del dato (pos.3), il tempo deve essere maggiore o uguale alla frequenza con cui vengono inviati i dati, per esempio se i dati vengono inviati ogni 3 min si selezionerà 5 min, quindi clicchiamo su "add" (pos.4) per crearlo. Seguendo lo schema dell'esempio n°1 con lo stesso procedimento creiamo anche i due processi successivi così da ottenere un risultato come in figura
Noterete che sulla prima colonna ci sono delle frecce di direzione, servono per modificare la sequenza dei processi, bisogna fare attenzione quando si esegue questa tipo di modifiche in quanto, anche qui vige la regola che l'output del precedente è l'input del seguente, modificare la sequenza può portare a risultati indesiderati o bloccare il sistema (es. se invertiamo il processo 2 con il 3 il sistema non funzionerà in quanto i kWh/d devono avere come input kWh che il processo accumulerà per 24 ore mentre il processo kWh deve avere in ingresso Watt che medierà nell'arco temporale considerato.
Passiamo ora con lo stesso principio a impostare i processi per il dato della tensione, dopo aver inserito il primo processo, ovvero il Log to feed, dobbiamo inserire una operazione di moltiplicazione per 0.01 per dividere per 100 (il "/" e il "-" non sono stati implementati) come in figura
come vedete selezionando un processo con operatore si attiva la casella dove inserire il valore da assegnare a quel operatore, alla fine dovremmo trovare una finestra simile a
con il terzo processo andiamo a memorizzare il nuovo valore calcolato.
Tornando alla lista degli input vedremo gli input con i processi collegati come in figura
In blu vengono mostrati i processi utilizzabili dagli altri moduli, mentre in rosso o arancione quelli di supporto
Processi di input
I processi di input disponibili sono:
Log to feed
Descrizione: Questo processore registra l'ingresso dei dati direttamente in un feed. Ogni dato ricevuto viene registrato come un nuovo record dati.
Argomento: L'argomento è il nome del feed che si desidera scrivere. Se il feed non esiste ne verrà creato uno con il nome del dato.
x (moltiplicazione)
Descrizione: Moltiplica il valore in ingresso per il valore dato. Questo può essere utile per calibrare una particolare variabile sul web piuttosto che riprogrammare l'hardware. Il risultato viene passato per un'ulteriore elaborazione da parte del processo successivo nell'elenco di elaborazione dell'input.
Argomento: Il valore con cui moltiplicare.
+ (Offset)
Descrizione: Incrementa il valore in ingresso dal valore dato. Questo può essere utile per calibrare una particolare variabile sul web piuttosto che riprogrammare l'hardware. Il risultato viene passato per un'ulteriore elaborazione da parte del processo successivo nell'elenco di elaborazione dell'input.
Argomento: Il valore da compensare.
Power to kWh
Descrizione: converte il valore di potenza watt in kWh in modo cumulativo, crescente.
Argomento: L'argomento è il nome del feed che si desidera scrivere. Se il feed non esiste ancora, verrà creato con il nome del dato.
Power to kWh/d
Descrizione: Questo è un processo di ingresso particolarmente utile per il monitoraggio energetico, converte un valore di potenza in Watt da inviare ad un feed che contiene un valore di energia totale utilizzata ogni giorno (kWh/d).
Argomento: L'argomento è il nome del feed che si desidera scrivere. Se il feed non esiste ancora, verrà creato con il nome del dato.
x input
Descrizione: questo processo moltiplica il valore dell'Input selezionato con un altro input (Input1 x Input2).
Il risultato viene passato per un'ulteriore elaborazione da parte del processo successivo nell'elenco di elaborazione dell'input.
Argomento: Nome dell'Input da moltiplicare con
Input on-time
Descrizione: conta la quantità di tempo che un Input è attivo ogni giorno e lo registra in un feed. Creata per contare il numero di ore che una pompa di acqua calda solare è accesa ogni giorno, più in generale per quanto tempo l'Input riceve dati.
Argomento: L'argomento è il nome del feed che si desidera scrivere. Se il feed non esiste ancora, verrà creato con il nome del dato.
kWhinc to kWh/d
Descrizione: Converte l'incremento di kWh dall'ultimo invio di dati in un feed che contiene i kWh al giorno. Non chiaro da approfondire il funzionamento
Argomento: L'argomento è il nome del feed che si desidera scrivere. Se il feed non esiste ancora, verrà creato con il nome del dato.
kWh to kWh/d (old) deprecato
Descrizione: Alcune apparecchiature di registrazione dati possono fornire solo il dato di kWh totali utilizzati o generati, questo può essere usato per convertire i kWh accumulandoli in un feed contenente kWh/d al giorno.
Argomento: L'argomento è il nome del feed che si desidera scrivere. Se il feed non esiste ancora, verrà creato con il nome del dato.
update feed @ time
Descrizione: Aggiorna il record dati di un feed in un determinato momento.
Argomento: L'argomento è il nome del feed che si desidera scrivere. L'argomento tempo è passato via API, ad esempio: &time=TIME&json={power:200}
+ input
Descrizione: questo processo aggiunge il valore dell'Input selezionato con un altro input (Input1 + Input2).
Il risultato viene passato per un'ulteriore elaborazione da parte del processo successivo nell'elenco di elaborazione dell'input.
Argomento: Nome dell'input da aggiungere
/ input
Descrizione: questo processo divide il valore dell'Input selezionato con un altro input (Input1 / Input2).
Il risultato viene passato per un'ulteriore elaborazione da parte del processo successivo nell'elenco di elaborazione dell'input.
Argomento: Nome dell'input da dividere
PhaseShift
Descrizione: ....to do....
Argomento: ....to do....
accumulator
Descrizione: ....to do....
Argomento: ....to do....
rate of change
Descrizione: Visualizza il tasso di variazione tra il dato corrente e l'ultimo archiviato
Argomento:
histogram
Descrizione: ....to do....
Argomento: ....to do....
average
Descrizione: Calcola una media giornaliera di un valore
Argomento:
heat flux
Descrizione: ....to do....
Argomento: ....to do....
power gained to kWh/d
Descrizione: ....to do....
Argomento: ....to do....
pulse difference
Descrizione: Potrebbe essere la differenza di impulsi tra due invii di dati - verificare -
Argomento:
kWh to power
Descrizione: dovrebbe trasformare un valore di potenza da kWh in watt l'inverso di "power to kWh" - verificare-
Argomento: ....to do....
- input
Descrizione: questo processo sottrae il valore dell'Input selezionato con un altro input (Input1 - Input2).
Il risultato viene passato per un'ulteriore elaborazione da parte del processo successivo nell'elenco di elaborazione dell'input.
Argomento: Nome dell'input da sottrarre
kWh to kWh/d
Descrizione: Questo è un processo di ingresso particolarmente utile per il monitoraggio energetico, converte un valore di potenza in kWh da inviare ad un feed che contiene un valore di energia totale utilizzata ogni giorno (kWh/d) simile a "power to kWh/d" ma con diversa unità di misura in ingresso.
Argomento: L'argomento è il nome del feed che si desidera scrivere. Se il feed non esiste ancora, verrà creato con il nome del dato.
allow positive (set arg=1)
Descrizione: Questo è un processo interessante sopratutto nel caso si voglia discriminare l'energia in ingresso o in uscita, o più in generale quando un valore è positivo o negativo. Questo processo prende in considerazione il valore in ingresso e immagazzina sul feed solo i valori positivi scartando i valori negativi. Un esempio, supponiamo di avere energia prodotta e energia consumata, fino a chè la prodotta è maggiore della consumata avrò un valore positivo (energia esportata) che verrà accumulato dal feed, nel momento che diventa negativo verrà scartato, così facendo sul feed avrò solo energia esportata.
Argomento: L'argomento va settato ad 1 che è l'unica opzione disponibile, probabilmente l'autore prevede altre opzioni future.
allow negative (set arg=1)
Descrizione: Questo è un processo interessante sopratutto nel caso si voglia discriminare l'energia in ingresso o in uscita, o più in generale quando un valore è positivo o negativo. Questo processo prende in considerazione il valore in ingresso e immagazzina sul feed solo i valori negativi scartando i valori positivi. Un esempio, supponiamo di avere energia prodotta e energia consumata, fino a chè la prodotta è minore della consumata avrò un valore negativo (energia importata) che verrà accumulato dal feed, nel momento che diventa positivo verrà scartato, così facendo sul feed avrò solo energia importata.
Argomento: L'argomento va settato ad 1 che è l'unica opzione disponibile, probabilmente l'autore prevede altre opzioni future.