Heizungssteuerung über App: XML API Schnittstelle einbinden

  • Antworten:4
Jonas W.
  • Forum-Beiträge: 1

11.12.2017, 13:55:58 via Website

Hallo Zusammen,

Ich habe vor eine kleine App zu erstellen, mit der ich unsere Fußbodenheizung steuern kann. Aktuell ist sie an unserer Fritz.Box angeschlossen. Ich kann über einem Browser mit der URL http : // (IP-Adresse) / indexdesktop . html auf eine Benutzeroberfläche zugreifen (Die Bild einfügen Funktion funktioniert bei mir leider nicht, sonst hätte ich ein Bild angefügt)

Der Hersteller bietet für den Zugriff von dritt Systemen eine XML API an. Es gibt eine Beschreibung hier zu downloaden: https(Doppelpunkt Slash Slash)www(dot)moehlenhoff(dot)de/images/content)/oem/Alpha2_XML_Schnittstellen_Informationen.zip (Darf leider noch keine Links posten)

Nun habe ich das Problem, dass ich bis jetzt nur Java Entwicklung betrieben habe und noch nie mit XML API´s gearbeitet habe. Ich muss also jetzt auf die XML API zugreifen. Kann mir jemand etwas Starthilfe geben, wie ich das in Android Studio umsetze? Würde mich auch über Links zu hilfreiche Tutorials, etc freuen.

Best Grüße!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

11.12.2017, 14:01:55 via Website

Hallo Jonas,
herzlich wilkommen hier im Forum ):


Zuerst musst du mit einem HTTP Request das XML Laden. Da sowas selpber programmieren etwas mhselig ist, schlage ich dir eine Http Lib wie OkHttp oder ION vor. Damit geht das ganz gut.

Sobald du den XML String hast, nimmst du dir einen XML Parser um die Daten zu extrahieren.

Das erstmal das grobe vorgehen, ist das soweit klar?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

20.12.2017, 12:18:13 via Website

Ich würde dir empfehlen es mit Retrofit und SimpleXML zu machen.
Mit Retrofit programmiert sich ein asynchroner WebClient quasi von allein, indem man über Annotations in einem Interface die Web-Service Aufrufe modelliert.
SimpleXML erlaubt die die automatische Konvertierung der XML Daten in ein Java Objekt-Modell. Auch hier wird mit Annotations festgelegt welche XML-Attribute auf welche Felder in der Klasse gemappt werden.

Beide Libs sind sehr gut dokumentiert. Es dauert vielleicht einen Moment sich hineinzudenken, aber dafür spart es Dir extrem viel Code und funktioniert sehr zuverlässig, weil weit verbreitet und erprobt.

Antworten
swa00
  • Forum-Beiträge: 3.704

20.12.2017, 12:34:33 via Website

@Raphael

Grundsätzlich richtig , Pascal hat allerdings die Eigenschaft von Android angesprochen ,
indem ein Request in einem Thread stattfinden muss und dies zu Programmieren erfordert
eine gutes Stück Erfahrung und ist mit den von ihm genannten Libraries weitestgehend abgedeckt
und liefert schlichtweg ein CallBack zurück

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

21.12.2017, 11:35:37 via Website

swa00

@Raphael

Grundsätzlich richtig , Pascal hat allerdings die Eigenschaft von Android angesprochen ,
indem ein Request in einem Thread stattfinden muss und dies zu Programmieren erfordert
eine gutes Stück Erfahrung und ist mit den von ihm genannten Libraries weitestgehend abgedeckt
und liefert schlichtweg ein CallBack zurück

Wo ist denn in dem, was ich schrub ein Widerspruch zu seiner Aussage?
Retrofit nutzt intern per default OkHttp ist jedoch NOCH einfacher zu konfigurieren und erledigt Konvertierung von JSON <-> Objektmodell automatisch.
Nimmt man SimpleXML noch dazu, kann es auch XML <-> Objektmodell.

Rafael mit f by the way ... siehe oben ;-)

— geändert am 21.12.2017, 11:43:37

Antworten