{"id":12213,"date":"2019-08-08T18:09:09","date_gmt":"2019-08-08T16:09:09","guid":{"rendered":"https:\/\/pi3g.com\/?p=12213"},"modified":"2019-08-08T18:09:09","modified_gmt":"2019-08-08T16:09:09","slug":"picockpit-online-offline-states-and-mqtt","status":"publish","type":"post","link":"https:\/\/pi3g.com\/de\/picockpit-online-offline-states-and-mqtt\/","title":{"rendered":"PiCockpit: Online\/Offline-Zust\u00e4nde und MQTT"},"content":{"rendered":"<p>In der kommenden Version von PiCockpit wird es eine Online-Statusverfolgung f\u00fcr Pi's geben, die \u00fcber den PiCockpit-Client verbunden sind. <\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2019\/08\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"772\" height=\"209\" title=\"Bild\" style=\"display: inline; background-image: none;\" alt=\"Bild\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2019\/08\/image_thumb-7.png\" border=\"0\"><\/a><\/p>\n<p>Die Online-Funktion wird durch die MQTT-Funktion Last Will &amp; Testament realisiert. <\/p>\n<p>Sie k\u00f6nnen es testen, indem Sie Ihren Pi vom Netzwerk trennen. <\/p>\n<p><font style=\"background-color: rgb(255, 255, 0);\">Ich habe den Pi am ausgesteckt: <strong>17:59:10<\/strong><\/font><\/p>\n<p><font style=\"background-color: rgb(255, 255, 0);\">Bei etwa <strong>18:00:05<\/strong> wurde er als offline angezeigt:<\/font><\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2019\/08\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"235\" title=\"Bild\" style=\"display: inline; background-image: none;\" alt=\"Bild\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2019\/08\/image_thumb-8.png\" border=\"0\"><\/a><\/p>\n<h1>Warum ist das so? <\/h1>\n<p>Das liegt daran, dass MQTT nach einem vereinbarten Zeitintervall einen Keep-Alive-Ping zwischen dem MQTT-Broker und dem Client durchf\u00fchrt. <\/p>\n<p>Um Netzwerkbandbreite zu sparen, gehen wir davon aus, dass der Client weiterhin da ist - bis der n\u00e4chste Ping fehlschl\u00e4gt. <\/p>\n<p>Reagiert der Kunde nicht wie gew\u00fcnscht, wird die Nachricht \u00fcber den letzten Willen des Kunden an die richtigen Abonnenten gesendet. <\/p>\n<p><strong>Mit anderen Worten: Wenn Ihr Pi die Verbindung unterbricht, werden Sie es nach etwa einer Minute in Echtzeit in PiCockpit erfahren!<\/strong><\/p>\n<p><font style=\"background-color: rgb(255, 255, 0);\">F\u00fcr die Zukunft planen wir auch die Einf\u00fchrung von Push-Nachrichten, so dass Sie benachrichtigt werden k\u00f6nnen, wenn ein Client offline geht, auch wenn Sie nicht in PiCockpit eingeloggt sind.<\/font><\/p>\n<p><\/p>\n<h1>Was ist, wenn das Netz zur\u00fcckkommt?<\/h1>\n<p>Wenn das Netzwerk wiederhergestellt ist, verbindet sich der picockpit-client (wenn er noch l\u00e4uft - d.h. der Pi ist in einem normalen Zustand) nach einem bestimmten Timeout wieder mit dem MQTT-Client. <\/p>\n<p><strong>Ihr Raspberry Pi wird nun wieder als online angezeigt!<\/strong><\/p>\n<p>Bitte erwarten Sie nicht, dass dies sofort geschieht (der PAHO-MQTT-Client macht eine Pause zwischen den Versuchen, die Verbindung wiederherzustellen, wobei das Intervall l\u00e4nger wird, je l\u00e4nger er wartet, wenn ich mich richtig erinnere). <\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2019\/08\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"688\" height=\"81\" title=\"Bild\" style=\"display: inline; background-image: none;\" alt=\"Bild\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2019\/08\/image_thumb-9.png\" border=\"0\"><\/a><\/p>\n<p>Anzeige des Online-Status und der entsprechenden Meldung (wird noch angezeigt, w\u00e4hrend ich entwickle)<\/p>\n<p>und dies ist die Nachricht, dass der Client offline ist (beachten Sie, dass es sich um JSON handelt): <\/p>\n<blockquote>\n<p>{\"onlineState\": \"online\", \"$uuid\": \u201c4817713e-b9f6-11e9-9321-b827ebaefc47\u201d, \u201c$client\u201d: \u201cpi\/000000007eaefc47\u201d, \u201c$ts\u201d: 1565273103.409718}<\/p>\n<\/blockquote>\n<p>Ich bin sehr zufrieden mit der Entscheidung, Vue.js f\u00fcr das Webfrontend zu verwenden - es ist sehr gut f\u00fcr diese Zustands\u00e4nderungen. <\/p>","protected":false},"excerpt":{"rendered":"<p>Im kommenden PiCockpit Release wird es eine Online-Statusverfolgung f\u00fcr Pi's geben, die \u00fcber den picockpit-client verbunden sind. Die Online-Funktion wird durch das Last Will &amp; Testament Feature von MQTT realisiert. Sie k\u00f6nnen es testen, indem Sie Ihren Pi vom Netzwerk trennen. Ich habe den Pi ausgesteckt um: 17:59:10 Um ca. 18:00:05 wurde er als offline angezeigt: Warum...<\/p>","protected":false},"author":830,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[432],"tags":[679,678,677,680,675],"class_list":["post-12213","post","type-post","status-publish","format-standard","hentry","category-picockpit","tag-network-outage","tag-not-immediate","tag-picockpit-online-offline-mqtt","tag-raspberry-pi-online-state-check","tag-vue-js"],"_links":{"self":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/12213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/users\/830"}],"replies":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/comments?post=12213"}],"version-history":[{"count":1,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/12213\/revisions"}],"predecessor-version":[{"id":12214,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/12213\/revisions\/12214"}],"wp:attachment":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/media?parent=12213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/categories?post=12213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/tags?post=12213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}