{"id":150,"date":"2018-10-22T17:24:29","date_gmt":"2018-10-22T15:24:29","guid":{"rendered":"http:\/\/blog.0link.net\/?p=150"},"modified":"2019-11-25T13:06:43","modified_gmt":"2019-11-25T12:06:43","slug":"projekt-wachdisplay-fuer-das-feuerwehrhaus","status":"publish","type":"post","link":"https:\/\/blog.0link.net\/index.php\/2018\/10\/22\/projekt-wachdisplay-fuer-das-feuerwehrhaus\/","title":{"rendered":"Projekt &#8222;Wachdisplay&#8220; f\u00fcr das Feuerwehrhaus"},"content":{"rendered":"<p><a href=\"http:\/\/blog.0link.net\/wp-content\/uploads\/2018\/10\/neue-Funktion.png\"><img loading=\"lazy\" class=\"alignright wp-image-151 size-thumbnail\" src=\"http:\/\/blog.0link.net\/wp-content\/uploads\/2018\/10\/neue-Funktion-150x150.png\" alt=\"Alarmdisplay\" width=\"150\" height=\"150\" \/><\/a> Immer wieder gibt es den Wunsch, insbesondere bei den kleinen Feuerwehren, f\u00fcr die nach wie vor die Sirene der Hauptalarm darstellt, eine Anzeige der Alarmierung im Feuerwehrhaus zu haben, wohin es geht und welcher Auftrag dahinter steckt.<\/p>\n<h5>Quelle der Inspiration<\/h5>\n<p>Inspiriert durch eine Anzeige auf Basis eines Oelmann-Alarmempf\u00e4ngers in einem Feuerwehrhaus ging es an die ersten \u00dcberlegungen. Dazu erstmal ein Blick, wie das Oelmann-System grob funktioniert:<\/p>\n<ul>\n<li>Empfang der Alarmierung \u00fcber einen Steuerempf\u00e4nger<\/li>\n<li>Ausgabe der Meldung \u00fcber eine serielle Schnittstelle<\/li>\n<li>Umwandlung der Meldung \u00fcber einen Seriell-VGA-Konverter<\/li>\n<li>Darstellung auf einem Monitor<\/li>\n<\/ul>\n<p>Soweit recht einfach und damit auch nahezu ausfallsicher konzipiert. Die Schw\u00e4chen des Systems sollen aber nicht unerw\u00e4hnt bleiben: es wird jede Meldung angezeigt, die im Steuerempf\u00e4nger als Adresse hinterlegt ist, lange Meldungen werden umgebrochen, aber nicht durchgescrollt, so dass Meldungsteile fehlen\u00a0 und die Meldungen bleiben dort bis zum Eingang einer neuen Meldung stehen.<\/p>\n<h5>Zielsetzung<\/h5>\n<p>Es sollte ein System werden, dass die Schw\u00e4chen ausgleicht und im Sinne einer Vernetzung an mehreren Standorten genutzt werden kann, ohne dort einen eigenen Steuerempf\u00e4nger zu installieren.<\/p>\n<p>Die Auswertung der Alarmierung musste also irgendwo zentral erfolgen und eine differenzierte Ansteuerung mehrerer Monitore erm\u00f6glichen.<\/p>\n<p>Meldungen sollten nach einer Ablaufzeit von der Anzeige verschwinden, da nicht selten sensible Daten in der Alarmmeldung enthalten sind und manchmal auch Nicht-Feuerwehrangeh\u00f6rige in den Ger\u00e4teh\u00e4usern zu Gast sind.<\/p>\n<h5>Erste Umsetzung im Sommer 2018<\/h5>\n<p>Die Grundversion brauchte von der Idee zur Umsetzung rund ein Vierteljahr. Im Kern gibt es einen &#8222;Displayserver&#8220; der \u00fcber eine API die Meldungen f\u00fcr den jeweiligen Monitor entgegen nimmt und in einer Datenbank speichert. \u00dcber die selbe API melden sich die Monitore als &#8222;Client&#8220; an und pr\u00fcfen ob eine Meldung vorhanden ist.<\/p>\n<p>Die Ansteuerung \u00fcbernimmt dabei ein bereits seit 2015 in der Stadtfeuerwehr eingesetztes System, mit dem SMS- und Mail- und Push-Nachrichten auf Basis der im Landkreis eingesetzten POCSAG-Alarmierung erzeugt werden. So k\u00f6nnen zu jeder Alarmierung differenziert die Monitore angesteuert werden.<\/p>\n<p>Auf der Clientseite l\u00e4uft das ganze als HTML\/Javascript-Kombination, die so mit verschiedenen Systemen und Browsern betrieben werden kann.<\/p>\n<p>Zusammen mit einem Freund wurde noch eine Wetter\/Unwetter-Leiste integriert. Im Ruhezustand zeigt sie Wetterdaten, bei ausgew\u00e4hlten Warnereignissen im Stadtgebiet verf\u00e4rbt sich die Leiste entsprechend des DWD-Farbschemas und zeigt die Headline der Meldung an, so dass Kameraden wissen, was sie drau\u00dfen noch erwarten k\u00f6nnte.<\/p>\n<h5>Die erste Testphase<\/h5>\n<p>Neben meinem Client auf einem Raspi 3b gab es noch einen auf einem Android-Tablet, einem Windows PC und einen weiteren Linux-PC &#8211; alle mit verschiedenen Broswern und Systemen.<\/p>\n<p>Als Hardware im Feuerwehrhaus kam im ersten Test ein Raspberry Pi Zero W zum Einsatz, der aber durch die grafische Oberfl\u00e4che mit Browser manchmal ins straucheln kam. Da stand schnell die Entscheidung weitere Clients nur noch als 3b auszur\u00fcsten.<\/p>\n<p>Es wurden einige Fehler gefunden, neue Ideen gesammelt und so manche Stunde damit verbracht das System weiter zu optimieren.<\/p>\n<h5>Geocoding in 2019<\/h5>\n<p>Als wesentliche Neuerung gab es dann im Fr\u00fchjahr 2019 das Geocoding-Routing. Der Displayserver versucht aus den Einsatztexten den Einsatzort rauszulesen und mit Hilfe der Google-Geocoding-API in eine Koordinate umzusetzen. Als Freund von freier Software habe ich zuvor die OSM-Variante getestet, musste aber feststellen, dass die Anzahl der falschen Georeferenzen sehr hoch war. Selbst mit der Google-API gibt es zuweilen Einsatzstellen in mehreren 100km Entfernung.<\/p>\n<p>Die gewonnene Koordinate wird nun genutzt um eine kleine Karte mit Anfahrtsweg inkl. gesch\u00e4tzter Fahrzeit und Strecke anzuzeigen. Dazu gibt es eine Luftbildkarte der Einsatzstelle um einen Blick auf die Bebauung zu haben.<\/p>\n<p>Mit diesen Kartenausschnitten und Informationen sollte auch eine M\u00f6glichkeit entstehen Einsatzdepeschen auszudrucken, jedoch ist aufgrund verschiedener Schwierigkeiten hier noch keine stabile Version entstanden. *to be continued*<\/p>\n<h5>Remote Control in 2019<\/h5>\n<p>Ein weiterer Punkt ist die Steuerung eigenen Monitors an der Wand. Der Raspi an sich wird ohne Maus und Tastatur betrieben. Im Alltag &#8222;heilt&#8220; er sich durch Cronjobs selbst, wenn mal was abst\u00fcrzt. F\u00fcr die Administation gibt es einen Zugang \u00fcber einen SSH-Tunnel vom Displayserver aus, so dass Updates vorgenommen und kleine Probleme headless behoben werden k\u00f6nnen.<\/p>\n<p>Zum Nutzen der Client-Funktionen (Letzte Meldung, Reload, Signalton) brauchte es weiterhin mindestens eine Maus oder einen Touchscreen. Alternativ ist noch eine VNC-Verbindung aus dem selben LAN m\u00f6glich.<\/p>\n<p><img loading=\"lazy\" class=\"alignright wp-image-167 size-thumbnail\" src=\"http:\/\/blog.0link.net\/wp-content\/uploads\/2018\/10\/WhatsApp-Image-2019-11-25-at-12.40.59-150x150.jpeg\" alt=\"\" width=\"150\" height=\"150\" \/><\/p>\n<p>Da wir hier \u00fcber Feuerwehr sprechen, musste noch eine einfache L\u00f6sung her. Auf dem Client-PC wurde mittels eines Python-Skripts ein Mini-Webserver eingerichtet, der eine kleine Fernsteuerung anzeigt. Hier sind jetzt die Funktionen f\u00fcr Ausschalten des Displays, Neustart und letzte Meldung sowie eine Testfunktion einfach aus dem Netzwerk erreichbar.<\/p>\n<h5>Was noch fehlt und geplant ist<\/h5>\n<p>Es fehlt noch die stabile Funktion der <strong>Alarmdepesche<\/strong>, die auf dem lokalen bzw. Netzwerk-Drucker im Feuerwehrhaus landen soll. Ein Ansatz ist da, aber es fehlt noch der letzte Kniff.<\/p>\n<p>Ein <strong>Relais-Ausgang<\/strong> via USB-Port wird auch von einigen erwartet, sei es um das Licht anzuknipsen oder eine T\u00fcr im Feuerwehrhaus zu \u00f6ffnen. Auch hier gibt es einen Ansatz, aber es fehlt die Implementierung auf der Client-Seite.<\/p>\n<p>Und einen ganz anderen Gedanken, banalen und \u00f6kologischen hat auch ein Kamerad zurecht geliefert: <strong>Warum muss der Monitor an sein<\/strong>, wenn gar keiner da ist? Hier gibt es auch verschiedene M\u00f6glichkeiten:<\/p>\n<ul>\n<li>Monitor mit einem Bewegungsmelder ausstatten<\/li>\n<li>Power-Management-Funktionen am HDMI-Ausgang nutzen. Daf\u00fcr Bedarf es aber einer \u00e4hnlichen Implementierung wie beim Relais und der Depesche, denn das liegt au\u00dferhalb des HTML\/Javascript-Universums.<\/li>\n<\/ul>\n<p>Die Ideen und W\u00fcnsche gehen nicht aus &#8211; manchmal sind es ganz kleine Dinge, die aber eine komplexe Umsetzung erfordern.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Immer wieder gibt es den Wunsch, insbesondere bei den kleinen Feuerwehren, f\u00fcr die nach wie vor die Sirene der Hauptalarm darstellt, eine Anzeige der Alarmierung im Feuerwehrhaus zu haben, wohin es geht und welcher Auftrag dahinter steckt. Quelle der Inspiration Inspiriert durch eine Anzeige auf Basis eines Oelmann-Alarmempf\u00e4ngers in einem Feuerwehrhaus ging es an die &hellip; <a href=\"https:\/\/blog.0link.net\/index.php\/2018\/10\/22\/projekt-wachdisplay-fuer-das-feuerwehrhaus\/\" class=\"more-link\"><span class=\"screen-reader-text\">Projekt &#8222;Wachdisplay&#8220; f\u00fcr das Feuerwehrhaus<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":151,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,3],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts\/150"}],"collection":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/comments?post=150"}],"version-history":[{"count":3,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts\/150\/revisions"}],"predecessor-version":[{"id":168,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts\/150\/revisions\/168"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/media\/151"}],"wp:attachment":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/media?parent=150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/categories?post=150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/tags?post=150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}