[Neues Modul] 74_AutomowerConnect, Husqvarnas OpenAPI

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

Vorheriges Thema - Nächstes Thema

sig10680

Um welchen Fehlerkode handelt es sich?

Falls Du die deutsche Übersetzung einspielst, müsstest Du sie selbst ergänzen.


ist stehe auf dem Schlauch was meinst du damit? Fehler steht nichts drin.
Ich kann nur sagen welche werte e zu der Zeit aktualisiert hat wenn das was bringt!

Und welche Übersetzung!?

mfg Sig10680

Ellert

#286
Um 2025.04.14 03:21:53 ist ein Fehler aufgetreten, den Fehlerkode hätte ich gern (get errorStack). Wenn der in meiner Fehlerliste fehlt trage ich ihn nach.

Wenn Du das in #216 machst, dann musst Du die Liste selbst ergänzen.

sig10680

Zitat von: Ellert am 14 April 2025, 13:58:12Um 2025.04.14 03:21:53 ist ein Fehler aufgetreten, den Fehlerkode hätte ich gern (get errorStack). Wenn der in meiner Fehlerliste fehlt trage ich ihn nach.

Achso hier ist die Fehlermeldung dazu.

Timestamp     Description      Zone      Longitude / Latitude
1970-01-21 05:30:17     RESTRICTED -         1.1111111 / 10.1111111
1970-01-21 05:30:17     RESTRICTED -         1.1111111 / 10.1111111

Der Mower hat aber die richtige Zeit und auch das richtige Datum! Gerade nochmal angesehen. Der Zeitplan läuft auch zu seiner Zeit!

mfg Sig10680

Ellert

Der Zeitstempel ist  falsch, das liegt wahrscheinlich auch daran, dass er nicht in Millisekungen übertrtagen wird.

Um über den Fehlerkode und den Zeitstempel Klarheit zu bekommen, solltest Du nachts noch einmal mit verbose 4 loggen und Du solltest das globale Attribut mseclog setzen, damit die Zeitstempel im Log unterscheidbar werden.

Mir ist noch aufgefallen, dass das Mowerevent teilweise unvollständig ist, dass solltes Du dem Helpdesk auch mitteilen:
2025.04.11 17:43:58 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"MAIN_AREA","activity":"NOT_APPLICABLE","state":"IN_OPERATION","errorCode":0,"isErrorConfirmable":false}}}<
2025.04.11 17:43:59 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"MAIN_AREA","activity":"CHARGING","state":"IN_OPERATION","errorCode":0,"isErrorConfirmable":false}}}<
2025.04.11 17:56:59 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"HOME","activity":"NOT_APPLICABLE","inactiveReason":"PLANNING"}}}<
2025.04.11 17:57:00 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"HOME","activity":"NOT_APPLICABLE","state":"IN_OPERATION","errorCode":0,"isErrorConfirmable":false}}}<
2025.04.11 17:57:00 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"activity":"CHARGING","inactiveReason":"NONE"}}}<
2025.04.11 17:57:01 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"HOME","activity":"CHARGING","state":"IN_OPERATION","errorCode":0,"isErrorConfirmable":false}}}<
2025.04.11 17:57:01 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"activity":"PARKED_IN_CS"}}}<
2025.04.11 17:57:02 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"HOME","activity":"PARKED_IN_CS","state":"IN_OPERATION","errorCode":0,"isErrorConfirmable":false}}}<
2025.04.11 17:57:22 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"activity":"CHARGING","inactiveReason":"NONE"}}}<
2025.04.11 17:57:22 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"MAIN_AREA","activity":"CHARGING","state":"IN_OPERATION","errorCode":0,"isErrorConfirmable":false}}}<
2025.04.11 18:00:03 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"activity":"CHARGING","inactiveReason":"NONE","state":"RESTRICTED","workAreaId":0}}}<
2025.04.11 18:00:04 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"MAIN_AREA","activity":"PARKED_IN_CS","state":"RESTRICTED","errorCode":0,"isErrorConfirmable":false}}}<
2025.04.11 18:00:04 4: AutomowerConnect myMower_n wsRead: received websocket data: >{"id":"XXXX","type":"mower-event-v2","attributes":{"mower":{"mode":"MAIN_AREA","activity":"PARKED_IN_CS","state":"RESTRICTED","errorCode":0,"isErrorConfirmable":false}}}<


sig10680

Ist okay ich habe es Verbose 4 und mseclog 1 eingestellt und melde mich.

Danke für die mühe

Ellert

Mit dem morgigen Update sollten auch diese letzten Warnungen verschwunden sein.

sig10680

Zitat von: Ellert am 14 April 2025, 22:43:07Mit dem morgigen Update sollten auch diese letzten Warnungen verschwunden sein.

Hallo,

danke nach dem heutigen Update sind alle Perl Fehlermeldungen weg und es läuft wie immer.

Toller Support......

Mfg sig10680

Ellert


Rossi

Hi, ich bin jetzt auf das neue Modul umgestiegen ;D , kämpfe aber noch mit ein paar Problemem und hoffe auf Hilfe.

1. Bei jeden Aufruf/Refresh der Seite beikomme ich eine Fehlermeldung.
   "automowerconnect.js line 840: ReferenceError: hull is not defined"

2. Trotz mehrer unterschiedlichen Ansätzen, bekomme ich keinen der definierten userReadings.
   Seriennummer:device_state:.connected $defs{$name}->{helper}{mower}{attributes}{system}{serialNumber},
   letzterStandort_1:mower_wsEvent:.* {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{latitude}},
   letzterStandort_2:mower_wsEvent:.* {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{longitude}},
   Kollisionen:connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{numberOfCollisions}},
   Ladezeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalChargingTime}/3600},
   Schneidzeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalCuttingTime}/3600},
   Gesamtfahrzeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalRunningTime}/3600},
   Suchzeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalSearchingTime}/3600},
   Strecke_Tag:opened {$defs{$name}->{helper}{statistics}{currentDayTrack}},
   Flaeche_Tag:opened {$defs{$name}->{helper}{statistics}{currentDayArea}},
   Strecke_Vortag:connected {$defs{$name}->{helper}{statistics}{lastDayTrack}},
   Flaeche_Vortag:connected {$defs{$name}->{helper}{statistics}{lastDayArea}},
   Strecke_Woche:connected {$defs{$name}->{helper}{statistics}{currentWeekTrack}/1000},
   Flaeche_Woche:connected {$defs{$name}->{helper}{statistics}{currentWeekArea}},
   Strecke_Vorwoche:connected {$defs{$name}->{helper}{statistics}{lastWeekTrack}/1000},
   Flaeche_Vorwoche:connected {$defs{$name}->{helper}{statistics}{lastWeekArea}},
   Ladezyklen:opened.* {$defs{$name}->{helper}{mower}{attributes}{statistics}{numberOfChargingCycles}}

Hier ein Teil meines Lists, ich hoffe das genügt, denn der sieht riesig aus, vor allem in der Sektion "helper:"

Internals:
   DEF        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
   DeviceName wss:ws.openapi.husqvarna.dev:443/v1
   FD         44
   FUUID      68026a51-f33f-c387-b237-dc28a89ed938e35a
   First_Read 0
   Host       ws.openapi.husqvarna.dev
   LIBRARY_VERSION 29858 2025-04-14 20:37:09
   NAME       MyMower
   NR         1138
   PARTIAL   
   Port       443/v1
   SSL        1
   STATE      opened
   TYPE       AutomowerConnect
   VERSION    29826 2025-04-05 21:10:29
   VERSION_AMConnectTools 29250 2024-10-17 06:36:13
   WEBSOCKET  1
   devioNoSTATE 1
   eventCount 466
   Helper:
     DBLOG:
       ZoneToDo:
         NAS_logdb:
           TIME       1745074623.84139
           VALUE      Zone2
       api_token_expires:
         NAS_logdb:
           TIME       1745017163.33347
           VALUE      2025-04-20 00:59:22
       batteryPercent:
         NAS_logdb:
           TIME       1745075143.49694
           VALUE      97
       device_state:
         NAS_logdb:
           TIME       1745017165.22025
           VALUE      connected
       mower_activity:
         NAS_logdb:
           TIME       1745075024.34
           VALUE      MOWING
       mower_commandSend:
         NAS_logdb:
           TIME       1745074630.8481
           VALUE      Start 180
       mower_commandStatus:
         NAS_logdb:
           TIME       1745074632.45453
           VALUE      cleared
       mower_currentZone:
         NAS_logdb:
           TIME       1745074483.63874
           VALUE      02_unten(2/2)
       mower_mode:
         NAS_logdb:
           TIME       1745074632.45453
           VALUE      MAIN_AREA
       mower_state:
         NAS_logdb:
           TIME       1745074632.45453
           VALUE      IN_OPERATION
       mower_wsEvent:
         NAS_logdb:
           TIME       1745075141.05439
           VALUE      battery-event-v2
       planner_nextStart:
         NAS_logdb:
           TIME       1745074932.66059
           VALUE      -
       planner_overrideAction:
         NAS_logdb:
           TIME       1745075024.34
           VALUE      FORCE_MOW
       state:
         NAS_logdb:
           TIME       1745074031.77362
           VALUE      CONNECTED
       statistics_newGeoDataSets:
         NAS_logdb:
           TIME       1745075024.34
           VALUE      2
       statistics_numberOfCollisions:
         NAS_logdb:
           TIME       1745047872.40694
           VALUE      (53/0/419)
       status_Timestamp:
         NAS_logdb:
           TIME       1745075143.49694
           VALUE      2025-04-19 17:05:40
       status_TimestampDiff:
         NAS_logdb:
           TIME       1745075143.49694
           VALUE      28
   READINGS:
     2025-04-19 16:57:12   ZoneToDo        Keine
     2025-04-18 17:06:31   api_MowerFound  0 => Automower xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
     2025-04-19 17:05:42   api_callsThisMonth 170
     2025-04-19 00:59:23   api_token_expires 2025-04-20 00:59:22
     2025-04-19 17:05:43   batteryPercent  97
     2025-04-19 00:59:25   device_state    connected
     2025-04-18 17:06:31   model           HUSQVARNA AM 315X
     2025-04-19 17:03:44   mower_activity  MOWING
     2025-04-19 16:57:10   mower_commandSend Start 180
     2025-04-19 16:57:12   mower_commandStatus cleared
     2025-04-19 16:54:43   mower_currentZone 02_unten(2/2)
     2025-04-18 17:06:31   mower_errorCode -
     2025-04-18 17:06:31   mower_errorCodeTimestamp -
     2025-04-18 17:06:31   mower_errorDescription -
     2025-04-19 16:57:12   mower_mode      MAIN_AREA
     2025-04-19 16:57:12   mower_state     IN_OPERATION
     2025-04-19 17:05:41   mower_wsEvent   battery-event-v2
     2025-04-19 17:02:12   planner_nextStart -
     2025-04-19 17:03:44   planner_overrideAction FORCE_MOW
     2025-04-18 17:06:31   planner_restrictedReason NOT_APPLICABLE
     2025-04-18 17:06:31   settings_cuttingHeight 1
     2025-04-18 17:06:31   settings_headlight ALWAYS_OFF
     2025-04-19 16:47:11   state           opened
     2025-04-19 17:03:44   statistics_newGeoDataSets 2
     2025-04-19 09:31:12   statistics_numberOfCollisions (53/0/419)
     2025-04-19 17:05:43   status_Timestamp 2025-04-19 17:05:40
     2025-04-19 17:05:43   status_TimestampDiff 28
     2025-04-18 17:06:31   status_connected CONNECTED(1)
     2025-04-18 17:06:31   system_name     Automower
   header:
   .......
mower:
       id         8c247ebb-aa3d-427f-826f-54bd6941c928
       type       mower
       attributes:
         battery:
           batteryPercent 97
         calendar:
           tasks:
             HASH(0x5ae3cc30d050)
         capabilities:
         metadata:
           statusTimestamp 1745075140443
         mower:
           activity   MOWING
           errorCode  0
           errorCodeTimestamp 0
           inactiveReason NONE
           mode       MAIN_AREA
           state      IN_OPERATION
         planner:
           nextStartTimestamp 0
           restrictedReason NOT_APPLICABLE
           override:
             action     FORCE_MOW
         positions:
           HASH(0x5ae3d7f9bd60)
           HASH(0x5ae3c9759880)
         settings:
           cuttingHeight 1
           headlight:
             mode       ALWAYS_OFF
         statistics:
           numberOfChargingCycles 1863
           numberOfCollisions 419
           totalChargingTime 5814000
           totalCuttingTime 6962400
           totalDriveDistance 2952612
           totalRunningTime 7570800
           totalSearchingTime 608400
         system:
           model      Husqvarna AUTOMOWER� 315X
           name       Automower
           serialNumber 194601120
     mowerold:
       attributes:
         metadata:
           statusTimestamp 1745075112987
         mower:
           activity   LEAVING
         statistics:
           numberOfCollisions 366
     mowers:
       HASH(0x5ae3d7fa4cb8)
     searchpos:
       HASH(0x5ae3ca07fee0)
     statistics:
       currentDayArea 0.00208890131188537
       currentDayCollisions 53
       currentDayTime 7350
       currentDayTrack 0.00870375546618906
       currentSpeed 0
       currentWeekArea 0
       currentWeekCollisions 0
       currentWeekTime 0
       currentWeekTrack 0
       hullArea   0
       lastDayArea 0
       lastDayCollisions 0
       lastDayTime 0
       lastDayTrack 0
       lastDaytime 0
       lastWeekArea 0
       lastWeekTime 0
       lastWeekTrack 0
       mowingArea 0
       numberOfCollisionsOld 366
       propertyArea 0
     wsResult:
       type       battery-event-v2
       battery-event-v2:
         id         8c247ebb-aa3d-427f-826f-54bd6941c928
         type       battery-event-v2
         attributes:
           battery:
             batteryPercent 97
       mower-event-v2:
         id         8c247ebb-aa3d-427f-826f-54bd6941c928
         type       mower-event-v2
         attributes:
           mower:
             activity   MOWING
             errorCode  0
             mode       MAIN_AREA
             state      IN_OPERATION
       position-event-v2:
         id         8c247ebb-aa3d-427f-826f-54bd6941c928
         type       position-event-v2
         attributes:
           position:
             latitude   48.7965716
             longitude  10.7838333
     wsbuf:
       battery-event-v2 {"id":"8c247ebb-aa3d-427f-826f-54bd6941c928","type":"battery-event-v2","attributes":{"battery":{"batteryPercent":97}}}
       battery_changed 107
       battery_duplicates 269
       calendar-event-v2
       calendar_changed 0
       calendar_duplicates 0
       cuttingHeight-event-v2
       cuttingHeight_changed 0
       cuttingHeight_duplicates 0
       headlights-event-v2
       headlights_changed 0
       headlights_duplicates 0
       message-event-v2
       message_changed 0
       message_duplicates 0
       mower-event-v2 {"id":"8c247ebb-aa3d-427f-826f-54bd6941c928","type":"mower-event-v2","attributes":{"mower":{"mode":"MAIN_AREA","activity":"MOWING","state":"IN_OPERATION","errorCode":0}}}
       mower_changed 16
       mower_duplicates 360
       planner-event-v2
       planner_changed 0
       planner_duplicates 0
       position-event-v2 {"id":"8c247ebb-aa3d-427f-826f-54bd6941c928","type":"position-event-v2","attributes":{"position":{"latitude":48.7965716,"longitude":10.7838333}}}
       position_changed 376
       position_duplicates 0
       sum_changed 499
       sum_duplicates 629
Attributes:
   DbLogInclude .*
   addPollingMinInterval 30
   addPositionPolling 1
   chargingStationCoordinates 10.78376610 48.79659607
   devStateIcon { my $aZone = ReadingsVal($name,"aktZone","undef");
my $bat = ReadingsVal($name,"batteryPercent","undef");
my $amp = ReadingsVal($name,"state","error") eq "error" ? "rot" : ReadingsVal($name,"batteryPercent","undef") <= 75 ? "gelb" : "gruen";
my $con = ReadingsVal($name,"mower_activity","undef");
my $pic = $con eq "MOWING" ? 'scene_robo_lawnmower@green' : $con eq "undefiniert" ? 'scene_robo_lawnmower@red' : 'scene_robo_lawnmower';
if ($con eq "MOWING") {$con = "mäht"}
elsif ($con eq "CHARGING") {$con = "lädt"}
elsif ($con eq "LEAVING") {$con = "verläßt Ladestation"}
elsif ($con eq "GOING_HOME") {$con = "fährt zur Ladestation"}
elsif ($con eq "PARKED_IN_CS") {$con = "geparkt in Ladestation"};
my $show = "$amp" eq "gelb" ? "<a href=\"/fhem?cmd.dummy=set $name x_update&XHR=1\">".FW_makeImage("10px-kreis-".$amp)."</a>" : "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage("10px-kreis-".$amp)."</a>";;
"<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)." $con / BatStatus: $bat / Aktuell in $aZone </div>"}
   event-on-change-reading .*
   event-on-update-reading state, device_state,.*
   group      AUTOMOVER
   icon       scene_robo_lawnmower
   mapImageCoordinatesToRegister 10.78349146509957 48.79698843481503
10.78445863388554 48.79651363242969
   mapImagePath /opt/fhem/www/map1024x768.webp
   mapImageWidthHeight 1024 768
   mapZones   {
  "01_oben" : {
    "condition" : "$latitude > 52.6484600648553 || $longitude > 9.54799477359984 && $latitude > 52.64839739580418"
  },
  "02_unten" : {
    "condition" : "undef"
  }
}

   mowerAutoSyncTime 1
   mowerPanel <style>
.amc_panel_button {height:50px; width:150px;}
.amc_panel_div {position:relative; left:548px; top:-330px; z-index: 2; width:150px; height:1px}
</style>
<div class="amc_panel_div" data-amc_panel_inroom="" >
  <button class="amc_panel_button" command="Start 210" >Start für 3 1/2 h</button>
  <button class="amc_panel_button" command="Pause" >Pause bis auf Weiteres</button>
  <button class="amc_panel_button" command="ParkUntilFurtherNotice" >Parken bis auf Weiteres</button>
</div>
   mowerSchedule [
   {
      "start" : 360,
      "duration" : 960,
      "monday" : true,
      "tuesday" : true,
      "wednesday" : true,
      "thursday" : true,
      "friday" : true,
      "saturday" : true,
      "sunday" : true
   }
]

   room       Garten
   scaleToMeterXY 1 1
   userReadings Seriennummer:device_state:.connected $defs{$name}->{helper}{mower}{attributes}{system}{serialNumber},
letzterStandort_1:mower_wsEvent:.* {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{latitude}},
letzterStandort_2:mower_wsEvent:.* {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{longitude}},
Kollisionen:connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{numberOfCollisions}},
Ladezeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalChargingTime}/3600},
Schneidzeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalCuttingTime}/3600},
Gesamtfahrzeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalRunningTime}/3600},
Suchzeit:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{statistics}{totalSearchingTime}/3600},
Strecke_Tag:opened {$defs{$name}->{helper}{statistics}{currentDayTrack}},
Flaeche_Tag:opened {$defs{$name}->{helper}{statistics}{currentDayArea}},
Strecke_Vortag:connected {$defs{$name}->{helper}{statistics}{lastDayTrack}},
Flaeche_Vortag:connected {$defs{$name}->{helper}{statistics}{lastDayArea}},
Strecke_Woche:connected {$defs{$name}->{helper}{statistics}{currentWeekTrack}/1000},
Flaeche_Woche:connected {$defs{$name}->{helper}{statistics}{currentWeekArea}},
Strecke_Vorwoche:connected {$defs{$name}->{helper}{statistics}{lastWeekTrack}/1000},
Flaeche_Vorwoche:connected {$defs{$name}->{helper}{statistics}{lastWeekArea}},
Ladezyklen:opened.* {$defs{$name}->{helper}{mower}{attributes}{statistics}{numberOfChargingCycles}}

Ellert

Zu 1. Mit dem morgigen Update sollte der Download von hull.js wieder funktionieren.

Du musst vorher die Datei hull.js unter /opt/fhem/www/automowerconnect/ löschen.

Zu 2. Formuliere den Trigger richtig.
Aus der Befehlsreferenz:
Zitatattr myMultiMeter userReadings energy1:counters.A.* { Readi...