Hallo liebe Home Assistant Interessierten,
ich muss es heute einmal posten, weil mir ein persönliches Anliegen endlich geglückt ist. Ich habe nun zwei Dinge, die bei mir im Flair installiert sind, endlich in HA integriert bekommen.
Zum einen kann ich meine Alde 3030 Compact nun vollständig (im Rahmen der Möglichkeiten) auslesen und auch schon rudimentär steuern, und zum anderen habe ich im Mobil die Hardware von Caratec - Easy Level RV verbaut.
Beides, wie Ihr bestimmt wisst, ohne native API, um Daten auszulesen oder zu schreiben.
Mir hat das Ganze keine Ruhe gelassen und es hat mich an meiner Job-Ehre gepackt, dass ich nicht an diese Daten herankomme. Beide Geräte verfügen über verschlüsselte Bluetooth LE Verbindungen. Die einzige Möglichkeit, remote an diese Geräte heranzukommen, ist über die native iOS oder Android APP. Entweder von Truma, die INET-System App über die INET-Box, oder wer es hat, das Truma INET X Panel für die Alde Heizung. Ich nutze seit ein paar Wochen das Truma INET X Panel. Vorher hatte ich die INET Box.
Ebenso verhält es sich mit der Easy Level RV App. Bluetooth LE verschlüsselt über die native App.
Irgendwann in der Vergangenheit hatte ich hier im Forum gelesen, dass ein Mitglied sich einfach ein Android Handy im Fahrzeug hingelegt hat und damit seine Heizung steuert. Das hatte ich dann ebenso gemacht, allerdings mit der Einschränkung, dass ich zwar remote nun die Geräte steuern konnte, aber nicht für Automatisierungen oder Status Abfragen in HA nutzen konnte.
Durch Zufall habe ich dann die APP Tasker für Android gefunden, die in der Lage ist, selbstdefinierte Aufgaben auf Befehl auszuführen und auf Trigger reagieren kann.
Lange Rede kurzer Sinn, in dieser Kombination Android Handy/native App/Home Assistant habe ich nun die Möglichkeit, die Daten aus den Apps für die Alde Heizung & Saphir Klimaanlage und die Daten für die Easy Level RV App in das Home Assistant zu bekommen. Anbei mal ein Screenshot meiner aktuellen Umsetzung.
Wer jetzt noch nicht abgeschreckt ist, kann gerne weiterlesen. Ansonsten lieber aufhören, ab jetzt wird es speziell und echt nerdig ![]()
Aber für den, der sich auf einen ähnlich schmutzigen Weg machen will (nicht empfohlen), hier eine strukturierte Darstellung meiner Umsetzung:
Hier mein länglicher Bericht in der Zusammenfassung:
---
Alde iNet X & EasyLevel RV in Home Assistant – ohne „offizielle“ Schnittstelle
Ich wollte meine Alde-Heizung (iNet X) und meinen EasyLevel RV Neigungssensor sauber in Home Assistant einbinden – inklusive hübscher Anzeige im Stil der Original-Apps (Wasserwaage über dem Grundriss, Achsen-Anzeige usw.).
Das Problem:
Beide Hersteller bieten keine offene Schnittstelle (API), über die man die Daten einfach abfragen könnte.
Trotzdem funktioniert es – mit einem kleinen schmutzigen „Trick“ über ein Android-Handy im Wohnmobil.
Ich versuche den Aufbau hier verständlich und ohne Programmier-Details zu erklären.
1. Was braucht man?
Im Wohnmobil
- ein Android-Handy, das dauerhaft im Mobil bleibt (bei mir gerootet)
- die Alde / Truma iNet X App / oder Inet System App für die Inet Box
- die EasyLevel RV App
- die Android-App Tasker (Automatisierung)
- ein MQTT-Plugin für Tasker (z. B. „LiveMQTT“ o.ä.)
- eine kleine Python-Laufzeitumgebung + ein paar kleine Auswertungs-Programme
(die Auswertung habe ich einmal geschrieben, danach läuft es einfach)
Zu Hause / im Netz / Im Wohnmobil
- einen laufenden Home Assistant
- einen MQTT-Broker (z. B. Mosquitto – kann direkt in Home Assistant als Add-on laufen)
2. Grundidee – wie kommen die Daten aus der App nach Home Assistant?
Die Idee ist:
Das Handy „bedient“ die Original-App automatisch, liest den Anzeigebildschirm aus und schickt die Werte dann per MQTT an Home Assistant.
Der Ablauf ist immer gleich – egal ob Alde oder EasyLevel RV:
1. Home Assistant schickt eine Anfrage
- z. B. eine Automation („alle 15 Minuten Status holen“)
- Home Assistant schickt dazu eine kleine Nachricht über MQTT, z. B.:
- …/alde/cmd/getstatus
- …/easylevelrv/cmd/getstatus
2. Tasker auf dem Handy reagiert auf diese Nachricht
- In Tasker ist ein „MQTT Event“ eingerichtet
- Wenn die passende Nachricht kommt, startet ein Task „Status abfragen“.
3. Tasker steuert die App automatisch
- Display einschalten / entsperren
- Inet X-App oder EasyLevel-App starten
- kurz warten, bis die Bluetooth-Verbindung steht
4. Der Bildschirm wird als XML gespeichert
- Android hat eine eingebaute Funktion namens uiautomator dump
- Die schreibt den aktuellen Bildschirm in eine Datei (eine Art „Bildschirm-Beschreibung“ als Text)
5. Ein kleines Python-Programm liest diese Datei aus
- Für Alde und EasyLevel gibt es jeweils ein eigenes Mini-Programm
- Das Programm sucht in der Bildschirm-Beschreibung die Werte raus, die uns interessieren:
- bei Alde z. B. Ist-Temperatur, Soll-Temperatur, Betriebsart, Pumpenstatus, Warmwasser-Modus usw.
- bei EasyLevel z. B. Temperatur, Batteriestand, Neigung in Längs- und Querrichtung
- Das Programm gibt das Ergebnis als kompakte JSON-Struktur zurück (also ein kleines Datenpäckchen mit klaren Namen und Werten)
6. Tasker nimmt dieses Datenpäckchen und schickt es per MQTT zurück
- z. B. auf Topics
- …/alde/status/dashboard
- …/easylevelrv/status
7. Home Assistant empfängt das JSON und baut daraus Sensoren
- Ein MQTT-Sensor nimmt das komplette JSON an („Rohdaten“)
- In Home Assistant werden daraus „richtige“ Sensoren gemacht:
- Temperatur-Sensoren
- Status-Sensoren (Heizung an/aus, Modus, Warmwasser usw.)
- Winkel-Sensoren für EasyLevel (Längs- und Querneigung)
- ein Zeitstempel „zuletzt aktualisiert“
8. Visualisierung in Home Assistant
Alde:
- normale Entitäten, Badges, Diagramme usw.
EasyLevel RV:
- eine Karte, die den Grundriss des Fahrzeugs als Hintergrundbild nutzt
- darauf wird eine runde Wasserwaage mit rotem Punkt gezeichnet (In Anlehnung an die originale APP)
- die Position des roten Punktes wird aus den Winkel-Sensoren berechnet
- zusätzlich zeigen grüne Kreise / rote Dreiecke an, welche Achse in der Waage ist und welche nicht (Toleranz z. B. ±0,1°)
3. Beispiel: Alde-Status
Schematisch:
1. Home Assistant löst alle 15 Minuten eine MQTT-Nachricht …/alde/cmd/getstatus aus.
2. Tasker erkennt diese Nachricht → Task „Get Status InetX“ startet.
3. Task:
- Display an
- iNet X App starten
- kurze Wartezeit, bis „verbunden“
- Bildschirm-Dump erstellen
- Python-Programm wertet den Dump aus → JSON mit allen Heizungs-Werten
- JSON per MQTT zurück zu Home Assistant
- App kann bei Bedarf wieder beendet werden
4. Home Assistant:
- MQTT-Rohsensor nimmt das JSON an
- Template-Sensoren machen daraus die einzelnen Werte
- eine kleine „Watchdog-Logik“ prüft über den Zeitstempel, ob die Daten aktuell sind.
4. Beispiel: EasyLevel RV
Sehr ähnlich, nur einfacher, weil es nur einen wichtigen Bildschirm gibt:
1. Home Assistant schickt …/easylevelrv/cmd/getstatus.
2. Tasker startet den EasyLevel-Task:
- App starten
- kurzen Moment warten
- Bildschirm-Dump erstellen
- Python-Programm liest Neigungen, Temperatur, Batterie und Zeitstempel aus
- JSON per MQTT zurück schicken
3. Home Assistant:
- MQTT-Rohsensor + Template-Sensoren
- eine speziell gebaute Karte zeigt:
- Grundriss des Fahrzeugs
- große Wasserwaage mit rotem Punkt (Position je nach Neigung)
- je Achse: grüner Kreis (innerhalb Toleranz) oder rotes Dreieck (außerhalb Toleranz)
5. Vorteile/Nachteile dieser Lösung
- Keine Bastel-Hardware zusätzlich nötig – das Handy übernimmt die Brücke.
- Man nutzt die offiziellen Apps, also keinen Eingriff in Alde / EasyLevel selbst.
- Home Assistant bekommt vollwertige Sensoren, die man in Automationen verwenden kann:
- „Wenn EasyLevel meldet: hinten links zu tief → Hinweis zum Keile legen“
- „Wenn Alde auf Frostschutz und Außentemperatur < X → Nachricht aufs Handy“ usw.
- Alles ist über MQTT entkoppelt:
- Handy kann getrennt vom Home Assistant neu gestartet werden, ohne dass etwas kaputtgeht.
6. Was man wissen sollte
- Das Handy im Wohnmobil ist in meinem Aufbau gerootet, damit ich die Bildschirm-Dumps ausführen und eigene Skripte nach /data/local/bin legen kann.
- Die eigentlichen Python-Programme und Home-Assistant-Templates muss man natürlich einmal erstellen – aber wenn sie laufen, ist es ein ziemlich robuster Automatismus.
- Wer Interesse hat, kann sich an der Idee orientieren und die Details (Skripte, YAML usw.) auf die eigene Situation anpassen.
- Und man sollte sich gut bis sehr gut in einer HA-Umgebung/Python/MQTT auskennen
Wenn jemand aus dem Forum so etwas nachbauen möchte, helfe ich gerne mit weiteren Infos, Screenshots und Beispielen – aber ich wollte hier erst einmal den prinzipiellen Weg zeigen, wie man Alde und EasyLevel überhaupt in Home Assistant hineinbekommt, obwohl es dafür eigentlich keine „offizielle“ Schnittstelle gibt.
Aber es ist sicherlich ein Projekt, was nicht "mal-ebenso-nachgebaut" werden kann.
Ich wollte es aber einfach mal loswerden, weil ich mich freue, dass nun ein weiterer Punkt auf meine To-Do Liste weg ist.
LG an alle
Oliver