http Befehle Antwort auswerten

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Antworten
Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

http Befehle Antwort auswerten

Beitrag von Chemieka » 06.02.2019, 17:55

Hallo Jungs.
Da ich ja nun gar keine Ahnung von Skripten habe, brauche ich mal eure kompetente Hilfe.

Per folgenden Http Befehl wird eine Nummer angefordert:

http://192.168.1.59/fsapi/CREATE_SESSION?pin=1234


Die Antwort schaut so aus:

Code: Alles auswählen

<fsapiResponse>
<status>FS_OK</status>
<sessionId>1556947560</sessionId>
</fsapiResponse>
Unbenannt.JPG
Die SessioniD 1556947560 brauch ich in einer Variable geschrieben bitte.

Mit einem anderen Programm muss dann der folgende Befehl mit den Inhalt dieser Variable ergänzt werden.
In etwa so statt 1556947560 soll die Variable stehen:

Code: Alles auswählen

http://192.168.1.59/fsapi/SET/netRemote.sys.audio.volume?pin=1234&sid=1556947560&value=5

Für euch ist das sicher ein Leichtes, für mich Böhmische Dörfer.
Danke für die Hilfe.
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: http Befehle Antwort auswerten

Beitrag von alchy » 06.02.2019, 19:10

Das kommt mir bekannt vor. Da habe ich mal was geschrieben: >> Internetradios und andere fsapi gesteuerte Geräte HMsteuern <<
Wenn du Fragen dazu hast, dann da weiter schreiben.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: http Befehle Antwort auswerten

Beitrag von Chemieka » 06.02.2019, 19:45

In prinzip könnte das so gehen. Allerdings wäre es mir trotzdem lieber, die ID in einer Variable zu haben. Da ich diese Variable dann in IO Broker weiter nutzen könnte um die Covers und Titelinformationen abzurufen und zu Visualisieren.
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: http Befehle Antwort auswerten

Beitrag von alchy » 06.02.2019, 20:24

Chemieka hat geschrieben:
06.02.2019, 19:45
In prinzip könnte das so gehen
Na du machst mir Spass, aber wie du meinst.
Chemieka hat geschrieben:
06.02.2019, 19:45
Allerdings wäre es mir trotzdem lieber, die ID in einer Variable zu haben.
Es ist ja ein Einfaches die ausgelesene Session ID noch zusätzlich einer Systemvariablen zu speichern.

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("Name deiner Speichervariablen Typ String").State(sSID);
viel Spass noch.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: http Befehle Antwort auswerten

Beitrag von Chemieka » 06.02.2019, 20:47

Genau so.
Damit hätten wir Teil 1 meiner Anfrage.
Und wie bekomme ich jetzt diese Variable wiederum in einem Http Befehl unter ? Der untere Teil meiner Anfrage!
Vielen Dank für deine Geduld. 😉

Ach ne deine Zeile muss in das bestehende Skript mit rein. Ich ziehe meine Frage umgehend zurück.
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: http Befehle Antwort auswerten

Beitrag von Chemieka » 07.02.2019, 20:23

Ich bedanke mich Herzlichst. Funktioniert bestens. :D
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: http Befehle Antwort auswerten

Beitrag von Chemieka » 08.02.2019, 13:58

Jetzt muss ich doch nochmal fragen.

Wie würde das Skript aussehen, wenn ich nur der Http Befehl für "aus" senden will und dabei für die sSid meine CCU2 Variable einsetze?

Anders gesagt ich möchte die sSID nur nach Bedarf abrufen und nicht bei jeden Befehl eine neue sSID generieren.
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: http Befehle Antwort auswerten

Beitrag von alchy » 08.02.2019, 23:54

Code: Alles auswählen

string sSID = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Name deiner Speichervariablen Typ String").Value();
vor string befehl ..... liest den String mit der SessionID aus der Variablen aus.
Das wird auf Dauer aber wahrscheinlich nicht funktionieren. Ich habe das Script nicht umsonst so geschrieben, wie ich es eben tat.
(Auch wenn ich es nicht selber nutzen kann ohne Gerät)
Außerdem hatte ich dich gebeten, im anderen Thread weiter zu schreiben, falls du Fragen zu dem Script hast.
Da hilft auch keine PN wenn ich mal ein paar Stunden auf eine Frage nicht antworte.
Auch wenn es seltsam erscheint ich habe noch ein Leben neben dem Forum. :roll:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: http Befehle Antwort auswerten

Beitrag von Chemieka » 09.02.2019, 09:18

Danke damit versuche ich es mal weiter.
Der Hintergrund ist folgender. Die ID muss nicht unbedingt immer neu gemacht werden bei jedem Tastendruck. Die ändert sich normal nicht.
Da ich diese ID auch in IOBROKER nutzen will, wäre es somit besser, sie würde sich nicht pausenlos ändern.
Dennoch wollte ich über ein kleines Skript eine neue ID anfordern können und in eine Variable schreiben. Das geht auch schonmal.
Jetzt muss nur in jedem Http Befehl von Seite 1 die Neue ID Erstellung raus und in den Http Befehl die ID aus der Variable rein.
Ich hoffe ich konnte den Hintergrund erklären.
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: http Befehle Antwort auswerten

Beitrag von Chemieka » 09.02.2019, 14:22

Für den Fall das hier mal einer nachschauen will.

SID holen und in Variable schreiben:

Code: Alles auswählen

 ! FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
    ! ++++++ SETUP FÜR DAS SCRIPT ++++++
    var IP_RADIO = "192.168.1.59";   ! IP des zu steuernden Gerätes
    var i_PIN = "1234";            ! Pin des zu steuernden Gerätes
    var CUXD_ID1 = "CUX2801001:1";    ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
    var CUXD_ID2 = "CUX2801001:1";   ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
    !++++++ SETUP ENDE ++++++
    string sSID = dom.GetObject(ID_SYSTEM_VARIABLES).Get("SID Radio").Value();
    string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.power?pin="#i_PIN#"&sid="#sSID#"&value=0";
    dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");



Radio einschalten und dabei SID aus Variable nutzen:

Code: Alles auswählen

 ! FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
    ! ++++++ SETUP FÜR DAS SCRIPT ++++++
    var IP_RADIO = "192.168.1.59";   ! IP des zu steuernden Gerätes
    var i_PIN = "1234";            ! Pin des zu steuernden Gerätes
    var CUXD_ID1 = "CUX2801001:1";    ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
    var CUXD_ID2 = "CUX2801001:1";   ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
    !++++++ SETUP ENDE ++++++
    string sSID = dom.GetObject(ID_SYSTEM_VARIABLES).Get("SID Radio").Value();
    string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.power?pin="#i_PIN#"&sid="#sSID#"&value=1";
    dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“