Einsatzanzeige live für die eigene Homepage

  • Moin moin und Hallo,

    für unsere Webseite habe ich eine kleine Liveanzeige für unsere Mitbürger programmiert, sodass diese ihre Neugierde etwas befriedigen können und sich somit nicht immer fragen müssen: Was war denn los oder ebenfalls zur Wache fahren, nur um zu wissen, worum es geht.

    Dabei werden natürlich keine sensiblen Informationen wie Adresse oder Einsatzdetails angezeigt. Wir beschränken uns hier auf Datum, Uhrzeit sowie eine Auswertung des Einsatzstichwortes. Auf dem Bild seht ihr mal ein Beispiel, wie es aussehen könnte. Jeder Einsatz, in einem 60 Minuten Fenster, wird dabei mit ausgegeben. Dies kann aber auch angepasst werden (Zeile: 59). Auf unserer Webseite läuft das Ganze als kleines Modul (siehe Bild).

    Leider kann ich keine allgemeingültige Programmierung vornehmen, da wohl jede ILS ihre eigenen Stichwörter hat. Leider habe ich von unserer auch keine Übersicht der Stichwörter erhalten, sodass ich diese im Vorfeld programmieren hätte können. Daher wird die Programmierung immer mal wieder ergänzt, wenn ein neues Stichwort übermittelt wurde. Wenn die Auswertung mal nichts findet, wird dies entsprechend auch mit abgefangen und ein Platzhalter mit ausgegeben, dass man keine weiteren Details ausgeben könne.

    Wichtig, wenn ihr das auch verwenden möchtet: In Zeile 23 müsst ihr den Pfad zu eurem API-Key angeben. Dabei solltet ihr diesen in einem Verzeichnis ablegen, das nicht über das Internet erreichbar ist. Also außerhalb des www-root. Bei der Datei handelt es sich um eine einfache Textdatei. In dieser steht in der ersten Zeile euer API-Key aus Connect.

    Weiter müsst ihr ab Zeile 60 eure eigenen Patterns (RegEx) für die Auswertung definieren. Es sind im Code mittlerweile genug Beispiele vorhanden, sodass ihr diese ganz einfach anpassen könnt - denke ich :)

    • Offizieller Beitrag

    Hey,
    Coole Idee und danke für das Veröffentlichen im Forum. Ist sicher für den ein oder anderen interessant.


    Du hast das jetzt gelöst in dem du unsere API abfragst, man könnte dies auch über einen Webhook lösen, den du in Connect bei Alarm auslösen kannst. Da kann das Einsatzstichwort auch direkt übertragen werden.

    LG Timo

  • Hey,
    Coole Idee und danke für das Veröffentlichen im Forum. Ist sicher für den ein oder anderen interessant.


    Du hast das jetzt gelöst in dem du unsere API abfragst, man könnte dies auch über einen Webhook lösen, den du in Connect bei Alarm auslösen kannst. Da kann das Einsatzstichwort auch direkt übertragen werden.

    LG Timo

    Danke für den Tipp, werde ich mir mal bei Gelegenheit angucken. Darum tauscht man sich ja aus, so lernt man immer was neues (Webhook wusste ich bis eben nichts davon). :)

    Wer wie ein Drache auf seinem Schatz sitzen bleibt, kann seinen Horizont auch nicht erweitern :)
    Gerne darf dies auch von anderen weiterentwickelt werden. Würde mich freuen, wenn hier Anpassungen / Erweiterung mit einfliesen.

    • Offizieller Beitrag

    Wenn du Infos zu Webhooks suchst, schau doch mal hier in der Doku:

    https://feuersoftware.com/doku/connect-h…g-mit-webhooks/

    Alexa Integration mit Voicemonkey.io - Feuer Software GmbH
    Alexa soll bei einem Einsatz das Einsatzstichwort vorlesen? Kein Problem. Mit Hilfe des Dienstes Voicemonkey.io können wir einen Alarm über den Alexa…
    feuersoftware.com
  • Bin mal wieder zu doof.

    Ich möchte das gerne bei uns auch einbauen (auf Wordpress), aber bekomme ständig diesen Fehler:

    Code
    ParseError thrown
    
    syntax error, unexpected '$url' (T_VARIABLE), expecting ')'

    Administrator in 5 Ortswehren im Landkreis Harz

    Mitglied in der Feuerwehr Welterbestadt Quedlinburg

    Ofw Gernrode

  • Ich würde mich gerne anschließen und fragen, wie man am besten eine Verbindung zwischen Connect und der Wordpress-Seite hinbekommt sodass ein Live-Einsatz per Stichwort für eine definierte Zeit angezeigt bekommt. Vielen Dank!

  • Bin mal wieder zu doof.

    Ich möchte das gerne bei uns auch einbauen (auf Wordpress), aber bekomme ständig diesen Fehler:

    Code
    ParseError thrown
    
    syntax error, unexpected '$url' (T_VARIABLE), expecting ')'

    Welche PHP-Version verwendest du auf deinem Webserver?

    Ich würde mich gerne anschließen und fragen, wie man am besten eine Verbindung zwischen Connect und der Wordpress-Seite hinbekommt sodass ein Live-Einsatz per Stichwort für eine definierte Zeit angezeigt bekommt. Vielen Dank!

    Hi,

    wie man das unter Wordpress am besten hinbekommt, kann ich dir leider nicht sagen, da ich bisweilen nur mit Joomla gearbeitet habe. Aber es dürfte denke ich auch ein PHP-Code Plugin für Wordpress geben, sodass du den Code von oben mit einbinden kannst.

    Eine schnelle Googlesuche führte mich zu: PHP-Code in WordPress ausführen - Tipps und Plugins (selbstaendig-im-netz.de)

    • Offizieller Beitrag

    Ich bin jetzt kein Wordpress-Profi, aber...

    Das Konzept sollte so aussehen:

    Die Webseite sollte nicht bei jedem Aufruf oder in bestimmten Intervallen gegen die Public-API pollen, sondern per Webhook aktiv benachrichtigt werden, dass es einen neuen Einsatz gibt.

    Dafür benötigt ihr einen Endpunkt auf eurer Webseite, der per GET aufgerufen wird. Dahinter steckt dann PHP, womit ihr einen Aufruf gegen die Public API macht und euch die Einsatzdaten holt. Ich würde euch aus Sicherheitsgründen empfehlen, dann auch in eurer Datenbank der Webseite nur die Daten des Einsatzes zu speichern, die ihr auch braucht und alte Einsatzdaten dort auch zu löschen, wenn ihr neue bekommt.
    Dann könnt ihr die Daten, die ihr in eurer Datenbank habt einfach anzeigen und macht nicht bei jedem Webseiten Aufruf einen Call gegen unsere API.

    Hoffe das hilft euch :)

  • Die Webseite sollte nicht bei jedem Aufruf oder in bestimmten Intervallen gegen die Public-API pollen, sondern per Webhook aktiv benachrichtigt werden, dass es einen neuen Einsatz gibt.

    Dafür benötigt ihr einen Endpunkt auf eurer Webseite, der per GET aufgerufen wird. Dahinter steckt dann PHP, womit ihr einen Aufruf gegen die Public API macht und euch die Einsatzdaten holt. Ich würde euch aus Sicherheitsgründen empfehlen, dann auch in eurer Datenbank der Webseite nur die Daten des Einsatzes zu speichern, die ihr auch braucht und alte Einsatzdaten dort auch zu löschen, wenn ihr neue bekommt.
    Dann könnt ihr die Daten, die ihr in eurer Datenbank habt einfach anzeigen und macht nicht bei jedem Webseiten Aufruf einen Call gegen unsere API.

    Hallo Moritz,

    ich habe das bei uns nun ähnlich umgesetzt.

    Von einer Abfrage der API habe ich aber erstmal abgesehen, da mir die Infos aus dem Webhook (Standort, Kategorie, Stichwort, Stichwortübersetzung) reichen. Wir haben auch bereits alles getestet und es läuft gut.

    LG

    Marcel

    Einmal editiert, zuletzt von maisel (5. Januar 2023 um 11:54)

  • Hallo Moritz,

    ich habe das bei uns nun ähnlich umgesetzt.

    Von einer Abfrage der API habe ich aber erstmal abgesehen, da mir die Infos aus dem Webhook (Standort, Kategorie, Stichwort, Stichwortübersetzung) reichen. Wir haben auch bereits alles getestet und es läuft gut.

    LG

    Marcel

    Da ich den Webhook nicht kannte, bin ich auf das gegangen, was ich kannte :)

    Ich habe das nun auch einmal auf den Webhook umgebaut bin aber noch nicht ganz fertig damit aber immerhin schon soweit, dass ich es bei uns einmal testen kann. Von der Vorgehensweise soll es wie folgt funktionieren:

    Da ich es einfach halten wollte, sodass andere es nachbauen können, habe ich bewusst auf die Verwendung einer Datenbank verzichtet und speichere die Informationen als json lokal ab, quasi als DB Ersatz. Wo die Datei liegt, lässt sich dann bestimmen.

    • Webhook wird ausgelöst und ruft ein PHP-Script auf dem Server auf mit den Parametern. Aktuell ist nur das Einsatzstichwort vorgesehen.
    • Das PHP-Script prüft in einer lokalen json Datei, ob es schon Einträge gibt und fügt diese dann dazu oder setzt den ersten Eintrag. Das Datum + Uhrzeit wird zum Zeitpunkt des Aufrufes ergänzt.
    • Für die Integration in die Webseite ist dann ein zweites Script zuständig, welches die json Datei ausliest und die Daten entsprechend abarbeitet und den HTML-Schnipsel ausspuckt.
    • Einträge die älter als ein Tag sind, werden nicht mehr angezeigt
    • Einträge älter als einen Tag werden aus der json Datei wieder entfernt.

    Wenn mein Test erfolgreich verläuft, werde ich die Dateien zur Verfügung stellen.

    PS:
    Scheinbar ist mir bei meinem Script, welches die API nutzt, ein Fehler unterlaufen. Es hat sich wohl durch Copy & Paste ein unsichtbares Steuerzeichen in die Datei gemogelt, sodass der PHP-Interpreter andauernd Fehlermeldungen wirft.

    Da ich teile des Codes für das neue Projekt ebenfalls nutze, bin ich drauf gestoßen und es hat mich fast meine letzten verbliebenden Haare gekostet :D

    Da das Steuerzeichen als "Leerzeichen" im Editor angezeigt wird.

    @chrissi112 Das dürfte dann evtl. auch deinen Fehler bei dir erklären.

    4 Mal editiert, zuletzt von Chondremos (5. Januar 2023 um 16:01)

  • maisel: Kannst du die Daten online stellen?

    Ich perfektioniere das Ganze grade noch, sodass ihr es leichter beim implementieren habt. Den Großteil habe ich schon, will jetzt aber noch ein wenig Zeit investieren, um es euch einfacher zu machen. Ich hoffe du kannst dich noch bis zum Wochenende gedulden. :)

    2 Mal editiert, zuletzt von maisel (5. Januar 2023 um 16:36)

  • PS:
    Scheinbar ist mir bei meinem Script, welches die API nutzt, ein Fehler unterlaufen. Es hat sich wohl durch Copy & Paste ein unsichtbares Steuerzeichen in die Datei gemogelt, sodass der PHP-Interpreter andauernd Fehlermeldungen wirft.

    Da ich teile des Codes für das neue Projekt ebenfalls nutze, bin ich drauf gestoßen und es hat mich fast meine letzten verbliebenden Haare gekostet :D

    Da das Steuerzeichen als "Leerzeichen" im Editor angezeigt wird.

    @chrissi112 Das dürfte dann evtl. auch deinen Fehler bei dir erklären.

    ja das kenn ich 😂. Das hat die ganze Seite lahmgelegt und dank FPN konnte ich es irgendwie wieder rückgängig machen.

    Ne ich finde es auch Top wie hier alle sich gerade Gedanken machen. Ich bin mal gespannt, was am Wochenende so kommt

    Administrator in 5 Ortswehren im Landkreis Harz

    Mitglied in der Feuerwehr Welterbestadt Quedlinburg

    Ofw Gernrode

  • Ich habe es nun mal ein wenig getestet und es schien soweit ganz OK zu sein. Da ich noch nicht mit Echtdaten testen konnte, ist das Ganze noch etwas mit Vorsicht zu genießen aber wer will, kann damit ja schon einmal ein wenig experimentieren.

    Wie schon geschrieben, gibt es zwei Scripte. Im Anhang heißen die jetzt:

    • webhook
    • read_webhook

    Damit das Ganze nun auch funktionieren kann, müsst ihr ein zwei Kleinigkeiten erledigen.

    1. Öffnet das webhook Script und passt die Variable "$strSecKey" an.
      • Schreibt ieinen Randombullshit hinein. Das soll lediglich verhindern, dass man zufällig den Hook auslösen kann
      • Merkt euch das, was ihr hier hineingeschrieben habt.
      • Wenn ihr wollt, könnt ihr noch den Namen / Pfad für die json Datei anpassen. Dies muss dann aber auch im read_webhook Script angepasst werden.
    2. Kopiert das webhook Script auf euren Webserver
    3. Erstellt einen Webhook im Connect-Portal: https://[DEIN_SERVER]/webhook.php?keyword={Stichwort}&key=[EUREN WERT AUS STEP 1]
    4. Integriert das read_webhook Script auf euer Webseite
    5. Daumen drücken :D

    Getestet mit PHP 7.4

  • Anbei findet Ihr meine Lösung für Wordpress.

    Folgende Schritte müssen durchgeführt werden.

    1. Speichert das Script unter folgendem Pfad ab: wp-content/plugins/fscoperation/fscoperation.php
    2. Aktiviert unter Plugins das Plugin FSCOperation - wundert euch nicht, es wird folgender Fehler ausgegeben
      • Fehler: Das Plugin erzeugte 1 Zeichen mit unerwarteter Ausgabe während der Aktivierung. Wenn du „headers already sent“-Hinweise, Probleme mit Syndication-Feeds oder andere Probleme bemerkst, versuche, dieses Plugin zu deaktivieren oder zu entfernen.
    3. Mit [FSCOperation] könnt ihr nun das Ganze auf eurer Seite einbinden
    4. In FS Connect tragt Ihr den folgenden Webhook ein: