Einsatzmonitor Freiwillige Feuerwehr Küssaberg

  • 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 :thumbup:

    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 :rolleyes:

    Ich sehe grade das der Post nicht auf dem neuesten Stand ist. Ich werd Ihn noch mal updaten im laufe des Tages.

    4 Mal editiert, zuletzt von Bouni (30. Juli 2018 um 09:18)

  • Super danke,

    Wiedergabe funktioniert, auch das mit den Display umstellen hat super funktioniert 😎. Wenn du dann nochmal Zeit hast verrate uns bitte noch wie du das Script so eingebunden hast das es automatisch startet.

    Vielen Dank schon Mal

  • so ich wieder xd

    Aktivieren und starten Sie den neuen Dienst bis zum deamon-reload funktioniert alles.

    Dann stimmt aller dings was mit der xinit-login.service bei mir nicht ( ich habe in dem angegeben Verzeichnis die Datei xinit-login.service mit nano erstellt und den Inhalt aus Github eingefügt.) Allerdings bringt er mir dann am enable xinit-login folgende Fehler --> siehe txt Datei.

    Auf dem Display steht ich soll mich anmelden. (siehe Anhang)

    Code
    $ sudo systemctl daemon-reload
    $ sudo systemctl enable xinit-login
    $ sudo systemctl start xinit-login
  • Hi ,

    hab jetzt erstmal versucht:

    --> sudo systemctl disable lightdm

    Antwort: -->

    Code
    Synchronizing state of lightdm.service with SysV init with /lib/systemd/systemd-sysv-install...
    Executing /lib/systemd/systemd-sysv-install enable lightdm

    nach einem Reboot kam die selbe TV Ausgabe wie im oben geposteten Screenshot.

    Nach ein wenig Googeln habe ich diese Seite gefunden LINK auf welcher steht.

    Sie können es reparieren, indem Sie den Symlink selbst neu erstellen:

    Code
    sudo ln -s /lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service

    Jetzt startet er Normal in den Desktop.

    und hier der output:

    Code
    pi@raspberrypi:~ $  cat /etc/systemd/system/xinit-login.service
    [Einheit]
    Nach = systemd-user-sessions.service
    
    [Bedienung]
    ExecStart = / bin / supi -l -c / usr / bin / xinit - VT08
    Neustart = immer
    
    [Installieren]
    WantedBy = multiuser.target
  • Ahhh, du hast das Raspbian mit Desktop installiert, das hab ich natürlich nicht gemacht!

    Ich glaube es wäre gut wenn ich ein Image erstelle das man dann nur noch mit Rcher, dd oder was auch immer auf die SD Karte schreiben muss und alles ist so wie's sein soll.

    Und dann ein simples Config file wo man IP udn passwort vom VNC Server einträgt :/

    Warum dein xinit-login.service in deutsch angeziegt wird ist mir auch ein einziges Rätsel, das kann ja so nicht klappen.

  • Ich kann jetzt grade nicht genau abschätzen wie dein System im vergleich zu meinem aussieht.

    Aber meins reconnected automatisch dadurch das ich keinen Desktop habe und das init system das VNC startet und wenn das fehschlägt versucht er es wieder und wieder. Das VNC ist das einzige was da gestartet wird.

    Wie schon gesagt ich arbeite an einem neuen Step-by-Step blog post der das alles sauber Schritt für Schritt erklärt.

  • Aktueller Stand ist das er garnicht erst in den Desktop booted sondern gleich in die Eingabeaufforderung . Habe es über die ssh in der raspi-config einstellen können .

    Und ja er versucht solange zu connecten bis er eine Verbindung aufbauen kann. Soweit echt top und erfordert kein handeln eines Benutzers. Sollte jetzt allerdings der Server Neugestartet werden bekommt der Raspberry dieses nicht mit.

    Ich hab mir mit einer kleinen Plink Verknüpfung geholfen welche beim Autostart vom Server mit ausgeführt wird und den Raspberry dazu veranlässt zu rebooten.

    PS: die CEC Befehle hab ich aktuell nicht in Verwendung da der angeschlossene Monitor nur ein einfacher PC Monitor über VGA ist . Somit läuft aktuell der Raspberry immer. Ich habe es zwar hinbekommen durch ein Befehl ihn herunter zu fahren. Allerdings durch eben so einen ssh Befehl zu starten funktioniert leider nicht.

    Einmal editiert, zuletzt von caco3000 (2. August 2018 um 18:06)

  • Zitat

    Aktueller Stand ist das er garnicht erst in den Desktop kommt .

    Das ist eben der Punkt, in meinem Setup gibts keinen Desktop!

    Es sollte eigentlich anstatt eines Desktops nur der matchboxwm gestartet werden, das ist ein minimaler Windowmanager der nur ein Window anzeigen kann.

    In dem wird dann der xtightvncviewer gestartet.

    Du hast wahrscheinlich das Raspbian mit Desktop genommen, kannst ja mal versuchen den Desktop über raspbi-config zu deaktivieren oder noch mal von 0 weg mit dem Lite image starten.