Hilfe bei Script für API Schnittstelle (Feuersoftware)

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von jp112sdl » 16.09.2021, 08:51

papi hat geschrieben:
16.09.2021, 08:35
Den Versand von BOS-Daten über Dritte sollte man sich dreimal überlegen, da dies eine erhebliche Datenschutzverletzung darstellen kann.
Wer so etwas bei UNS macht, kann sich ein neues Hobby suchen.
Aufmerksam lesen :arrow:
jacksson hat geschrieben:
15.09.2021, 21:57
Ich brauch es ja genau umgekehrt, einfach nur einen Einsatz erstellen mit einem immer gleichen Stichwort z.B. Einsatz Alarm und das ganze dann an die API gesendet.
Es geht hier nicht um die Überleitung von BOS-Inhalten in zivile Netze!

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

jacksson
Beiträge: 20
Registriert: 31.03.2016, 12:56

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von jacksson » 16.09.2021, 10:48

Vielen Dank Jérôme ich schau mir das nachher mal genauer an! :D

@Papi
Die Rechtslage ist mir bekannt, ich selbst löse ja lediglich einen Alarm aus ohne Informationen, die Infos zum Einsatz kommen von der Leitstelle und werden durch den Einsatzmonitor an die Kameraden verteilt (verschlüsselt) von denen sich jeder mit einem eigenen Passwort registrieren muss und vom Admin unter Anweisung des Wehrführers in eine Gruppe eingeteilt wird mit bestimmten Rechten, z.B die Mannschaft sieht nur das Stichwort und den Ort und die Gruppenführer auch zusätzlich Informationen wie Meldender und so weiter.
Ich gehe sehr stark davon aus das das so auch völlig in Ordnung ist denn z.B. schreibt die in Deutschland wohl bekannteste Konkurrenz Divera 24/7 die das selbe anbieten: „Über 3000 Feuerwehren sind schon dabei“

Benutzeravatar
papi
Beiträge: 369
Registriert: 18.12.2013, 08:40
Wohnort: Willich, NRW
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von papi » 16.09.2021, 12:49

Wenn es auf Stichwort und Wohnort beschränkt ist, dürfte da keiner meckern, das ist korrekt.

Ursache meines Beitrags sind und waren hingegen die Herrschaften, die sich mit dem Verwerten von Einsatzaufträgen und anschließendem Übermitteln der Inhalte gewissen Dienstleistern bedienen, die den Datenschutz nicht so hoch aufhängen (können).
Es gibt da wirklich die buntesten Ideen... und irgendwann rollt dann ein Kopf.

jacksson
Beiträge: 20
Registriert: 31.03.2016, 12:56

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von jacksson » 16.09.2021, 13:27

jp112sdl hat geschrieben:
16.09.2021, 06:55

Beispiele, wie man sowas aus einem Skript heraus aufruft, findest du im Forum zu Hauf
Ich brauche leider doch nochmal deine Hilfe! Sorry
Beispiele gibts wirklich mehr als genug aber ich komme einfach nicht weiter, ich weiß nicht wo genau ich die Befehle einfügen muss das das Script am Ende funktioniert. :?

sind das überhaupt die richtigen?

system.Exec("wget -q -O /dev/null '--post-data=" # msg # "' " # url # " &");

oder über CuxD

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '--post-data=" # msg # "' " # url # " &");

Kannst du mir nochmal helfen?

MichaelN
Beiträge: 9561
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von MichaelN » 16.09.2021, 17:59

Prinzip schon richtig.
Kommt halt drauf an. Musst du nur eine URL senden oder auch einen payload?

Hast du eine URL, die im Browser funktioniert?
Willst du mit cuxd oder ohne arbeiten?
Und bitte immer das ganze Skript in Code Tags posten.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

jacksson
Beiträge: 20
Registriert: 31.03.2016, 12:56

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von jacksson » 16.09.2021, 18:50

Ich muss diesen Curl-Aufruf senden - hab aber keine Ahnung wie ich das anstelle
Ich weiß nicht ob es da noch ne Antwort der API zurück gibt aber die brauche ich nicht, es geht nur darum den Befehl zu senden.

Was mir dabei noch einfällt, ist es möglich in dem Feld "Start" das Datum und die Uhrzeit durch die aktuelle Systemzeit der CCU zu ersetzen?
Das ist nämlich die Zeit für Einsatzbeginn und ein Pflichtfeld, wäre gut wenn das automatisch bei Scriptausführung eingetragen wird.
Der Rest bleibt dann immer gleich.

jp112sdl hat geschrieben:
16.09.2021, 06:55

Aber gut, zurück zu deinem Problem.
Ich hab mir die Seite mal angeschaut.
Dort ist eigentlich alles gut dokumentiert und es gibt sogar einen Generator, der dir einen Beispiel-Curl-Aufruf erzeugt.
Die Werte musst du dir natürlich nach deiner Gusto noch anpassen.
Wichtig ist halt, dass "AlarmEnabled" auf "true" steht und dass du dein Auth-Token noch einfügst.
http://connectapi.feuersoftware.com/swa ... tOperation

Code: Alles auswählen

curl -X POST --header 'Authorization: bearer {token}' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ 
   "Start": "2021-09-15T14:42:11.441Z", \ 
   "End": "", \ 
   "Status": "new", \ 
   "AlarmEnabled": true, \ 
   "Keyword": "Brand A", \ 
   "Address": { \ 
     "Street": "Musterstrasse", \ 
     "HouseNumber": "123", \ 
     "ZipCode": "54321", \ 
     "City": "Musterstadt", \ 
     "District": "Ortsteil..." \ 
   }, \ 
   "Position": { \ 
     "Latitude": 0, \ 
     "Longitude": 0 \ 
   }, \ 
   "Facts": "rauchende Kaninchen", \ 
   "Ric": "1234567,1234568", \ 
   "Number": "2021/999", \ 
   "Properties": [ \ 
     { \ 
       "Key": "ZusatzInfo1", \ 
       "Value": "keine" \ 
     } \ 
   ], \ 
   "AlarmedVehicles": [ \ 
     { \ 
       "Id": 0, \ 
       "RadioIdentifier": "string" \ 
     } \ 
   ], \ 
   "AssignedVehicles": [ \ 
     { \ 
       "Name": "string", \ 
       "VehicleId": 0, \ 
       "RadioId": "string", \ 
       "Status1": "2021-09-16T04:42:11.442Z", \ 
       "Status2": "2021-09-16T04:42:11.442Z", \ 
       "Status3": "2021-09-16T04:42:11.442Z", \ 
       "Status4": "2021-09-16T04:42:11.442Z", \ 
       "Status7": "2021-09-16T04:42:11.442Z", \ 
       "Status8": "2021-09-16T04:42:11.442Z" \ 
     } \ 
   ] \ 
 }' 'https://connectapi.feuersoftware.com/interfaces/public/operation'
 
Vermutlich kann man auch ungenutzte Felder komplett weg lassen (z.B. AssignedVehicles).

Beispiele, wie man sowas aus einem Skript heraus aufruft, findest du im Forum zu Hauf

MichaelN
Beiträge: 9561
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von MichaelN » 16.09.2021, 19:30

jacksson hat geschrieben:
16.09.2021, 18:50
ist es möglich in dem Feld "Start" das Datum und die Uhrzeit durch die aktuelle Systemzeit der CCU zu ersetzen?

Code: Alles auswählen

system.Date("%F %T")
liefert 2021-09-16 19:27:23
Wenn es genau wie im Beispiel formatiert sein muss, dann wird es etwas Bastelei, geht aber natürlich auch

Wie man curl Befehle sendet, kann ich aber nicht sagen. Da müssen die Linux Experten ran.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von jp112sdl » 16.09.2021, 19:47

MichaelN hat geschrieben:
16.09.2021, 19:30
Wie man curl Befehle sendet, kann ich aber nicht sagen. Da müssen die Linux Experten ran.
Der Befehl steht ja schon komplett in meinem Code-Block.
Das müsste also nur in ein system.Exec(); gepackt werden - fertig.

Wie man jedoch die ' und " richtig escapen muss, kann ich aber nicht sagen.
Da müssen die Skript-Experten ran 8)

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

MichaelN
Beiträge: 9561
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von MichaelN » 16.09.2021, 20:27

jp112sdl hat geschrieben:
16.09.2021, 19:47
Der Befehl steht ja schon komplett in meinem Code-Block
Also wenn das so ist, dann kann man es so machen:

Code: Alles auswählen

string CUXD_Device = "CUxD.CUX2801001:1";
string Datum = system.Date("%F %T");
string Befehl = ^curl -X POST --header 'Authorization: bearer {token}' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
   "Start": "^#Datum#^", \
   "End": "", \
   "Status": "new", \
   "AlarmEnabled": true, \
   "Keyword": "Brand A", \
   "Address": { \
     "Street": "Musterstrasse", \
     "HouseNumber": "123", \
     "ZipCode": "54321", \
     "City": "Musterstadt", \
     "District": "Ortsteil..." \
   }, \
   "Position": { \
     "Latitude": 0, \
     "Longitude": 0 \
   }, \
   "Facts": "rauchende Kaninchen", \
   "Ric": "1234567,1234568", \
   "Number": "2021/999", \
   "Properties": [ \
     { \
       "Key": "ZusatzInfo1", \
       "Value": "keine" \
     } \
   ], \
   "AlarmedVehicles": [ \
     { \
       "Id": 0, \
       "RadioIdentifier": "string" \
     } \
   ], \
   "AssignedVehicles": [ \
     { \
       "Name": "string", \
       "VehicleId": 0, \
       "RadioId": "string", \
       "Status1": "2021-09-16T04:42:11.442Z", \
       "Status2": "2021-09-16T04:42:11.442Z", \
       "Status3": "2021-09-16T04:42:11.442Z", \
       "Status4": "2021-09-16T04:42:11.442Z", \
       "Status7": "2021-09-16T04:42:11.442Z", \
       "Status8": "2021-09-16T04:42:11.442Z" \
     } \
   ] \
 }' 'https://connectapi.feuersoftware.com/interfaces/public/operation'
 ^;

string rueck;
dom.GetObject(CUXD_Device#".CMD_SETS").State(Befehl);
dom.GetObject(CUXD_Device#".CMD_QUERY_RET").State(1);
rueck = dom.GetObject(CUXD_Device#".CMD_RETS").State();
Ich habe es mir jetzt einfach gemacht und den String in ^ eingeschlossen. Dann hat man keinen Streß mit ' oder "
ABER: eingeben kann man das leider nur mit RaspberryMatic, dem SDV oder einer gepatchten Original CCU.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

jacksson
Beiträge: 20
Registriert: 31.03.2016, 12:56

Re: Hilfe bei Script für API Schnittstelle (Feuersoftware)

Beitrag von jacksson » 16.09.2021, 20:38

MichaelN hat geschrieben:
16.09.2021, 20:27

Ich habe es mir jetzt einfach gemacht und den String in ^ eingeschlossen. Dann hat man keinen Streß mit ' oder "
ABER: eingeben kann man das leider nur mit RaspberryMatic, dem SDV oder einer gepatchten Original CCU.
Das heißt ich kann es nicht mit meiner piVCCU3 eingeben und ausführen?
Denn die ist ja soweit ich weiß identische zur Original CCU3 Software :?

Antworten

Zurück zu „HomeMatic allgemein“