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.3k

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

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

Test Adapter Husqvarna Automower v0.3.x

Geplant Angeheftet Gesperrt Verschoben Tester
husqvarnaautomower
439 Beiträge 73 Kommentatoren 104.9k 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.
  • 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 Online
        A Online
        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
        • A ArnoD

          @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 Offline
          opossumO Offline
          opossum
          schrieb am zuletzt editiert von
          #308

          Hallo, @arnod,
          danke, dass Du Dich gekümmert hast. Funktioniert jetzt mit meinem Husqvarna 315X ohne Probleme.

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

          K K 2 Antworten Letzte Antwort
          0
          • opossumO opossum

            Hallo, @arnod,
            danke, dass Du Dich gekümmert hast. Funktioniert jetzt mit meinem Husqvarna 315X ohne Probleme.

            K Abwesend
            K Abwesend
            Kanumouse
            schrieb am zuletzt editiert von
            #309

            Hi,
            ich habe noch zwei Fragen zum Adapter, vielleicht kann mir die jemand beantworten.

            1. Durch was wird der Datenpunkt "CuttingBladeUsageTime" getriggert?
            2. Ich habe einen 315X, dort lassen sich meines Wissens nach nur zwei Startzeiten pro Tag programmieren. Bei den Objekten finde ich aber die Möglichkeit 4 Startzeiten pro Tage festzulegen (unter calender). Ist das für andere Modelle gedacht oder habe ich da einen Denkfehler?
            1 Antwort Letzte Antwort
            0
            • K Offline
              K Offline
              Kaschi68
              schrieb am zuletzt editiert von
              #310

              Hallo Zusammen, ich habe bei Husqvarna nach der neuen Anleitung einen Acc erstellt und auch den Application Key und den Application Secret bekommen. Der Adapter füllt auch die ganzen Objekte mit Daten nach einem Neustart. Und das ist auch mein Problem. Alle Daten werden nur nach Neustart aktualisiert. Das ist natürlich nicht so toll wenn ich den Status vom Mower brauche.

              Vielleicht habe ich auch bei dem Einrichten des Developer Acc einen Fehler gemacht…..
              Aktuell habe ich bei Husqvarna folgende API Daten.
              curl -X Post -d „……….. ergibt auch eine Antwort ohne Fehler.

              Was kann ich tun das sich meine Objekte stetig aktualisieren ?

              Vielen Dank und Gruß

              47D6192B-43D7-4B4F-AE12-E1849567CA86.jpeg

              Nach Neustart Folgendes im Protokoll

              9D52B431-2933-4821-9BDC-5737D4923D20.jpeg

              Thomas BraunT 1 Antwort Letzte Antwort
              0
              • K Kaschi68

                Hallo Zusammen, ich habe bei Husqvarna nach der neuen Anleitung einen Acc erstellt und auch den Application Key und den Application Secret bekommen. Der Adapter füllt auch die ganzen Objekte mit Daten nach einem Neustart. Und das ist auch mein Problem. Alle Daten werden nur nach Neustart aktualisiert. Das ist natürlich nicht so toll wenn ich den Status vom Mower brauche.

                Vielleicht habe ich auch bei dem Einrichten des Developer Acc einen Fehler gemacht…..
                Aktuell habe ich bei Husqvarna folgende API Daten.
                curl -X Post -d „……….. ergibt auch eine Antwort ohne Fehler.

                Was kann ich tun das sich meine Objekte stetig aktualisieren ?

                Vielen Dank und Gruß

                47D6192B-43D7-4B4F-AE12-E1849567CA86.jpeg

                Nach Neustart Folgendes im Protokoll

                9D52B431-2933-4821-9BDC-5737D4923D20.jpeg

                Thomas BraunT Online
                Thomas BraunT Online
                Thomas Braun
                Most Active
                schrieb am zuletzt editiert von
                #311

                @kaschi68

                Ich würde ja aktuelle Versionen fahren.
                nodejs16 / js-controller 4.

                Linux-Werkzeugkasten:
                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                NodeJS Fixer Skript:
                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                K 1 Antwort 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.

                  bergjetB Offline
                  bergjetB Offline
                  bergjet
                  schrieb am zuletzt editiert von
                  #312

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

                  Kein Problem, hier das passende Script:

                  //***************************************************************************************************
                  //++++++++++++++++++++++++++++++++++++++++  USER ANPASSUNGEN ++++++++++++++++++++++++++++++++++++++++
                  
                  const instanz = '0_userdata.0.';
                  const PfadEbene1 = 'Husqvarna.';
                  const PfadEbene2 = ['Statistik.', 'Zeiten.', 'Allgemein.'];
                  const Mover_ID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
                  
                  //---------------------------------------------------------------------------------------------------
                  //++++++++++++++++++++++++++++++++++++++ ENDE USER ANPASSUNGEN ++++++++++++++++++++++++++++++++++++++
                  //---------------------------------------------------------------------------------------------------
                  

                  Mover_ID ist klar.
                  Aber müssen die Datenpunkte Statistik, Zeiten, Allgemein mit irgendwas übereinstimmen?
                  Diese werden ja vom Script angelegt.

                  homee, ioBroker, iMac, iPhone, Sonos, Alaxa

                  A 1 Antwort 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.

                    bergjetB Offline
                    bergjetB Offline
                    bergjet
                    schrieb am zuletzt editiert von
                    #313

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

                    Leider werden die Datenpunkte noch nicht befüllt

                    Bei mir auch nicht. Was hast du gemacht, dass es nun geht?

                    homee, ioBroker, iMac, iPhone, Sonos, Alaxa

                    opossumO 1 Antwort Letzte Antwort
                    0
                    • bergjetB bergjet

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

                      Kein Problem, hier das passende Script:

                      //***************************************************************************************************
                      //++++++++++++++++++++++++++++++++++++++++  USER ANPASSUNGEN ++++++++++++++++++++++++++++++++++++++++
                      
                      const instanz = '0_userdata.0.';
                      const PfadEbene1 = 'Husqvarna.';
                      const PfadEbene2 = ['Statistik.', 'Zeiten.', 'Allgemein.'];
                      const Mover_ID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
                      
                      //---------------------------------------------------------------------------------------------------
                      //++++++++++++++++++++++++++++++++++++++ ENDE USER ANPASSUNGEN ++++++++++++++++++++++++++++++++++++++
                      //---------------------------------------------------------------------------------------------------
                      

                      Mover_ID ist klar.
                      Aber müssen die Datenpunkte Statistik, Zeiten, Allgemein mit irgendwas übereinstimmen?
                      Diese werden ja vom Script angelegt.

                      A Online
                      A Online
                      ArnoD
                      schrieb am zuletzt editiert von ArnoD
                      #314

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

                      Aber müssen die Datenpunkte Statistik, Zeiten, Allgemein mit irgendwas übereinstimmen?
                      Diese werden ja vom Script angelegt.

                      Nein, diese werden automatisch angelegt und befüllt.
                      Wurden bei dir die einzelnen Objekt ID`s vom Script angelegt?
                      Was wird nicht befüllt?

                      bergjetB 1 Antwort Letzte Antwort
                      0
                      • Thomas BraunT Thomas Braun

                        @kaschi68

                        Ich würde ja aktuelle Versionen fahren.
                        nodejs16 / js-controller 4.

                        K Offline
                        K Offline
                        Kaschi68
                        schrieb am zuletzt editiert von
                        #315

                        @thomas-braun

                        Alles erledigt, aber Werte ändern sich nur bei Neustart des Adapters. Selbst wenn der Mower unterwegs ist ändert sich nichts. Developer Acc hat ice987 für mich geprüft. Der ist iO angelegt und verknüpft.

                        Es handelt sich bei den Mower um den AM 415X mit neuster Firmware.

                        Im App werden die Daten ständig aktualisiert, im Adapter nur bei Neustart des Adapters.

                        js-controller ist jetzt 4.0.23 und node bei 16.

                        G 1 Antwort Letzte Antwort
                        0
                        • bergjetB bergjet

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

                          Leider werden die Datenpunkte noch nicht befüllt

                          Bei mir auch nicht. Was hast du gemacht, dass es nun geht?

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

                          Hallo, @bergjet,
                          ich hatte mit dem alten Adapter getestet. Habe dann erst gerafft, dass man einen neuen nehmen muss. Mit dem bekam ich auch den Connect hin. Aber das Problem mit den Statistikdaten habe ich auch.

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

                          BoronsbruderB 1 Antwort Letzte Antwort
                          0
                          • opossumO opossum

                            Hallo, @bergjet,
                            ich hatte mit dem alten Adapter getestet. Habe dann erst gerafft, dass man einen neuen nehmen muss. Mit dem bekam ich auch den Connect hin. Aber das Problem mit den Statistikdaten habe ich auch.

                            BoronsbruderB Offline
                            BoronsbruderB Offline
                            Boronsbruder
                            schrieb am zuletzt editiert von Boronsbruder
                            #317

                            @opossum @Kaschi68
                            Das liegt daran, dass es 2 verschiedene Arten gibt, wie die Daten übertragen werden:

                            1. Der Websocket:
                              Hier wird eine Verbindung aufgebaut und er der Husqvarna-Server sendet die Paket mit den Daten an den Adapter.
                              Daten wie z.B. die "Totals" sind hier nicht enthalten.
                            2. Die Api:
                              Die Daten müssen vom Adapter gehohlt werden und werden nicht geliefert.
                              Hier sind die Daten wie die Totals enthalten, AAABER die Anzahl der möglichen Abrufe ist beschränkt.
                            Limits
                            
                            The following limitations currently apply to the Automower® Connect API:
                            
                                Max 1 request per second and appKey.
                                Max 10 000 request per month and appKey.
                            
                            Any additional requests above these limits will be throttled.
                            

                            Im Adapter von @ice987 werden, meines Wissens nach, die Daten beim Start per API abgerufen und dann mit den Daten, die der Websocket liefert, aktualisiert.

                            Eine Möglichkeit wäre, dass @ice987 eine regelmäßige API-Abfrage einbaut. Die muss aber zeitlich beschränkt sein, da sie sonst zu einer Drosselung führt.

                            Am besten auf GitHub eine Anfrage auf Erweiterung stellen?

                            1 Antwort Letzte Antwort
                            2
                            • A ArnoD

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

                              Aber müssen die Datenpunkte Statistik, Zeiten, Allgemein mit irgendwas übereinstimmen?
                              Diese werden ja vom Script angelegt.

                              Nein, diese werden automatisch angelegt und befüllt.
                              Wurden bei dir die einzelnen Objekt ID`s vom Script angelegt?
                              Was wird nicht befüllt?

                              bergjetB Offline
                              bergjetB Offline
                              bergjet
                              schrieb am zuletzt editiert von
                              #318

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

                              Was wird nicht befüllt?

                              Schnitthöhe und Licht haben bei mir einen anderen Datenpunkt. Habe ich korrigiert.

                              Parken für 30 Minuten. Starten für 120 Minuten. Woher kommen die die Daten für 30 und 120 Minuten?
                              Im Button ist hier nichts eingetragen, bzw. wo kann man die Zeit ändern?

                              homee, ioBroker, iMac, iPhone, Sonos, Alaxa

                              A 1 Antwort Letzte Antwort
                              0
                              • opossumO opossum

                                Hallo, @arnod,
                                danke, dass Du Dich gekümmert hast. Funktioniert jetzt mit meinem Husqvarna 315X ohne Probleme.

                                K Offline
                                K Offline
                                Kaschi68
                                schrieb am zuletzt editiert von
                                #319

                                Ich glaube meine Probleme liegen am WebSocket (Tipp von ice)
                                Als Adapter läuft bei mir Web-Server und socketio. Ich habe versucht Web-Socket zum laufen zu bringen, aber VIS kackt dann ab.
                                Also es wäre Klasse, wenn jemand bei dem der Husqvarna Adapter problemlos Daten erhält, mir bitte mal die Konstellation Web-Server mit socketio oder Web-Server mit Web-Socket und dazu die default Einstellungen (web-socket erzwingen, autenifizierung, Verschlüsselung....) mitteilen könnte.
                                Wie schon mehrfach erwähnt kann ich mit meinem Husq-Adapter Befehle senden, den Status bekomme ich aber nur beim Neustart des Adapters zurück.

                                Vielen Dank,schönen Abend und Gruß

                                BoronsbruderB 1 Antwort Letzte Antwort
                                0
                                • K Kaschi68

                                  Ich glaube meine Probleme liegen am WebSocket (Tipp von ice)
                                  Als Adapter läuft bei mir Web-Server und socketio. Ich habe versucht Web-Socket zum laufen zu bringen, aber VIS kackt dann ab.
                                  Also es wäre Klasse, wenn jemand bei dem der Husqvarna Adapter problemlos Daten erhält, mir bitte mal die Konstellation Web-Server mit socketio oder Web-Server mit Web-Socket und dazu die default Einstellungen (web-socket erzwingen, autenifizierung, Verschlüsselung....) mitteilen könnte.
                                  Wie schon mehrfach erwähnt kann ich mit meinem Husq-Adapter Befehle senden, den Status bekomme ich aber nur beim Neustart des Adapters zurück.

                                  Vielen Dank,schönen Abend und Gruß

                                  BoronsbruderB Offline
                                  BoronsbruderB Offline
                                  Boronsbruder
                                  schrieb am zuletzt editiert von Boronsbruder
                                  #320

                                  @kaschi68
                                  Also, hier sind meine Einstellung für websocket und socketio, aber ich habe nicht den Adapter, sondern eine Fusion aus dem alten und neuen Adapter als reines Skript am Laufen.

                                  socket io
                                  d8dd5b5b-c9b6-4033-b5e5-44f381dc0a73-grafik.png

                                  websocket
                                  0e138828-a75b-458b-83a4-3dc0d287decc-grafik.png

                                  Die IP Adressen sind identisch
                                  Die Einstellungen sind nicht auf Sicherheit optimiert, da das System nicht von Aussen erreichbar ist...

                                  Wenn jemand Optimierungen hat, bin ich natürlich offen. Man lernt ja nie aus ;)

                                  K 1 Antwort Letzte Antwort
                                  1
                                  • BoronsbruderB Boronsbruder

                                    @kaschi68
                                    Also, hier sind meine Einstellung für websocket und socketio, aber ich habe nicht den Adapter, sondern eine Fusion aus dem alten und neuen Adapter als reines Skript am Laufen.

                                    socket io
                                    d8dd5b5b-c9b6-4033-b5e5-44f381dc0a73-grafik.png

                                    websocket
                                    0e138828-a75b-458b-83a4-3dc0d287decc-grafik.png

                                    Die IP Adressen sind identisch
                                    Die Einstellungen sind nicht auf Sicherheit optimiert, da das System nicht von Aussen erreichbar ist...

                                    Wenn jemand Optimierungen hat, bin ich natürlich offen. Man lernt ja nie aus ;)

                                    K Offline
                                    K Offline
                                    Kaschi68
                                    schrieb am zuletzt editiert von
                                    #321

                                    @boronsbruder
                                    Vielen Dank, könntest Du vielleicht deinen Script einstellen. mir fehlen bei dem Adapter von ice die Statusmeldungen wenn er fährt. Befehle kann ich senden.

                                    Danke für Deine Mühe

                                    BoronsbruderB 1 Antwort Letzte Antwort
                                    0
                                    • bergjetB bergjet

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

                                      Was wird nicht befüllt?

                                      Schnitthöhe und Licht haben bei mir einen anderen Datenpunkt. Habe ich korrigiert.

                                      Parken für 30 Minuten. Starten für 120 Minuten. Woher kommen die die Daten für 30 und 120 Minuten?
                                      Im Button ist hier nichts eingetragen, bzw. wo kann man die Zeit ändern?

                                      A Online
                                      A Online
                                      ArnoD
                                      schrieb am zuletzt editiert von
                                      #322

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

                                      Parken für 30 Minuten. Starten für 120 Minuten. Woher kommen die die Daten für 30 und 120 Minuten?
                                      Im Button ist hier nichts eingetragen, bzw. wo kann man die Zeit ändern?

                                      Dafür habe ich den „materialdesign – Button State Multi“ verwendet, da kann man mehre ID mit Verzögerung ändern.
                                      Als Erstes wird ohne Verzögerung ACTIONS.park.parkTime auf 30 gesetzt und dann mit Verzögerung 1000 ms ACTIONS.park.PARK auf true.

                                      Diese Änderungen habe ich aber erst nach meinem Upload hier gemacht, sodass der Upload der View weiter oben nicht mehr aktuell ist.

                                      Hier noch mal die Importdatei meiner View mit allen Änderungen und Optimierungen:
                                      Husqvarna_VIS_View V2.js

                                      527c6db5-a3ff-4522-8499-d6f3ecff5d3a-grafik.png

                                      bergjetB B G R 4 Antworten Letzte Antwort
                                      1
                                      • A ArnoD

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

                                        Parken für 30 Minuten. Starten für 120 Minuten. Woher kommen die die Daten für 30 und 120 Minuten?
                                        Im Button ist hier nichts eingetragen, bzw. wo kann man die Zeit ändern?

                                        Dafür habe ich den „materialdesign – Button State Multi“ verwendet, da kann man mehre ID mit Verzögerung ändern.
                                        Als Erstes wird ohne Verzögerung ACTIONS.park.parkTime auf 30 gesetzt und dann mit Verzögerung 1000 ms ACTIONS.park.PARK auf true.

                                        Diese Änderungen habe ich aber erst nach meinem Upload hier gemacht, sodass der Upload der View weiter oben nicht mehr aktuell ist.

                                        Hier noch mal die Importdatei meiner View mit allen Änderungen und Optimierungen:
                                        Husqvarna_VIS_View V2.js

                                        527c6db5-a3ff-4522-8499-d6f3ecff5d3a-grafik.png

                                        bergjetB Offline
                                        bergjetB Offline
                                        bergjet
                                        schrieb am zuletzt editiert von
                                        #323

                                        @arnod Ja danke. Habe ich in der Zwischenzeit auch gemacht, dank deiner Vorlage. Die Zeitplanung mit den Wochentagen haben ich mit den Datenpunkten des Adapter verknüpft. Was nicht geht ist die Startzeit/Endzeit, die müsste ich ja umrechnen. Aber das mit nicht so wichtig.

                                        homee, ioBroker, iMac, iPhone, Sonos, Alaxa

                                        1 Antwort Letzte Antwort
                                        0
                                        • K Kaschi68

                                          @boronsbruder
                                          Vielen Dank, könntest Du vielleicht deinen Script einstellen. mir fehlen bei dem Adapter von ice die Statusmeldungen wenn er fährt. Befehle kann ich senden.

                                          Danke für Deine Mühe

                                          BoronsbruderB Offline
                                          BoronsbruderB Offline
                                          Boronsbruder
                                          schrieb am zuletzt editiert von Boronsbruder
                                          #324

                                          @kaschi68
                                          Das macht wenig Sinn, weil der Part der websocket Abfrage, bis auf die Verarbeitung der empfangenen Daten gleich ist, wie bei Ice.
                                          Und wenn bei laufendem Mäher keine Daten kommen, dann passt was mit der Websocket-Verbindung nicht.
                                          Was bekommst du denn an Daten vom WebSocket-Server?

                                          Da gab es nämlich manchmal Probleme:

                                          If you get 403 when using Websocket even if the API call works. Try to renew the API key that should do the trick. If you still get 403 check that you get the correct scope when creating the access token (iam:read amc:api).
                                          

                                          Ich hab damals die Applikation gelöscht und neu angelegt, aber "renew applicationkey" sollte reichen...

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          720

                                          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