Vai al contenuto

Logger

Un logger legge i gateway secondo una pianificazione, senza nessuna pagina aperta. Conserva ogni telegramma e ogni valore che legge, e li consegna come file per email, per FTP o per SFTP. Riparte da solo quando il banco viene riavviato.

La scheda Loggers è per un utente o un amministratore. Un contractor non ce l'ha.

Chi ha un logger

Un amministratore crea un logger, e poi lo assegna agli utenti: Details, poi Users, e una spunta per ogni utente.

Un utente a cui è stato assegnato un logger lo vede, lo modifica, lo avvia e lo ferma, e legge quello che ha conservato. Un utente non può cambiare:

  • il nome e il preset;
  • i gateway, quando li ha scritti un amministratore. Quando l'amministratore ha lasciato vuoti i gateway, li scrive l'utente.

Solo un amministratore elimina un logger: Change, poi Delete.

La scheda Loggers, con un logger in funzione

Che cosa contiene un logger

Add a logger apre una finestra con i campi.

La finestra di un logger

Preset Il broker, la sua password e le chiavi AES.
Gateways Uno o più id di gateway. Un logger senza gateway non parte, a meno che sia passivo: un logger passivo senza gateway conserva tutti i gateway del broker.
Meters Facoltativo. Con un elenco, il logger conserva solo questi contatori. Senza, conserva ogni contatore che i gateway sentono, anche quelli dei vicini.
Passive Il logger non invia niente ai gateway. Vedi sotto.
Schedule Quando parte una lettura, come cron Quartz in UTC: secondo, minuto, ora, giorno del mese, mese, giorno della settimana. Uno dei due giorni è ?. 0 0 3 * * ? è ogni giorno alle 03:00, 0 0 3 L * ? l'ultimo giorno di ogni mese, 0 0 3 LW * ? il suo ultimo giorno lavorativo, 0 0 3 L-3 * ? tre giorni prima dell'ultimo, e 0 0 3 ? * FRI#1 il primo venerdì. Un giorno della settimana è un nome o un numero da 1, domenica, a 7. Non è il cron della pianificazione di un gateway. Tutta la sintassi è in Come si scrive una pianificazione.
Minutes Quanto dura una lettura, da 1 a 120.
Opzioni La lista filtro, un telegramma per tipo, la modalità radio e i ripetitori, come nel pannello Readout di una sessione.
Highest subunit, tariff, storage Che cosa contiene un file. Un valore sopra uno di questi è escluso. Una casella vuota è nessun limite. Storage 0 è il valore attuale.
Keep for Per quanti giorni il logger conserva quello che ha letto.
Delivery Email, FTP o SFTP, la sua pianificazione, anch'essa un cron Quartz, e che cosa viene inviato: i datapoint, i telegrammi, o entrambi.

La pagina mostra le prossime tre date sotto ogni pianificazione.

La (i) dopo il nome di ogni pianificazione mostra un breve riferimento della sintassi Quartz, con esempi. Si porta il puntatore sopra, oppure si fa clic per tenerla aperta. Esc la chiude e lascia aperta la finestra. Tutta la sintassi, con altri esempi, è in Come si scrive una pianificazione.

Quando il preset indica gateway o contatori, la finestra li scrive in Gateways e Meters. Scegliendo un altro preset cambiano con lui. Quello che avete scritto voi resta.

Come avvengono le letture

Un gateway dorme quasi sempre, e tiene una sola lettura per dopo. Quindi il logger chiede a ogni gateway solo la prossima lettura, con la sua ora di inizio. Il banco invia di nuovo la richiesta ogni volta che il gateway si connette, finché la lettura parte. Quando una lettura finisce, il logger chiede la successiva.

Ne seguono due cose:

  • Un solo logger legge un gateway. Un secondo logger sullo stesso gateway sostituirebbe la lettura del primo, quindi il banco rifiuta di avviarlo.
  • Una lettura chiesta a mano nella sessione del logger sostituisce quella chiesta dal logger. Il logger chiede di nuovo quando la vostra finisce.

Stop ferma una lettura in corso. Una lettura che il gateway tiene già per dopo avviene ancora una volta, e non ne viene conservato niente.

Un logger passivo

Spuntate Passive per i gateway letti da un altro sistema. Un logger passivo non invia niente a un gateway: nessuna lettura, nessuno stop, nessuna pianificazione. Conserva quello che i gateway inviano quando quell'altro sistema li legge.

Un logger passivo può non indicare nessun gateway. Allora conserva quello che invia ogni gateway sotto il prefisso del preset. Su un broker con molti gateway sono molti telegrammi: dategli un elenco di contatori, o un Keep for breve, quando non servono tutti.

Un logger passivo condivide un gateway con qualunque cosa. La sua sessione rifiuta ogni pulsante che invierebbe qualcosa.

Che cosa viene conservato

  • Ogni telegramma, come è arrivato, con l'ora e il gateway.
  • Datapoint: un valore di un contatore. Un contatore invia lo stesso valore molte volte in una lettura, quindi un datapoint viene conservato quando il valore è cambiato, o quando l'ultimo conservato ha un'ora.

Un telegramma che non si può leggere, perché il preset non ha la sua chiave, viene conservato come telegramma e non dà nessun datapoint.

Modificare un logger

Change apre la stessa finestra, con in ogni campo quello che il logger ha. Save the logger conserva quello che avete cambiato.

Un amministratore vi trova anche Delete. Ogni telegramma e ogni datapoint che il logger ha conservato viene eliminato con lui, e il banco chiede conferma prima di farlo.

La finestra di un logger che esiste, con il pulsante Delete

Details

Details mostra i gateway, le ultime 5 letture e le ultime 5 consegne.

I dettagli di un logger: una lettura prenotata

Lettura
Booked Chiesta; il gateway non l'ha ancora avviata.
Running Il gateway comunica che è in corso.
Finished Il gateway comunica la fine, e quanti telegrammi ha inviato.
Not started Il gateway non ha comunicato un inizio entro cinque minuti dall'ora. Non si è connesso prima dell'ora, o ha rifiutato.
Not known Il banco non era in funzione a quell'ora, o il gateway non ha mai comunicato la fine.

Download datapoints e Download telegrams danno i file del periodo tra le due date. Le date sono giorni in UTC, ed entrambe sono nel periodo. Senza date il file contiene tutto quello che il logger conserva. Un periodo con troppe righe viene rifiutato; sceglietene uno più breve.

Il file dei datapoint è un CSV con queste colonne: read_at, gateway, identity, manufacturer, version, medium, quantity, function, storage, tariff, subunit, value, unit, measured_at. Il file dei telegrammi è il file Frames di una sessione, che l'M-Bus Explorer legge.

Consegne

Una consegna contiene quello che nessuna consegna ha ancora contenuto. Quando una fallisce, non si perde niente: la successiva contiene le stesse righe. Deliver now invia senza aspettare la pianificazione.

  • Email: da uno a cinque indirizzi. I file sono allegati.
  • FTP: un server su un indirizzo pubblico, un utente, una password e una cartella facoltativa. Spuntate TLS per FTP su TLS. La password è conservata dal banco e non viene più mostrata.
  • SFTP: gli stessi campi, senza TLS, perché SFTP è sempre cifrato. Si accede solo con una password. Il banco ricorda la chiave del server alla prima consegna, e la finestra la mostra come Key of the server. Confrontatela con la chiave che vi dà il proprietario del server. Se in seguito il server mostra un'altra chiave, la consegna fallisce e non viene inviato niente. Se il server è stato sostituito, spuntate Forget this key e salvate: la consegna successiva prende la nuova chiave.

Quando non c'è niente di nuovo, non viene inviato niente, e l'elenco dice Nothing new. Una grande quantità parte in più consegne, una dopo l'altra.

La sessione di un logger

Un logger in funzione tiene una sessione. Ogni amministratore la trova nell'elenco Sessions, con il nome del logger, e la apre come ogni sessione: le schede dei gateway, i contatori, il log. Open the session in Details fa lo stesso.

Questa sessione non ha Disconnect. Finisce quando il logger viene fermato.

Come si scrive una pianificazione

Un logger ha due pianificazioni: una per le letture e una per le consegne. Si scrivono nello stesso modo, come cron Quartz: una riga di sei campi, separati da uno spazio. Ogni campo indica i valori di una parte dell'ora. La pianificazione indica ogni momento che rispetta tutti i campi.

0 0 3 * * ?
| | | | | +-- giorno della settimana
| | | | +---- mese
| | | +------ giorno del mese
| | +-------- ora
| +---------- minuto
+------------ secondo

Questa è ogni giorno alle 03:00:00.

Ogni ora è in UTC. L'ora dell'Europa centrale è 1 ora avanti rispetto a UTC con l'ora solare e 2 ore avanti con l'ora legale. Quindi 0 0 3 * * ? è alle 04:00 in Italia con l'ora solare e alle 05:00 con l'ora legale.

La pagina mostra le prossime tre date sotto la casella mentre scrivete. Leggetele prima di salvare: sono il modo più rapido per vedere che cosa significa una pianificazione.

I campi

Campo Valori Simboli ammessi
1 Secondo da 0 a 59 * , - /
2 Minuto da 0 a 59 * , - /
3 Ora da 0 a 23 * , - /
4 Giorno del mese da 1 a 31 * , - / ? L W
5 Mese da 1 a 12, o un nome * , - /
6 Giorno della settimana da 1 a 7, o un nome * , - / ? L #
7 Anno l'anno stesso, come 2027 * , - /

L'anno è facoltativo. Quasi tutte le pianificazioni hanno sei campi e nessun anno.

I nomi dei mesi sono in inglese: JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV e DEC.

Un giorno della settimana si conta dalla domenica, e la domenica è 1.

1 2 3 4 5 6 7
SUN MON TUE WED THU FRI SAT
domenica lunedì martedì mercoledì giovedì venerdì sabato

Un nome è più sicuro di un numero, perché altri dialetti di cron contano i giorni in un altro modo. I nomi e le lettere L e W si leggono in maiuscolo o in minuscolo.

I simboli di ogni campo

Simbolo Significato Esempio
* Ogni valore. * come mese: ogni mese.
, Un elenco. 6,18 come ora: le 06 e le 18.
- Un intervallo. I due estremi sono compresi. MON-FRI: da lunedì a venerdì.
/ Passi: un inizio, poi un valore ogni tanti. 5/15 come minuto: 5, 20, 35 e 50.

Un elenco contiene anche intervalli e passi: 0 0 6,12-14 * * ? è alle 06:00, alle 12:00, alle 13:00 e alle 14:00.

Un intervallo può superare la fine del campo. Come ora, 22-2 è 22, 23, 0, 1 e 2. FRI-MON è venerdì, sabato, domenica e lunedì. NOV-FEB è da novembre a febbraio.

Passi. Il numero prima di / è l'inizio, e il numero dopo è il passo.

  • 0/15 come minuto è 0, 15, 30 e 45. */15 e /15 significano lo stesso.
  • 8-18/2 come ora è un'ora ogni due dalle 08 alle 18: 8, 10, 12, 14, 16 e 18.
  • Il conto ricomincia in ogni ora, giorno, mese o anno. Quindi 0/5 come ora è 0, 5, 10, 15 e 20, e poi di nuovo 0: l'ultimo intervallo è di 4 ore, non di 5. 1/10 come giorno del mese è il giorno 1, l'11, il 21 e il 31, e poi il giorno 1 del mese successivo.

I due campi del giorno e ?

Una pianificazione ha due campi che indicano un giorno: il giorno del mese e il giorno della settimana. Se ne scrive uno, e ? nell'altro. ? significa: questo campo non indica nessun giorno.

  • 0 0 3 15 * ? indica un giorno del mese: il 15.
  • 0 0 3 ? * MON indica un giorno della settimana: ogni lunedì.
  • 0 0 3 * * ? e 0 0 3 ? * * significano lo stesso: ogni giorno.

Una pianificazione con ? in entrambi i campi è rifiutata. Anche una pianificazione senza nessun ? è rifiutata, pure quando entrambi sono *. È l'errore più frequente.

Simboli del giorno del mese: L e W

Simbolo Significato
L L'ultimo giorno del mese: il 31, il 30, oppure il 28 o il 29 di febbraio.
L-3 Tre giorni prima dell'ultimo: il 28 in un mese di 31 giorni.
15W Il giorno lavorativo più vicino al 15. Un giorno lavorativo è da lunedì a venerdì.
LW L'ultimo giorno lavorativo del mese.

W non esce mai dal mese. Quando il 15 è un sabato, 15W è venerdì 14. Quando è una domenica, 15W è lunedì 16. Ma quando il giorno 1 è un sabato, 1W è lunedì 3, e non il venerdì prima, che è nel mese precedente.

W non sa niente delle festività. Una festività da lunedì a venerdì per lui è un giorno lavorativo.

L può stare in un elenco: 0 0 3 15,L * ? è il 15 e l'ultimo giorno di ogni mese.

Anche W può stare in un elenco: 0 0 3 10W,20W,LW * ? è il giorno lavorativo più vicino al 10, quello più vicino al 20, e l'ultimo giorno lavorativo di ogni mese. Il banco legge ogni giorno dell'elenco da solo, così un giorno che passa al venerdì prima non porta via gli altri.

Un giorno che un mese non ha non viene spostato a un altro giorno. 0 0 3 31 * ? indica solo i sette mesi che hanno 31 giorni. 0 0 3 29 2 ? indica solo gli anni bisestili. Per la fine di ogni mese, scrivete L.

Simboli del giorno della settimana: # e L

Simbolo Significato
FRI#1 Il primo venerdì del mese. 6#1 è lo stesso.
MON#3 Il terzo lunedì del mese.
FRI#5 Il quinto venerdì. Un mese con quattro venerdì non ha nessuna data.
FRIL L'ultimo venerdì del mese. 6L è lo stesso.
L Senza un giorno prima: sabato, l'ultimo giorno della settimana.

Una pianificazione contiene un solo #. MON#1,FRI#1 è rifiutato.

W e # vanno con un solo giorno, mai con un intervallo

Il banco non rifiuta 0 0 3 ? * MON-FRI#1 o 0 0 3 10-15W * ?. Legge l'intervallo e ignora il simbolo: la prima è ogni giorno da lunedì a venerdì, e la seconda è ogni giorno dal 10 al 15. Le tre date sotto la casella lo mostrano.

Esempi

Ogni giorno:

Pianificazione Quando
0 0 3 * * ? Ogni giorno alle 03:00.
0 30 6 * * ? Ogni giorno alle 06:30.
0 0 6,18 * * ? Ogni giorno alle 06:00 e alle 18:00.
0 0 0/6 * * ? Ogni sei ore: 00:00, 06:00, 12:00 e 18:00.
0 0 * * * ? Ogni ora, al minuto 0.
0 15,45 * * * ? Ogni ora, al minuto 15 e al minuto 45.
0 0 22-2 * * ? Ogni ora dalle 22:00 alle 02:00.
0 0/15 * * * ? Ogni 15 minuti. Solo per una consegna: vedi i limiti.

Giorni della settimana:

Pianificazione Quando
0 0 3 ? * MON Ogni lunedì alle 03:00.
0 30 6 ? * MON-FRI Da lunedì a venerdì alle 06:30.
0 0 3 ? * SAT,SUN Sabato e domenica alle 03:00.
0 0 3 ? * MON,WED,FRI Lunedì, mercoledì e venerdì alle 03:00.
0 0 8-18/2 ? * MON-FRI Da lunedì a venerdì, un'ora ogni due dalle 08:00 alle 18:00.
0 0 6 ? * FRI#1 Il primo venerdì di ogni mese alle 06:00.
0 0 3 ? * MON#3 Il terzo lunedì di ogni mese alle 03:00.
0 0 3 ? * FRIL L'ultimo venerdì di ogni mese alle 03:00.

Giorni del mese:

Pianificazione Quando
0 0 3 1 * ? Il primo giorno di ogni mese alle 03:00.
0 0 3 1,15 * ? Il giorno 1 e il 15 di ogni mese alle 03:00.
0 0 3 1-7 * ? I primi sette giorni di ogni mese alle 03:00.
0 0 3 L * ? L'ultimo giorno di ogni mese alle 03:00.
0 0 3 L-3 * ? Tre giorni prima dell'ultimo giorno di ogni mese alle 03:00.
0 0 3 LW * ? L'ultimo giorno lavorativo di ogni mese alle 03:00.
0 0 3 1W * ? Il primo giorno lavorativo di ogni mese alle 03:00.
0 0 3 15W * ? Il giorno lavorativo più vicino al 15 alle 03:00.
0 0 3 15,L * ? Il 15 e l'ultimo giorno di ogni mese alle 03:00.

Mesi e anni:

Pianificazione Quando
0 0 3 1 1/3 ? Il primo giorno di ogni trimestre alle 03:00: gennaio, aprile, luglio e ottobre.
0 0 3 L 3,6,9,12 ? L'ultimo giorno di ogni trimestre alle 03:00.
0 0 3 ? NOV-FEB MON Ogni lunedì da novembre a febbraio alle 03:00.
0 0 3 ? OCT-APR * Ogni giorno da ottobre ad aprile alle 03:00.
0 0 0 1 1 ? Una volta all'anno: il 1° gennaio alle 00:00.
0 0 3 1 1 ? 2027 Una volta: il 1° gennaio 2027 alle 03:00.
0 0 3 ? * TUE 2026-2027 Ogni martedì alle 03:00, nel 2026 e nel 2027.

I limiti di questo banco

Quartz legge più pianificazioni di quante il banco ne accetta. Il banco aggiunge queste regole:

  • Una pianificazione ha al massimo 63 caratteri.
  • Le letture non devono sovrapporsi. Tra due letture passano almeno i Minutes più 10 minuti. Con 30 minuti, le date della pianificazione distano almeno 40 minuti. Quindi 0 0 * * * ?, ogni ora, è accettata, e 0 0/30 * * * ?, ogni mezz'ora, è rifiutata.
  • Due consegne distano almeno 10 minuti. 0 0/15 * * * ? è accettata per una consegna, e 0 0/5 * * * ? è rifiutata.
  • Una pianificazione indica una data da adesso in poi. 0 0 3 30 2 ?, il 30 febbraio, non indica nessuna data ed è rifiutata. Anche un anno passato, come 0 0 3 1 1 ? 2020, è rifiutato.

Il banco controlla la distanza sulle prossime 50 date della pianificazione.

Una lettura parte al secondo che scrivete. Un gateway che a quell'ora dorme parte in ritardo, o non parte: vedi Come avvengono le letture.

Pianificazioni rifiutate

Pianificazione Perché
0 0 3 * * * Nessun ?. Scrivete 0 0 3 * * ?.
0 0 3 ? * ? ? in entrambi i campi del giorno.
0 0 3 1 * MON Due giorni indicati. Scrivete ? in uno dei due.
0 3 * * ? Cinque campi. Il primo campo è il secondo: scrivete 0 0 3 * * ?.
0 0 3 ? * 0 Un giorno della settimana va da 1 a 7. La domenica è 1, o SUN.
0 0 24 * * ? Un'ora va da 0 a 23. La mezzanotte è 0.
0 0 3 32 * ? Un giorno del mese va da 1 a 31.
0 0 3 ? * WED#6 Un mese ha al massimo cinque mercoledì.
0 0 3 ? * MON#1,FRI#1 Due # in una pianificazione.
0 0 3 * * * * Questo è il cron della pianificazione di un gateway. Vedi sotto.

Non è il cron di un gateway

Un gateway ha una pianificazione sua, per le sue connessioni: vedi Cambiare la pianificazione di un gateway. Quella la legge il gateway, e si scrive in un altro modo:

La pianificazione di un logger La pianificazione di un gateway
Campi Sei, e l'anno quando serve. Sempre sette, con l'anno.
? In uno dei due campi del giorno. Non si usa.
I due giorni Se ne scrive uno. Si scrivono entrambi, e devono valere entrambi.
Domenica 1 0
L, W, # Letti. Non letti.

Una pianificazione copiata da una casella all'altra è rifiutata, oppure indica un altro giorno.