PiCockpit: estados online / offline, e MQTT
No próximo lançamento do PiCockpit, teremos um rastreamento online do status dos Pi's conectados via picockpit-cliente.
A função online é realizada pela função Last Will & Testament do MQTT.
Você pode testá-lo desligando o seu Pi da rede.
Eu desliguei o Pi: 17:59:10
Em aproximadamente 18:00:05 foi mostrado como offline:
Porquê?
Isto porque o MQTT tem um ping keep-alive após um intervalo de tempo acordado entre o MQTT Broker e o cliente.
Para poupar largura de banda de rede, assumimos que o cliente continua lá - até o próximo ping falhar.
Se o cliente não responder como deveria, a última mensagem de vontade & testamento do cliente será enviada para os assinantes certos.
Em outras palavras: se o seu Pi se desconecta, você saberá após cerca de um minuto em tempo real no PiCockpit!
Para o futuro também estamos a planear introduzir mensagens push, para que você possa ser notificado de um cliente que vai ficar offline, mesmo que não esteja logado no PiCockpit.
E se a rede voltar?
Se a rede voltar, o cliente picockpit (se ainda estiver a funcionar - ou seja, se o Pi estiver num estado normal) voltará a ligar-se ao cliente MQTT, após um determinado tempo limite.
O seu Raspberry Pi será mostrado como estando online novamente!
Por favor não espere que isto seja imediato (o cliente PAHO MQTT fará uma pausa entre as tentativas de reconexão, com o intervalo ficando mais longo quanto mais tempo ele espera se eu me lembrar corretamente).
Mostrando o estado online e a mensagem correspondente (ainda sendo mostrada enquanto eu desenvolvo)
e esta é a mensagem sobre o cliente estar offline (note que é JSON):
{\i1}"onlineState".{\i} "online", "$uid": “4817713e-b9f6-11e9-9321-b827ebaefc47”, “$client”: “pi/000000007eaefc47”, “$ts”: 1565273103.409718}
Estou muito feliz como está a correr a decisão de ir com o Vue.js para o webfrontend - é muito bom para estas mudanças de estado.