Wie können wir helfen?
Homematic CCU3 Alarmweiterleitung
Allgemeines
Um Alarme aus der Homematic CCU3 an Feuersoftware Connect weiterzuleiten kann auf der Homematic CCU3 ein Programm / Script angelegt werden welches bei Auslösung z.B. eines Rauchmelders einen Einsatz in Feuersoftware erzeugt. Der Alarm wird hierbei über unsere Öffentliche Schnittstelle (API) erzeugt.
Um unsere Schnittstelle anzusprechen, ist es erforderlich CUx-Deamon auf der CCU3 zu installieren, da die Scriptsprache von Homematic dies von Haus nicht unterstützt.
CUx-Deamon installieren
Die Installation von CUxD erfolgt wie auch bei anderer Zusatzsoftware über den CCU-WebUI-Menüpunkt „Einstellungen -> Systemsteuerung -> Zusatzsoftware“.
Den aktuellen CUx-Daemon kannst du im Forum HomeMatic-Inside laden.
Um das Addon zu installieren muss dieses zunächst lokal heruntergeladen werden und dann über Datei auswählen und Installieren auf der CCU3 installiert werden. Die heruntegeladene Datei darf vor dem Einspielen nicht entpackt werden.

Nach der Installation startet die CCU3 neu und es sollte ein neuer Menüpunkt unter „Einstellungen -> Systemsteuerung auftauchen mit der Bezeichnung „CUx-Deamon“

Beim Klicken auf den Button sollte sich folgende Seite öffnen. Ist dies der Fall, haben Sie CUxD erfolgreich installiert.

Wir nutzen in unserem Script die Funktion „CMD_EXEC“. Hierfür muss im CUx-Deamon ein Gerät vom Typ „(28) System“ und der Funktion „Exec“ angelegt werden.
Hierzu klicken Sie auf „Geräte“ und legen ein neues Gerät an. Das Gerät sollte im rechten Bereich auftauchen.

Nachdem du das neue CUxD Gerät angelegt hast, rufst du in der Web-Oberfläche der CCU3 über „Einstellungen“ -> „Geräte – „Posteingang“ den Posteingang auf.

Dort liegt das neu erstellte Gerät und muss für die zukünftige Verwendung „fertiggestellt“ werden.

Wichtig: Anschließend startest du die CCU3 neu. Danach sollte die Scriptausführung über CMD_EXEC funktionieren.
Programm erstellen
Um nun ein Programm / Script auszuführen wechseln Sie zu dem Menüpunkt „Programme und Verknüpfungen“ und klicken auf „Programme & Zentralverknüpfungen„

Hier legen wir ein neues Programm an und wählen die Aktionen welche ausgeführt werden sollen.

Im Bereich Wenn wählen Sie den Rauchmelder aus, auf welchen reagiert werden soll. Überprüfen Sie, dass Rauchkammer verschmutzt: Ja ausgewählt ist.
Sie können über Oder Bedingungen auch weitere Rauchmelder oder Zustände auswählen. Passen Sie dies nach Ihren Bedürfnissen an.

Im Abschnitt Aktivität wählen Sie nun „Script“ aus und klicken auf die drei Punkte daneben um ein neues Script hinzuzufügen. Alternativ können Sie hier auch noch eine Auslöseverzögerung konfigurieren.

Nun müssen Sie das Script anpassen bevor Sie dieses dort eintragen. Öffnen Sie hierzu einen Editor auf Ihrem PC z.B. Notepad++ und passen das Script an.
Authentifizierung
Tragen Sie den API Key des Connect Standorts ein, in welchen die Alarm erstellt werden sollen. Den API Key finden Sie im Connect Portal unter Standort – Schnittstellen -> Öffentliche Connect Schnittstelle. Tragen Sie diesen anstelle von APIKEYEINFUEGEN ein.
Wichtig: Wir empfehlen hierfür einen eigenen Standort zu erstellen, damit Alarme nicht fälschlicherweise an den gesamten Standort versendet werden.
Payload
Passen Sie hier die Adresse Ihres Feuerwehrhaus an. Ggf. können Sie hier auch das Stichwort und den den Sachverhalt anpassen.
Außerdem können Sie bei Bedarf den Meldernamen hier einfügen.
Wichtig: Verwenden Sie keine Umlaute (ü,ä,ö, usw.) und keine Sonderzeichen, da dies zu Problemen führt.
Überprüfen Sie ob die ID „CUxD.CUX2801001:1.CMD_EXEC“ im Script mit dem von Ihnen erstellten Gerät in CUxD übereinstimmt.
string apiUrl = "https://connectapi.feuersoftware.com/interfaces/public/operation";
string bearerToken = "APIKEYEINFUEGEN"; ! Bearer-Token einfuegen
! JSON-Payload vorbereiten
string jsonPayload = "{";
jsonPayload = jsonPayload # "\"Start\":\"" # system.Date("%Y-%m-%dT%H:%M:%S.000%z") # "\",";
jsonPayload = jsonPayload # "\"Keyword\":\"Interner Rauchwarnmelder\",";
jsonPayload = jsonPayload # "\"Address\":{\"Street\":\"Karlsbader Strasse\",\"HouseNumber\":\"16\",\"ZipCode\":\"65760\",\"City\":\"Eschborn\"},";
jsonPayload = jsonPayload # "\"Facts\":\"Rauchmelder hat ausgeloest\",";
jsonPayload = jsonPayload # "\"Ric\":\"Homematic RWM\",";
jsonPayload = jsonPayload # "\"Properties\":[{\"Key\":\"Melder\",\"Value\":\"HLF1\"}]}";
string command = "wget --method=POST";
command = command # " --header=\"Authorization: Bearer " # bearerToken # "\"";
command = command # " --header=\"Content-Type: application/json\"";
command = command # " --body-data='" # jsonPayload # "'";
command = command # " \"" # apiUrl # "\" --server-response -O - --timeout=30 --user-agent=\"Mozilla/5.0\"";
! Debugging: Kommando ausgeben
WriteLine("Kommando: " # command);
object cuxdExec = dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC");
if (cuxdExec) {
cuxdExec.State(command);
string response = cuxdExec.State();
WriteLine("HTTP-Response: " # response);
} else {
WriteLine("Fehler: CUxD nicht verfuegbar oder falsch konfiguriert.");
}
Nachdem Sie das Script erfolgreich angepasst haben, können Sie dieses in Homematic einfügen. Homematic verfügt über eine Testfunktion. Hier können Sie das Script vorab testen. Klicken Sie hierzu auf „Script testen“ und fügen Sie das Script ein. Nach einem klick auf „Ausführen“ sollte ein Einsatz in dem konfigurierten Standort erstellt werden.
Das ganze sollte nun wie folgt aussehen:

Hier wurde zusätzlich als Wenn Bedingung der Systemtest ok konfiguriert. Dadurch wird ein Einsatz erzeugt, wenn Sie den Knopf auf dem Rauchmelder drücken. Dies kann für Testzwecke sehr hilfreich sein.
Speichern Sie das Script ab. Die Anbindung ist nun einsatzbereit.