[Neues Modul] 74_AutomowerConnect, Husqvarnas OpenAPI

Begonnen von Ellert, 17 Januar 2023, 14:33:07

Vorheriges Thema - Nächstes Thema

Ellert

FHEM-Wiki: Modul: AutomowerConnect

Die Module AutomowerConnect und AutomowerConnectDevice sind eine weitere Möglichkeit Mähroboter von Husqvarna in FHEM einzubinden.

Es gibt schon einige Module, die den Automower bedienen können:

  • Das Robonect Modul kommt nicht in Frage da die Mähfläche nicht mit WLAN abgedekt ist und der Mäher ohnehin ein integriertes Connect Modul hat.
  • Mit dem Gardena-Modul wäre es ein Umweg, falls es funktioniert. Ich habe es probiert - hat nicht geklappt. Falls es dennoch funktioniert, lasst es mich wissen, dann spare ich mir die weitere Arbeit.
  • Das Modul HusqvarnaAutomower ist o.k., ein paar Sachen haben mich gestört, der Mähplan, Scheinwerfer und Schnitthöhe kann nicht bedient werden, das Passwort liegt offen vor, die Fehlermeldungen fehlten.
AutomowerConnect: Dieses Modul greift auf die offizielle Husqvarna Automower Connect Api zu und bildet das Device (FHEM-Gerät) für einen Automower ab und stellt gleichzeitig einen Host für weitere Automower dar.

AutomowerConnectDevice: Dieses Modul nutz den Host und bildet die Devices (FHEM-Gerät) weiter Automower ab.

Durch das zweistufige Konzept wird der Verkehr zur Husqvarna Cloud reduziert und die Systemlast gesenkt.
Ein kürzeres Abfrageintervall als 600s ist nicht sinnvol da der Automower selbst nur alle 10 Minuten an die Cloud sendet und daher die Daten erst nach 15 Minuten in der Cloud zur Verfügung stehen.
So verstehe ich jedenfalls Husqvarnas Hinweis zum Zugriff über Websocket:

ZitatThere is a timeout of 10 minutes in the mower to preserve data traffic and save battery that makes the events to be sent every 15 minutes.
Mit der Nutzung einer Websocket Verbindung werden Daten auch ereignisnah übertragen.

Die Module können das, was ich vermisst habe und basieren letztlich auf dem Modul HusqvarnaAutomower und ein paar Dinge kommen vom BOTVAC Modul.

Voraussetzungen

Anmeldung im Husqvarna Developer Portal: https://developer.husqvarnagroup.cloud/docs/get-started
  • Dort eine Application anlegen. Der Benutzername und das Passwort der App sollten funktionieren.
  • Die Authentifizierungs Api und die Automower Connect Api der Application zuweisen.
  • Der erzeugte Application Key und das Application Secret bilden die Zugangsdaten für das AutomowerConnect Modul.

Erster Mäher und weitere mit jeweils einem eigenen Application Key:
define MyMower AutomowerConnect <Application Key>
set MyMower client_secret <Application Secret>

Weitere Mäher
[s]define MyAdditionalMower AutomowerConnectDevice MyMower 1 [/s]

Wesentliche Eigenschaften

  • Das Modul kann parallel zu einer anderen Definition des gleichen Mähroboters parallel genutzt und getestet werden.
  • Der Pfad des Mähroboters kann dargestellt werden, mit oder ohne Hintergrundbild. Auf die Liveeinbindung von Google Earth habe ich verzichtet, Google weiß schon genug.
  • Die Lage der Mähfläche muss angegeben werden (obere linke Ecke und untere rechte Ecke).
  • Die Angabe Longitude und Latitude erfolgt in Dezimalgrad, z.B. aus Google Earth.
  • Die gewünschte Größe der Anzeigefläche, bzw des Hintergrundbildes muss in Pixel angegeben werden.
  • Die Position der Ladestation kann angegben werden als Dezimalgrad.
  • Der Verbindungspunkt der Ladestation zum Pfad kann festgelegt werden (links, rechts, oben, unten und mitte).
  • Die Grundstücksgrenze und die Mähbereichsgrenze können angegeben werden als Liste in Dezimalgrad (Longitude,Latitude+Linefeed). Die letzte Zeile darf kein Linefeed enthalten.
  • Fehlermeldungen des Mähroboters werden angezeigt.
  • Der Mähplan kann editiert werden.
  • Alle über die API angebotenen Aktionen können ausgeführt werden.
  • Scheinwerfer und Schnitthöhe können bedient werden.
Einige Statistische Daten werden angezeigt oder berechnet:
  • Geschwindigkeit im letzten Interval
  • gefahrene Strecke und übermähte Fläche für den aktuellen Tag, die aktuelle Woche, sowie für den letzten Tag und die letzte Woche.
Im Wirbetrieb wird der Mäherpfad mit beliebig vielen Wegpunkten angezeigt, während der Entwicklung werden nur die letzten 50 Wegpunkte angezeigt.

Weitere Hinweise gibt es in der Commandref.

Wie eine Karte mit Hintergrundbild Grenze, Mähbereich und Pfad des Mähroboter zu erstellen ist, steht jetzt im FHEM-Wiki: Modul: AutomowerConnect

Ich würde mich freuen, wenn sich Tester finden, die einen Automower mit Connect-Modul in der Ladestation betreiben würden, und ihre Erfahrungen teilen.

Ist die Beschreibung wie man eine Karte einbindet ausreichend?

Es ist ein Bild angehängt mit Grenze, Mähbereich und Mäherpfad (sieht aus als schleiche er sich heraus, um die Umgebung zu erkunden)

Edit: Module gelöscht

Die Module werden über das offizielle Update verteilt.

Tipps
Frontend für die Raumansicht
Es lässt sich mit webCmd und webCmdLabel ein einfaches Frontend für die Raumansicht basteln, wenn der Name geändert wird kann es über Raw definition (das + vor der Befehlszeile) eingespielt werden.
attr am430x0 webCmd Pause:ParkUntilFurtherNotice:Park:ParkUntilNextSchedule:Start:ResumeSchedule:cuttingHeight:headlight
attr am430x0 webCmdLabel Stop:\
:Park for:min\
:Run for:min&emsp;;&emsp;;&emsp;;\
:Height (1,5+:x0,5) cm Light

Readings ergänzen

Einige Daten des Mähers werden in Readings angezeigt. Wem das nicht genügt kann Readings über das Attribut userReadings ergänzen.
Der Trigger für die userReadings ist connected.
Den Hashpfad findet man in den Listen MowerData und StatisticsData.

Beispiel: Erzeugen des Reading serialnumber mit dem Hashpfad $hash->{helper}{mower}{attributes}{system}{serialNumber}
attr <name> userReadings serialnumber:connected {$defs{$name}->{helper}{mower}{attributes}{system}{serialNumber}}

CoolTux

Hallo Ellert,

Es gibt zum speichern von Passwörtern in Modulen das offizielle Core Modul Passwords

https://git.cooltux.net/FHEM/mod-Password

Ist für eine einfachere Integration in FHEM Modulen gedacht.



Grüße
Marko
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Ellert


Ellert


Ellert

Die Module gibt es ab morgen im Update, das macht das Testen einfacher.

dinkel75


RobertSch

Vielen lieben Dank für dieses Modul!

Ich habe es bereits eingerichtet, kann allerdings noch kein weiteres Feedback da lassen, da sich unser Mäher derzeit in der Winter-Wartung befindet. Sobald er wieder da ist, werde ich weiter testen.

Beim Anlegen ist mir aber aufgefallen das sich die fhem Instanz aufhängt, nachdem das Gerät definiert wurde. Kam also erst gar nicht dazu den Secret Key einzutragen. Habs dann direkt in die fhem.cfg geschrieben, seitdem läufts ohne Probleme. Connected ist er, zeigt aber wegen der Wartung derzeit einen Fehler an, was aber mit der App überein stimmt.

LG
Robert

Ellert

Danke für die Rückmeldung.

Aufhänger habe ich noch nicht beobachtet, schaue ich mir aber nochmal an.

Team-Menge

Danke für das neue Modul! Klingt vielversprechend  ;D

Momentan kann ich zwar noch nicht testen, da sich mein Mäher noch im Winterschlaft befindet, aber ich habe es schon einmal installiert.

Dabei musste ich allerdings feststellen, dass meine komplette fhem-Installation (auf RaspBerryPI 3) nach der Installation des Moduls sehr langsam auf alle Eingaben reagiert oder sich sogar komplett aufhängt. Nach deaktivieren des Moduls (nur extern über putty möglich) läuft alles flüssig wie vorher.

Da es beim state "authenticated" anzeigt, gehe ich 'mal davon aus, dass es das "client_secret" eingelesen hat.

Ellert

So, der Absturz  beim Define ist behoben und die Fehlerbehandlung ist verbessert, ab jetzt im SVN und morgen im Update.

Der Bug beim Define ist mir leider nicht aufgefallen, weil ich mit einem bereits definierten Gerät gearbeitet habe und das client secret schon gespeichert war.

Ja, die meisten Mähroboter sind jetzt wohl noch im Winterschlaf. Wer auf eine Karte mit dem Weg des Mähers wert legt, könnte in Ruhe alles vorbereiten.

@Team-Menge, das träge Verhalten hängt möglicher Weise mit dem Bug beim Define zusammen, und in dem Zusammenhang wurde auch "authenticated" falsch angezeigt. Ich teste auf einem Pi B da läuft alles flüssig.

Ich rate daher dringend zu einem Update.

Danke an alle die testen, das ist hilfreich.

dinkel75

Bei mir auch installiert - läuft.
Aber wie bei den Anderen - Winterruhe  :D

Team-Menge

Hallo Ellert,

bei mir läuft es jetzt auch erst einmal. Danke für die Anpassungen. Weitere Test folgen demnächst nach der Winterruhe.

LG

RobertSch

Zitat von: Ellert am 27 Januar 2023, 19:03:44

Ja, die meisten Mähroboter sind jetzt wohl noch im Winterschlaf. Wer auf eine Karte mit dem Weg des Mähers wert legt, könnte in Ruhe alles vorbereiten.


Habe gerade mal das mit der Karte gemacht und muss sagen, das ging einfacher als erwartet. Lediglich den Screenshot so zu setzen, das es am Ende mit den Koordinaten wieder 100% übereinstimmt war etwas tricky. Ging aber auch nach zwei Versuchen ganz gut. Danke für diese Art der Lösung!

P.S.: Zum bearbeiten/anpassen der Koordinaten aus der kml-Datei, kann man sehr gut mit Notepad++ und dessen Suchen/Ersetzen Funktion arbeiten um weniger händische Arbeit zu verrichten.

Ellert

Ab heute gibt es noch ein Featureupdate. So langsam gehen mir die Ideen aus.

Es sind ein paar Readings weniger und dafür die Inhalte kompakter.

Es können 2 Listen angezeigt werden, die Fehlernummer mit Bedeutung und ein paar interne Daten.

Ein Reading ist neu: statistics_newGeoDataSets. Es zeigt die Zahl der im Intervall dazu gekommenen Datensätze an. 50 Datensätze werden in der Cloud gespeichert.
Wenn das Reading immer 50 anzeigt, dann könnte das ein Hinweis sein , dass das Intervall zu lang ist und ggf. Datensätze verloren gehen.


Für den eiligen Anwender wird ohne weitere Einstellungen der Mäherpfad und der vermutliche Standort der Ladestation angezeigt.
Mäher mäht: Der Pfad ist rot dargestellt.
Mäher parkt: Der Pfad ist grau dargestellt.

Zum Testen steht mein Mäher in der Ladestation, etwa alle halbe Stunde gibt es eine neue Position, die Wiederholgenauigkeit der Positionsmessung ist hier im Dachgeschoss miserabel, das hatte ich schon erwähnt.


Mit dem heutigen Update lässt sich mit webCmd und webCmdLabel ein einfaches Frontend für die Raumansicht basteln, wenn der Name geändert wird kann es über Raw definition (das + vor der Befehlszeile) eingespielt werden.


attr am430x0 webCmd Pause:ParkUntilFurtherNotice:Park:ParkUntilNextSchedule:Start:ResumeSchedule:cuttingHeight:headlight
attr am430x0 webCmdLabel Stop:\
:Park for:min\
:Run for:min&emsp;;&emsp;;&emsp;;\
:Height (1,5+:x0,5) cm Light


Und Danke für eure Rüchmeldungen.

PS. Und denkt an fheminfo send damit die Statistik stimmt  ;)

Ellert

Damit die Detailansicht etwas kompakter wird, werden viele Mäherdaten nicht mehr in Readings geschrieben.

Diese Daten können über 4 Listen angezeigt werden InternalData, errorCodes, MowerData und StatisticsData. In den beiden letzten werden die Hashpfade angezeigt, damit können bedarfsweise userReadings angelegt werden.
Der Trigger für die userReadings ist connected.

Beispiel: Erzeugen des Reading serialnumber mit dem Hashpfad $hash->{helper}{mower}{attributes}{system}{serialNumber}

attr <name> userReadings serialnumber:connected {$defs{$name}->{helper}{mower}{attributes}{system}{serialNumber}}

Ellert

Begründung für die verliebenen Readings

api_MowerFound: In der Liste aller gefundenen Mäher ist die Zuordnung der Mähernummer zum Mähernamen angegeben. Das ist zur Identifizierung notwendig, wenn mehrere Mäher vorhanden sind.
api_token_expires: Das Token ist 24h gültig, hier kann man auf einen Blick erkennen, ob es regelmäßig aktualisiert wird.
batteryPercent: Alle battriebetriebenen Geräte haben irgend ein Batteriereading.
mower_activity, mower_mode, mower_state, planner_overrideAction planner_restrictedReason: Diese Readings begründen den aktuellen Zustand des Mähers und zeigen im Zusammenspiel eine Abweichung vom Sollzustand.
mower_commandStatus: Hier ist zusehen, ob ein Befehl erfolgreich gesendet wurde.
mower_errorCode, mower_errorCodeTimestamp, mower_errorDescription: Diese Readings markieren eine Abweichung vom normalen Betrieb in menschenlesbarer Form und sind die Grundlage zur Fehlerbehebung.
settings_cuttingHeight, settings_headlight: Sie zeigen den Istzustand als Entscheidungsgrundlage für Änderungen.
state: Dieses Readingzeigt den Zustand des Arbeitsfusses im FHEM-Gerät an und dient als Auslöser für AutomowerConnectDevice Geräte.
statistics_newGeoDataSets: Ist notwendig um ggf. die Intervalldauer begründet zu korrigieren.
statistics_numberOfCollisions: Anhaltspunkt zur evtl. Korrektur des Begrenzungkabel.
status_Timestamp, status_TimestampDiff, status_TimestampOld: Ist in der Betrachtung zusammen mit newGeoDataSets sinnvoll.
status_connected: Damit ist erkennbar ob der Mäher mit der Cloud verbunden ist, und liefert eine mögliche Fehlerursache.
system_name:  Mit diesem Reading ist die Identifizierung des Mähers im menschenlesbarer Form möglich.


Noch ein Beispiel für zum Erstellen vermisster Readings: lastLatitude lastLongitude

attr <name> userReadings lastLatitude:connected {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{latitude}},\
lastLongitude:connected {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{longitude}}



Ab morgen steht ein Update zur Verfügung.

Die gemeinsam genutzten Subroutinen von AutommowerConnect und AutommowerConnectDevice wurden in ein Bibliotheksmodul verlagert.
Das macht die Module kleiner und vereinfacht die Pflege.
Ein paar Kleinikeiten wurden bereinigt, die sich bei der letzten Überarbeitung eingeschlichen haben.

Bei bei Update ist ein FHEM Restart Pflicht.

shutdown restart

Ellert

Mit dem Update, das morgen zur Verfügung steht gibt es ein paar Neuerungen.

Die Fehlermeldung und Fehlerort wird auf der Karte angezeigt.
Es kann eine Hintergrundfarbe angegeben werden.
Die Farben und die Art der Linien können geändert werden.
Es werden für alle Aktivitäten die Pfade angezeigt, wie folgt gruppiert:

- MOWING
- CHARGING|PARKED_IN_CS
- Der letzte zum Fehler gehörende Pfad mit Markierung.
- Zusammengefasst alle anderen Aktivitäten UNKNOWN|NOT_APPLICABLE|GOING_HOME|LEAVING|STOPPED_IN_GARDEN

dinkel75


outhouse

Hallo Ellert

Aktuell betreibe ich einen Husqvarna 315 mit dem Robonect-Modul und einer Rolltor-Garage (Relais). Das Modul sendet beim Start des Mowers frühzeitig den Befehl, das Tor zu öffnen (bzw. verzögert den Start des Mowers um ein paar wenige Sekunden) und sobald der Mower parkiert hat, es wieder zu schliessen.

Nun möchte ich den 315 mit dem 415x ersetzen und diesen ohne das Zusatzmodul von Robonect (da AutomowerConnect bereits enthalten ist) betreiben.

Damit beim Start des Mowers das Rolltor rechtzeitig öffnet (Tor benötigt ca. 4 Sekungen bis es ganz offen ist), müsste ich wohl - sofort nach dem Start (mittels DOIF etc.) - eine Pause einlegen, den Öffnungsbefehl via notify ans Tor senden und dann den Mower weiter arbeiten zu lassen.

Eine andere Lösung wäre, wenn man das Schleifensignal (Begrenzung) auslesen könnte. Im ECO-Modus schaltet dieses ca. 4 Sekunden vor dem Start des Mowers ein (also ideale Zeit, um das Öffnen des Tores zu veranlassen).

Frage. Kann mit deinem Modul der Start des Schleifensignals ausgelesen werden?

Gruss

Chris
Raspberry 3 B+ mit Raspbian Buster Lite und FHEM-Image 6.2 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

Ellert

Die API bietet das Schleifensignal nicht an, daher kann das Modul das Schleifensignal nicht auslesen.

Man kann aber den im Mower hinterlegten Zeitplan auslesen und könne dann das Tor vor dem Start öffnen und beim Wechsel zu PARKED_IN_CS oder CHARGING schliessen.

Wenn der Start automatisiert über das Modul erfolgt, könnte das Tor automatisiert entsprechend vorher geöffnet werden.

4 Sekunden zu pausieren ist eine ziemlich sportliche Anforderung.

Die Reaktion des Mowers auf einen vom Modul gesendeten Befehl liegt nach meinen Beobachtungen eher im Bereich von Minuten

outhouse

Zitat von: Ellert am 26 März 2023, 00:50:57Wenn der Start automatisiert über das Modul erfolgt, könnte das Tor automatisiert entsprechend vorher geöffnet werden.

Hallo Ellert

Danke für die Ausführungen

Chris
Raspberry 3 B+ mit Raspbian Buster Lite und FHEM-Image 6.2 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

outhouse

Ellert

Ich habe inzwischen das Modul installiert und mit dem neuen 415X verbunden. Der "state" lautet auf connected.

Frage 1: Die API sendet nicht bei jedem Statuswechsel (mähen, Heimweg, parkieren etc.) die neue "mower_activity" an das Modul?

Frage 2: Zum Beispiel beim Befehl "set cuttingHight" erhalte ich beim Reading "mower_commandStatus" den Code "ERROR statuscode 400"

Ist da irgendetwas (noch) nicht richtig verbunden?

Gruss

Chris
Raspberry 3 B+ mit Raspbian Buster Lite und FHEM-Image 6.2 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

Ellert

Zu 1: Ja, das ist richtig, sie wird alle 10 min abgefragt, da wird schon mal eine Aktivität verschluckt, s. Commandref: Limit Automower Connect API
Zu 2: Kann sein, im Log sollte mehr stehen.
Zu Unnummeriert: Wenn ich dazu etwas Qualifiziertes sagen soll, dann solltest Du mehr Infos liefern, also das Übliche, Logs, List und was sonst noch aussagekräftig ist.

outhouse

Zitat von: Ellert am 26 März 2023, 00:50:57Zu 1: Ja, das ist richtig, sie wird alle 10 min abgefragt, da wird schon mal eine Aktivität verschluckt, s. Commandref: Limit Automower Connect API

Daher die "sportlichen" 4 Sekunden im Beitrag #19 :)

Wenn ich also den Mower mit dem Modul starte, erhalte ich den neuen Status unter "mower_activity" (im schlechtesten Fall) nach ca. 10 Minuten. Da frage ich mich natürlich, was genau der Nutzen des Moduls - ausser dem Auslesen der Daten - sein soll.

Auf der App des Handys wird der jeweilige neue Status innert wenigen Sekunden angezeigt. Heisst das nicht, dass die "Automower Connect API" den Status aktiv versendet (Sorry, bin völliger Laie was EDV betrifft).

Gruss

Chris
Raspberry 3 B+ mit Raspbian Buster Lite und FHEM-Image 6.2 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

Ellert

Die App greift auf eine nicht öffentliche API zu, die z.T. gehackt wurde und vom Modul HusqvarnaAutomower genutzt wird.

Zitat von: outhouse am 07 April 2023, 09:33:44Daher die "sportlichen" 4 Sekunden im Beitrag #19 :)

Nein, Befehle werden unabhängig vom Abfrageintervall gesendet. Es sind die Laufzeiten/Antwortzeiten auf dem Weg von FHEM über LAN/WLAN, Internet, Husqvarna Cloud Server, über Mobilfunk zum Mäher und die Verarbeitung im Mäher und zurück.

Im Reading "mower_commandStatus" wird die Antwort aus Sicht des Cloudservers dargestellt (Befehl O.k./Fehler, Befehl im Befehlsstack des Servers). Ob der Befehl im Mower angekommen ist oder gar ausgeführt wurde ist aus der Antwort nicht ersichtlich.


Ellert

Mein Mähroboter ist jetzt im Wirkbetrieb, dabei habe ich beobachtet das beim Mähen etwa alle 30 s und beim Parken/Laden etwa alle 42 min ein Geodatensatz erzeugt wird.

Damit kann man die benötigten Datensätze  für die Darstellung der Mähstrecke abschätzen, um sie im Attribut numberOfWayPointsToDisplay anzugeben, default wird 5000 sein.

Reismann

Hallo zusammen,

irgendwie werde ich aus den Farben der Pfade auf der Karte nicht schlau. Ich sehe Pfade in Rot, Grün und Grau. Rot scheint der aktuelle Pfad zu sein. Wofür steht dann Grün und Grau?

Ellert

Rot für Aktivität MOWING
Grau für CHARGING/PARKED_IN_CS
Grün für Alle anderen AKtivitäten, ausser im Fehlerfall
Magenta für NOT_APPLICABLE bei Fehler (der Weg im Intervall in dem der Fehler auftritt).

Grau und Grün sind als experimentell anzusehen, da der Informationsgehalt gegen null geht.

Ein Pfad wird nicht angezeigt, wenn die Zuordnung nicht eindeutig ist, also beim Wechsel einer Aktivität im Intervall, daher können Lücken in der Darstellung entstehen.

Letztlich soll der Pfad beim Mähen ein Bild von Gleichmässigkeit der Abdeckung ergeben, um ggf. Schwachstellen aufzudecken oder Fernstartpunkte festzulegen. Die Genauigkeit ist allerdings nicht sehr hoch, da nicht für jeden Richtungswechsel ein Geodatensatz erzeugt wird.

Es kann also sein, dass auf der Karte Lücken dargestellt werden, die auf dem Rasen nicht vorhanden sind.

Reismann

Gibt es eine einfache Möglichkeit die mowingAreaLimits in eine definiertze Richtung zu verschieben? Ich hatte die wie in der Anleitung beschrieben aus Google Earth raus gezogen. Das passt auch von Größe und Form soweit ganz gut. Ich müsste ledigloich die ganze Karte um ein klein wenig nach links und nach oben verschieben, damit die eingezeichneten Pfade auch innerhalb der Grenzen liegen. Wäre ideal, wenn es ein Attribut mit X und Y Offset geben würde, wo man die Korrektur einfach eintragen kann. Da ich ein sehr komplexes Grundstück habe, will ich ungern ~50 Koordinaten neu mit einem Offset aufnehmen.

Ellert

Wegen der mäßigen Genauigkeit der GPS-Daten aus dem Mäher. reicht es vielleicht die Karte zu verschieben, also mapImageCoordinatesToRegister anzupassen, falls keine Gründstücksgrenze eingezeichnet ist, die passt.

Zum Verschieben der Mähbereichsgrenze würde ich eine Tabellenkalkulation verwenden. Die Koordinaten kopieren und  daneben mit einer Formel den Offset addieren und die berechneten Werte zurück ins Attribut kopieren oder im CSV-Format exportieren und das kopieren.. Eventuell noch den Dezimaltrenner/Feldtrenner mit suchen und ersetzen anpassen.

So könnte man auch eine Streckung/Dehnung der Grenze realisieren.

Motivierte linke Hände

Moinsen, vielen Dank für das Erstellen dieses Moduls. Während sein Vorgängermodul nach Eingabe von Benutzername und Passwort einfach mit einem Fehler ausstieg, funktioniert dieses hier und liest die Daten des Mähers aus. Freut mich, danke!

Ich versuche mich nun gerade mal an den Feinheiten. U.a. möchte ich mapImageCoordinatesToRegister setzen. Die Daten habe ich als kml aus Google exportiert. Wenn ich sie eingeben möchte, erhalte ich allerdings einen Fehler:

attr myMower mapImageCoordinatesToRegister 19.01234567890123 50.01234567890123führt zu
AutomowerConnect myMower Attr: mapImageCoordinatesToRegister has a wrong format use linewise pairs <floating point longitude><one space character><floating point latitude>
Ich habe mal testweise die Punkte durch Kommas ersetzt, ohne Erfolg. Was mache ich falsch, bitte?
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Ellert

Du hast nur eine Ecke angegeben, es fehlt die zweite Zeile mit der Anderen.

Steht so auch in der Befehlsreferenz:
ZitatObere linke und untere rechte Ecke der Fläche ...
Format: Zeilenweise Paare von Longitude- u. Latitudewerten getrennt durch 1 Leerzeichen.

Ellert

Mit dem aktuellen Update lassen sich die Wochentage festlegen an denen der Wegpunktspeicher gelöscht wird. Voreingestellt ist die Löschung montags.
Die Löschung erfolgt im ersten Intervall nach Mitternacht. Die Einstellung erfolgt über das Attribut weekdaysToResetWayPoints.

Nachtrag zum Beitrag #27:
Mit dem Attribut mapDesignAttributes können einige HTML Attribute gesetzt werden, die das Erscheinungsbild der Kartendarstellung verändern, z.B. die Farben, Strichstärke und der Strichtyp der Pfade und Grenzen.

Zum Bearbeiten können die Vorgabewerte in das Attribut geladen werden, mit:
set <name> defaultDesignAttributesToAttribute

Reismann

Kann es sein das die Fahrten des Mowers von Ladestation zum Startpunkt des Mähens und wieder zurück nicht geloggt werden?

Du darfst diesen Dateianhang nicht ansehen.

Hier mal ein Beispiel von heute. Der Mower ist oben auf die Wiese gefahren und hat dort gemäht. Nach dem erneuten Aufladen in der Station hat er die Große Wiese unten gemäht. Anstatt die Pfade bis zur Station und dann unten auf die Wiese, wurde eine Linie direkt vom Endpunkt des Mähens oben bis zum Startpunkt auf der unteren Wiese eingezeichnet. Das Gleiche dann als er auf die kleine Fläche vor der Ladestation gewechselt ist nach einem erneuten Ladevorgang.

Ist nicht super wichtig, dass das korrigiert wird, aber es verwirrt doch schon ein wenig. Werden die Positionsdaten währnd der Fahrten einfach nicht geloggt? Oder ist das ein Fehler den man eventuell beheben kann?

Ellert

Ja, das ist der Zielsetzung der Darstellung geschuldet. Interessant zum Identifizieren vernachlässigter Bereiche ist nur die Aktivität MOWING.
Neue Datensätze können nur eindeutig einer Aktivität zugeordnet werden, wenn im Intervall die Aktivität nicht wechselt. Deshalb werden nur neue Wegpunkte berücksichtigt bei denen die alte und neue Aktivität MOWING ist. Das führt zu den beobachteten Effekten.

Reismann

Könnte man die anderen Aktivitäten (Verlässt Ladestation und Auf dem Weg zur Ladestation) nicht andersfarbig einzeichnen? Aktuell habe ich dank der neuesten Firmware mal wieder das Problem, dass er manchmal meterweit abdriftet und den vorgesehenen Startpunkt in 8 von 10 Fällen nicht erreicht.

UM dem Problem auf den Grund zu gehen wäre es super interessant für mich, wenn man einfach wählen könnte welche Aktivitäten eingezeichnet werden.

Ellert

In den Aktivitäten LEAVING und GOING_HOME befindet sich der Mäher nur kurz, so dass sie von der API selten erfasst werden und wenn die Aktivitäten auftauchen nur für 1 Intervall. Dann ist nicht feststellbar in welcher Wegpunkt zur alten und zur aktuellen Aktivität gehört.

Ich denke, das erwähnte Problem löst Du schneller mit der Livebeobachtung und wenn's die Firmware ist nur durch abwarten.

outhouse

Dass die (Smartphone-) App von Husqvarna grundsätzlich eine Katastrophe ist, darüber brauchen wir nicht zu streiten. Da kann man weltweit Bankaufträge (halbwegs sicher) innert Sekunden ausführen, aber Husqvarna bringt es nicht auf die Reihe, einen Rasenmäher mittels der App sauber zu steuern (ich weiss, die Aussage gehört nicht hier hin).

Was das Modul 74_AutomowerConnect betrifft, frage ich mich noch immer, welchen (Mehr-) Wert mir dieses Modul bringen soll (siehe auch Beitrag #23).

Zitat von: Ellert am 20 April 2023, 13:44:26In den Aktivitäten LEAVING und GOING_HOME befindet sich der Mäher nur kurz, so dass sie von der API selten erfasst werden und wenn die Aktivitäten auftauchen nur für 1 Intervall.

Zitat von: Ellert am 07 April 2023, 13:08:45Nein, Befehle werden unabhängig vom Abfrageintervall gesendet. Es sind die Laufzeiten/Antwortzeiten auf dem Weg von FHEM über LAN/WLAN, Internet, Husqvarna Cloud Server, über Mobilfunk zum Mäher und die Verarbeitung im Mäher und zurück.

Bei FHEM sind somit Befehle, die in Abhängigkeit der Aktivitäten ausgeführt werden sollen, nicht umsetzbar (öffnen/schliessen einer Passage oder eines Garagentores).

Sogar auf der Husqvarna App wird die Aktivität (inklusive LEAVING und GOING_HOME) innert Sekunden anzeigt. Ich denke, die Antwortzeiten nehmen denselben weg (über LAN/WLAN etc.) ...
Auch beim IOBroker funktioniert es problemlos. Alle Aktivitäten werden wie bei der App innert Sekunden angezeigt; nichts wird verschluckt.

Solange die minutenlangen Antwortzeiten nicht behoben sind, sehe ich für mich in diesem Modul keine Anwendungsmöglichkeit.

@Ellert: Verstehe mich nicht falsch. Ich habe grossen Respekt vor Personen die solche Module programmieren können. Auch bin ich mir bewusst, dass du eine Menge Zeit und Schweiss in dieses Modul gesteckt hast und noch stecken wirst.

Gruss

Chris
Raspberry 3 B+ mit Raspbian Buster Lite und FHEM-Image 6.2 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

Ellert

@outhouse:
Ich kann Deinen Frust verstehen, hätte ich auch, wenn ich mir einen neuen Mäher gekauft hätte und ich das vom alten Mäher gewohnte Robonect Modul nicht einbauen könnte.

Alternativen hast Du ja selbst genannt, also alles halb so schlimm.

Ellert

Mit dem morgigen Update können Zonen definiert und ein Pfadabschnitt hervorgehoben werden.


Mit der Zonendefinition (Attribut mapZones), soll es möglich werden die Gewichtung der Fernstartpunkte zu bewerten. Die berechnete Gewichtung wird mit dem Getter StatisticsData angezeigt.

Das Reading mower_currentZone zeigt die Zone an , in der der Mäher zuletzt aktiv war inkl. Zahl der Wegpunkte in der Zone und Zahl der Wegpunkte im Intervall.

Mit dem Attribut mowerActivityToHighLight kann ein Pfadabschnitt bezogen auf die Mäheraktivität (Reading mower_activity) hervorgehoben werden.

Der Startpunkt kann bei Bedarf mit der Ergänzung mowingPathDisplayStart="1" im Attribut mapDesignAttributes wieder eingeschaltet werden.

Erläuterungen mit Beispiel stehen in der Befehlsreferez.

Ellert

Das morgige Update enthält eine erweiterte Zonenstatistik. Es wird zusätzlich zum Verhältnis der Wegpunkte in den Zonen auch der jeweilige Anteil der gemähten Fläche dargestellt.

Ellert

Mit dem morgigen Update ist es möglich in selbst definierten Zonen die Schnitthöhe automatisch zu setzen, wenn der Mäher sich in der Zone befindet.
Beispiel für den JSON-String aus der Befehlsreferenz:
'{
    "01_oben" : {
      "condition" : "$latitude > 52.6484600648553 || $longitude > 9.54799477359984 && $latitude > 52.64839739580418",
      "cuttingHeight" : "7"
  },
    "02_unten" : {
      "condition" : "undef",
      "cuttingHeight" : "3"
  }
}'


dinkel75

Hallo,

kann man die Wegstreckengrafik aus fhem rausbekommen? Ich möchte die in einer anderen Visu verwenden.

Grüße

Ellert

Was mir bekannt ist steht im Wiki https://wiki.fhem.de/wiki/AutomowerConnect.

Grundsätzlich sollte get <device> html funktionieren, wenn die andere Visu das importieren kann.

Depechem

Hallo zusammen, leider bekomme ich kein ordentliches Hintergrundbild passend zu den Mäher Koordinaten hin...

In der App wurde ja automatische mittels AIM eine super Karte mit Grenzen erstellt. Kann man diese bzw. das AIM evtl. gleich mit in FHEM nutzen?

Siehe Foto.
Danke im Voraus
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

ZitatKann man diese bzw. das AIM evtl. gleich mit in FHEM nutzen?

Ich wüsste nicht wie. In der Husquvarna API gibt es keinen Hinweis darauf.

Depechem

Hallo, ich muss noch einmal nachfragen.

Irgendwie klappt es mit der Anleitung nicht so recht mit der Karte.
Sie Anhang.
- Die orangenen Stiche sind die Koordinaten die ich aus der kml Datei in fhem eingetragen habe.
- Das Foto (webp) habe ich extra mal mit den in Google Earth Pro erstellten Punkten aufgenommen
> roter Strich von links oben nach rechts unten = die Koordinaten wurden auch in fhem eingetragen
> rote Umrandung des Mähbereiches extra im Bild gelassen um den Unterschied in FHEM zu sehen

warum ist das so verschoben und wie kann ich das besser hinbekommen?

Vielen Dank im Voraus

RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

Wenn ich nun händisch die Koordinaten bei "mapImageCoordinatesToRegister" anpasse bekomme ich zwar die Karte besser überlappt, nur ist die rote Umrandung des Fotos viel größer als die Koordinaten (orangene Umrandung)

So ungenau kann das doch nicht Sinn des Erfinders sein, oder?
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

gleich noch die nächsten Fragen:

ich möchte gern die Karte in FTUI einbetten. Laut Wiki soll man dies mit "FTUI Widget Readingsgroup " machen.
Das kann ich mir irgendwie nicht vorstellen, bzw. weis ich nicht wie? DOIF und weblink im fhemweb waren ja kein Problem.

weches data-device muss beim data-type="readingsgroup" genutzt werden und müssen in FTUI moch andere Attribute rein?

ich hatte vorher einen Bosch Indego, diese weblink Karte wurde mittels data-type="iframe" data-src="http://192.168.2.111:8083/fhem/INDEGO/INDEGO/map/340" data-fill="yes" data-device="INDEGO" data-get="mapsvgcache_ts"></div> eingefügt.
Nur kann ich nicht sagen welche http dies nun wäre.

--------------------------------------------------------------------------------------------------------------------

weiterhin habe ich userreadings erstellt um Mäherdaten zu erweitern.
Kann  mir jemand sagen wie das userreading
Gesamtfahrzeit:connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalRunningTime}},\ erweitert werden muss um aus den Sekunden, wie in der App als Stunden auszugeben?
Also das dieses userreading automatisch gleich :3600 rechnet, oder muss dafür nochmal ein weiteres userreading erstllt werden.
Vieleicht kann mit jemand die Berechnung als code zeigen.


Vielen Dank im Voraus





RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

und schon die nächste Frage.

Ich möchte in FTUI den aktuellen Status des Mähers anzeigen lassen. Scheinbar wird dies aber schwierig, da aktuell 2 verschiedene Readings mit dem Status gefüllt werden.

mower_state zeigt "IN_OPERATION" oder "PAUSED" an > wenn der Mäher "in der Ladestation ist" wird "IN_OPERATION"oder "PAUSED" angezeigt da dort immer der letzte Status nicht überschrieben wird
mower_activity zeigt "CHARGING" oder "MOWING" an > wenn der Mäher "Pausiert" wird im Status "NOT_APPLICABLE" angezeigt

ich kann dies somit nicht auswerten. Hat dies einen Hintergrund? Oder könnte man das ändern?
Weil so macht das doch eigentlich gar keinen Sinn
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

Und die Gesamtstreckenzeit des Mähers kann auch nicht ausgewertet werden?
In der App wird mir diese Angezeigt. Als userreadings finde ich aber nur Tag, Vortag, Woche und Vorwoche
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

Zitat von: Depechem am 14 Mai 2023, 08:23:25Hallo, ich muss noch einmal nachfragen.

Irgendwie klappt es mit der Anleitung nicht so recht mit der Karte.
Sie Anhang.
- Die orangenen Stiche sind die Koordinaten die ich aus der kml Datei in fhem eingetragen habe.
- Das Foto (webp) habe ich extra mal mit den in Google Earth Pro erstellten Punkten aufgenommen
> roter Strich von links oben nach rechts unten = die Koordinaten wurden auch in fhem eingetragen
> rote Umrandung des Mähbereiches extra im Bild gelassen um den Unterschied in FHEM zu sehen

warum ist das so verschoben und wie kann ich das besser hinbekommen?

Vielen Dank im Voraus



Solche Verzerrungen hatte ich nur, wenn ich das https://wiki.fhem.de/wiki/AutomowerConnect#Koordinaten_ermitteln_mit_Google_Earth_Pro nicht beachtet hatte.

Ellert

Zitat von: Depechem am 14 Mai 2023, 10:35:24gleich noch die nächsten Fragen:

ich möchte gern die Karte in FTUI einbetten. Laut Wiki soll man dies mit "FTUI Widget Readingsgroup " machen.
Das kann ich mir irgendwie nicht vorstellen, bzw. weis ich nicht wie? DOIF und weblink im fhemweb waren ja kein Problem.

weches data-device muss beim data-type="readingsgroup" genutzt werden und müssen in FTUI moch andere Attribute rein?

ich hatte vorher einen Bosch Indego, diese weblink Karte wurde mittels data-type="iframe" data-src="http://192.168.2.111:8083/fhem/INDEGO/INDEGO/map/340" data-fill="yes" data-device="INDEGO" data-get="mapsvgcache_ts"></div> eingefügt.
Nur kann ich nicht sagen welche http dies nun wäre.

--------------------------------------------------------------------------------------------------------------------

weiterhin habe ich userreadings erstellt um Mäherdaten zu erweitern.
Kann  mir jemand sagen wie das userreading
Gesamtfahrzeit:connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalRunningTime}},\ erweitert werden muss um aus den Sekunden, wie in der App als Stunden auszugeben?
Also das dieses userreading automatisch gleich :3600 rechnet, oder muss dafür nochmal ein weiteres userreading erstllt werden.
Vieleicht kann mit jemand die Berechnung als code zeigen.


Vielen Dank im Voraus







Für ReadingsGroup und Iframe bin ich nicht der Richtige, im Wiki sind die Widgets aber beschrieben, das Readingsgroupwidget nutzt get html

Umrechnung in Stunden: hash.../3600 , kein neues Userreading erforderlich.

Ellert

Zitat von: Depechem am 14 Mai 2023, 11:25:57und schon die nächste Frage.

Ich möchte in FTUI den aktuellen Status des Mähers anzeigen lassen. Scheinbar wird dies aber schwierig, da aktuell 2 verschiedene Readings mit dem Status gefüllt werden.

mower_state zeigt "IN_OPERATION" oder "PAUSED" an > wenn der Mäher "in der Ladestation ist" wird "IN_OPERATION"oder "PAUSED" angezeigt da dort immer der letzte Status nicht überschrieben wird
mower_activity zeigt "CHARGING" oder "MOWING" an > wenn der Mäher "Pausiert" wird im Status "NOT_APPLICABLE" angezeigt

ich kann dies somit nicht auswerten. Hat dies einen Hintergrund? Oder könnte man das ändern?
Weil so macht das doch eigentlich gar keinen Sinn

Die Readings kommen so aus der API, wenn Du was Individuelles möchtest, mach es mit Userreadings.

Ellert

Zitat von: Depechem am 14 Mai 2023, 13:03:00Und die Gesamtstreckenzeit des Mähers kann auch nicht ausgewertet werden?
In der App wird mir diese Angezeigt. Als userreadings finde ich aber nur Tag, Vortag, Woche und Vorwoche
Mit einem DOIF sollte es möglich sein die Zeiten für die Aktivität MOWING zu messen oder StatusTimestamp auszuwerten, alternativ gibt es das Statistik Modul, dblog und dbrep.

Ellert

Ergänzung zu #52

Das Attribut mapImageCoordinatesUTM muss nach mapImageCoordinatesToRegister gesetzt werden, die Standartwerte für die Umrechnung gelten für die Mitte Deutschlands und sind daher eher ungenau.

Vielleicht hilft es auch in Google Earth Pro beim Zeichnen in den Linien(Pfad)eigenschaften mit den Einstellmöglichkeiten der Höhenangaben zu experimentieren. Die Linien sollten am Boden liegen, denke ich.

Der Kartenausschnitt muss natürlich aus der gleichen Sicht erstellt werden in der die Linien gezeichnet werden.

Wird die Karte in der 3D Ansicht erstellt, sind perspektivische Verzerrungen Möglicherweise nicht ganz auszuschliessen.

Depechem

Zitat von: Ellert am 14 Mai 2023, 23:34:47Für ReadingsGroup und Iframe bin ich nicht der Richtige, im Wiki sind die Widgets aber beschrieben, das Readingsgroupwidget nutzt get html

Tja das habe ich schon alles probiert, nur ohne Erfolg.
Woher hast du die Info das eine html Karte mittels "FTUI Widget Readingsgroup" anzeigbar sein soll
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

Zitat von: Ellert am 14 Mai 2023, 23:14:27Solche Verzerrungen hatte ich nur, wenn ich das https://wiki.fhem.de/wiki/AutomowerConnect#Koordinaten_ermitteln_mit_Google_Earth_Pro nicht beachtet hatte.

Das habe ich alle beachtet, nur mit der Info "Die Toolbar zum Bild speichern einschalten" konnte ich nichts anfangen. Finde ich im "Google Earth Pro" nicht
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

Zitat von: Depechem am 15 Mai 2023, 09:43:42
Zitat von: Ellert am 14 Mai 2023, 23:34:47Für ReadingsGroup und Iframe bin ich nicht der Richtige, im Wiki sind die Widgets aber beschrieben, das Readingsgroupwidget nutzt get html

Tja das habe ich schon alles probiert, nur ohne Erfolg.
Woher hast du die Info das eine html Karte mittels "FTUI Widget Readingsgroup" anzeigbar sein soll


Readingsgroup bietet den Getter 'get <device> html' , den kann auch AutomowerConnect. Folglich sollte das Widget auch andere Devices die 'get <device> html'  als Getter anbieten anzeigen.

Wie hast Du das Widget inFTUI implementiert?

Ellert

Zitat von: Depechem am 15 Mai 2023, 09:59:57
Zitat von: Ellert am 14 Mai 2023, 23:14:27Solche Verzerrungen hatte ich nur, wenn ich das https://wiki.fhem.de/wiki/AutomowerConnect#Koordinaten_ermitteln_mit_Google_Earth_Pro nicht beachtet hatte.

Das habe ich alle beachtet, nur mit der Info "Die Toolbar zum Bild speichern einschalten" konnte ich nichts anfangen. Finde ich im "Google Earth Pro" nicht

"Google Earth Pro" Datei -> Speichern -> Bild speichern

Ellert

Mit den morgigen Update gilt das Modul 75_AutomowerConnectDevice.pm als veraltet. Dies betrifft nur User, die mehr als einen Automower betreiben und die das Modul AutomowerConnectDevice nutzen.

Laut Statistik gibt es keine User die dieses Modul nutzen. Sollte doch jemand das Modul nutzen, muss er zwingend und umgehend, dh. sofort nach dem Update seine Definitionen auf das Modul AutomowerConnect ändern. Jede Definition benötigt einen eigenen Application Key.

Mit dieser Änderung wird die Nutzung von Websocket zum Datenaustausch vorbereitet. Mit Websocket entfällt das Polling der Schnittstelle und somit kommt die Begrenzung der API auf 10000 Abfragen pro Monat nicht mehr zum tragen. Diese Beschränkung war der Grund für das jetzt veraltete Modul.

Websocket hat den Vorteil, dass die Daten ereignisnah übertragen werden und nicht eine Intervalldauer gewartet werden muss.
Der Vorteil für mich ist, dass ich nur ein Modul warten muss.


Das Update mit Websocketnutzung kommt demnächst, die Tests laufen bisher stabil.

Depechem

Zitat von: Ellert am 15 Mai 2023, 10:08:15Readingsgroup bietet den Getter 'get <device> html' , den kann auch AutomowerConnect. Folglich sollte das Widget auch andere Devices die 'get <device> html'  als Getter anbieten anzeigen.

Wie hast Du das Widget inFTUI implementiert?

Ja so hab ich ihn auch eingebunden, aber das funktioniert leider nicht.

    <section>
  <header>Karte</header>
  <div class="cell">
    <div data-type="readingsgroup" data-device="get RasenroboterAM405X html"></div>
  </div>
    </section>

RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

Ohne get html, so wie im für das widget im wiki beschrieben, ggf. das Polling setzen oder was ftui an eigenen Attributen fordert, da bin ich überfragt.

Depechem

Zitat von: Ellert am 15 Mai 2023, 10:17:54
Zitat von: Depechem am 15 Mai 2023, 09:59:57
Zitat von: Ellert am 14 Mai 2023, 23:14:27Solche Verzerrungen hatte ich nur, wenn ich das https://wiki.fhem.de/wiki/AutomowerConnect#Koordinaten_ermitteln_mit_Google_Earth_Pro nicht beachtet hatte.

Das habe ich alle beachtet, nur mit der Info "Die Toolbar zum Bild speichern einschalten" konnte ich nichts anfangen. Finde ich im "Google Earth Pro" nicht

"Google Earth Pro" Datei -> Speichern -> Bild speichern

Ich habe jetzt nochmal mehrmals probiert und etwas angepasst. langsam wird es genauer.
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

Zitat von: Ellert am 16 April 2023, 19:26:46Mit dem aktuellen Update lassen sich die Wochentage festlegen an denen der Wegpunktspeicher gelöscht wird. Voreingestellt ist die Löschung montags.
Die Löschung erfolgt im ersten Intervall nach Mitternacht. Die Einstellung erfolgt über das Attribut weekdaysToResetWayPoints.

Nachtrag zum Beitrag #27:
Mit dem Attribut mapDesignAttributes können einige HTML Attribute gesetzt werden, die das Erscheinungsbild der Kartendarstellung verändern, z.B. die Farben, Strichstärke und der Strichtyp der Pfade und Grenzen.


Zum Thema Wegpunkte-Anzeige (Striche auf der Karte) habe ich noch eine Frage:
Mit
weekdaysToResetWayPoints 0123456 sehe ich auf der Karte dann nur noch meine täglichen Fahrten? richtg?

Im Umkehrschluss verstehe ich das
attr <name> numberOfWayPointsToDisplay <number of way points> nicht ganz. was bewirkt dieses dann?

Kannst du bitte nochmal erklären wie beide attr gemeint sind.
Ich möchte gern nur die täglichen Fahrstrecken auf der Karte angezeigt bekommen.



RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

Zitat von: Ellert am 18 Mai 2023, 15:47:55Ohne get html, so wie im für das widget im wiki beschrieben, ggf. das Polling setzen oder was ftui an eigenen Attributen fordert, da bin ich überfragt.

nein ohne get html kann es ja nicht gehen. Wenn dann müsste warscheinlich in fhem erst eine Readingsgroup mit der karte erstellt werden, dessen Karte wird dann mit dem "FTUI Widget Readingsgroup" eingebunden.
Aber selbst in FHEM einen Readingsgroup mit der Karte zu befüllen bekomme ich nicht hin. und dies wäre dann alles doppelt gemoppelt.

Irgendwie müsste man raus bekommen ob deine Karte einen html Pfad hätte, diesen man dann einfügt
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

ZitatnumberOfWayPointsToDisplay
Legt die max Größe des Wegpunktspeicher (default 5000) fest, wenn voll, wird durchgeschoben.
ZitatweekdaysToResetWayPoints
Richtig erkannt, aber unter Berücksichtigung der max Größe.

Depechem

Zitat von: Ellert am 18 Mai 2023, 16:34:33
ZitatnumberOfWayPointsToDisplay
Legt die max Größe des Wegpunktspeicher (default 5000) fest, wenn voll, wird durchgeschoben.
ZitatweekdaysToResetWayPoints
Richtig erkannt, aber unter Berücksichtigung der max Größe.


aktuell habe ich testeweise numberOfWayPointsToDisplay auf 20 eingestellt. trotzdem zeigt es mir auf der karter die gleichen vielen Striche der Fahrwege an.
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

Zitat von: Depechem am 18 Mai 2023, 16:26:13
Zitat von: Ellert am 18 Mai 2023, 15:47:55Ohne get html, so wie im für das widget im wiki beschrieben, ggf. das Polling setzen oder was ftui an eigenen Attributen fordert, da bin ich überfragt.

nein ohne get html kann es ja nicht gehen. Wenn dann müsste warscheinlich in fhem erst eine Readingsgroup mit der karte erstellt werden, dessen Karte wird dann mit dem "FTUI Widget Readingsgroup" eingebunden.
Aber selbst in FHEM einen Readingsgroup mit der Karte zu befüllen bekomme ich nicht hin. und dies wäre dann alles doppelt gemoppelt.

Irgendwie müsste man raus bekommen ob deine Karte einen html Pfad hätte, diesen man dann einfügt

Wie gesagt für Frontends bin ich der falsche Ansprechpartner.
Die Karte hat keinen Html-Pfad, den ich bereitstellen kann, die Zeichenarbeit findet im Browser (canvas) statt nicht im Modul.
Ich bin aber für funktionierende Patches offen.

Ellert

Zitat von: Depechem am 18 Mai 2023, 16:41:48
Zitat von: Ellert am 18 Mai 2023, 16:34:33
ZitatnumberOfWayPointsToDisplay
Legt die max Größe des Wegpunktspeicher (default 5000) fest, wenn voll, wird durchgeschoben.
ZitatweekdaysToResetWayPoints
Richtig erkannt, aber unter Berücksichtigung der max Größe.


aktuell habe ich testeweise numberOfWayPointsToDisplay auf 20 eingestellt. trotzdem zeigt es mir auf der karter die gleichen vielen Striche der Fahrwege an.
20 ist ja auch Unsinn, um den zu vermeiden geht nicht weniger als der default, wenn ich mich recht erinnere.

Depechem

Zitat von: Ellert am 18 Mai 2023, 16:48:13
Zitat von: Depechem am 18 Mai 2023, 16:41:48
Zitat von: Ellert am 18 Mai 2023, 16:34:33
ZitatnumberOfWayPointsToDisplay
Legt die max Größe des Wegpunktspeicher (default 5000) fest, wenn voll, wird durchgeschoben.
ZitatweekdaysToResetWayPoints
Richtig erkannt, aber unter Berücksichtigung der max Größe.


aktuell habe ich testeweise numberOfWayPointsToDisplay auf 20 eingestellt. trotzdem zeigt es mir auf der karter die gleichen vielen Striche der Fahrwege an.
20 ist ja auch Unsinn, um den zu vermeiden geht nicht weniger als der default, wenn ich mich recht erinnere.

ok, wäre schön wenn du dies ins Wiki oder commandref noch einfügen könntest.

Nur verstehe ich den Sinn der zwei verschiedenen attr noch nicht ganz.
Mit weekdaysToResetWayPoints kann ich sagen wie viele Tage (Max. 7 Tage) die Fahrwege auf der Karte angezeigt werden. bzw. wann die auf der Karte gelöscht werden.
Mit numberOfWayPointsToDisplay kann ich mehr als 5000 Wegpunkte einstellen > würde aber bedeuten das der Mäher mehr als 5000 Wegpunkte innerhalb 7 Tagen fahren müsste. Wo anders werden die Punkte ja nicht geloggt bzw. benötigt oder? Also das man eine Karte hätte die mir die Tagesfahrtstrecken anzeigt sowie eine Karte die mir die letzten (Beispilsweise) 5000 Wegstrecken anzeigt!?

Ohne mit welechem Hintergrund hast du beide attr erstellt?
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

Zitatok, wäre schön wenn du dies ins Wiki

Wohlformulierte und inhaltlich korrekte Ergänzungen im Wiki darf jeder machen.

Aber erst wenn die Beispilse von heute (Vatertag) verstoffwechselt sind ;)

Zitatdie letzten (Beispilsweise)

Depechem

was bewirkt set ... mapZonesTemplateToAttribute?
Ist nirgends dokumentiert und scheint auch kein attr zu setzen
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert


Ellert

In dem morgigen Update wurde das Modul 75_AutomowerConnectDevice.pm. wie angekündigt gelöscht.

Wer noch eine Definition mit AutomowerConnectDevice hat sollte vor dem Update die Definition auf AutomowerConnect ändern und je Definition einen anderen Application Key verwenden.

Damit steht der Umstellung vom Polling der API auf eine dauerhafte Websocketverbindung mit ereignisnaher Datenübertragung nichts mehr im Weg.

Die neue Version wird demnächst eingecheckt.

@Depechem: Danke fürs Testen und deine Anregungen, einiges findet sich in der neuen Version wieder.

Ellert

#75
Ab dem morgigen Update:

Das Modul wurde mit einer Websocketverbindung zur Husqvarna API ergänzt, damit werden Änderungen ereignisnah angezeigt.

Das Attribut mowerActivityToHighLight steht nicht mehr zur Verfügung. Eine Hervorhebung kann über das Attribut mapDesignAttributes eingestellt werden.
Das Attribut interval wird nicht mehr benötigt , da die Websocketverbindung Events mit Datenupdates sendet.
Das Reading status_TimestampOld wird nicht mehr aktualisiert und darf mit deletereading gelöscht werden. Das Reading status_TimestampDiff sollte ausreichend sein zur Beurteilung der letzten Aktualisierung.
Das Reading state zeigt den Zustand der Websocketverbindung an. Das ist durch DevIo vorgegeben.
Das neue Reading device_state übernimmt die Funktion von state, also auch die Triggerung von userReadings, usw.
Das neue Reading mower_wsEvent zeigt die vom Mäher gesendeten Events(status-event, positions-events, settings-events) an.
Das neue Reading mower_commandSend zeigt den letzten erfolgreich gesendeten Befehl an.
Die vorletzten API-Daten werden nicht mehr gespeichert.
Das Mähericon wird in die Hauptbewegungsrichtung (Nord, Süd, Ost, West) positioniert.

ACHTUNG: Möglicherweise funktioniert der bereits verwendete Application Key (client_id) nicht, es muss dann ein neuer Key erzeugt und verwendet werden, siehe https://developer.husqvarnagroup.cloud/apis/automower-connect-api#websocket

Nach einem fehlerfreien Update sollte einmal save config ? im Frontend durchgeführt werden damit die Löschungen gespeichert werden.[/i]
Browsercache löschen und die Webseite neu laden.

Depechem

Zitat von: Ellert am 23 Mai 2023, 17:09:28Ab dem morgigen Update:

Das Modul wurde mit einer Websocketverbindung zur Husqvarna API ergänzt, damit werden Änderungen ereignisnah angezeigt.

Das Attribut mowerActivityToHighLight steht nicht mehr zur Verfügung. Eine Hervorhebung kann über das Attribut mapDesignAttributes eingestellt werden.
Das Attribut interval wird nicht mehr benötigt , da die Websocketverbindung Events mit Datenupdates sendet.
Das Reading status_TimestampOld wird nicht mehr aktualisiert und darf mit deletereading gelöscht werden. Das Reading status_TimestampDiff sollte ausreichend sein zur Beurteilung der letzten Aktualisierung.
Das Reading state zeigt den Zustand der Websocketverbindung an. Das ist durch DevIo vorgegeben.
Das neue Reading device_state übernimmt die Funktion von state, also auch die Triggerung von userReadings, usw.
Das neue Reading mower_wsEvent zeigt die vom Mäher gesendeten Events(status-event, positions-events, settings-events) an.
Das neue Reading mower_commandSend zeigt den letzten erfolgreich gesendeten Befehl an.
Die vorletzten API-Daten werden nicht mehr gespeichert.
Das Mähericon wird in die Hauptbewegungsrichtung (Nord, Süd, Ost, West) positioniert.

ACHTUNG: Möglicherweise funktioniert der bereits verwendete Application Key (client_id) nicht, es muss dann ein neuer Key erzeugt und verwendet werden, siehe https://developer.husqvarnagroup.cloud/apis/automower-connect-api#websocket

Nach einem fehlerfreien Update sollte einmal save config ? im Frontend durchgeführt werden damit die Löschungen gespeichert werden.[/i]
Browsercache löschen und die Webseite neu laden.

Hallo Ellert,
Ich habe geupdatet. Auch einen neuen Key habe ich erstellt.
Trotzdem kommt immer folgende Fehlermeldung direkt bei öffnen des Moduls.

#FHEMWEB notification:
AutomowerConnectUpdateDetail ( 'RasenroboterAM405X', 'AutomowerConnect', './fhem/AutomowerConnect/RasenroboterAM405X/map', 951, 686, 539, 89, 'top', 65.5998735272603, [ '-', '' ], [ 696,217,605,246,586,161,609,144,647,303,633,282,656,293,641,287,716,226,709,217,667,275,580,266,546,224,482,103,601,107,750,116,746,178,745,108,727,198,760,157,715,124,596,93,609,240,664,271,609,106,554,160,657,164,542,93,573,182,637,295,643,298,639,297,634,267,603,211,587,83,529,122,562,102,583,247,581,181,658,93,608,99,586,212,631,204,608,129,558,139,623,269,620,214,533,93,649,137,647,95,659,167,554,138,602,117,574,260,548,109,541,122,562,123,660,219,548,203,522,127 ], [ 457,76,800,115,739,214,693,184,715,143,709,138,681,183,729,221,675,299,631,268,595,312,585,313,577,322,579,338,570,351,614,390,544,464,516,437,492,468,513,493,385,601,357,586,337,600,315,607,272,577,307,526,307,526,357,563,425,485,443,479,487,422,493,408,492,401,487,396,463,374,500,323,516,321,518,302,496,286,476,267,453,251,477,235,502,220,500,212,489,202,476,194,462,201,452,220,410,194,429,161,437,169,454,146,447,139,469,110,489,136,495,128,477,107,479,101,460,84 ], [ ], [ -951,686 ], [ -14842024,86964963,0,0,-475,343 ], [ -14842024,86964963 ] )
TypeError: null is not an object (evaluating 'div.getAttribute( 'data-'+ type + 'LineDash' ).split')

Und ich sehe nur die Karte aber weder Mäher, noch Fahrstrecke
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

#77
Hast Du "Browsercache löschen und die Webseite neu laden." durchgeführt?

Da auch das Javascript erneuert wurde muss automowerconnect.js auch neu geladen werden. Wenn der Browsercache nicht gelöscht wird, dann wird ggf. die  alte Datei automowerconnect.js geladen. Das führt dann zu Fehlermeldungen.

Da die Farben der Pfade jetzt über das Attribut mapDesignAttributes eingestellt werden, kann im gesetzen Attribut etwas fehlen. Daher einmal das Attribut mit set <name> defaultDesignAttributesToAttribut neu setzen.

Ellert

Ab dem morgigen Update:

Die Statistik wurde nicht berechnet, behoben.
Beim Update der Karte werden nur noch Differenzdaten übermittelt.
Anzeige der täglichen Kollisionen zusätzlich im Reading statistics_numberOfCollisons (täglich/gesammt)
Ein Fehlerspeicher wurde eingebaut und ein Getter errorStack um ihn anzuzeigen

Der Browsercache muss gelöscht und die Webseite neu geladen werden, damit auch das erneuerte Javascript geladen wird.
Falls es dennoch zu Javascriptfehlern kommt, einmal das Attribut defaultDesignAttribues mit set <name> defaultDesignAttributesToAttribut neu setzen damit ggf. fehlende Attribute ergänzt werden.


isy

Moin Ellert,
bei mir funktioniert das Modul nach dem Update nicht mehr.

- Neuer API Key und neues Secret generiert
- Browser Cache gelöscht, andere Systeme (Linux...) genutzt. Alles gleich

Probleme / Meldungen im Log.
- Das wichtigste ist wohl der 403 Error
AutomowerConnect Shaun wsCb: failed with error: HTTP CODE 403
- Auch wird die Karte nicht mehr gefunden. Das lief bis eben, also mit der Vorversion.
AutomowerConnect Shaun readMap: file "" does not exist.
Das Device bleibt also
STATE disconnected
Ein Test im Terminal mit dem Link aus der Husqvarna Bereich "My Applications"
curl -X POST -d "grant_type=client_credentials&client_id= .......zeigt eine Menge Daten, keine FM.

Was kann ich noch tun?

VG Helmut

P.S. Nach Fhem restore geht wieder alles.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Bin ein Stück weiter, ein erneutes Löschen des Caches (Windows 11/ Chrome) UND ein FHEM shutdown / restart führt zum connect des Automowers.

Erstaunlich! Man muss nicht alles verstehen, früher haben wir gesagt, manchmal helfen auch Räucherkerzen. -:)
Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Hallo Ellert,
nach dem das Modul wieder läuft bei mir, habe ich mit den im Attr mapImageCoordinatesToRegister hinterlegten Koordinaten gespielt.
Grund: Die Anzeige des Mähpfades ist zu weit rechts.

Die Koordinaten sind recht lang (u.a. 51.28390226281099) und als erstes habe ich alle 4 verkürzt auf 51.283 (Rest analog).
Beim Anklicken des OK im Bearbeitungsfenster stürzt FHEM komplett ab.

Eingabe sudo systemctl status fhem im Terminal:

Mai 29 10:00:34 fhem systemd[1]: fhem.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Die verkürzten Koordinaten werden nicht gespeichert und ich kann FHEM wieder starten.

Kannst du das nachvollziehen?
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Ellert

Wenn Du die Koordinaten auf 3 Nachkommastellen kürzt liegt die Genauigkeit im Bereich von 60 m und als Nebeneffekt erzeugst Du bei der Berechnung der Skalierungsfaktoren eine Division durch 0, das bringt FHEM zum Absturz.

Die Attribute mapImageCoordinatesToRegister, mapImageCoordinatesUTM, scaleToMeterXY müssen im Zusammenhang betrachtet werden.

Wenn die Koordinaten zur Registrierung (mapImageCoordinatesToRegister) geändert werden, dann muss mapImageCoordinatesUTM vorher gelöscht werden (ggf. auch scaleToMeterXY) und nach mapImageCoordinatesToRegister neu gesetzt werden. Das steht auch in der Befehlsreferenz
ZitatDas Attribut muss nach dem Attribut mapImageCoordinatesToRegister gesetzt werden.

Wenn der Mäherpfad verschoben ist, kann es an den Koordinaten aus dem GPS liegen, das ist wohl vom Mähertyp abhängig. Bei meinem liegt der Pfad auch verschoben, aber jedesmal anders.

Wenn der Pfad systematisch verschoben ist, dann sind die Nachkommastellen im eher in der Nähe der 6. Nachkommastelle synchron zu verschieben.

isy

Ein Weg wird erst zu einem Weg, wenn man ihn geht

Depechem

also ich habe nun das heutige Update gezogen, auch da funktioniert weder die Ansicht des Mähers, noch Fahrstrecke in der Karte.
Seit dem neuen Update bringt das Reading:
state: disconnecteddas neue Reading:
device_state: connected
Das angeblich neue Reading:
mower_wsEvent taucht bei mir gar nicht auf.

Folgendes habe ich gemacht:
- FHEM mehrfach rebootet
- Browsercache mehrfach gelöscht
- Webseite neu geladen
- Application Key bei Husqvarna komplett gelöscht und neu angelgt
- Modul komplett gelöscht und neu angelegt


brachte alles nix....
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

#85
Zitatstate: disconnected
Ist erstmal nicht ungewöhnlich, das Reading wird durch DevIo verwaltet und ohne Event aktualisiert, daher wird im Frontend die Aktualisierung nicht angezeigt.
Zitatdevice_state: connected
Wenn die Detailansicht geöffnet wird bevor device_state auf connected aktualisiert wird, dann ist keine Karte zu sehen.

Nach einer Aktualisierung von device_state auf connected sollte nach neu laden der Detailseite die Karte mit der Ladestation angezeigt werden.

Du hast nicht erwähnt, ob Du das Attribut mapDesignAttributes auf die Standartwerte gesetzt hast. Hast Du das gemacht? Wenn nicht wird die Ladestation vermutlich nicht angezeigt.

Zitatmower_wsEvent
Erscheint erst, wenn über Websocket ein Event angekommen ist. Wenn der Mäher in der Ladestation steht kann das schon mal 840 s dauern. Das Mähericon wird erst angezeigt, wenn über Websocket ein Positionsevent angekommen ist, das kann, wenn in der LS, auch solange dauern.

Der Mäherpfad wird erst angezeigt, wenn mindestenns zwei Positionen gesendet wurden, das kann dann doppelt solange dauern.

Ist die Websocketverbindung tatsächlich disconnected geblieben?

Da würde ich gern den Logauszug mit verbose 4 sehen.

Poste bitte den Revisionsstand der Module aus den Internals VERSION und LIBRARY_VERSION und vom Javascript automowerconnect.js die Version, um das Update zu verifizieren.

Depechem

#86
Zitat von: Ellert am 29 Mai 2023, 17:57:56
Zitatmower_wsEvent
Erscheint erst, wenn über Websocket ein Event angekommen ist. Wenn der Mäher in der Ladestation steht kann das schon mal 840 s dauern. Das Mähericon wird erst angezeigt, wenn über Websocket ein Positionsevent angekommen ist, das kann, wenn in der LS, auch solange dauern.

Der Mäherpfad wird erst angezeigt, wenn mindestenns zwei Positionen gesendet wurden, das kann dann doppelt solange dauern.
es sind bereits Stunden vergangen und ich habe den Mäher extra raus geschickt....


Zitat von: Ellert am 29 Mai 2023, 17:57:56Du hast nicht erwähnt, ob Du das Attribut mapDesignAttributes auf die Standartwerte gesetzt hast. Hast Du das gemacht? Wenn nicht wird die Ladestation vermutlich nicht angezeigt.
ja habe ich

Zitat von: Ellert am 29 Mai 2023, 17:57:56Nach einer Aktualisierung von device_state auf connected sollte nach neu laden der Detailseite die Karte mit der Ladestation angezeigt werden.
Karte mit Ladestation sehe ich ja auch, nur weder Mäher noch Mäherspuren

Zitat von: Ellert am 29 Mai 2023, 17:57:56Ist die Websocketverbindung tatsächlich disconnected geblieben?

ja immernoch

Zitat von: Ellert am 29 Mai 2023, 17:57:56Poste bitte den Revisionsstand der Module aus den Internals VERSION und LIBRARY_VERSION und vom Javascript automowerconnect.js die Version, um das Update zu verifizieren.


#   DEF        f629cc55-51f7-4667-be68-5ca82afe6bc0
#   DeviceName wss:ws.openapi.husqvarna.dev:443/v1
#   FUUID      6459448b-f33f-b0b0-e365-983f2776b380ff35
#   Host       ws.openapi.husqvarna.dev
#   LIBRARY_VERSION 27625 2023-05-29 01:26:46
#   MODEL      Husqvarna Automower� 405X
#   NAME       RasenroboterAM405X
#   NEXT_OPEN  1685384600.93983
#   NR         1889
#   PARTIAL   
#   Port       443/v1
#   SSL        1
#   STATE      disconnected
#   TYPE       AutomowerConnect
#   VERSION    27625 2023-05-29 01:26:46
#   eventCount 30
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Depechem

Zitat von: Ellert am 29 Mai 2023, 17:57:56Da würde ich gern den Logauszug mit verbose 4 sehen.

2023.05.29 20:19:31.708 4: AutomowerConnect RasenroboterAM405X Get: called with ?
2023.05.29 20:20:19.523 4: IP: ws.openapi.husqvarna.dev -> 52.49.240.63
2023.05.29 20:20:19.724 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:20:19.725 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:20:29.135 4: AutomowerConnect RasenroboterAM405X Get: called with InternalData
2023.05.29 20:21:20.366 4: IP: ws.openapi.husqvarna.dev -> 52.18.161.199
2023.05.29 20:21:20.603 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:21:20.604 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:22:20.630 4: IP: ws.openapi.husqvarna.dev -> 3.248.74.26
2023.05.29 20:22:20.938 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:22:20.939 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:23:21.434 4: IP: ws.openapi.husqvarna.dev -> 34.250.104.128
2023.05.29 20:23:21.672 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:23:21.673 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:24:22.076 4: IP: ws.openapi.husqvarna.dev -> 34.250.104.128
2023.05.29 20:24:22.302 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:24:22.303 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:25:22.420 4: IP: ws.openapi.husqvarna.dev -> 54.77.195.62
2023.05.29 20:25:22.818 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:25:22.819 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:26:22.942 4: IP: ws.openapi.husqvarna.dev -> 52.209.97.137
2023.05.29 20:26:23.330 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:26:23.331 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:27:23.577 4: IP: ws.openapi.husqvarna.dev -> 54.77.195.62
2023.05.29 20:27:23.901 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:27:23.902 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:28:23.943 4: IP: ws.openapi.husqvarna.dev -> 34.250.104.128
2023.05.29 20:28:24.533 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:28:24.534 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:29:25.342 4: IP: ws.openapi.husqvarna.dev -> 52.18.161.199
2023.05.29 20:29:25.572 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:29:25.573 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:30:25.992 4: IP: ws.openapi.husqvarna.dev -> 3.248.74.26
2023.05.29 20:30:26.190 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:30:26.191 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:31:03.344 4: AutomowerConnect RasenroboterAM405X Get: called with ?
2023.05.29 20:31:26.291 4: IP: ws.openapi.husqvarna.dev -> 52.18.161.199
2023.05.29 20:31:26.515 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:31:26.516 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:32:26.543 4: IP: ws.openapi.husqvarna.dev -> 52.209.97.137
2023.05.29 20:32:26.803 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:32:26.804 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:33:27.662 4: IP: ws.openapi.husqvarna.dev -> 52.49.240.63
2023.05.29 20:33:27.895 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:33:27.896 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
2023.05.29 20:34:28.018 4: IP: ws.openapi.husqvarna.dev -> 52.49.240.63
2023.05.29 20:34:28.237 4: https://ws.openapi.husqvarna.dev:443/v1: HTTP response code 403
2023.05.29 20:34:28.238 2: AutomowerConnect RasenroboterAM405X wsCb: failed with error: HTTP CODE 403
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

Vielleicht hilft set <name> getNewAccessToken.


ZitatHTTP response code 403
Sieht für mich nach diesem Problem aus(https://developer.husqvarnagroup.cloud/apis/automower-connect-api#websocket):
ZitatIf you get 403 when using Websocket even if the API call works. Try to renew the API key that should do the trick. If you still get 403 check that you get the correct scope when creating the access token (iam:read amc:api). If you don't have the correct scope you need to connect you API key to the Automower API to get the correct scope.

Stimmt der Scope (get InternalData)?

Wenn device_state auf connected steht, dann trift "If you get 403 when using Websocket even if the API call works." zu.

Und dann müssten diese Vorschläge zum Erfolg führen:
ZitatTry to renew the API key that should do the trick. If you still get 403 check that you get the correct scope when creating the access token (iam:read amc:api). If you don't have the correct scope you need to connect you API key to the Automower API to get the correct scope.

renew the API key https://developer.husqvarnagroup.cloud/docs/get-started

Wichtig auch:
Zitatconnect you API key to the Automower API to get the correct scope

Gibt es doppelte Passkey eines Devices in /opt/fhem/FHEM/FhemUtils/uniqueID, nur zur Sicherheit kontrollieren.



Ellert

Mit dem morgigen Update:

Verhindert Division durch 0 beim Attribut mapImageCoordinatesToRegister, wenn die Koordinatendifferenz 0 ergibt.
Verzögerte Websocketöffnung.
Erzwingen eines Access Token wenn ein Client Secret gesetzt wird.