Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das Husky2 Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • brunosa3
    antwortet

    Hallo zusammen,

    ich bin gerade dabei mit dem plugin mein 405x Automower in SmarthomeNG (1.8.2.master) anzubinden.

    Dabei habe ich es geschafft das husky2 plugin zu aktivieren aber noch nicht mit einer Verbindung zu meinem Automower.

    Als redirect URL habe ich den URL zum Authentication API "https://api.authentication.husqvarnagroup.dev/v1/oauth2/token" & Automower® Connect API "https://api.amc.husqvarna.dev/v1/mowers" eingetragen.

    in der plugin config datei habe ich meine e-mail Adresse und Passwort zu meinem account eingetragen und die API-key (nicht application secret)

    Code:
    am405x:
        plugin_name: husky2
        userid: xxxxxx.xxxxx@xxx.xx
        password: xxxxxx
        apikey: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Der test im Terminal war erfolgreich, dennoch erhalte ich im log folgenden Eintrag. image.png

    Kann mir jemand bei diesem Problem jemand einen Tipp geben wie ich die Verbindung richtig herstelle?

    LG

    Einen Kommentar schreiben:


  • hijacker7
    antwortet
    MMatt24 hat rausgefunden, dass die neuen Versionen von aioautomower nicht mehr funktionieren, weil sich etwas in der Projekt-/Klassenstruktur geändert hat.
    Werde demnächst alles auf die neuen Versionen umstellen und dann auch eine Versionen-Beschränkung im requirements.txt hinzufügen.

    Verwendet vorübergehend bitte die Version 2022.3.1.
    Von Hand installiert wird die mit:
    Code:
    python3 -m pip install aioautomower==2022.3.1 --upgrade --user
    Falls ihr schon eine andere Version installiert habt (oder SHNG dies automatisch gemacht hat), solltet ihr zuvor noch diese entfernen:
    pip uninstall aioautomower

    Lg
    Zuletzt geändert von bmx; 14.06.2022, 21:51.

    Einen Kommentar schreiben:


  • hijacker7
    antwortet
    Ach sorry, ja hast recht den Zeitplan kann man via API mit dem Calendar Task auslesen und ändern.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von hijacker7 Beitrag anzeigen
    Die Zeitpläne sind nicht teil des API somit kannst du diese nur in der App einstellen. So ist es auch mit vielen anderen Einstellungen die den prinzipiellen Setup deines Gartens und der Leitlinien betreffen. Bis auf Schnitthöhe und Scheinwerfer gibts da von Husqvarna-Seite aus nix via API zu machen.
    Ich meine nicht Befehle für die Zeitpläne, sondern die Anzeige der Daten aus der App. Gemäss der Websocket-Beschreibung sind die Daten zum Kalender schon zu finden (siehe Setting-Event):

    https://developer.husqvarnagroup.clo...API#/websocket

    Mit der Einführung des sog. AIM wird die Sache aber komplexer (Arbeits- und Sperrbereiche). Dazu finde ich in den Schnittstellenbeschreibungen aber noch nichts.

    Einen Kommentar schreiben:


  • hijacker7
    antwortet
    Die Zeitpläne sind nicht teil des API somit kannst du diese nur in der App einstellen. So ist es auch mit vielen anderen Einstellungen die den prinzipiellen Setup deines Gartens und der Leitlinien betreffen. Bis auf Schnitthöhe und Scheinwerfer gibts da von Husqvarna-Seite aus nix via API zu machen.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von hijacker7 Beitrag anzeigen
    Zum Zeitplan einfach ein Start-Stop Item anlegen und eine UZSU drauf und bei Änderung die start und park items vom AM aufrufen.
    Ich meine die Zeitpläne in der App von Husqvarna. Eine direkte Ansteuerung aus smarthomeNG mit UZSU möchte ich (vorerst) nicht benutzen.


    Einen Kommentar schreiben:


  • hijacker7
    antwortet
    Hallo,

    ja stimmt die item.yaml ist Mist die hab ich vergessen upzudateden. Habe aber auch in der Doku geschrieben, dass man vom Struktur-Template ausgehen soll, und dies evtl erweitern.

    Das mit der Seriennummer auf typ num ändern ist genau das Problem was ein Stück weiter oben auch beschrieben wurde, ich aber noch nicht fixen konnte.

    Zum Zeitplan einfach ein Start-Stop Item anlegen und eine UZSU drauf und bei Änderung die start und park items vom AM aufrufen.


    bmx ich mach das schon wenn ich mal einen Tag Zeit finde.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von bmx Beitrag anzeigen
    Ich würde in der Zwischenzeit mir die struct "basic" mal ansehen die enthalten ist ob die vielleicht out of the box funktioniert.
    Habe aus der Struktur in plugin.yaml ein am.yaml für mein items-Verzeichnis gemacht:

    Code:
    am:
    
        basic:
            name: Default Mower Template
    
            info:
                name: Mower information
    
                device:
                    husky_info: NAME
                    type: str
                    visu_acl: ro
    
                model:
                    husky_info: MODEL
                    type: str
                    visu_acl: ro
    
                id:
                    husky_info: ID
                    type: str
                    visu_acl: ro
    
                serial:
                    husky_info: SERIAL
                    type: num
                    visu_acl: ro
    
            state:
                name: State information
    
                connection:
                    name: mower connection state
                    husky_state: connection
                    type: bool
                    visu_acl: ro
    
                inoperation:
                    name: mower in operation mode
                    type: bool
                    visu_acl: ro
                    eval: "sh...activity() in ['MOWING', 'GOING_HOME', 'LEAVING']"
                    eval_trigger: ..activity
    
                activity:
                    name: activity [ UNKNOWN, NOT_APPLICABLE, MOWING, GOING_HOME, CHARGING, LEAVING, PARKED_IN_CS ]
                    husky_state: activity
                    type: str
                    visu_acl: ro
    
                errormessage:
                    husky_state: errormessage
                    type: str
                    visu_acl: ro
                    initial_value: 'no error'
    
                message:
                    husky_state: errormessage
                    type: str
                    visu_acl: ro
                    initial_value: 'Ok'
    
                mode:
                    name: mode [ MAIN_AREA, SECONDARY_AREA, HOME, DEMO, UNKNOWN ]
                    husky_state: mode
                    type: str
                    visu_acl: ro
    
                state:
                    name: state [ UNKNOWN, NOT_APPLICABLE, PAUSED, IN_OPERATION, WAIT_UPDATING, WAIT_POWER_UP, RESTRICTED, OFF, STOPPED, ERROR, FATAL_ERROR, ERROR_AT_POWER_UP ]
                    husky_state: state
                    type: str
                    visu_acl: ro
    
                batterypercent:
                    husky_state: batterypercent
                    type: num
                    visu_acl: ro
    
                battery255:
                    type: num
                    visu_acl: ro
                    eval: int(value * 255 / 100)
                    eval_trigger: ..batterypercent
    
                longitude:
                    name: mower gps longitude
                    husky_state: longitude
                    type: num
                    visu_acl: ro
    
                latitude:
                    name: mower gps latitude
                    husky_state: latitude
                    type: num
                    visu_acl: ro
    
            control:
                name: Steuerbefehle
    
                start3H:
                    name: Start
                    type: num
                    husky_control: STARTTIME
                    visu_acl: rw
                    initial_value: 180
                    enforce_updates: True
    
                resume:
                    name: Start
                    type: bool
                    husky_control: Resume
                    visu_acl: rw
                    enforce_updates: True
    
                stop:
                    name: Stop
                    type: bool
                    husky_control: Pause
                    visu_acl: rw
                    enforce_updates: True
    
                park:
                    name: Park
                    type: bool
                    husky_control: PARK
                    visu_acl: rw
                    enforce_updates: True
    
                park3H:
                    name: Park
                    type: num
                    husky_control: PARKTIME
                    visu_acl: rw
                    initial_value: 180
                    enforce_updates: True
    
                parkPermantent:
                    name: Park
                    type: bool
                    husky_control: PARKPERMANENT
                    visu_acl: rw
                    enforce_updates: True
    
                parkUntilNext:
                    name: Park
                    type: bool
                    husky_control: PARKNEXT
                    visu_acl: rw
                    enforce_updates: True
    
                cuttingHeight:
                    name: cutting height [1, 2, 3, 4, 5, 6, 7, 8, 9]
                    husky_control: cuttingHeight
                    type: num
                    visu_acl: rw
                    enforce_updates: True
                    cache: true
    
                headLight:
                    name: headLight settings [ ALWAYS_ON, ALWAYS_OFF, EVENING_ONLY, EVENING_AND_NIGHT ]
                    husky_control: headLight
                    type: str
                    visu_acl: rw
                    enforce_updates: True
    Bei der Serienummer musste ich den Datentyp auf 'num' ändern. Der Rest scheint zu passen.

    Weiss jemand wie man die weiteren Daten definieren muss (z.Bsp. Zeitplan) ?

    Einen Kommentar schreiben:


  • bmx
    antwortet
    So wie ich das sehe, müsste an der Dokumentation noch einiges nachgezogen werden, beispielsweise in der plugin.yaml die erlaubten Schlüsselwörte bei "husky_state".
    Vielleicht passiert das ja noch nach und nach oder jemand bereitet einen PR dazu vor.

    Ich würde in der Zwischenzeit mir die struct "basic" mal ansehen die enthalten ist ob die vielleicht out of the box funktioniert.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von manhartm Beitrag anzeigen
    Habe mich leider nicht mehr an den Trick zum Einfügen von solchen Daten in diesem Forum erinnert.
    Deshalb gibt es hier im SmartHomeNG Forum diesen Thread, der oben angepinnt ist

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Habe mich leider nicht mehr an den Trick zum Einfügen von solchen Daten in diesem Forum erinnert. Hier nochmals:

    Code:
    husky_plugin:
    
        mower:
            name: Maehroboter
    
            info:
                name: Mower information (not implemented yet)
    
                device:
                    husky_info: NAME
                    type: str
                    visu_acl: ro
    
                model:
                    husky_info: MODEL
                    type: str
                    visu_acl: ro
    
                id:
                    husky_info: ID
                    type: str
                    visu_acl: ro
    
            state:
                name: State information
    
                activity:
                    husky_state: activity
                    type: str
                    visu_acl: ro
    
                message:
                    husky_state: message
                    type: str
                    visu_acl: ro
    
                color:
                    name: Color for the message, e.g 38761D
                    husky_state: color
                    type: str
                    visu_acl: ro
    
                batterypercent:
                    name: Battery Level 0..100
                    husky_state: batterypercent
                    type: num
                    visu_acl: ro
    
                battery255:
                    name: Battery Level 0..255
                    type: num
                    visu_acl: ro
                    eval: int(value * 255 / 100)
                    eval_trigger: ..batterypercent
    
            control:
                name: Steuerbefehle
    
                start:
                    name: Start
                    husky_control: START
                    type: bool
                    visu_acl: rw
                    enforce_updates: True
    
                start_3h:
                    name: Start (Override 3h)
                    husky_control: START_3H
                    type: bool
                    visu_acl: rw
                    enforce_updates: True
    
                stop:
                    name: Stop
                    husky_control: STOP
                    type: bool
                    visu_acl: rw
                    enforce_updates: True
    
                park:
                    name: Park
                    husky_control: PARK
                    type: bool
                    visu_acl: rw
                    enforce_updates: True
    
                park:
                    name: Park until next Timer
                    husky_control: PARK_TIMER
                    type: bool
                    visu_acl: rw
                    enforce_updates: True

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    In den Item Definitionen, die Du gepostet hast, stimmen zumindest die Einrückungen nicht.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Ich installiere gerade smarthomeNG neu auf einem Raspberry Pi 4 und möchte auch das Husky2 Plugin mit unserem 435X nutzen. Ich kopierte die Datei items.yaml mit neuem Dateinamen in mein items-Verzeichnis und bekam beim Start diese Fehlermeldungen:

    Code:
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.info.device', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.info.model', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.info.id', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.state.activity', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.state.message', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.state.color', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 ERROR plugins.husky2 value 'color' invalid, use one of ['message', 'state', 'activity', 'mode', 'errormessage', 'batterypercent', 'connection', 'longitude', 'latitude']
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.state.batterypercent', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 WARNING lib.metadata Item 'husky_plugin.mower.state.battery255', attribute 'visu_acl': Invalid value 'r' for attribute 'visu_acl' -> using 'rw' instead (defined in am.yaml)
    2022-05-28 08:07:23 ERROR plugins.husky2 command 'start' invalid, use one of ['starttime', 'park', 'park_timer', 'starttime', 'pause', 'parkpermanent', 'parktime', 'parknext', 'resume', 'cuttingheight', 'headlight']
    2022-05-28 08:07:23 ERROR plugins.husky2 command 'start_3h' invalid, use one of ['starttime', 'park', 'park_timer', 'starttime', 'pause', 'parkpermanent', 'parktime', 'parknext', 'resume', 'cuttingheight', 'headlight']
    2022-05-28 08:07:23 ERROR plugins.husky2 command 'stop' invalid, use one of ['starttime', 'park', 'park_timer', 'starttime', 'pause', 'parkpermanent', 'parktime', 'parknext', 'resume', 'cuttingheight', 'headlight']
    In dieser Datei items.yaml findet sich diese Konfiguration (Beispiel):

    Code:
    husky_plugin:
    
        mower:
            name: Maehroboter
    
            info:
                name: Mower information (not implemented yet)
    
                device:
                    husky_info: NAME
                    type: str
                    visu_acl: r
    Die Anweisung "visu_acl:r" ist nicht korrekt und müsste "visu_acl:ro" lauten. Damit reduzieren sich die Fehlermeldungen auf:

    Code:
    2022-05-28 08:15:25 ERROR plugins.husky2 value 'color' invalid, use one of ['message', 'state', 'activity', 'mode', 'errormessage', 'batterypercent', 'connection', 'longitude', 'latitude']
    2022-05-28 08:15:25 ERROR plugins.husky2 command 'start' invalid, use one of ['starttime', 'park', 'park_timer', 'starttime', 'pause', 'parkpermanent', 'parktime', 'parknext', 'resume', 'cuttingheight', 'headlight']
    2022-05-28 08:15:25 ERROR plugins.husky2 command 'start_3h' invalid, use one of ['starttime', 'park', 'park_timer', 'starttime', 'pause', 'parkpermanent', 'parktime', 'parknext', 'resume', 'cuttingheight', 'headlight']
    2022-05-28 08:15:25 ERROR plugins.husky2 command 'stop' invalid, use one of ['starttime', 'park', 'park_timer', 'starttime', 'pause', 'parkpermanent', 'parktime', 'parknext', 'resume', 'cuttingheight', 'headlight']
    Hier komme ich nun nicht mehr weiter. Die Items sehen wie folgt aus (1:1 übernommen aus items.yaml aus dem Plugin-Verzeichnis):

    Code:
    husky_plugin:
    
        mower:
            state:
               color:
                  name: Color for the message, e.g 38761D
                  husky_state: color
                  type: str
                  visu_acl: ro
    
           control:
              start:
                  name: Start
                  husky_control: START
                  type: bool
                  visu_acl: rw
                  enforce_updates: True
    
              start_3h:
                  name: Start (Override 3h)
                  husky_control: START_3H
                  type: bool
                  visu_acl: rw
                  enforce_updates: True
    
              stop:
                  name: Stop
                  husky_control: STOP
                  type: bool
                  visu_acl: rw
                  enforce_updates: True
    Wie müssen hier genau die Eingaben angepasst werden ?

    Ich bin sowohl bei smarthomeNG wie auch bei den Plugins auf "develop".

    Einen Kommentar schreiben:


  • hijacker7
    antwortet
    Hallo Matthias.

    Falls du dem Key in der Cloud
    die "Authentication API" zugewiesen hast und es dennoch nicht funktioniert, wird es ein Fehler im Code sein. Kannst du das bitte nochmal prüfen und mir bestätigen, dass die Zuweisung soweit passt?

    Ps.
    Scaramangas ich hab dich nicht vergessen. Ich habs nur zeitlich noch nicht geschaft das zubeheben. Sorry dafür.

    Bin grade sehr beschäftigt. Ich schaue mir beide Probleme nächste Woche genauer an.

    Lg

    Einen Kommentar schreiben:


  • MMatt24
    antwortet
    Hallo,
    vielen Dank führ Eure Mühe. Wollte ich doch gleich mal testen und bei mir einbinden.
    Habe nach meiner Einschätzung alles nach Anleitung durchgeführt.
    In der Husqvarna-Cloud angezeigte Link zum Test des Token funktioniert auch.
    Dennoch erhalte ich im Log folgende Fehlermeldung. Was könnte noch falsch sein?

    2022-05-24 13:17:49 ERROR lib.plugin Plugin 'husky2' exception in run() method: module 'aioautomower' has no attribute 'AutomowerSession'
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/lib/plugin.py", line 676, in run
    > self.plugin.run()
    > File "/usr/local/smarthome/plugins/husky2/__init__.py", line 260, in run
    > asyncio.run(self.worker())
    > File "/usr/local/lib/python3.8/asyncio/runners.py", line 43, in run
    > return loop.run_until_complete(main)
    > File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    > return future.result()
    > File "/usr/local/smarthome/plugins/husky2/__init__.py", line 490, in worker
    > self.apiSession = aioautomower.AutomowerSession(self.apikey, token=None)
    > AttributeError: module 'aioautomower' has no attribute 'AutomowerSession'

    Gruß Matthias

    Einen Kommentar schreiben:

Lädt...
X