Zeichenkette in XMLAPI an Variable übergeben

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

Moderator: Co-Administratoren

Antworten
Housemann

Zeichenkette in XMLAPI an Variable übergeben

Beitrag von Housemann » 11.06.2017, 16:17

Hallo zusammen,

es gibt ja die Möglichkeit Variablen per XMLAPI über einen http Befehl zu setzten.
Ich würde gerne für das Mega-Kalender Script die Urlaubstage in Form von 12.02.,13.02.,14.02., etc., in die dafür vorgesehene Variable schreiben.
Meine Idee hierzu wäre in Mediola über eine Webseite, ein z.B. PHP Formular mit den Urlaubstagen zu füllen.
Nach dem Absenden des Formulars wird per PHP der http Befehl an die CCU mit den Werten gesendet.

Hat jemand hier sowas schon gelöst, oder gibt es eine andere Möglichkeit?

Wie kann ich in den http Befehl mehrere Werte setzen?
So klappt es leider nicht...

Code: Alles auswählen

http://192.168.11.50/config/xmlapi/statechange.cgi?ise_id=10853&new_value="12.05.,13.05.,14.05."

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von Familienvater » 11.06.2017, 16:36

Hi,

das muss wahrscheinlich alles %-Codiert werden, probiere es mal so aus:

Code: Alles auswählen

http://192.168.11.50/config/xmlapi/statechange.cgi?ise_id=10853&new_value=%2212.05.%2C13.05.%2C14.05.%22
Der Familienvater

Housemann

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von Housemann » 11.06.2017, 17:56

Hallo Familienvater,

leider geht es so nicht. :-(

Das ist das Ergebnis in der Variable...

Code: Alles auswählen

%2212.05.%2C13.05.%2C14.05.%22

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

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von alchy » 11.06.2017, 20:40

versuch es per Remote HM Script

Code: Alles auswählen

http://192.168.11.50:8181/alchy.exe?sagt=(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(10853).State("12.05.,13.05.,14.05.")
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.

Housemann

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von Housemann » 12.06.2017, 05:31

Perfect.
Damit geht es.

Hatte es schon mit regaget probiert.
"http://192.168.11.50:8181/regaget.exe?ret=(dom.GetObject(ID_SYSTEM_VARIABLES)).Get("Urlaub-01-Termine").ValueList("01.01.;02.02.;03.03.")"
Warum geht das nicht?

Gruß

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

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von alchy » 12.06.2017, 08:04

Weil alchy.exe mächtiger ist :P :mrgreen:
Ich würde ja sagen *RTFM* aber ich bin mir nicht sicher, ob das darin dokumentiert ist.
Aber die Scriptdoku (siehe meine Signatur) zu lesen, ist in jedem Falle hilfreich.

Das geht schon. Wenn Urlaub-01-Termine eine Systemvariable Typ Werteliste ist,
wird durch .ValueList("WERT1;WERT2;WERT3") die möglichen Werte entsprechend geschrieben.
Setzen ist dann wieder ein anderes Thema.
Ist dem so? Wenn ja, warum fragst du dann nicht dementsprechend? :twisted:

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.

Housemann

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von Housemann » 12.06.2017, 19:21

Ach verdammt, du hast recht.
Ich weiß nicht wie ich auf Zeichenkette kam. Tut mir leid.

Die Variable ist eine Werteliste und mit dem Regascript geht es nicht, dass die VAR gefüllt wird.

Code: Alles auswählen

http://192.168.11.50:8181/regaget.exe?ret=(dom.GetObject(ID_SYSTEM_VARIABLES)).Get("Urlaub-01-Termine").ValueList("01.01.;02.02.;03.03.")
Weißt du vielleicht woran es liegt?

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

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von alchy » 12.06.2017, 23:28

Housemann hat geschrieben:Weißt du vielleicht woran es liegt?
Jupp, du liest nicht richtig. :roll:

Zitat:
alchy hat geschrieben:Wenn Urlaub-01-Termine eine Systemvariable Typ Werteliste ist,
wird durch .ValueList("WERT1;WERT2;WERT3") die möglichen Werte entsprechend geschrieben.
im [ERKLÄRBÄRMODUS]
ergibt das (und ich habe die Variable AA_WERTELISTE genannt zur besseren Illustration).

rufst du den Link so auf:

Code: Alles auswählen

http://IP.DEINER.EIGENEN.CCU:8181/alchy.exe?sagt=(dom.GetObject(ID_SYSTEM_VARIABLES)).Get("AA_WERTELISTE").ValueList("01.01.;02.02.;03.03.;04.04.")
kannst du dann bei Klickibunti->Startseite > Einstellungen > Systemvariable
danach das Folgende sehen.
AA_WERTELISTE.jpg
wie ich schrieb, die möglichen Werte

Schaust du dann unter Klickibunti-> Startseite > Status und Bedienung > Systemvariable
siehst du das:
AA_WERTELISTE_STATUS.jpg
Die Variable hat erstmal den Status 0 angenommen, was eben der WERT 01.01 aus der Werteliste entspricht.

Und nun zitiere ich mich wieder selber, weil du nicht richtig liest.
alchy hat geschrieben:Setzen ist dann wieder ein anderes Thema.
Nun willst du den Status ändern auf 03.03.
Dann kannst du entweder im Programm etwas zusammenklicken,
AA_WERTELISTE_PROG.jpg

oder ein HM-Script benutzen:

Code: Alles auswählen

object alchy = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get("AA_WERTELISTE");
if (alchy){ alchy.State(2);WriteLine("Wert gesetzt"); }else{ WriteLine("Variable nicht vorhanden");}
oder das Äquivalent per Remote HM Script:

Code: Alles auswählen

http://IP.DEINER.EIGENEN.CCU:8181/alchy.exe?sagt=(dom.GetObject(ID_SYSTEM_VARIABLES)).Get("AA_WERTELISTE").State(2)
usw.usw.

und der Status der Systemvariable sieht dann so aus:
AA_WERTELISTE_STATUS2.jpg
Man beachte also, das mit 0 angefangen wird zu zählen.

[/ERKLÄRBÄRMODUS]

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.

Housemann

Re: Zeichenkette in XMLAPI an Variable übergeben

Beitrag von Housemann » 13.06.2017, 05:32

Guten Morgen Alchy,

jetzt hab ich es gerafft. :D

Schwere Geburt, sorry.

Vielen Dank nochmal.

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“