XML-API Sysvar abfragen nicht möglich

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

Moderator: Co-Administratoren

Antworten
Schnigge5
Beiträge: 18
Registriert: 26.03.2019, 21:49

XML-API Sysvar abfragen nicht möglich

Beitrag von Schnigge5 » 19.06.2020, 16:12

Hallo Ihr

Ich stehe vor einem Problem. Ich möchte über die XML-API-Schnittstelle mit einem Arduino(also vielmehr mit eienem ESP8266) eine Systemvariable abfragen und in einem float speichern. Hört sich ja erstmal nicht wild an.

Ich schreibe eine Systemvariable mit:

Code: Alles auswählen

if(client.connect(HomaticIP,80))
{ client.print(" GET /config/xmlapi/statechange.cgi?ise_id=2632&new_value=");
client.print(variable1);
client.println(" HTTP/1.0");
client.println();
}
Das funktioniert wunderbar.
Nun versuche ich etwas wie dieses:

Code: Alles auswählen

variable2=client.println("GET /config/xmlapi/sysvar.cgi?ise_id=2632");
Also in Variable2 soll er das reinschreiben was er vorher in die 2632 reingeschrieben hat. Das tut er aber nicht! Da es mit dem Browser funktioniert vermute ich, dass es an meiner Syntax liegt. Ich habe leider keine Ahnung was (auch oben) ...HTTP1.0 etc bedeutet. Das habe ich so von irgendwo übernommen und es tuts....was mir reicht :)

Ich habe schon echt viel gelesen, aber scheinbar möchte nur jeder sysvars schreiben und nicht lesen :shock:
Kann mir jemand die Syntax dazu nennen? Dann wäre ich schon glücklich.

Vielen Dank im Voraus
Alex
Zuletzt geändert von alchy am 19.06.2020, 19:46, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

Schnigge5
Beiträge: 18
Registriert: 26.03.2019, 21:49

Re: XML-API Sysvar abfragen nicht möglich

Beitrag von Schnigge5 » 19.06.2020, 22:27

Vielleicht ein Update:

Mit folgendem Code....

Code: Alles auswählen

if (client.connect(HomematicIP,80)) {
    client.println("GET /config/xmlapi/sysvar.cgi?ise_id=2632 HTTP/1.0\r\n");
while(client.available() == 0 ){ 
    variable2 = client.readString();
break;
   }
....bekomme ich nun diese Antwort....

Code: Alles auswählen

HTTP/1.0 200 OK
Content-Type: text/xml
Access-Control-Allow-Origin: *
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: no-referrer
Content-Length: 300
Connection: close
Date: Fri, 19 Jun 2020 20:20:38 GMT
<?xml version="1.0" encoding="ISO-8859-1" ?><systemVariables><systemVariable name='Grube Stand' variable='3.000000' value='3.000000' value_list='' value_text='' ise_id='2632' min='0' max='65000' unit='cm' type='4' subtype='0' timestamp='1592598038' value_name_0='' value_name_1=''/></systemVariables> 

....das sieht ja gut aus. Da steht meine 3.00000 als "Value".
Aber da gebe ich ja nun einen String aus. Kann mir vielleicht jemand veraten wie ich diese 3 nun in eine int-Variable bekomme, sodass ich damit rechnen kann?

Gruß ALEX
Zuletzt geändert von alchy am 20.06.2020, 21:13, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

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

Re: XML-API Sysvar abfragen nicht möglich

Beitrag von alchy » 21.06.2020, 19:44

/config/xmlapi/state.cgi?datapoint_id=

sollte es übersichtlicher machen da nur value zurückgegeben wird.

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.

Schnigge5
Beiträge: 18
Registriert: 26.03.2019, 21:49

Re: XML-API Sysvar abfragen nicht möglich

Beitrag von Schnigge5 » 08.07.2020, 23:27

Zur Info :

Es hat wohl mit meinem Verständnis von HTML zu tun :(

Ich kriege nun Diesen String und suche ihn nach dem Wert ab und konvertiere ihn dann in eine Zahl.

Vielleicht ein Workarround, aber so gehts.

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“