Anbindung BosMon -> Alarmiator

Hallo zusammen,

nach einigen Versuchen, Bosmon mit dem Alarmiator zu verbinden, bin ich jetzt zu einem möglichen Ergebnis gekommen und die Vorgehensweise dazu gerne mit euch teilen, falls jemand die gleiche Vorgehensweise plant oder damit Probleme hat.
In der Dokumentation ist bereits eine mögliche Übertragung der Daten via Push-Profil angelegt. Leider tritt dabei allerdings das Problem auf, dass die Variablen nicht korrekt ausgefüllt werden und somit durch die Push-Profile nur die vorher festgelegten Begriffe versendet werden können. Diese Thematik wurde auch innerhalb des BosMon-Forums bereits beschrieben.

Alternativ habe ich eine Übertragung der Daten jetzt mittels der Ereignis-Auslösung umgesetzt, welche eine Batch-Datei mit einem Curl-Befehl öffnet und die Daten per GET-Methode an den Alarmiatorserver versendet. Hierbei hatte ich zunächst Probleme was die Thematik von Leerzeichen in URLs und der Zeichenerkennung von deutschen Sonderzeichen (ä, ö, ü, ß etc.) angeht, konnte dies jetzt aber mit kleineren Befehlen lösen. Eine Anleitung, wie man eine Batch-Datei in Bosmon mittels Ereignisauslösung und Variablen einträgt, lässt sich im BosMon-Forum finden. Der Programmbefehl der Curl-Datei lautet wie folgt:

echo off
set „str1=http://deinealarmiatorserverip:5010/operations/sendAlarm?token=deintoken^&subject=dievariableindeinembosmonpfad^&ils=deineleitstelle^&location=%~1
set „str2=%%20“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str1: =!str2!%%“‘) do set „str3=%%~a“
curl „%str3%“

Der Link kann dabei um bis zu insgesamt neun entsprechenden Variablen ergänzt werden, ab einer zweistelligen Zuordnung der Variablen hat das Programm leider immer die erste Zahl gewählt, vielleicht gibt es hierfür noch eine Lösung. Die Variable hinter Location gibt beispielsweise die erste Variable innerhalb des Pfades in BosMon wieder, welche dazu verknüpft wurde.
Ich hoffe, ich konnte dem ein oder anderen damit helfen.

Grüße Josh

2 „Gefällt mir“

Hallo Josh, vielen Dank für das Teilen deiner Erfahrung.

Falls du Interesse hast, könnten wir mit dir zusammen einen Eintrag im Handbuch erstellen, melde dich mal bitte privat bei mir mit deiner Mail Adresse.

1 „Gefällt mir“

Hallo, hab das genau so gemacht wie oben geschildert. Jedoch werden immer noch die Umlaute wie äöü nicht an Alarminator übergeben. Der Rest funktioniert einwandfrei

Hallo,

danke für deinen Hinweis, leider hatte ich seit einem letzten Update meines Linux-Systems plötzlich den gleichen Fehler mit den Umlauten, scheinbar wurde ein neuer CURL-Patch auf dem Betriebssystem installiert, welcher dann ebenfalls die Umlaute als seltsame Sonderzeichen wie davor wiedergab. Nach einigen Versuchen habe ich aber auch dafür natürlich einen Workaround in Form eines erweiterten Batch-Codes geschrieben, welchen ich gerne im folgenden für jeden verfügbar machen möchte. :wink:

@echo off
chcp 1252
set „str1=http://deinealarmiatorserverip:5010/operations/sendAlarm?token=deintoken^&subject=dievariableindeinembosmonpfad^&ils=deineleitstelle^&location=%~1
set „str2=%%20“
set „str4=%%C3%%BC“
set „str6=%%C3%%9C“
set „str8=%%C3%%A4“
set „str10=%%C3%%84“
set „str12=%%C3%%B6“
set „str14=%%C3%%96“
set „str16=%%C3%%9F“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str1: =!str2!%%“‘) do set „str3=%%~a“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str3:ü=!str4!%%“‘) do set „str5=%%~a“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str5:Ü=!str6!%%“‘) do set „str7=%%~a“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str7:ä=!str8!%%“‘) do set „str9=%%~a“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str9:Ä=!str10!%%“‘) do set „str11=%%~a“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str11:ö=!str12!%%“‘) do set „str13=%%~a“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str13:Ö=!str14!%%“‘) do set „str15=%%~a“
for /f „delims=“ %%a in (‚cmd /v:on /c @echo „%%str15:ß=!str16!%%“‘) do set „str17=%%~a“
curl „%str17%“

Wichtig ist hierbei noch, dass beim „Speichern unter“ des Dokumentes unter Codierung noch das ANSI Format gewählt wird. Mit dieser Batch-Datei werden bei uns seit wieder rund 2 Monaten alle eingepflegten Umlaute korrekt in der Handyapp sowie im Browser übertragen und auch angezeigt.

Vielleicht noch kurz etwas zur Funktion für die Interessierten: Die Umlaute werden mittels URL-Encoding für die Adresszeile des Webbrowsers ausgetauscht, womit dieser dann beim Aufruf durch die Get-Request die Codierung in den Umlaut erneut umwandelt.

Gerne einfach mal testen und eine kurze Rückmeldung geben, ob dies auch so bei euch funktioniert, ansonsten einfach gerne melden :grinning:

Beste Grüße

1 „Gefällt mir“

Also ich habe es gerade bei mir getestet und leider hat es nicht funktioniert. Ich vermute mal, dass es was mit den Satzzeichen zu tun hat ( „ “ usw.) bin aber noch am durchtesten :wink:

Edit:
Habe mal die Batch-Datei auf echo on gestellt und mal beim Testen beobachet, was er so macht.
Dabei musste ich feststellen, dass BosMon die Umlaute schon richtig überträgt, aber im Server kommen diese nicht an.

Dies wäre auch mein Ansatz gewesen, die Abläufe in der Kommandozeile mal genauer verfolgen.

Werden denn die Umlaute dort in der aufzurufenden URL auch z.B. von „ü“ zu „%C3%9C“ umgewandelt? Dass du die Datei im ANSI Format als Batch-Datei gespeichert hast gehe ich ja mal davon aus.

Genau, wie @Josh sagt, müssen die Werte URL encoded sein.

Kenne mich leider mit BosMon nicht aus, aber wenn sie richtig übertragen werden, wird es vermutlich daran liegen.

Hallo zusammen,
ich habe leider den Batch Code von @Josh nicht ans Laufen bekommen. Ich habe das Ganze aber als Denkanstoß genommen und festgestellt, dass curl eine eingebaute Funktion zum URL encoden hat. Durch „–data-urlencode“ lässt sich das Batch Script auf eine Zeile eindampfen:

curl -G „http://alarmiatorserverip:5010/operations/sendAlarm“ --data-urlencode „token=geheimerAPI-Token“ --data-urlencode „subject=%~1“ --data-urlencode „location=%~2“

Eventuell kann das ja Jemand gebrauchen.

1 „Gefällt mir“

Hallo,

danke für euren Input, super! Ganz zu Beginn hatte ich ebenfalls mit dem --data-urlencode gespielt, ihn jedoch nicht zum laufen bekommen, und deshalb mir deshalb einen „Workaround“ gebastelt. Habe es gerade mit dem Code von Felge probiert, dieser funktioniert ebenfalls ohne Probleme, viele Wege führen eben ans Ziel :wink:

Für die Allgemeinheit würde ich vorschlagen, diesen auf eine Zeile eingestampften Code dann ebenfalls in die Dokumentation mit aufzunehmen, woran ich an den nächsten Tagen etwas feilen werde und dann den Administratoren hier zukommen lasse.

Beste Grüße

3 „Gefällt mir“

Vielen Dank für die wertvollen Rückmeldungen!

Wenn es damit klappt, wäre es natürlich super und relativ einfach.