Seite 2 von 2

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

Verfasst: So Mai 25, 2025 8:50 pm
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.

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

Verfasst: So Mai 25, 2025 9:18 pm
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

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

Verfasst: So Mai 25, 2025 9:24 pm
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

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

Verfasst: Fr Mai 01, 2026 11:44 pm
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