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.
Che cosa contiene un logger¶
Add a logger apre una finestra con i campi.
| 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.
Details¶
Details mostra i gateway, le ultime 5 letture e le ultime 5 consegne.
| 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/15come minuto è 0, 15, 30 e 45.*/15e/15significano lo stesso.8-18/2come 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/5come ora è 0, 5, 10, 15 e 20, e poi di nuovo 0: l'ultimo intervallo è di 4 ore, non di 5.1/10come 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 ? * MONindica un giorno della settimana: ogni lunedì.0 0 3 * * ?e0 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, e0 0/30 * * * ?, ogni mezz'ora, è rifiutata. - Due consegne distano almeno 10 minuti.
0 0/15 * * * ?è accettata per una consegna, e0 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, come0 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.



