Erweiterung der XML-API - Version 1.2 ?

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

Moderator: Co-Administratoren

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von hobbyquaker » 12.10.2012, 17:29

Hallo!

Ich hatte da noch einige Wünsche, war aber so frei einfach mal einen Fork eurer Version auf https://github.com/hobbyquaker/hq-xmlapi.git anzulegen und es selbst zu implementieren.

Habe folgende Änderungen/Erweiterungen vorgenommen:

Die cgi.tcl komplett rauschgeschmissen. Die hatte eigentlich nur überflüssige Funktionen und hat alle Fehler abgefangen die nie auftreten, die interessanten Fehler jedoch sind unbehandelt ;-)
Die once.tcl und xml.tcl ebenfalls rausgeworfen.
Somit entfielen auch diese ganzen cgi_eval, cgi_input, ... Aufrufe. Parsen des env(QUERY_STRING) hab ich auf ein paar Zeilen reduziert und paste die in jedes cgi dass es benötigt.
Erhoffe mir davon eine Perfomanceverbesserung, möchte den "Ping" meiner Lichtschalter weiter reduzieren ;-) Bin noch nicht durch damit, hab es jetzt erstmal bei den für mich relevanten "performancekritischen" cgis gemacht.

in der sysvarlist.cgi ein parameter ergänzt: ruft man sysvarlist.cgi?text=true auf werden die zusätzlichen Attribute value_list und value_text ausgegeben die eine evtl. vorhandene Werteliste und den aktuellen Value in Text-Darstellung beinhalten, das möcht ich in meinem Homematic Siriproxy Plugin benutzen...

neues cgi sysvar.cgi hinzugefügt. Liefert über Parameter ise_id eine einzelne Variable und hat default text=true, beinhaltet also immer die Werteliste und den Text des aktuellen Wertes.

Wenn euch die Änderungen zusagen betrachtet Sie als Contribution, wenn nicht ignoriert sie ;-) Könnt auch gerne auf meinem github Repository mitwerkeln. Habe vor das auch weiterhin (mit-) zu pflegen...

Viele Grüße,
Basti

ultrah
Beiträge: 427
Registriert: 08.03.2010, 13:38
Hat sich bedankt: 6 Mal
Danksagung erhalten: 34 Mal

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von ultrah » 12.10.2012, 18:04

Hi Basti,

freut mich dass noch jemand an der XML-API bastelt! Bin gespannt ob der Performancegewinn spürbar ist. Den aktuellen Stand haben wir jetzt erstmal als 1.2 festgesetzt, siehe homematic-info.de

Es wäre gut wenn eine zukünftige Version abwärtskompatibel zu 1.2 gehalten werden könnte, wäre ja blöd wenn User alle paar Wochen verpflichtend upgraden müssten :)

Würd mich freuen wenn du mich auf das Repo packen könntest, mein Username bei github ist derselbe wie hier.

Ein paar Gedanken ansonsten schonmal:

sysvarlist.cgi?text=true ist intressant wenn nur die Ausgabe gewünscht ist, für die Änderung per stagechange.cgi braucht man aber den Index des Wertes. Und den Wert kann man sich ja aus Index und Werliste über RegEx ohne Performanceprobleme zusammenbauen. da könnte natürlich auch stagechange.cgi angepasst werden aber ich sehe hier den mehrwert nicht.

sysvar.cgi ist klasse, der reine Werte von Systemvariablen lässt sich übrigens auch über state.cgi auslesen.

Gruß Philipp

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von hobbyquaker » 12.10.2012, 18:20

Hallo Philipp!

bist als Collaborator geaddet auf Github.
Es wäre gut wenn eine zukünftige Version abwärtskompatibel zu 1.2 gehalten werden könnte, wäre ja blöd wenn User alle paar Wochen verpflichtend upgraden müssten
Klar, genau aus dem Grund hab ich die neuen Attribute auch per Parameter aktivierbar und default off gemacht, nicht dass ich damit irgendwelche xml-parser aus dem Tritt bring. Auch im ganz eigenen Interesse, ich möchte natürlich auch dass andere Applikation die über xmlapi arbeiten auch bei mir zuhause funktionieren ;-)
sysvarlist.cgi?text=true ist intressant wenn nur die Ausgabe gewünscht ist, für die Änderung per stagechange.cgi braucht man aber den Index des Wertes.
Das ist richtig, aber wie Du auch schon sagtest auch kein Problem wenn das in der Applikation gematched wird. Kannst Dir bald eine Beispielimplementierung in meinem siriproxy-homematic Plugin anschauen ;-)
sysvar.cgi ist klasse, der reine Werte von Systemvariablen lässt sich übrigens auch über state.cgi auslesen.
Jap, hatte auch kurz mit dem Gedanken gespielt die state.cgi zu erweitern. Aber irgendwie war ich dann faul, da hätte ich länger Nachdenken müssen, die sysvarlist einfach runterzustrippen ging da wesentlich schneller ;-)

Grüße,
Basti
Zuletzt geändert von hobbyquaker am 14.10.2012, 12:01, insgesamt 1-mal geändert.

ultrah
Beiträge: 427
Registriert: 08.03.2010, 13:38
Hat sich bedankt: 6 Mal
Danksagung erhalten: 34 Mal

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von ultrah » 13.10.2012, 11:24

hört sich gut an. Dann wünsch ich erstmal frohes Schaffen!

ultrah
Beiträge: 427
Registriert: 08.03.2010, 13:38
Hat sich bedankt: 6 Mal
Danksagung erhalten: 34 Mal

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von ultrah » 17.10.2012, 10:08

Nachtrag: Hast du schon mal an die Einbindung des Systemprotokolls gedacht ? Das wäre wirklich interessant für mich.

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von hobbyquaker » 31.10.2012, 18:02

Bitteschön:

https://github.com/hobbyquaker/hq-xmlap ... otocol.cgi

kannst mit folgenden Parametern aufrufen: start, show, clear

Code: Alles auswählen

http://ccu/config/xmlapi/protocol.cgi gibt einfach das ganze Systemprotokoll aus
http://ccu/config/xmlapi/protocol.cgi?show=10 gibt 10 Einträge aus
http://ccu/config/xmlapi/protocol.cgi?start=10&show=10 gibt 10 Einträge ab Position 10 aus
http://ccu/config/xmlapi/protocol.cgi?clear=1 Löscht das Log
Hab einfach das Skript von MaxWrestler (http://homematic-forum.de/forum/viewtop ... 31&t=10210) genommen und die 3 Parameter und ein paar XML Tags eingebaut.

Viele Grüße,
Basti

Benutzeravatar
Homie
Beiträge: 111
Registriert: 24.09.2012, 19:43

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von Homie » 01.11.2012, 09:05

Hallo.

Kann die XML Api eigentlich auch die TimeStamps der Datapoints bzw. Systemvariablen auslesen?
Das "Checken" wann ein bestimmter Zustand gesetzt wurde ist z.B. HomeDroid etwas was mir gelegentlich fehlt.
WebUI gibt diese Werte ja wunderbar aus.

Tschüss
Homie
CCU2 steuert 90 Kanäle in 62 Geräten

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von hobbyquaker » 01.11.2012, 11:15

In der xml-api Ausgabe sind die Timestamps enthalten. Sowohl in der sysvarlist.cgi als auch in der statelist.cgi.

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von hobbyquaker » 01.11.2012, 15:33

So, habe noch mal einige Änderungen an meinem Fork der XML API vorgenommen, ist jetzt Version "1.2-hq4". Habe noch überall einen HTTP Header hinzugefügt der es erlaubt die CGIs auch vi XHR von anderen Hosts aufzurufen ("allow-origin"). War für mein neues Feiertagsprojekt "HQ WebUI" notwendig (http://homematic-forum.de/forum/viewtop ... 979#p77979). Außerdem hab ich das neue CGI protocol.cgi nochmal etwas überarbeitet.

Volle Abwärtskompatibilität zur offiziellen 1.2 ist (nach meinen Tests zumindest) gegeben.

Ich denke die Änderungen gegenüber der offiziellen 1.2 sind in Summe jetzt schon recht viel (sysvar.cgi, protocol.cgi, Text-Bezeichner/Wertelisten von Variablen, Performanceverbesserung und der neue HTTP-Header) - vielleicht mögt Ihr es ja in Erwägung ziehen diese Änderungen in die offizielle XML API 1.3 einfließen zu lassen. :)

Viele Grüße,
Basti

Benutzeravatar
Monty1979
Beiträge: 854
Registriert: 28.10.2010, 20:47
Wohnort: Bremen
Kontaktdaten:

Re: Erweiterung der XML-API - Version 1.2 ?

Beitrag von Monty1979 » 01.11.2012, 19:07

Wenn sie zur 1.2 und davor kompatibel ist braucht man doch nichts einfließen zulassen. Wir nehmen einfach die als offizielle 1.3.

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“