[Erfahrungsbericht] [V4.5 IP5] Husqvarna Automower HTTP-API abfragen

Wissen, Planung & Diskussion zur Unterstützung von Rest-API & Webabfragen im Timberwolf Server.
Stellt uns hier Eure Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

SchateMuhl
Beiträge: 553
Registriert: Mi Nov 23, 2022 9:31 pm
Wohnort: Werther bei Nordhausen
Hat sich bedankt: 151 Mal
Danksagung erhalten: 202 Mal
Kontaktdaten:

#11

Beitrag von SchateMuhl »

Hallo Stefan
@AndererStefan

Danke für Deine Hilfe.
Das Problem war bei mir wirklich nur die Begrenzung auf 64 Byte, hab eine Custom erstellt die 2048 Byte am Input und Output kann, und schon bekomme ich die Daten.
Nun werde ich mal weiterspielen, um den Mover auch nach Hause zu schicken, Batteriestand und Status bekomme ich nun.
Grüße
Andreas

TWS 3500M ID:992 /XL ID:1198 , VPN offen, Reboot nach Absprache
- KNX mit TWS, 1Home, ENO Gateway, ETS
- PV Anlagen AC gekoppelt mit Fronius IG 40/60 und Symo 10KW
- 96kWh LiFePo mit 3 x MultiPlus 48/8000 und DC PV Anlagen über MPPT

Ersteller
AndererStefan
Beiträge: 481
Registriert: Sa Mär 02, 2024 11:04 am
Hat sich bedankt: 251 Mal
Danksagung erhalten: 336 Mal

#12

Beitrag von AndererStefan »

Hi Andreas,

wie separierst du dir die Werte?
Die sind (bei mir) ein einem großen json Array hintereinander. Über den Index [..] kommt man die entsprechenden Einträge und dann an die Attribute, ich traue der API aber nicht, dass die immer in der gleichen Reihenfolge sind.
Ich hab noch nichts versucht, überlegte aber das in einer Custom Logic nach Attribute zu filtern…

VG Stefan
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache

eib-eg
Beiträge: 988
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1752 Mal
Danksagung erhalten: 709 Mal

#13

Beitrag von eib-eg »

Vermutlich
Aber wirklich nur vermutlich werde ich heute noch die 4.11 bereitstellen
Aber vieles liegt im Detail
Und das Forum gibt viele Infos die in die Datei einfließen
Auch das deine verwendete gleich funktioniert hat
Werde ab 22:00 bis vermutlich 4:00 wider drann sein, denn da hab ich die wenigsten Störfaktoren
Auf gutes Gelingen
TW 2600_99 seit 1.1.2018 / VPN zu

Ersteller
AndererStefan
Beiträge: 481
Registriert: Sa Mär 02, 2024 11:04 am
Hat sich bedankt: 251 Mal
Danksagung erhalten: 336 Mal

#14

Beitrag von AndererStefan »

AndererStefan hat geschrieben: So Mai 25, 2025 9:18 pm Über den Index [..] kommt man die entsprechenden Einträge und dann an die Attribute, ich traue der API aber nicht, dass die immer in der gleichen Reihenfolge sind.
Hi alle,

mein Misstrauen scheint ein Jahr später unberechtigt, die Reihenfolge der Indizes ist bei mir bisher immer noch unverändert.
Und dass, obwohl alle Geräte und auch das Gateway über den Winter komplett offline waren. Ich vermute aber wenn man Geräte hinzufügt, und ziemlich sicher wenn man Geräte entfernt, werden sich die Indizes dennoch ändern.

Die "sicherere" Lösung:
Wenn man die Auswertung über die Device-IDs machen möchte, geht das leider nicht alleine innerhalb der HTTP-Schnittstelle mittels Selektoren, sondern man muss die gesamte Server-Antwort mit einer Logik auswerten. Dazu muss man zunächst eine HTTP-Abfrage mit dem Response Content-Type "text/plain" erstellen.

Bild


Dann erstellt man eine HTTP-Antwort vom Typ Text und schreibt die gesamte Antwort des Servers (Body) dort hinein. (Das ist mir mit json nicht gelungen, da ich keinen Selektor für das ganze Array gefunden habe. Daher hab ich den Content in text geändert).
Mit einer Custom Logic und einer Regular Expression kann man dann nach Device-IDs und den Datenpunkten suchen und deren Werte am Ausgang der Logik (als String) bereitstellen. Die Konvertierung übernimmt der Dispatcher automatisch. Wenn man Statusmeldungen wie "OPEN" oder "CLOSED" konvertieren möchte, empfiehlt sich ein seperater Logik-Baustein. Man kann natürlich alles in einer Custom Logik kombinieren, aber ich mag universelle Module mit klarer Funktion lieber.

Hier in meinem Beispiel frage ich einmal die Bodenfeuchte und Temperatur von zwei unterschiedlichen Sensoren ab. Wichtig ist, dass die Größe der Variablen in der Logik ausreichend dimensioniert ist. Ich habe für den json-Input 16384 Bytes reserviert. Ich habe 3 Gardena-Smart-Geräte und die Server-Antwort ist bereits knapp 8000 Byte. Die Logik-Engine kann so weit ich weiß maximal 65536 Byte verarbeiten (V4.8 IP7). Bei großen Installationen und je nach dem wie viele Datenpunkte die Geräte haben, könnte es also knapp werden.

Bild


Ich habe mich aus Performance-Erwägungen dazu entschieden nicht eine Logik je Datenpunkt zu erstellen, sondern alle Datenpunkte in einer Logik auszuwerten. So schiebt man nur einmal das große Json durch die Logik. Da je Datenpunkt nur eine Regular Expression ausgewertet wird (also hier in dem Beispiel 4 Stück), ist das für den TWS vermutlich ein Kinderspiel.

Für mehr Devices/Datenpunkte in der Logik einfach die entsprechenden Blöcke verfielfältigen (oder löschen) und die Variablen-Nummer anpassen.
Falls sich die Logik dann nicht speichern lässt, aber keine fehlerhaften Zeilen markiert, ist ziemlich sicher irgendwo die Variablen-Nummerierung durcheinander.

Hier die Custom-Logik zur eurer Verfügung:
► Text zeigen
VG
Stefan
Zuletzt geändert von AndererStefan am Fr Mai 01, 2026 11:46 pm, insgesamt 1-mal geändert.
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache
Antworten

Zurück zu „HTTP-API, REST & Web-Abfragen“