[Neues Modul] 74_AutomowerConnect, Husqvarnas OpenAPI

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

Vorheriges Thema - Nächstes Thema

isy

Hallo Ellert,
mit dieser Seite geht es recht einfach, die Koordinaten für die Karte zu ermitteln.
Evtl. in die Doku mit aufnehmen, wenn nicht schon bekannt.

https://www.koordinaten-umrechner.de/decimal/51.000000,10.000000?karte=EsriSat&zoom=8

Man zoomt auf sein Grundstück und mit 2 Klicks sind die Koordinaten im richtigen Format ermittelt.
Man kann dann auch fix etwas hin und her schieben, um das Bild zu verbessern.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Ellert

Danke für den Hinweis.
Kommt aber nicht in die Befehlsreferenz, weil es eine kommerzielle Seite ist.

Ellert

#92
Mit dem morgigen Update:

Schnelleres Laden des Hintergrundbildes und korrektes Laden nach defmod.
Hinweis in der Befehlsreferenz, dass der Application Key im Developer Portal mit der Automower Connect API verbunden werden muss.

Nur dann kann die Websocketverbindung erfolgreich hergestellt und die damit vebundene HTTP Antwort 403 verhindert werden.

Danke für die Fehlerhinweise und Ergänzungen.

RobertSch

Hallo!

Mir war aufgefallen, dass das Modul nicht mehr lief. Also habe ich nachgeschaut und festgestellt, das die Funktion timelocal nicht aufgerufen werden konnte. Es wäre also sinnvoll, dies hier am Anfang des Modulcodes aufzurufen.

use Time::Local;
Nachdem ich das dem Modul oben hinzugefügt habe, gab es keine Fehlermeldung im Log mehr und fhem stürzt auch nicht mehr ab.

Danke für die ganze Mühe und für dieses tolle Modul!

LG
Robert

Ellert

Danke für den Hinweis, hab's eingecheckt, ab morgen im Update und jetzt im Repository.

dinkel75

Bekomme keine Mower Daten. Erst wenn ich getUpdate aktiviere wird aktualisiert.
Was mach ich falsch?

Ellert

Mit den Infos die Du geliefert hast, würde ich sagen Du  bist zu ungeduldig.

Poste mal ein List des Mähers, den Logauszug ab FHEM Restart bis vor getUpdate mit verbose 4 und die Versionen der 3 Dateien 74_AutomowerConnect.pm, lib/FHEM/Devices/AMConnect/Common.pm und automowerconnect.js.

Hat der Mäher gemäht als Du keine Daten bekommen hast?

dinkel75

Alle 3 Files sind von Heute.

Hier das List:

Internals:
   DEF        051749ee-a43d-4848-a1ab-93d449bfc9a2
   DeviceName wss:ws.openapi.husqvarna.dev:443/v1
   FUUID      6475fa7f-f33f-bb28-27cf-0a590636237f1bc1
   Host       ws.openapi.husqvarna.dev
   LIBRARY_VERSION 27625 2023-05-29 01:26:46
   MODEL      HUSQVARNA AM 315X
   NAME       MyMower
   NEXT_OPEN  1685467741.19556
   NR         1141
   PARTIAL   
   Port       443/v1
   SSL        1
   STATE      disconnected
   TYPE       AutomowerConnect
   VERSION    27628 2023-05-29 22:49:13
   eventCount 34
   READINGS:
     2023-05-30 15:31:31   api_MowerFound  0 => Automower f81bfefc-0e25-46c1-b680-30d3d98bf19d
     2023-05-30 15:31:30   api_token_expires 2023-05-31 01:00:00
     2023-05-30 19:06:54   batteryPercent  35
     2023-05-30 19:06:54   device_state    connected
     2023-05-30 19:06:54   mower_activity  CHARGING
     2023-05-30 18:00:32   mower_commandSend ResumeSchedule
     2023-05-30 18:37:34   mower_commandStatus cleared
     2023-05-30 15:31:31   mower_errorCode -
     2023-05-30 15:31:31   mower_errorCodeTimestamp -
     2023-05-30 15:31:31   mower_errorDescription -
     2023-05-30 15:31:31   mower_mode      MAIN_AREA
     2023-05-30 18:37:34   mower_state     IN_OPERATION
     2023-05-30 17:30:23   planner_nextStart -
     2023-05-30 15:31:31   planner_overrideAction NOT_ACTIVE
     2023-05-30 15:31:31   planner_restrictedReason NOT_APPLICABLE
     2023-05-30 15:31:31   settings_cuttingHeight 1
     2023-05-30 16:04:41   settings_headlight ALWAYS_OFF
     2023-05-30 19:28:01   state           disconnected
     2023-05-30 15:31:31   statistics_newGeoDataSets 0
     2023-05-30 15:31:31   statistics_numberOfCollisions (0/5591)
     2023-05-30 19:06:54   status_Timestamp 2023-05-30 18:55:18
     2023-05-30 19:06:54   status_TimestampDiff 691.616
     2023-05-30 15:31:31   status_connected CONNECTED(1)
     2023-05-30 15:31:31   system_name     Automower
   header:
     Authorization Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjVlZDU2ZDUzLTEyNWYtNDExZi04ZTFlLTNlNDRkMGVkOGJmOCJ9.eyJqdGkiOiIzNTgzYjM3OS0wYmUxLTQ0ODYtOTMzNS1lNGZhZDE2Mjc4MTEiLCJpc3MiOiJodXNxdmFybmEiLCJyb2xlcyI6W10sImdyb3VwcyI6WyJhbWMiLCJkZXZlbG9wZXItcG9ydGFsIiwiZmQ3OGIzYTQtYTdmOS00Yzc2LWJlZjktYWE1YTUwNTgzMzgyIl0sInNjb3BlcyI6WyJpYW06cmVhZCJdLCJjbGllbnRfaWQiOiIwNTE3NDllZS1hNDNkLTQ4NDgtYTFhYi05M2Q0NDliZmM5YTIiLCJ1c2VyIjp7ImZpcnN0X25hbWUiOiJNaWNoYWVsIiwibGFzdF9uYW1lIjoiRW1taW5nZXIiLCJjdXN0b21fYXR0cmlidXRlcyI6e30sImN1c3RvbWVyX2lkIjoiIn0sImlhdCI6MTY4NTQ2NDY1NCwiZXhwIjoxNjg1NTUxMDU0LCJzdWIiOiJiMjZmMzEwZS1lZWYyLTQ2YzUtYWRlZS0xOWRlNjI2YWExNzYifQ.nXao-G4ytXaG67ahJAUBm2qOKibqqSF3gZ5WhWZOyZRH2zWRFPdG5ocbtf6F77aa4AR2xq8ZhWRmHr8MybBuna1jS01hQ0oUj-bRHB4mIfq0h8tTQkeDMjLcIL793GC70LVLVR5ITmQB5TFpT--L8cSGeWWOW4RgjI7pQdxwubG1I7L4bbD9Za5NjdNNIusopSih69mVU9GPUvNCDKwXbA8Bz87Z3vmuIMXKuVV09nASXf4NnveqkwNFlRiQ-L5A2QBRP_8cFE5tVYUZXOk2ZJS71U8AHjN_w4nwOcbaMF4C6q9kxCsJpFxpE9R4R0VBqUmeb8dlbM25xx7KM1RY20kwm0UpTkHgu-paoqWhtXzp0k9psuvPPYxHk898TAJBxftd4tENjT-8loIporBfBLOJwID7fZgKCHijCudVejuPkRitMldm_Hhog-WlBfxbbbzcofcOqqIhibxHH6Y0tjYUWDqxv9vCFDnmDB8I-GIOcIcSaGrPgUpOvCWDXFD0
   helper:
     MAP_CACHE 
     MAP_MIME   
     MAP_PATH   
     client_id  051749ee-a43d-4848-a1ab-93d449bfc9a2
     detailFnAttrMaxPos 5000
     detailFnFirst 0
     detailFnNewPos 0
     grant_type client_credentials
     imageHeight 650
     imageWidthHeight 1119 650
     interval   420
     interval_auth 86345
     interval_ping 60
     interval_ws 7110
     mapZonesTpl {
    "01_oben" : {
      "condition" : "$latitude > 52.6484600648553 || $longitude > 9.54799477359984 && $latitude > 52.64839739580418",
      "cuttingHeight" : "7"
  },
    "02_unten" : {
      "condition" : "undef",
      "cuttingHeight" : "3"
  }
}
     mapdesign  areaLimitsColor="#ff8000"
areaLimitsLineWidth="1"
areaLimitsConnector=""
propertyLimitsColor="#33cc33"
propertyLimitsLineWidth="1"
propertyLimitsConnector="1"
errorBackgroundColor="#3d3d3d"
errorFont="14px Courier New"
errorFontColor="#ff8000"
errorPathLineColor="#ff00bf"
errorPathLineDash=""
errorPathLineWidth="2"
chargingStationPathLineColor="#999999"
chargingStationPathLineDash="6,2"
chargingStationPathLineWidth="1"
otherActivityPathLineColor="#999999"
otherActivityPathLineDash="6,2"
otherActivityPathLineWidth="1"
leavingPathLineColor="#33cc33"
leavingPathLineDash="6,2"
leavingPathLineWidth="2"
goingHomePathLineColor="#0099ff"
goingHomePathLineDash="6,2"
goingHomePathLineWidth="2"
mowingPathDisplayStart=""
mowingPathLineColor="#ff0000"
mowingPathLineDash="6,2"
mowingPathLineWidth="1"
     maxLat     48.4816829
     maxLon     16.5850883
     minLat     48.4813616
     minLon     16.584535
     mowerNumber 0
     mower_commandSend ResumeSchedule
     mower_commandStatus OK - control
     mower_id   f81bfefc-0e25-46c1-b680-30d3d98bf19d
     newdatasets 0
     newzonedatasets 0
     posMinMax  16.584535 48.4816829
16.5850883 48.4813616
     positionsTime 0
     scaleToMeterLatitude 108886
     scaleToMeterLongitude 67425
     statusTime 0
     storediff  691616
     CHARGING:
       arrayName  cspos
       callFn     
       cnt        0
       maxLength  100
       short      C
     CMDResponse:
       data:
         attributes
         id         a4568dfc-aa92-40a1-b401-a9ff3bff63c4
         type       control
     GOING_HOME:
       arrayName 
       callFn     
       cnt        0
       maxLength  50
       short      G
     LEAVING:
       arrayName 
       callFn     
       cnt        0
       maxLength  50
       short      L
     MOWING:
       arrayName  areapos
       callFn     
       cnt        0
       maxLength  5000
       maxLengthDefault 5000
       short      M
     NOT_APPLICABLE:
       arrayName 
       callFn     
       cnt        0
       maxLength  50
       short      N
     PARKED_IN_CS:
       arrayName  cspos
       callFn     
       cnt        0
       maxLength  100
       short      P
     STOPPED_IN_GARDEN:
       arrayName 
       callFn     
       cnt        0
       maxLength  50
       short      S
     UNKNOWN:
       arrayName 
       callFn     
       cnt        0
       maxLength  100
       short      U
     areapos:
     auth:
       access_token eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjVlZDU2ZDUzLTEyNWYtNDExZi04ZTFlLTNlNDRkMGVkOGJmOCJ9.eyJqdGkiOiIzNTgzYjM3OS0wYmUxLTQ0ODYtOTMzNS1lNGZhZDE2Mjc4MTEiLCJpc3MiOiJodXNxdmFybmEiLCJyb2xlcyI6W10sImdyb3VwcyI6WyJhbWMiLCJkZXZlbG9wZXItcG9ydGFsIiwiZmQ3OGIzYTQtYTdmOS00Yzc2LWJlZjktYWE1YTUwNTgzMzgyIl0sInNjb3BlcyI6WyJpYW06cmVhZCJdLCJjbGllbnRfaWQiOiIwNTE3NDllZS1hNDNkLTQ4NDgtYTFhYi05M2Q0NDliZmM5YTIiLCJ1c2VyIjp7ImZpcnN0X25hbWUiOiJNaWNoYWVsIiwibGFzdF9uYW1lIjoiRW1taW5nZXIiLCJjdXN0b21fYXR0cmlidXRlcyI6e30sImN1c3RvbWVyX2lkIjoiIn0sImlhdCI6MTY4NTQ2NDY1NCwiZXhwIjoxNjg1NTUxMDU0LCJzdWIiOiJiMjZmMzEwZS1lZWYyLTQ2YzUtYWRlZS0xOWRlNjI2YWExNzYifQ.nXao-G4ytXaG67ahJAUBm2qOKibqqSF3gZ5WhWZOyZRH2zWRFPdG5ocbtf6F77aa4AR2xq8ZhWRmHr8MybBuna1jS01hQ0oUj-bRHB4mIfq0h8tTQkeDMjLcIL793GC70LVLVR5ITmQB5TFpT--L8cSGeWWOW4RgjI7pQdxwubG1I7L4bbD9Za5NjdNNIusopSih69mVU9GPUvNCDKwXbA8Bz87Z3vmuIMXKuVV09nASXf4NnveqkwNFlRiQ-L5A2QBRP_8cFE5tVYUZXOk2ZJS71U8AHjN_w4nwOcbaMF4C6q9kxCsJpFxpE9R4R0VBqUmeb8dlbM25xx7KM1RY20kwm0UpTkHgu-paoqWhtXzp0k9psuvPPYxHk898TAJBxftd4tENjT-8loIporBfBLOJwID7fZgKCHijCudVejuPkRitMldm_Hhog-WlBfxbbbzcofcOqqIhibxHH6Y0tjYUWDqxv9vCFDnmDB8I-GIOcIcSaGrPgUpOvCWDXFD0
       expires    1685487600
       expires_in 86399
       provider   husqvarna
       scope      iam:read
       token_type Bearer
       user_id    b26f310e-eef2-46c5-adee-19de626aa176
     chargingStation:
     cspos:
     errorstack:
     lasterror:
       errordate 
       errordesc  -
       timestamp  0
       positions:
     mower:
       id         f81bfefc-0e25-46c1-b680-30d3d98bf19d
       type       mower
       attributes:
         battery:
           batteryPercent 35
         calendar:
           tasks:
             HASH(0x55b6c0b128)
         metadata:
           statusTimestamp 1685465718823
         mower:
           activity   CHARGING
           errorCode  0
           errorCodeTimestamp 0
           mode       MAIN_AREA
           state      IN_OPERATION
         planner:
           nextStartTimestamp 0
           restrictedReason NOT_APPLICABLE
           override:
             action     NOT_ACTIVE
         positions:
           HASH(0x55b6b45fa0)
           HASH(0x55b6eea670)
           HASH(0x55b6b468e8)
           HASH(0x55b67bad70)
           HASH(0x55b67e6748)
           HASH(0x55b6e911f8)
           HASH(0x55b67ed870)
           HASH(0x55b6b6a3d0)
           HASH(0x55b6be2628)
           HASH(0x55b6b1f760)
           HASH(0x55b6cf1840)
           HASH(0x55b7003a08)
           HASH(0x55b6e16ef8)
           HASH(0x55b58497f0)
           HASH(0x55b67cbd60)
           HASH(0x55b681ca18)
           HASH(0x55b68e0e78)
           HASH(0x55b6a5d3c8)
           HASH(0x55b69dd028)
           HASH(0x55b6e1acc0)
           HASH(0x55b6ee0920)
           HASH(0x55b7004038)
           HASH(0x55b6843020)
           HASH(0x55b7179b10)
           HASH(0x55b6e20af8)
           HASH(0x55b6a53a98)
           HASH(0x55b6a53710)
           HASH(0x55b67cfde8)
           HASH(0x55b712bd38)
           HASH(0x55b6cf22b8)
           HASH(0x55b7128058)
           HASH(0x55b7153cd8)
           HASH(0x55b7178f60)
           HASH(0x55b6f2ecd0)
           HASH(0x55b6be3838)
           HASH(0x55b712b368)
           HASH(0x55b6e0ee58)
           HASH(0x55b68e10b8)
           HASH(0x55b6b118a0)
           HASH(0x55b6ee6f78)
           HASH(0x55b6f1c818)
           HASH(0x55b6be3130)
           HASH(0x55b6c13ff0)
           HASH(0x55b6e1a978)
           HASH(0x55b7152550)
           HASH(0x55b61af8d0)
           HASH(0x55b6cf04e0)
           HASH(0x55b6e0e3f0)
           HASH(0x55b6afdd90)
           HASH(0x55b6e1a0c8)
         settings:
           cuttingHeight 1
           headlight:
             mode       ALWAYS_OFF
         statistics:
           numberOfChargingCycles 642
           numberOfCollisions 5591
           totalChargingTime 10357200
           totalCuttingTime 9349200
           totalRunningTime 10440000
           totalSearchingTime 1090800
         system:
           model      HUSQVARNA AUTOMOWER� 315X
           name       Automower
           serialNumber 180607639
     mowerold:
       attributes:
         metadata:
           statusTimestamp 1685465027207
         mower:
           activity   MOWING
         statistics:
           numberOfCollisions 5591
     mowers:
       HASH(0x55b71e1cc8)
     statistics:
       currentDayArea 0
       currentDayTime 0
       currentDayTrack 0
       currentSpeed 0
       currentWeekArea 0
       currentWeekTime 0
       currentWeekTrack 0
       lastDayArea 0
       lastDayCollisions 0
       lastDayTime 0
       lastDayTrack 0
       lastDaytime 0
       lastWeekArea 0
       lastWeekTime 0
       lastWeekTrack 0
     wsResult:
Attributes:
   event-on-update-reading .*
   icon       automower
   mapDesignAttributes areaLimitsColor="#ff8000"
areaLimitsLineWidth="1"
areaLimitsConnector=""
propertyLimitsColor="#33cc33"
propertyLimitsLineWidth="1"
propertyLimitsConnector="1"
errorBackgroundColor="#3d3d3d"
errorFont="14px Courier New"
errorFontColor="#ff8000"
errorPathLineColor="#ff00bf"
errorPathLineDash=""
errorPathLineWidth="2"
chargingStationPathLineColor="#999999"
chargingStationPathLineDash="6,2"
chargingStationPathLineWidth="1"
otherActivityPathLineColor="#999999"
otherActivityPathLineDash="6,2"
otherActivityPathLineWidth="1"
leavingPathLineColor="#33cc33"
leavingPathLineDash="6,2"
leavingPathLineWidth="2"
goingHomePathLineColor="#0099ff"
goingHomePathLineDash="6,2"
goingHomePathLineWidth="2"
mowingPathDisplayStart=""
mowingPathLineColor="#ff0000"
mowingPathLineDash="6,2"
mowingPathLineWidth="1"
   mowerSchedule [
   {
      "wednesday" : true,
      "saturday" : true,
      "friday" : true,
      "sunday" : false,
      "start" : 0,
      "duration" : 1440,
      "monday" : true,
      "thursday" : true,
      "tuesday" : true
   }
]

   room       ,HusqvarnaAutomower
   weekdaysToResetWayPoints 0123456

dinkel75


dinkel75

jetzt funktioniert es. ich musst im husqvarna developer portal noch die notwendigen apis hinzufügen.

Depechem

Zitat von: Ellert am 29 Mai 2023, 22:16:23Vielleicht 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.




ich habe gerade noch einmal ein set <name> getNewAccessTokenausgeführt und auf einmal funktioniert es wieder. Die letzten Tage gin es nicht.
Wer weis
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 17 Mai 2023, 17:56:40Mit 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.

Damit steht der Umstellung vom Polling der API auf eine dauerhafte Websocketverbindung mit ereignisnaher Datenübertragung nichts mehr im Weg.
Was bedeutet dies genau? Werden nun die Aktualisierungsintervalle kürzer, also nicht mehr nur ca. alle 10min sonder ähnlich wie in der App? Aktuell sieht dies aber nicht danach aus.

Zitat von: Ellert am 23 Mai 2023, 17:09:28Das neue Reading mower_wsEvent zeigt die vom Mäher gesendeten Events(status-event, positions-events, settings-events) an.
muss mal dumm Fragen für was genau ist dieses Reading genau? Was kann ich mir daraus nehmen?

Zitat von: Ellert am 14 Mai 2023, 23:41:43
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.

Möchte das Thema gern nochmal aufgreifen, wäre es nicht sinnvoll dies gleich als festes Reading in das Modul einzubauen? Also das man ein Reading mit dem aktuellen Staus hätte, so wie in der App. Mit Userreading könnte dies evtl für mich und den ein oder anderen schwer werden, da einige Bedingungen hinterlegt werden müssten, wann welches Reading ausgewertet werden muss. Vielleicht kannst da ja nochmal überlegen ob du es evtl. doch einbauen wölltest.

Aus alle Fälle erst einmal vielen Dank für dieses Modul und dessen schnelle Erweiterungen
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

ZitatWas bedeutet dies genau? Werden nun die Aktualisierungsintervalle kürzer, also nicht mehr nur ca. alle 10min sonder ähnlich wie in der App?

muss mal dumm Fragen für was genau ist dieses Reading genau? Was kann ich mir daraus nehmen?

Zur Beantwortung Deiner Fragen, solltest Du die Dokumentation im Developer Portal studieren, mehr Infos habe ich auch nicht.
Weitere Erfahrungen kannst Du machen, wenn Du die Schnittstelle beobachtest im Log, im Eventmonitor oder das Reading wsEvent und andere Readings, und das in verschiedenen Betriebssituationen zu Tages- und Nachtzeiten.

ZitatMit Userreading könnte dies evtl für mich und den ein oder anderen schwer werden, da einige Bedingungen hinterlegt werden müssten, wann welches Reading ausgewertet werden muss.

Das ist für mich genau so schwer, daher finde ich es besser, wenn ich das nicht mache.

Du könntest federführend ein Gemeinschaftsprojekt zur Erstellung eines userReadings starten, in einem neuen Thema. Das Ergebnis könnte dann ins Wiki.

isy

#103
Hallo Ellert,
ich habe heute morgen die aktuelle Version 27632 2023-05-30 15:12:02 deines hervorragenden Moduls geladen.

Es scheint so zu sein, als ob die Anzeige der Fahrspuren mit der aktuellen Version anders läuft als mit der Vorversion.
Ohne Gewähr: Ca 30m nach Osten verschoben und 20m nach Süden. Keine Änderung meiner Koordinaten im Attribut mapImageCoordinatesToRegister oder in der hinterlegten Grafik.

Der Standort der Ladestation war gestern auch korrekt, heute wird er nicht angezeigt. Es kann aber sein, dass das Modul den Standort außerhalb der Grafik legt (siehe obige Verschiebung) und ich ihn deshalb in der Karte nicht sehen kann.

Gestern hat die Grafik ausgezeichnet gepasst.

VG Helmut

P.S. Ich justiere gerade die Grafik neu, das geht mit oben genannter Seite super schnell.
Ich habe jetzt auch das Attribut für die LS gesetzt, auch deutlich verschoben, sie wird aber angezeigt mit der Eingabe in das Attribut chargingStationCoordinates. Da der Mower seit dem Update des Moduls nicht an der LS angedockt war, kann es sein, dass das Modul die Position der LS auch nicht ermitteln konnte. Das werde ich später mal checken.

Noch ein P.S.
Mit den Readings ist für mich alles prima so. U.a. mit dem Reading batteryPercent überwache ich seit Jahren die Laufzeit des Mähers mit einer Ladung, um damit Rückschlüsse auf die verbleibende Kapazität des Akkus zu ziehen.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Ellert

Bei mir sieht mit der heutigen Version alles aus wie vorher.

Ich schätze das  hat mit Deiner Koordinatenschieberei zu tun.

Ich würde die Schieberei rückgängig machen.

Wenn das nicht hilft, dann alle Attribute mit Koordinaten und Skalierung löschen und neu aufbauen, so wie in der Befehlsreferenz und im Wiki beschrieben.