Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter Husqvarna Automower v0.3.x

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Test Adapter Husqvarna Automower v0.3.x

Geplant Angeheftet Gesperrt Verschoben Tester
husqvarnaautomower
439 Beiträge 73 Kommentatoren 104.5k Aufrufe 62 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BoronsbruderB Boronsbruder

    @lustig29
    Bei mir läufts ähnlich, wenn die Wetterstation Regen meldet (länger als 5 min am Stück), dann Husch ins Körbchen.
    Und 3 Std nach Regenende geht es dann wieder an die Arbeit.

    Gesteuert wird über ein Javascript

    K Offline
    K Offline
    Kanumouse
    schrieb am zuletzt editiert von
    #288

    Hi,
    an dieser Stelle einmal die Frage an alle die den Adapter im Einsatz haben.
    Bei mir geht der Adapter ab und zu einmal in Störung. Ich vermute, dass er die Verbindung zur Husqvarna-Cloud verleirt.
    Ist das bei euch ggf. auch so?

    R 1 Antwort Letzte Antwort
    0
    • K Kanumouse

      Hi,
      an dieser Stelle einmal die Frage an alle die den Adapter im Einsatz haben.
      Bei mir geht der Adapter ab und zu einmal in Störung. Ich vermute, dass er die Verbindung zur Husqvarna-Cloud verleirt.
      Ist das bei euch ggf. auch so?

      R Offline
      R Offline
      reutli
      schrieb am zuletzt editiert von
      #289

      @kanumouse
      Was heisst "in Störung"? Ich habe auch ab und an mal, dass der Adapter "gelb" wird, nach Neustart dann aber wieder ordnungsgemäß verbindet.

      BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
      iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

      *Wer freundlich ist, dem wird freundlich geholfen *

      K 1 Antwort Letzte Antwort
      0
      • R reutli

        @kanumouse
        Was heisst "in Störung"? Ich habe auch ab und an mal, dass der Adapter "gelb" wird, nach Neustart dann aber wieder ordnungsgemäß verbindet.

        K Offline
        K Offline
        Kanumouse
        schrieb am zuletzt editiert von
        #290

        @reutli
        Genau so ist es bei mir auch.
        Aber wo liegt die Ursache?

        R 1 Antwort Letzte Antwort
        0
        • K Kanumouse

          @reutli
          Genau so ist es bei mir auch.
          Aber wo liegt die Ursache?

          R Offline
          R Offline
          reutli
          schrieb am zuletzt editiert von
          #291

          @kanumouse
          Die Ursache kenne ich nicht, aber die APIs von Husqvarna und Gardena nicht nicht gerade stabil.

          BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
          iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

          *Wer freundlich ist, dem wird freundlich geholfen *

          T 1 Antwort Letzte Antwort
          0
          • R reutli

            @kanumouse
            Die Ursache kenne ich nicht, aber die APIs von Husqvarna und Gardena nicht nicht gerade stabil.

            T Offline
            T Offline
            TomBo1969
            schrieb am zuletzt editiert von
            #292

            @reutli @Kanumouse
            Bei mir wird der Adapter im laufenden Betrieb tatsächlich 1x täglich gelb und verbindet sich nicht erneut.

            Ich versuche das zu umgehen, in dem ich den Adapter jede Nacht per Script neu starte.

            R K 2 Antworten Letzte Antwort
            0
            • T TomBo1969

              @reutli @Kanumouse
              Bei mir wird der Adapter im laufenden Betrieb tatsächlich 1x täglich gelb und verbindet sich nicht erneut.

              Ich versuche das zu umgehen, in dem ich den Adapter jede Nacht per Script neu starte.

              R Offline
              R Offline
              reutli
              schrieb am zuletzt editiert von
              #293

              @tombo1969
              Das habe ich so nicht! Dann würde ich einen issue in Github beim Adapter aufmachen (Github).

              Ich habe aber auch noch die "alte" V.0.0.5 am Laufen. Zwischenzeitlich wurde ja das Log-In geändert, vllt. hängt es damit zusammen?

              Kannst ja mal die 0.0.5 testen.

              BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
              iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

              *Wer freundlich ist, dem wird freundlich geholfen *

              T 1 Antwort Letzte Antwort
              0
              • Q Offline
                Q Offline
                Qlink
                schrieb am zuletzt editiert von
                #294

                @TomBo1969 @reutli @Boronsbruder

                Hat von euch jemand die Regenerkennung für den Mower in Blockly umgesetzt ?
                Falls ja, könntet ihr euer Blockly teilen ?

                Danke.

                Beste Grüße

                R T 2 Antworten Letzte Antwort
                0
                • Q Qlink

                  @TomBo1969 @reutli @Boronsbruder

                  Hat von euch jemand die Regenerkennung für den Mower in Blockly umgesetzt ?
                  Falls ja, könntet ihr euer Blockly teilen ?

                  Danke.

                  Beste Grüße

                  R Offline
                  R Offline
                  reutli
                  schrieb am zuletzt editiert von
                  #295

                  @qlink

                  Ich habe noch keine Regenerkennung drin. Braucht's ja auch nicht - es regnet ja nicht 😁

                  BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
                  iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

                  *Wer freundlich ist, dem wird freundlich geholfen *

                  1 Antwort Letzte Antwort
                  0
                  • R reutli

                    @tombo1969
                    Das habe ich so nicht! Dann würde ich einen issue in Github beim Adapter aufmachen (Github).

                    Ich habe aber auch noch die "alte" V.0.0.5 am Laufen. Zwischenzeitlich wurde ja das Log-In geändert, vllt. hängt es damit zusammen?

                    Kannst ja mal die 0.0.5 testen.

                    T Offline
                    T Offline
                    TomBo1969
                    schrieb am zuletzt editiert von
                    #296

                    @reutli Ich habe die Version 0.2.0, da es mit den vorherigen Versionen bei mir nicht mit der Authentifizierung geklappt hat.
                    Inzwischen habe ich aber auch von einem nächtlichen Neustart auf eine direkte Überwachung der Instanz umgebaut. Jetzt wird nach 30 Sekunden neu gestartet, wenn der Adapter keine Verbindung mehr hat. Klappt soweit gut.

                    R 1 Antwort Letzte Antwort
                    0
                    • Q Qlink

                      @TomBo1969 @reutli @Boronsbruder

                      Hat von euch jemand die Regenerkennung für den Mower in Blockly umgesetzt ?
                      Falls ja, könntet ihr euer Blockly teilen ?

                      Danke.

                      Beste Grüße

                      T Offline
                      T Offline
                      TomBo1969
                      schrieb am zuletzt editiert von
                      #297

                      @qlink Worübee erkennst du denn, dass es bei dir im Garten regnet?
                      Bei mir ist es ein Netatmo Regensensor..

                      Q 1 Antwort Letzte Antwort
                      0
                      • T TomBo1969

                        @reutli Ich habe die Version 0.2.0, da es mit den vorherigen Versionen bei mir nicht mit der Authentifizierung geklappt hat.
                        Inzwischen habe ich aber auch von einem nächtlichen Neustart auf eine direkte Überwachung der Instanz umgebaut. Jetzt wird nach 30 Sekunden neu gestartet, wenn der Adapter keine Verbindung mehr hat. Klappt soweit gut.

                        R Offline
                        R Offline
                        reutli
                        schrieb am zuletzt editiert von
                        #298

                        @tombo1969 sagte in Test Adapter Husqvarna Automower v0.3.x:

                        Ich habe die Version 0.2.0, da es mit den vorherigen Versionen bei mir nicht mit der Authentifizierung geklappt hat.
                        Inzwischen habe ich aber auch von einem nächtlichen Neustart auf eine direkte Überwachung der Instanz umgebaut. Jetzt wird nach 30 Sekunden neu gestartet, wenn der Adapter keine Verbindung mehr hat. Klappt soweit gut.

                        Komisch, die Authentifizierung klappt bei mir mit der 0.0.5 bestens.
                        Habe einen Entwickler-Account bei Husqvarna und fahre mit dem....

                        Husqvarna.png

                        husqvarna-automower.0
                        	2022-08-01 12:00:08.545	info	Connection to "Husqvarna WebSocket" established. Ready to get status events...
                        husqvarna-automower.0
                        	2022-08-01 12:00:08.161	info	Mower information saved...
                        husqvarna-automower.0
                        	2022-08-01 12:00:06.691	info	"Husqvarna Authentication API Access token" received.
                        husqvarna-automower.0
                        	2022-08-01 12:00:03.129	info	Trying to connect "Automower Connect API"...
                        husqvarna-automower.0
                        	2022-08-01 12:00:03.127	info	starting adapter "husqvarna-automower"...
                        husqvarna-automower.0
                        	2022-08-01 12:00:03.108	info	starting. Version 0.0.5 (non-npm: ice987987/ioBroker.husqvarna-automower#07614ddfe80b74360398811919f0342e55c3100f) in /opt/iobroker/node_modules/iobroker.husqvarna-automower, node: v14.20.0, js-controller: 4.0.23
                        

                        BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
                        iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

                        *Wer freundlich ist, dem wird freundlich geholfen *

                        1 Antwort Letzte Antwort
                        0
                        • T TomBo1969

                          @qlink Worübee erkennst du denn, dass es bei dir im Garten regnet?
                          Bei mir ist es ein Netatmo Regensensor..

                          Q Offline
                          Q Offline
                          Qlink
                          schrieb am zuletzt editiert von
                          #299

                          @tombo1969

                          Ich verwende einen Weatherman als meine Wetterstation.
                          Der hat einen Regensensor eingebaut.

                          @reutli aber du hast doch weiter oben geschrieben, dass du den Mower schlafen schickst bei Regen ... ?

                          Beste Grüße

                          R 1 Antwort Letzte Antwort
                          0
                          • Q Qlink

                            @tombo1969

                            Ich verwende einen Weatherman als meine Wetterstation.
                            Der hat einen Regensensor eingebaut.

                            @reutli aber du hast doch weiter oben geschrieben, dass du den Mower schlafen schickst bei Regen ... ?

                            Beste Grüße

                            R Offline
                            R Offline
                            reutli
                            schrieb am zuletzt editiert von
                            #300

                            @qlink sagte in Test Adapter Husqvarna Automower v0.3.x:

                            @reutli aber du hast doch weiter oben geschrieben, dass du den Mower schlafen schickst bei Regen ... ?

                            Ja, hatte ich mal, habe ich aber gelöscht, weil nicht zuverlässig funktioniert. Hätte also richtig schreiben müssen "... schickte ich bisher immer schlafen...". Habe jetzt auch eine Wetterstation mit echtem Regegnsensor (Homematic) und wollte das wieder einbauen, bin aber noch nicht dazu gekommen - schäm

                            BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
                            iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

                            *Wer freundlich ist, dem wird freundlich geholfen *

                            1 Antwort Letzte Antwort
                            0
                            • T TomBo1969

                              @reutli @Kanumouse
                              Bei mir wird der Adapter im laufenden Betrieb tatsächlich 1x täglich gelb und verbindet sich nicht erneut.

                              Ich versuche das zu umgehen, in dem ich den Adapter jede Nacht per Script neu starte.

                              K Offline
                              K Offline
                              Kanumouse
                              schrieb am zuletzt editiert von
                              #301

                              @tombo1969 @reutli

                              Ok, das Problem habe ich jetzt auch mit einem Blockly gelöst.
                              Ich überwache den Connect-Status der Instanz und starte die Instanz bei verloren gegangener Verbindung neu.

                              1 Antwort Letzte Antwort
                              0
                              • L lustig29

                                @ste_glei

                                Das war es. Super.

                                Jetzt hab ich nur 2 Fragen.

                                Wie macht ihr das mit der Regenerfassung. Und würde jemand vielleicht seine Vis, passend zum Adapter zur Verfügung stellen?

                                A Offline
                                A Offline
                                ArnoD
                                schrieb am zuletzt editiert von
                                #302

                                @lustig29 sagte in Test Adapter Husqvarna Automower v0.3.x:

                                @ste_glei

                                Das war es. Super.

                                Jetzt hab ich nur 2 Fragen.

                                Wie macht ihr das mit der Regenerfassung. Und würde jemand vielleicht seine Vis, passend zum Adapter zur Verfügung stellen?

                                Ich habe jetzt mal eine View für den neuen Adapter Husqvarna-Automower 0.2.0 erstellt:
                                72bbd072-9c52-4afa-a6ce-b14c14bc3553-grafik.png

                                Den Adapter habe ich um die statistics Objekte ID bei mir erweitert, also nicht wundern, wenn bei euch nicht alle Werte verfügbar sind. Ich habe auch das Script erweitert, so das ich eine Startzeit und Endzeit eingeben kann und das Script die entsprechenden Werte bei duration und start einträgt.
                                Es müssen natürlich auch alle Pfade bei euch angepasst werden, da ich den Application Key natürlich durch xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ersetzt habe.
                                Hier die View zum Importieren:
                                Husqvarna_VIS_View.js

                                L 1 Antwort Letzte Antwort
                                0
                                • A ArnoD

                                  @lustig29 sagte in Test Adapter Husqvarna Automower v0.3.x:

                                  @ste_glei

                                  Das war es. Super.

                                  Jetzt hab ich nur 2 Fragen.

                                  Wie macht ihr das mit der Regenerfassung. Und würde jemand vielleicht seine Vis, passend zum Adapter zur Verfügung stellen?

                                  Ich habe jetzt mal eine View für den neuen Adapter Husqvarna-Automower 0.2.0 erstellt:
                                  72bbd072-9c52-4afa-a6ce-b14c14bc3553-grafik.png

                                  Den Adapter habe ich um die statistics Objekte ID bei mir erweitert, also nicht wundern, wenn bei euch nicht alle Werte verfügbar sind. Ich habe auch das Script erweitert, so das ich eine Startzeit und Endzeit eingeben kann und das Script die entsprechenden Werte bei duration und start einträgt.
                                  Es müssen natürlich auch alle Pfade bei euch angepasst werden, da ich den Application Key natürlich durch xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ersetzt habe.
                                  Hier die View zum Importieren:
                                  Husqvarna_VIS_View.js

                                  L Offline
                                  L Offline
                                  lustig29
                                  schrieb am zuletzt editiert von lustig29
                                  #303

                                  @arnod Super View. Meinst du, du könntest dein Skript mit den Einstellungen auch noch zur Verfügung stellen?
                                  Und wie geht das mit der Statistic Id?

                                  A 1 Antwort Letzte Antwort
                                  0
                                  • L lustig29

                                    @arnod Super View. Meinst du, du könntest dein Skript mit den Einstellungen auch noch zur Verfügung stellen?
                                    Und wie geht das mit der Statistic Id?

                                    A Offline
                                    A Offline
                                    ArnoD
                                    schrieb am zuletzt editiert von
                                    #304

                                    @lustig29 sagte in Test Adapter Husqvarna Automower v0.3.x:

                                    @arnod Super View. Meinst du, du könntest dein Skript mit den Einstellungen auch noch zur Verfügung stellen?

                                    Kein Problem, hier das passende Script:
                                    Husqvarna_Script.js

                                    Und wie geht das mit der Statistic Id?

                                    Dazu musst du in der main.js vom Adapter createObjects(mowerData) die fehlenden Objekte eintragen:

                                    await this.setObjectNotExistsAsync(mowerData[i].id + '.system.serialNumber', {
                                    						type: 'state',
                                    						common: {
                                    							name: 'Device serialnumber',
                                    							desc: 'Device serialnumber',
                                    							type: 'number', // acc. API it should be 'string'
                                    							role: 'info.serialnumber',
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    					
                                    					// create channel "statistics"
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics', {
                                    						type: 'channel',
                                    						common: {
                                    							name: 'statistics',
                                    							desc: 'statistics',
                                    						},
                                    						native: {}
                                    					});
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.cuttingBladeUsageTime', {
                                    						type: 'value',
                                    						common: {
                                    							name: 'Nutzungsdauer der Schneidklinge',
                                    							desc: 'Nutzungsdauer der Schneidklinge',
                                    							type: 'number',
                                    							role: 'value',
                                    							min: 0,
                                    							unit: 'ms',
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.numberOfChargingCycles', {
                                    						type: 'value',
                                    						common: {
                                    							name: 'Anzahl der Ladezyklen',
                                    							desc: 'Anzahl der Ladezyklen',
                                    							type: 'number',
                                    							role: 'value',
                                    							min: 0,
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.numberOfCollisions', {
                                    						type: 'value',
                                    						common: {
                                    							name: 'Anzahl der Kollisionen',
                                    							desc: 'Anzahl der Kollisionen',
                                    							type: 'number',
                                    							role: 'value',
                                    							min: 0,
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalChargingTime', {
                                    						type: 'value',
                                    						common: {
                                    							name: 'Gesamtladezeit',
                                    							desc: 'Gesamtladezeit',
                                    							type: 'number',
                                    							role: 'value',
                                    							min: 0,
                                    							unit: 'ms',
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalCuttingTime', {
                                    						type: 'value',
                                    						common: {
                                    							name: 'Gesamt Maehzeit',
                                    							desc: 'Gesamt Maehzeit',
                                    							type: 'number',
                                    							role: 'value',
                                    							min: 0,
                                    							unit: 'ms',
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalRunningTime', {
                                    						type: 'value',
                                    						common: {
                                    							name: 'Gesamtlaufzeit',
                                    							desc: 'Gesamtlaufzeit',
                                    							type: 'number',
                                    							role: 'value',
                                    							min: 0,
                                    							unit: 'ms',
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalSearchingTime', {
                                    						type: 'value',
                                    						common: {
                                    							name: 'Gesamtsuchzeit',
                                    							desc: 'Gesamtsuchzeit',
                                    							type: 'number',
                                    							role: 'value',
                                    							min: 0,
                                    							unit: 'ms',
                                    							read: true,
                                    							write: false
                                    						},
                                    						native: {}
                                    					});
                                    

                                    und in fillObjects(mowerData)die Werte zuweisen:

                                                            this.setStateAsync(mowerData[i].id + '.statistics.cuttingBladeUsageTime', {val: mowerData[i].attributes.statistics.cuttingBladeUsageTime, ack: true});
                                    			this.setStateAsync(mowerData[i].id + '.statistics.numberOfChargingCycles', {val: mowerData[i].attributes.statistics.numberOfChargingCycles, ack: true});
                                    			this.setStateAsync(mowerData[i].id + '.statistics.numberOfCollisions', {val: mowerData[i].attributes.statistics.numberOfCollisions, ack: true});
                                    			this.setStateAsync(mowerData[i].id + '.statistics.totalChargingTime', {val: mowerData[i].attributes.statistics.totalChargingTime, ack: true});
                                    			this.setStateAsync(mowerData[i].id + '.statistics.totalCuttingTime', {val: mowerData[i].attributes.statistics.totalCuttingTime, ack: true});
                                    			this.setStateAsync(mowerData[i].id + '.statistics.totalRunningTime', {val: mowerData[i].attributes.statistics.totalRunningTime, ack: true});
                                    			this.setStateAsync(mowerData[i].id + '.statistics.totalSearchingTime', {val: mowerData[i].attributes.statistics.totalSearchingTime, ack: true});
                                    

                                    Dann nur noch in async connectToWS()

                                    if ('statistics' in jsonMessage.attributes) {
                                    	this.setStateAsync(jsonMessage.id + '.statistics.cuttingBladeUsageTime', {val: jsonMessage.attributes.statistics.cuttingBladeUsageTime, ack: true});
                                    	this.setStateAsync(jsonMessage.id + '.statistics.numberOfChargingCycles', {val: jsonMessage.attributes.statistics.numberOfChargingCycles, ack: true});
                                    	this.setStateAsync(jsonMessage.id + '.statistics.numberOfCollisions', {val: jsonMessage.attributes.statistics.numberOfCollisions, ack: true});
                                    	this.setStateAsync(jsonMessage.id + '.statistics.totalChargingTime', {val: jsonMessage.attributes.statistics.totalChargingTime, ack: true});
                                    	this.setStateAsync(jsonMessage.id + '.statistics.totalCuttingTime', {val: jsonMessage.attributes.statistics.totalCuttingTime, ack: true});
                                    	this.setStateAsync(jsonMessage.id + '.statistics.totalRunningTime', {val: jsonMessage.attributes.statistics.totalRunningTime, ack: true});
                                    	this.setStateAsync(jsonMessage.id + '.statistics.totalSearchingTime', {val: jsonMessage.attributes.statistics.totalSearchingTime, ack: true});
                                    	// this.log.debug(`[wss.on - message]: jsonMessage.attributes.statistics: ${JSON.stringify(jsonMessage.attributes.statistics)}`);
                                    }
                                    

                                    Danach beim Adapter noch den Dateiupload ausführen und dann sollten die Statistics Werte vorhanden sein.
                                    Du solltest dich aber einigermaßen auskennen, um das zu ändern oder ein Issue auf Github aufmachen und den Entwickler bitten die Statistics Werte mit aufzunehmen.

                                    L bergjetB 2 Antworten Letzte Antwort
                                    0
                                    • A ArnoD

                                      @lustig29 sagte in Test Adapter Husqvarna Automower v0.3.x:

                                      @arnod Super View. Meinst du, du könntest dein Skript mit den Einstellungen auch noch zur Verfügung stellen?

                                      Kein Problem, hier das passende Script:
                                      Husqvarna_Script.js

                                      Und wie geht das mit der Statistic Id?

                                      Dazu musst du in der main.js vom Adapter createObjects(mowerData) die fehlenden Objekte eintragen:

                                      await this.setObjectNotExistsAsync(mowerData[i].id + '.system.serialNumber', {
                                      						type: 'state',
                                      						common: {
                                      							name: 'Device serialnumber',
                                      							desc: 'Device serialnumber',
                                      							type: 'number', // acc. API it should be 'string'
                                      							role: 'info.serialnumber',
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      					
                                      					// create channel "statistics"
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics', {
                                      						type: 'channel',
                                      						common: {
                                      							name: 'statistics',
                                      							desc: 'statistics',
                                      						},
                                      						native: {}
                                      					});
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.cuttingBladeUsageTime', {
                                      						type: 'value',
                                      						common: {
                                      							name: 'Nutzungsdauer der Schneidklinge',
                                      							desc: 'Nutzungsdauer der Schneidklinge',
                                      							type: 'number',
                                      							role: 'value',
                                      							min: 0,
                                      							unit: 'ms',
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.numberOfChargingCycles', {
                                      						type: 'value',
                                      						common: {
                                      							name: 'Anzahl der Ladezyklen',
                                      							desc: 'Anzahl der Ladezyklen',
                                      							type: 'number',
                                      							role: 'value',
                                      							min: 0,
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.numberOfCollisions', {
                                      						type: 'value',
                                      						common: {
                                      							name: 'Anzahl der Kollisionen',
                                      							desc: 'Anzahl der Kollisionen',
                                      							type: 'number',
                                      							role: 'value',
                                      							min: 0,
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalChargingTime', {
                                      						type: 'value',
                                      						common: {
                                      							name: 'Gesamtladezeit',
                                      							desc: 'Gesamtladezeit',
                                      							type: 'number',
                                      							role: 'value',
                                      							min: 0,
                                      							unit: 'ms',
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalCuttingTime', {
                                      						type: 'value',
                                      						common: {
                                      							name: 'Gesamt Maehzeit',
                                      							desc: 'Gesamt Maehzeit',
                                      							type: 'number',
                                      							role: 'value',
                                      							min: 0,
                                      							unit: 'ms',
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalRunningTime', {
                                      						type: 'value',
                                      						common: {
                                      							name: 'Gesamtlaufzeit',
                                      							desc: 'Gesamtlaufzeit',
                                      							type: 'number',
                                      							role: 'value',
                                      							min: 0,
                                      							unit: 'ms',
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      					await this.setObjectNotExistsAsync(mowerData[i].id + '.statistics.totalSearchingTime', {
                                      						type: 'value',
                                      						common: {
                                      							name: 'Gesamtsuchzeit',
                                      							desc: 'Gesamtsuchzeit',
                                      							type: 'number',
                                      							role: 'value',
                                      							min: 0,
                                      							unit: 'ms',
                                      							read: true,
                                      							write: false
                                      						},
                                      						native: {}
                                      					});
                                      

                                      und in fillObjects(mowerData)die Werte zuweisen:

                                                              this.setStateAsync(mowerData[i].id + '.statistics.cuttingBladeUsageTime', {val: mowerData[i].attributes.statistics.cuttingBladeUsageTime, ack: true});
                                      			this.setStateAsync(mowerData[i].id + '.statistics.numberOfChargingCycles', {val: mowerData[i].attributes.statistics.numberOfChargingCycles, ack: true});
                                      			this.setStateAsync(mowerData[i].id + '.statistics.numberOfCollisions', {val: mowerData[i].attributes.statistics.numberOfCollisions, ack: true});
                                      			this.setStateAsync(mowerData[i].id + '.statistics.totalChargingTime', {val: mowerData[i].attributes.statistics.totalChargingTime, ack: true});
                                      			this.setStateAsync(mowerData[i].id + '.statistics.totalCuttingTime', {val: mowerData[i].attributes.statistics.totalCuttingTime, ack: true});
                                      			this.setStateAsync(mowerData[i].id + '.statistics.totalRunningTime', {val: mowerData[i].attributes.statistics.totalRunningTime, ack: true});
                                      			this.setStateAsync(mowerData[i].id + '.statistics.totalSearchingTime', {val: mowerData[i].attributes.statistics.totalSearchingTime, ack: true});
                                      

                                      Dann nur noch in async connectToWS()

                                      if ('statistics' in jsonMessage.attributes) {
                                      	this.setStateAsync(jsonMessage.id + '.statistics.cuttingBladeUsageTime', {val: jsonMessage.attributes.statistics.cuttingBladeUsageTime, ack: true});
                                      	this.setStateAsync(jsonMessage.id + '.statistics.numberOfChargingCycles', {val: jsonMessage.attributes.statistics.numberOfChargingCycles, ack: true});
                                      	this.setStateAsync(jsonMessage.id + '.statistics.numberOfCollisions', {val: jsonMessage.attributes.statistics.numberOfCollisions, ack: true});
                                      	this.setStateAsync(jsonMessage.id + '.statistics.totalChargingTime', {val: jsonMessage.attributes.statistics.totalChargingTime, ack: true});
                                      	this.setStateAsync(jsonMessage.id + '.statistics.totalCuttingTime', {val: jsonMessage.attributes.statistics.totalCuttingTime, ack: true});
                                      	this.setStateAsync(jsonMessage.id + '.statistics.totalRunningTime', {val: jsonMessage.attributes.statistics.totalRunningTime, ack: true});
                                      	this.setStateAsync(jsonMessage.id + '.statistics.totalSearchingTime', {val: jsonMessage.attributes.statistics.totalSearchingTime, ack: true});
                                      	// this.log.debug(`[wss.on - message]: jsonMessage.attributes.statistics: ${JSON.stringify(jsonMessage.attributes.statistics)}`);
                                      }
                                      

                                      Danach beim Adapter noch den Dateiupload ausführen und dann sollten die Statistics Werte vorhanden sein.
                                      Du solltest dich aber einigermaßen auskennen, um das zu ändern oder ein Issue auf Github aufmachen und den Entwickler bitten die Statistics Werte mit aufzunehmen.

                                      L Offline
                                      L Offline
                                      lustig29
                                      schrieb am zuletzt editiert von
                                      #305

                                      @arnod Oh, vielen Dank. Das mit den Skript mache ich noch selber. Den Rest über lasse ich dann lieber den Profis. 😉

                                      opossumO 1 Antwort Letzte Antwort
                                      0
                                      • L lustig29

                                        @arnod Oh, vielen Dank. Das mit den Skript mache ich noch selber. Den Rest über lasse ich dann lieber den Profis. 😉

                                        opossumO Offline
                                        opossumO Offline
                                        opossum
                                        schrieb am zuletzt editiert von opossum
                                        #306

                                        Moin, @ArnoD,

                                        so ganz habe ich das noch nicht gerafft. Habe die main.js gepatched, auch den Dateiupload gemacht. Natürlich den Adapter vorher gestoppt und die originale main.js gesichert. Es wurden im Objektbaum auch die Objekte angelegt.

                                        a598562b-28b3-4cc2-9f58-e7331614ce7b-image.png

                                        Leider werden die Datenpunkte noch nicht befüllt. Bin da noch auf der Suche, warum da nichts geschrieben wird. Kannst Du mir sagen, was ich da falsch mache?

                                        Vielen Dank für die Bereitstellung Deiner VIS.

                                        https://schlepper-petersdorf.jimdofree.com/

                                        A bergjetB 2 Antworten Letzte Antwort
                                        0
                                        • opossumO opossum

                                          Moin, @ArnoD,

                                          so ganz habe ich das noch nicht gerafft. Habe die main.js gepatched, auch den Dateiupload gemacht. Natürlich den Adapter vorher gestoppt und die originale main.js gesichert. Es wurden im Objektbaum auch die Objekte angelegt.

                                          a598562b-28b3-4cc2-9f58-e7331614ce7b-image.png

                                          Leider werden die Datenpunkte noch nicht befüllt. Bin da noch auf der Suche, warum da nichts geschrieben wird. Kannst Du mir sagen, was ich da falsch mache?

                                          Vielen Dank für die Bereitstellung Deiner VIS.

                                          A Offline
                                          A Offline
                                          ArnoD
                                          schrieb am zuletzt editiert von
                                          #307

                                          @opossum

                                          Ich habe gestern ein Issue auf GitHub eröffnet, mit der Bitte das zu integrieren.
                                          ice987987 hat das heute bereits umgesetzt und ich habe es auch schon getestet und es funktioniert.

                                          Einzige Änderung zu meiner Version, die State werden nicht mehr vom Adapter automatisch in h umgerechnet, sondern in s angezeigt.
                                          Das kann man aber in VIS Editor mit Bindings z.B so lösen:

                                          {v:husqvarna-automower.0.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.statistics.totalSearchingTime;(v/3600).toFixed(0)} h
                                          

                                          Einfach heute über Github den Adapter aktualisieren. Es wird noch keine neue Version angezeigt.

                                          opossumO 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          638

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe