Hier der Aufbau in unserem Gerätehaus:
Wir haben Ende letzten Jahres unser neues Gerätehaus bezogen und im Zuge dessen haben wir uns entschieden den Einsatzmonitor + Connect einzusetzen.
Im Serverraum haben hierzu einen 19" Rackserver auf dem ein Proxmox (Servervirtualisierung) laufen, das ermöglicht uns die Hardware gleich mehrfach zu nutzen.
Ein vServer ist ein Windows 10 Pro auf dem der Einsatzmonitor läuft, ein weiterer ist ein Antergos (Linux, über die Wahl der Distro lässt sich streiten ).
Die Windows Maschine hat eine Netzwerkfreigabe auf den text_input Ordner des EM, ausserdem läuft ein UltraVNC Server auf dem Rechner.
Bei einem Einsatz sowie immer Mittwochs wenn Probe ist, bekommen wir ein Alarmfax als PDF an eine eigens hierfür angelegte E-mail Adresse geschickt.
Auf dem Antergos Rechner läuft eine Reihe von selbstgeschriebenen Python Scripten welche folgende Aufgaben erledigen:
- Maildownloader: Dieses Script prüft alle 10 Sekunden (getriggert von einem Systemd Timer) ob eine ungelesene E-Mail mit Betreff "ALARMMAIL" und einem Anhang im Postfach liegt, und lädt ggf. das PDF herunter
- PDFExtractor: Dieses Script filtert alle Texte (mit Hilfe von pdfminer) aus dem PDF, parst diese und schreibt die Daten in ein Textfile welches auf die Freigabe des Windows Rechners kopiert wird und somit via EM den Alarm auslöst.
In der Fahrzeughalle sowie in der Umkleide hängt jeweils ein 42" Samsung Fernseher auf dem Huckepack ein RaspberryPi 3 montiert ist. Dieses ist via HDMI mit dem Fernseher und via Netzwerkkabel mit dem Netzwerk verbunden. Die RPis sind so konfiguriert das sie beim Starten versuchen sich über xtightvncviewer mit dem auf dem Windows Rechner laufenden UltraVNC Server zu verbinden um so das Bild des EM's auf dem Fernseher anzuzeigen. Falls dies fehlschlägt versucht das Pi es erneut bis zum Erfolg.
Die Fernseher sind aber immer auf Standby. Das Python Script das das Alarm PDF auswertet ruft über ssh ein Shellscript auf den beiden RPis auf das via CEC den jeweiligen Fernseher einschaltet, ausserdem wird ein File mit einem Timstamp angelegt das bei jeder Prüfung auf neue Mails auch gleich prüft ob es wieder an der Zeit ist (Momentan 45 Minuten) die Fernseher in Standby zu versetzten. Dies geschieht wieder via SSH und CEC auf den RPis.
Das ist der Stand heute, in den nächsten Tagen werden dazu übergehen die Alarmierung nicht mehr über das Textfile, sondern über die neue Connect API zu machen. Dies hat gleich meherere Vorteile, zum einen reduziert es die Reaktionszeit bis zur Push Nachricht erheblich, in ersten Tests sind wir bei ca. 1 Sekunde von Download des PDFs bis zum erhalt der Push Alarmierung weil die der Auswerteintervall für das Textfile wegfällt. Evtl. können wir den Abfragezyklus für die E-Mail noch auf alle 5 Sekunden erhöhen, was nochmals 5 Sekunden (im schlechtesten Fall) bringen würde.
Selbst mit dem "alten" Auswerteprinzip ist die Alarmierung schneller als über unsere Pager.
Bilder folgen sobald ich welche gemacht habe
Falls interesse an mehr Details zu unserer Umsetzung beteht kann ich gerne näher darauf eingehen!
In jedem Fall ein riesen Lob an die Jungs hinter EinsatzMonitor und Connect für deren Leistung
Einer der Fernseher von Hinten, zwischen Wandhalterung und VESA Mount des Fernsehers ist eine Laser geschnittene Alu Platte montiert, diese ermöglicht und das Raspberry Pi in einem 3D gedruckten Gehäuse über der Wandhalterung zu montieren.
Der Fernseher in der Fahrzeughalle:
Der Fernseher in der Umkleide:
Update 01.05.2018:
Seit vergangenem Freitag haben wir unser System umgestellt, die Alarmierung erfolgt nun via Connect API. Die bisherigen Erfahrungen (allesamt Testalarme, aber im Grunde nichts anderes als ein realer Alarm) sind sehr poitiv!
Wenn ich in der Inbox des Mailaccounts in dem die Alarmmails ankommen eine E-Mail als ungelesen markiere, dauert es maximal 2 Sekunden bis die Pushnachricht ankommt. und dabei ist die meiste Zeit die die das Script was nach neuen Mails schaut wartet zwischen den Abfragen (2 Sekunden). Die Auswertung und Alarmierung via API ist in einem Bruchteil von Sekunden durch.
Wenn Interesse besteht kann ich den Code gerne auf z.B. GitHub stellen.
Update 30.07.2018
Auf mehrfache Nachfrage wie das mit dem raspberry Pi gelöst ist, hier ein Link zu einem Blogpost den ich schon vor ner Weile geschrieben hab, aber vergessn habe den Link zu posten
Ich sehe grade das der Post nicht auf dem neuesten Stand ist. Ich werd Ihn noch mal updaten im laufe des Tages.