[Neues Modul] 74_AutomowerConnect, Husqvarnas OpenAPI

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

Vorheriges Thema - Nächstes Thema

Ellert

Ab morgen im Update:

Neuer Setter cuttingHeightInWorkArea zum Testen.

Automatische Berechnung des Hüllenpolygons der Mähfläche. Die benötigte Javascriptbibliothek wird automatisch von einem externen Server geladen, siehe https://forum.fhem.de/index.php?topic=137791.0

Neues Attribut mowingAreaHull, siehe Befehlsreferenz zur Vorgehensweise bei der Berechnung des Hüllenpolygons.

Einige zusätzliche Infos in den Listen InternalData (Standard Design Attribute, Drittanbietersoftware) und StatisticsData (Fläche, wenn Grenzen angegeben sind)

Nach dem Update den FHEM Server neu starten, den Browsercache löschen und die Seite neu laden.

Ellert

Morgen im Update:
Befindet sich ein Hüllkurvenpolygon im Attribut mowingAreaHull, dann können Ausreißer reduziert werden.

Das Designattribut hullSubtract muss dazu auf eine natürliche Zahl gesetzt werden. Sie gibt die Rekursionstiefe an, mit der die jeweilig Hüllkurve von der Menge der Wegpunkte abgezogen wird und erzeugt dazu den Button Subtract Hull unterhalb der Karte.

Siehe auch mowingAreaHull in der Befehlsreferenz https://commandref.fhem.de/commandref_DE.html#AutomowerConnect-attr-mowingAreaHull

Ellert

#197
Im morgigen Update:

Es gibt ein Attribut 'mowerPanel'. Der dort enthaltene HTML Kode kann z.B. Kurzbefehle enthalten.
Er wird unterhalb der Karte angezeigt, kann aber über CSS positioniert werden.
Ein Befehle wird im command Attribut angegeben, ohne set <name> .

command='Start 210' statt
set <name> Start 210
Nach dem Update den FHEM Server neu starten, den Browsercache löschen und die Seite neu laden.

 

Beispiele für die Darstellung im Anhang:

Panel auf der Karte 518px x 909px:
<style>
  .amc_panel_button {height:50px; width:150px;}
  .amc_panel_div {position:relative; left:348px; top:-330px; z-index:2; width:150px; height:1px}
</style>
<div class="amc_panel_div" >
  <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="ResumeSchedule" >Weiter nach Plan</button>
  <button class="amc_panel_button" command="ParkUntilNextSchedule" >Parken bis nächsten Termin</button>
  <button class="amc_panel_button" command="ParkUntilNextSchedule" >Parken bis auf Weiteres</button>
</div>

Panel unter der Karte mit Zeilenumbruch (<br>)
<button command="Start 210" >Start für 3 1/2 h</button><br>
<button command="ParkUntilNextSchedule" >Parken bis nächsten Termin</button>
<button command="ParkUntilNextSchedule" >Parken bis auf Weiteres</button>

cheanrod

Hallo zusammen,

ich bekomme aktuell (seit ca. 04.04.2024) keine Websocket-Events mehr. Ich habe die Applikation bei Husqvarna sowie die Moduldefinition in FHEM bereits testweise vollständig gelöscht und wieder angelegt. Ich habe mich außerdem mit dem Python-Testcode aus dem Developer-Portal mit dem Websocket verbunden. Auch dort bekomme ich keine Events.

Ist ein Problem bei Husqvarna bekannt?

Ellert

Zitat von: cheanrod am 20 April 2024, 18:45:44Ist ein Problem bei Husqvarna bekannt?
Die Frage solltest Du bei Husqvarna stellen, z.B. hier openapi.servicedesk@husqvarnagroup.com

Ich habe keine Probleme.

cheanrod

Zitat von: Ellert am 21 April 2024, 14:25:02
Zitat von: cheanrod am 20 April 2024, 18:45:44Ist ein Problem bei Husqvarna bekannt?
Die Frage solltest Du bei Husqvarna stellen, z.B. hier openapi.servicedesk@husqvarnagroup.com

Ich habe keine Probleme.
Danke für die Rückmeldung! So weiß ich, dass es eigentlich funktionieren sollte. Ich werde eine Mail an den Support senden.

cheanrod

Zitat von: cheanrod am 21 April 2024, 21:26:24Danke für die Rückmeldung! So weiß ich, dass es eigentlich funktionieren sollte. Ich werde eine Mail an den Support senden.

Es gab ein individuelles Problem der Websockets bezogen auf meinen Account. Dieses ist nun behoben und ich empfange wieder Events.

Ellert

#202
Ab morgen gibt es einen Editor für den Mähplan im Update.

FHEM Neustart, Browsercache löschen und Seite neuladen ist erforderlich.

Bedienung:

  Über den Button 'Mower Schedule' unter der Karte kann eine Benutzeroberfläche zur Bearbeitung des Mähplans geöffnet werden.
  Eintrag zufügen/ändern: Die gewünschten Angaben eintragen und ± betätigen.
  Eintrag löschen: Alle Wochentage abwählen und ± betätigen.
  Eintrag zurücksetzen: Irgend ein Zeitfeld mit -- füllen und ± betätigen.

Du darfst diesen Dateianhang nicht ansehen.


wieral

Benötige Hilfe bei der Installation eines Automower Aspire.

Folgende Schritte durchgeführt
Anmeldung im Husqvarna Developer Portal
Application angelegt
Application Key
Application Secret

Sobald ich die Definition

define Kutte AutomowerConnect  <Application Key>

Stürzt FHEM auf meinem Life und Testsystem ab.

Erhalte folgenden Eintrag im Log

024.05.03 10:12:07.375 5: Loading ./FHEM/74_AutomowerConnect.pm
2024.05.03 10:12:07.479 2: Registering AutomowerConnect Kutte for URL /AutomowerConnect/Kutte/map...
2024.05.03 10:12:07.480 2: Registering AutomowerConnect Kutte for URL /AutomowerConnect/Kutte/json...
2024.05.03 10:12:07.480 1: PERL WARNING: Use of uninitialized value $attrVal in pattern match (m//) at lib/FHEM/Devices/AMConnect/Common.pm line 338.
2024.05.03 10:12:09.967 4: AutomowerConnect Kutte getMowerResponse: response $statuscode >200<, $err ><, $param->url https://api.amc.husqvarna.dev/v1/mowers
$data >{"data":[{"type":"mower","id":"2817c4c5-3865-43fc-8964-780577fa2a6f","attributes":{"system":{"name":"Automower Aspire","model":"Husqvarna Automower® Aspire™ R4","serialNumber":241011852},"battery":{"batteryPercent":100},"capabilities":{"headlights":false,"workAreas":false,"position":false,"stayOutZones":false},"mower":{"mode":"MAIN_AREA","activity":"PARKED_IN_CS","inactiveReason":"NONE","state":"RESTRICTED","errorCode":0,"errorCodeTimestamp":0},"calendar":{"tasks":[{"start":750,"duration":150,"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":true,"sunday":false,"workAreaId":0}]},"planner":{"nextStartTimestamp":1714739400000,"override":{"action":"NOT_ACTIVE"},"restrictedReason":"WEEK_SCHEDULE"},"metadata":{"connected":true,"statusTimestamp":1714723678284},"positions":[],"settings":{"cuttingHeight":null,"headlight":{"mode":null}},"statistics":{"cuttingBladeUsageTime":12185,"numberOfChargingCycles":1,"numberOfCollisions":192,"totalChargingTime":797,"totalCuttingTime":12185,"totalDriveDistance":3634,"totalRunningTime":12532,"totalSearchingTime":226}}}]}<
2024.05.03 10:12:09.968 5: AutomowerConnect Kutte getMowerResponse: found 0 => Automower Aspire 2817c4c5-3865-43fc-8964-780577fa2a6f
Not a reference at lib/FHEM/Devices/AMConnect/Common.pm line 1032.

Vielen Dank für eure Unterstützung.

Ellert

Zitat"positions":[]
Der Mäher liefert keine Positionsdaten.

Ist das Typ bedingt?

Ich bin bisher davon ausgegangen, dass alle Mäher mit Connectmodul auch Positionsdaten liefern, daher die letzte Fehlermeldung mit Absturz.

wieral

Vielen Dank für die schnelle Antwort.

In der App werden keine Positionsdaten angezeigt. Somit gehe ich davon aus das es so ist.
Zu Testzwecken habe ich die Zeile 1032 rausgenommen. Darauf hin wurde das Device angelegt.
Daten des Mowers werden angezeigt. Leider keine Positionen.

Ellert

Ja, es gibt keine Positionsdaten beim Aspire R4.

Bei genauerem Hinsehen wird das klar:
Zitat"capabilities":{"headlights":false,"workAreas":false,"position":false,"stayOutZones":false}

Das wird ein etwas umfangreicherer Umbau und kann etwas dauern.

wieral

Vielen Dank.

Da ich derzeit einen Workaround habe, eilt es nicht so sehr.

Gerne stelle ich mich zum Testen der jeweiligen Versionen zur Verfügung.

Gruß

Ellert

In der Testversion sind jetzt die in der API definierten Fähigkeiten berücksichtigt und das Modul sollte jetzt auch Unicode tauglich, sein für die experimentelle Einstellung attr global unicode.

@wieral: Danke für Dein Angebot, Du könntest jetzt testen.
Wenn der Mäher keine Positionen liefern kann, sollten die sich darauf beziehenden Befehle und Attibute ausgeblendet werden, ebenso die Karte, das sollte getestet werden.
Interessant wäre, ob die Getter (StatisticsData, MowerData, InternalData, errorStack) noch ohne Warnung funktionieren.

Die Testversion ist im SVN unter contrib/AutomowerConnect abgelegt.
Sie kann über die Befehlszeile oder über raw definition (das Plus neben dem FHEM-Logo) geladen werden.

{ Svn_GetFile('contrib/AutomowerConnect/Common.pm', 'lib/FHEM/Devices/AMConnect/Common.pm') }
{ Svn_GetFile('contrib/AutomowerConnect/automowerconnect.js', 'www/pgm2/automowerconnect.js') }

Nach dem Laden der Module muss FHEM neu gestartet, der Browsercache gelöscht und die Webseite neu geladen werden.


wieral

Guten Morgen Ellert,

vielen Dank für deine Arbeit.
Meine Tests ergaben folgendes.

Das Device zeigt jetzt keine Karte mehr an. Scheduler ist da.
InternalData, StatisticsData, MowerData - liefert Daten

errorStack - No error in stack.

errorCodes - zeigt folgendes

Du darfst diesen Dateianhang nicht ansehen.

Im Logfile befinden sich folgende Meldungen:
2024.05.05 07:26:46.581 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at lib/FHEM/Devices/AMConnect/Common.pm line 2661.
2024.05.05 07:26:46.581 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at lib/FHEM/Devices/AMConnect/Common.pm line 2662.
2024.05.05 07:26:46.582 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at lib/FHEM/Devices/AMConnect/Common.pm line 2663.
2024.05.05 07:26:46.582 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at lib/FHEM/Devices/AMConnect/Common.pm line 2664.

Vielen Dank.