PiCockpit: stati online / offline e MQTT

Nella prossima release di PiCockpit, avremo un monitoraggio dello stato online per i Pi connessi tramite picockpit-client.

immagine

La funzione online è realizzata dalla funzione Last Will & Testament di MQTT.

Potete testarlo scollegando il vostro Pi dalla rete.

Ho scollegato il Pi a: 17:59:10

A circa 18:00:05 è stato mostrato come offline:

immagine

Perché?

Questo perché MQTT ha un ping keep-alive dopo un intervallo di tempo concordato tra il Broker MQTT e il client.

Per risparmiare la larghezza di banda della rete, assumiamo che il client continui ad essere lì - fino a quando il prossimo ping non fallisce.

Se il cliente non risponde come dovrebbe, il messaggio delle sue ultime volontà sarà inviato agli abbonati giusti.

In altre parole: se il vostro Pi si disconnette, lo saprete dopo circa un minuto in tempo reale in PiCockpit!

Per il futuro stiamo anche progettando di introdurre i messaggi push, in modo da poter essere avvisati di un client che va offline, anche se non siete loggati in PiCockpit.

E se la rete ritorna?

Se la rete torna, picockpit-client (se è ancora in esecuzione - cioè il Pi è in uno stato normale) si riconnetterà al client MQTT, dopo un certo timeout.

Il tuo Raspberry Pi sarà mostrato come di nuovo online!

Per favore, non aspettatevi che questo sia immediato (il client MQTT di PAHO farà una pausa tra i tentativi di riconnessione, con l'intervallo che si allunga più a lungo se ricordo bene).

immagine

Mostrare lo stato online e il messaggio corrispondente (ancora mostrato mentre sviluppo)

e questo è il messaggio sul fatto che il client è offline (si noti che è JSON):

{"onlineState": "online", "$uuid": “4817713e-b9f6-11e9-9321-b827ebaefc47”, “$client”: “pi/000000007eaefc47”, “$ts”: 1565273103.409718}

Sono molto contento di come si sta rivelando la decisione di andare con Vue.js per il webfrontend - è molto buono per questi cambiamenti di stato.