IN-9408-2K+ - Alarmserver und CGI für Homematic

Hallo,
mit der aktuellen Firmware 1.4.3 kann ein Alarmserver für die Homematic CCU wie hier beschrieben konfigiuriert werden:
instar//status/alarm/triggered
Das funktioniert problemlos - die Systemvariable wird bei einem Alarm mit einem statischen / vorgegebenen Wert beschrieben.
Mir fehlt, was den Alarm ausgelöst hat - unter MQTT wird für 30 Sekunden das ‚…status/alarm/triggered‘ bzw. ‚…status/alarm/triggered/object‘ gesetzt. Gibt es vergleichbare CGI-Abfragen?

Optimal wäre es, wenn der Alarmserver direkt den Alarmauslöser durch Substitution z.B. %triggered% oder %object% in der Befehlszeile als Parameter übergeben könnte:

Antwort=dom.GetObject(„motion_detected_8015“).State(%triggered%)

Gibt es da einen Weg, den ich bisher übersehen habe?

Das gleiche was dort über MQTT geht gibt es auch für HTTP →

Man kann also entweder ein MQTT Abo oder einen HTTP Endpunkt anlegen und bekommt dort den Auslöser mitgeteilt.

Eine Abfrage - also die umgekehrte Richtung - über einen GET Befehl gibt es nicht. D.h. die Info über den letzten Alarmauslöser muß man direkt über den Alarmserver empfangen nachdem der Alarm ausgelöst wurde.

Ok, das hatte ich schon gelesen. Der Alarmserver hängt mit der Aktivierung des Knopfes ‚Alarmauslöser anhängen‘ den Auslösewert an:

… Antwort=dom.GetObject(„motion_detected_8015“).State(1)&active=1

Leider kann die Homematic mit dieser Parameterübergabe nichts anfangen - soweit ich weiss …

Da man jedoch mehrere ‚domGetObject()‘ Befehle in einer Befehlszeile über den Alarmserver an die CCU versenden kann, war meine Idee, die Möglichkeit einer Parameter-Substitution zu realisieren:
Substitution für den Begriff ‚<active>‘ mit dem Wert des aktuellen Alarmauslöser (1…10,99)
Substitution für den Begriff ‚<object>‘ mit dem Wert des erkannten Objekts (1…6)

Damit würde die Eingabe im Alarmserver Dialog bei den Anfrageparametern so aussehen:
Parameter 1: cmd1 = dom.GetObject(„motion_detected_8015“).State(<active>)
Parameter 2: cmd2 = dom.GetObject(„object_detected_8015“).State(<object>)

Und an den Alarmserver würde dann folgendes gesendet (hier Alarmbereich=2 und Objekt=4):
… cmd1=dom.GetObject(„motion_detected_8015“).State(2)&cmd2=dom.GetObject(„object_detected_8015“).State(4)

Mit diesen Parametern könnte mit einem CCU-Aufruf mehrere CCU-Systemvariablen auf einen Rutsch beschrieben werden.

MIt der ‚active / object‘ Substitution könnte man so ziemlich alle Anforderungen (auch von anderen Systemen) abdecken.

Wäre es nicht möglich, die Befehlszeilen-Substitution für ‚active‘ und ‚object‘ mit in die Firmware zu integrieren - es sind ja eigentlich alle Werte vorhanden … Feature-Request … ???
Das wäre wirklich eine optimale Erweiterung des Alarmservers!

Ehrlich gesagt - ich würde es über Redmatic lösen. Mir war nicht mehr bekannt, dass die Homatic Software das Auswerten der URL Queries nicht unterstützt.

Ich hatte damals bei der CCU direkt Redmatic installiert und damit hat man dann jede Freiheit:

Damit kann man dann auch direkt an die MQTT Schnittstelle der Kamera gehen und damit dann wirklich jede Änderung eines Zustandes (Aktivieren/Deaktivieren des Alarms, Bereiche, usw.) an die Homatic weiterleiten und kann dann - bei Bedarf - darauf reagieren.

Der Alarmserver ist darüber dann auch schnell gebaut:

Ja, kann man machen, aber …

…ich wäre mit meinem Vorschlag in der Lage, auf alle Middleware (NodeRed, etc.) zu verzichten, indem ich ganz ‚plain‘ die Alarmmeldung Nachricht über Bereich und Objekt bekomme. Eigentlich benötige ich auch nichts anderes - eine Aufrüstung mit NodeRed steht derzeit bei mir für das Produktivsystem nicht an.

Daher meine Bitte, die Befehlszeile des Alarmservers zu erweitern.