[Neues Modul] 74_AutomowerConnect, Husqvarnas OpenAPI

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

Vorheriges Thema - Nächstes Thema

stobor

#225
Ich habe heute AutomowerConnect zum ersten mal ausprobiert (Husqvarna Aotomower 430X):

define HusqvarnaMower AutomowerConnect 20xxxf
attr HusqvarnaMower icon automower
attr HusqvarnaMower room Aussen,AutomowerConnect
attr HusqvarnaMower userReadings [attach id=178828]beim Mähen.jpg[/attach]lastLatitude :mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{latitude}},\ lastLongitude:mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{longitude}}

Nun ergeben sich ein paar Fragen:

  • Internals/STATE zeigt "disconnected". Allerdings kann ich trotzdem Befehle senden (bspw. Set Mower Start 30, und er fährt los). Es scheint sich auch nur das Readings/mower_commandSend zu aktualisieren. Ist das so gewollt?
  • Wie kann ich denn die aktuelle geograpgische Position (GPS) abfragen? Das userReading habe ich wie beschrieben hinzugefügt. Allerdings wird es nicht angezeigt.
  • Wie häufig werden die Daten aktualisiert? Kann das eingestellt werden?

Im Log habe ich gerade noch diesen Fehler entdeckt:
 AutomowerConnect HusqvarnaMower wsCb: failed with error: HTTP CODE 403
Was bedeutet dies?

Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen. 
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-113-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 29003
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

stobor

Nachdem ich eine neue Application bei Husqvarna angelegt und diese in FHEM eingepflegt habe, klappt es jetzt wieder mit der Datenaktualisierung. Es schien irgend etwas mit dem vorherigen Key falsch gewesen zu sein.
Die Daten aktualisieren sich nun alle 30sec.

Wie muss ich jetzt aber die UserReadings eintragen, damit ich die Koordinaten bekomme?
attr HusqvarnaMower userReadings lastLatitude:mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{latitude}},\ lastLongitude:mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{longitude}}

{Dumper $defs{HusqvarnaMower}{helper}{mower}} liefert mir
$VAR1 = {
          'attributes' => {
                            'system' => {
                                          'serialNumber' => xxxx,
                                          'name' => 'Automower',
                                          'model' => "HUSQVARNA AUTOMOWER\x{ae} 430X"
                                        },
                            'mower' => {
                                         'mode' => 'MAIN_AREA',
                                         'errorCodeTimestamp' => 0,
                                         'errorCode' => 0,
                                         'inactiveReason' => 'NONE',
                                         'state' => 'IN_OPERATION',
                                         'activity' => 'MOWING'
                                       },
                            'battery' => {
                                           'batteryPercent' => 37
                                         },
                            'calendar' => {
                                            'tasks' => [
                                                         {
                                                           'tuesday' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                                                           'monday' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'tuesday'},
                                                           'saturday' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                                                           'friday' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'tuesday'},
                                                           'sunday' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'tuesday'},
                                                           'wednesday' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'tuesday'},
                                                           'start' => 720,
                                                           'duration' => 375,
                                                           'thursday' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'tuesday'}
                                                         }
                                                       ]
                                          },
                            'metadata' => {
                                            'connected' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                                            'statusTimestamp' => '1721997193574'
                                          },
                            'planner' => {
                                           'restrictedReason' => 'NOT_APPLICABLE',
                                           'override' => {
                                                           'action' => 'NOT_ACTIVE'
                                                         },
                                           'nextStartTimestamp' => 0
                                         },
                            'settings' => {
                                            'cuttingHeight' => 6,
                                            'headlight' => {
                                                             'mode' => 'EVENING_AND_NIGHT'
                                                           }
                                          },
                            'statistics' => {
                                              'totalRunningTime' => 10324800,
                                              'numberOfChargingCycles' => 1077,
                                              'totalDriveDistance' => 4026672,
                                              'numberOfCollisions' => 64652,
                                              'totalChargingTime' => 3189600,
                                              'totalCuttingTime' => 9867600,
                                              'totalSearchingTime' => 457200
                                            },
                            'positions' => [
                                             {
                                               'longitude' => '10.984715',
                                               'latitude' => '52.7687033',
                                               'act' => 'M'
                                             }
                                           ],
                            'capabilities' => {
                                                'workAreas' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'saturday'},
                                                'headlights' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'tuesday'},
                                                'position' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'tuesday'},
                                                'stayOutZones' => $VAR1->{'attributes'}{'calendar'}{'tasks'}[0]{'saturday'}
                                              }
                          },
          'id' => '0d788b',
          'type' => 'mower'
        };

Ich habe nun keine Idee, wie ich das USerReading codieren muss. Kann mir da jemand helfen?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-113-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 29003
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

stobor

Hab's nun alles hinbekommen. in den UserReadings war es ein fehlender Zeilenumbruch.

Da ich FHEM nun ein paar mal neu gestartet haben, aktualisiert sich nun wieder der HusqvarnaMower nicht mehr :(
State: closed
device_state: error statuscode

Trotz des kompletten Neustarts des Servers, musste ich noch einmal einen Shutdown restart durchführen, damit sich das Modul wieder fängt.
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-113-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 29003
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

stobor

#228
Welche Bedeutung haben denn die Farben in der erzeugten Weg-Karte?
Bei mir gibt es:
  • Grau gestrichelt
  • Rot gestrichelt
  • Grün gestrichelt
  • Blau durchgezogen

Und wie auch in der Husqvarna App, ist leider die Karte etwas verschoben. Gibt es Parameter, über die ich die Karte etwas schieben kann, oder mache ich das einfach über das Anpassen der Koordinaten bzw. ein leichtes Schieben der Karte, bevor ich sie speichere?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-113-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 29003
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

Ellert

So, ich bin wieder zurück und stelle fest, dass die aufgetretenen Fragen durch die Befrehlsreferenz, die Listen im Modul, den Wiki Beitrag oder im Forum beantwortet wurden.

ZitatGibt es Parameter, über die ich die Karte etwas schieben kann, oder mache ich das einfach über das Anpassen der Koordinaten bzw. ein leichtes Schieben der Karte, bevor ich sie speichere?
Ich würde das über die Bildregistrierung anpassen (mapImageCoordinatesToRegister).