NEWS
[Offen] [Problem] Eigene Android-App mit ioBroker verbinden
-
Hallo,
ich versuche mich momentan daran, eine eigene App für Android zu programmieren (Java), die u.a. auch Daten von meiner ioBroker-Installation auf einem Raspberry Pi 4B abrufen soll. Begonnen hatte ich mit einfachen HTTP-Requests über die rest-api. Das hat soweit auch erstmal funktioniert. Dann habe ich aber gelesen, dass Sockets für solche Verbindungen die bessere Wahl sind und mit Socket.io bzw. Websocket entsprechende Möglichkeiten verfügbar sind. Für die Einbindung/Initialisierung in der App habe ich die Doku von Socket.io genutzt, allerdings konnte ich keine Verbindung zum ioBroker aufbauen. Nach langem erfolglosem Suchen im Forum und generell Internet habe ich auch ChatGPT-bemüht, um meinen Fehler zu finden. Ich bekomme aber nur folgende Log-Ausgaben:
Error in the socket connection: io.socket.engineio.client.EngineIOException: xhr poll error
bzw nach dem Umstellen auf XHR poll kam noch
Error in the socket connection: io.socket.engineio.client.EngineIOException: server error
Ich spare mir an dieser Stelle erst einmal den Java-Code, da dieser anscheinend funktioniert und in meinen Einstellungen beim ioBroker etwas nicht passt (der Vollständigkeit halber füge ich ihn am Ende an, in dieser Version eine Kopie von ChatGPT). Versucht habe ich als Ports sowohl die 8082 der vis als auch die jeweiligen Ports einer neuen Socket.io/Websocket-Instanz (beim Aufruf im Browser wurde nur "Not implemented" angezeigt). Als URL habe ich immer folgendes angegeben (Port 8084 hier nur als Beispiel):
String ioBrokerServerURL = "http://192.XXX.XXX.XXX:8084";
Es gab zwar bereits einige Fragen zu diesem Thema (z.B. hier sehr passend aus 2021: socket.io States via Kotlin/Java abgreifen), nur leider kann ich offensichtlich nicht einmal eine Serververbindung herstellen. Über eine Erklärung dazu wäre ich froh
Software-Versionen ioBroker:
Socket.io: 6.5.7
Websocket: 2.5.7Software-Versionen App:
Socket.io-Client: 2.1.0Und hier der Code, der mir die Logmeldung ausgibt: