[Neues Modul] 74_AutomowerConnect, Husqvarnas OpenAPI

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

Vorheriges Thema - Nächstes Thema

isy

Bin mir nicht sicher mit deiner Begründung. Es gab nur den einen Change, also die Installation der neuen Modul-Version.

Ich habe jetzt die Version 27625 2023-05-29 01:26:46 geladen und mit den Koordinaten von gestern versorgt.
Sieht wieder normal aus.

Jetzt zurück zur heutigen Version mit den gestrigen Koordinaten: Alles verschoben.
Eingabe den heutigen, geänderten Koordinaten: Wieder ok.

Das deutet darauf hin, dass evtl. in der Programmlogik eine Berechnung geändert wurde.
Meinen Post hatte ich als Hinweis auf einen möglichen Bug verstanden.

Die Grafik ist für mich eine schöne Ergänzung und sie lässt sich ja leicht verschieben.
Das ist also keine Problematik, die die Funktion des Moduls beeinträchtig.




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

Ellert

An der Berechnung der Positionen hat sich nichts geändert, aber es werden nicht mehr immer alle Daten aktualisiert.
Beim ersten Aufbau der Detailansicht werden die mapDesignAttributes übertragen, die Ladestationskoordinaten, die Grundstücksgrenzkoordinaten, die Mähbereichsgrenzkoordinaten und die Koordinaten des bereits vorhanden Mäherpfades.
Wenn neue Positions oder es eine Fehlermeldung gibt werden nur noch die Positionsdifferenzdaten oder Fehlerdaten zur Aktualisierung der Karte übertragen. Vorher wurden bei jeder Aktualisierung alle Daten übertragen.

Als Koordinaten der Ladestation wird zuerst die Mitte Deutschlands genommen, wenn es Koordinaten des Mähers in der Ladestation gibt, dann werden die genommen. Falls aber das Attribut für die Ladestationskoordinaten gesetzt ist, dann wird die LS mit diesen Koordinaten angezeigt. Die berechnete Position der Ladestation verändert sich nur, wenn die Detailansicht neu geladen wird, dass ist aber nur nach einem Neustart oder bei Definition der Fall und nicht im eingeschwungenen Zustand. Wenn das stört, könnte ich das zurück bauen.

Wenn die Bildgröße mapImageWidthHeight nicht angegeben ist, wird '350 650' genommen.

Wenn mapImageCoordinatesToRegister nicht angegeben ist, werden die Extremwerte der vorhandenen Positionsdaten genutzt.

Wenn scaleToMeterXY nicht angegeben ist, dann wird die Skalierung verwendet, die in der Mitte Deutschlands gilt (67425, 108886).

Wenn mapImageCoordinatesUTM angegeben wird und vorher mapImageCoordinatesToRegister angegeben wurde dann wird scaleToMeterXY für die Lage des Mähbereiches berechnet.

Also, je nachdem was vorher gesetzt war oder nicht kann es zu unterschieden in der Skalierung oder Registrierung kommen.

Einen Fehler kann ich nicht erkennen.

Über die Genauigkeit der GPS-Daten sagt Husqvarna hier etwas: GPS-Verfolgung in der Automower® Connect-App

Diese Genauigkeit kann ich bestätigen für den AM430x. Ich würde mich wundern, wenn es keine Abweichungen beim Mäherpfad gibt. Mit AIM (Genauigkeit 1m) oder EPOS soll es wohl besser sein.

RobertSch

Zitat von: Ellert am 30 Mai 2023, 17:14:37Danke für den Hinweis, hab's eingecheckt, ab morgen im Update und jetzt im Repository.

Moin Ellert!

Könntest du an der Stelle nochmal nachhelfen? Du hast zwar den Aufruf in dein Package eingefügt, leider an einer Stelle, wo es nichts bringt. Du müsstest das einmal vor das package (Zeile 27), also beispielsweise in Zeile 26 setzen. Den Fehler haben wahrscheinlich eh nicht viele, denn sobald ein Modul die Funktion schon mal eingebunden hat, dann ist sie überall verfügbar. Allerdings, wenn du eine neue FHEM Instanz aufsetzt und dann das AutomowerConnect Modul einsetzt, dann fehlt eben diese Funktion noch. Deshalb muss sie bereits global eingebunden werden, sonst meckert er über die fehlende Sub Routine und stürzt ab.

Auszug der Fehlermeldung im Log:
Undefined subroutine &main::timelocal called at ./FHEM/74_AutomowerConnect.pm line 248
Wenn die Zeile vor dem package eingefügt wird, verschwindet diese Meldung und das Modul funktioniert einwandfrei.

Gruß
Robert

Ellert

Danke nochmal für Deine Hilfe, hab's korrigiert und eingecheckt.

timelocal wird jetzt im Package aufgerufen.

Diese Fehler fallen bei mir nicht auf, weil ich kein frisches System habe.