Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Adapter: Worx Landroid v2.x.x

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    227

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

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

Adapter: Worx Landroid v2.x.x

Adapter: Worx Landroid v2.x.x

Scheduled Pinned Locked Moved Entwicklung
1.2k Posts 121 Posters 458.8k Views 64 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Cosmicbase

    @hsteinme
    Dann machen wir hier mal weiter.
    Über deinen Tip zu einem Javascript freue ich mich natürlich.
    Hast du das über Node-Red umgesetzt?

    hsteinmeH Offline
    hsteinmeH Offline
    hsteinme
    wrote on last edited by
    #344

    @cosmicbase Ich arbeite nicht mit Node-Red.

    In der worx Adapter Version 1.3.7 benötigst Du folgende Datenpunkte

    • worx.0.99999999999999999999.rawMqtt.raw.blade_work_time: Gesamtklingenlaufzeit
    • worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset: Klingenlaufzeit beim letzten Reset

    Jetzt benötigst Du noch einen eigenen privaten Datenpunkt, den Du unter javascript.0 oder unter 0_userdata.0 selbst manuell im Objektbaum anlegen musst, z.B.

    0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current

    Für diesen Datenpunkt vergibst Du den Typ Zahl, keinen Maximalwert, keine Maßeinheit sowie Lese- und Schreibberechtigungen.

    'use strict';
    
    const idBladeWorkTime = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time';
    const idBladeWorkTimeReset = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset';
    const idBladeWorkTimeCurrent = '0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current';
    
    on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
        setState(idBladeWorkTimeCurrent, getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val);
    })
    

    Dieses Skript muss immer laufen. Immer dann, wenn sich der Wert von idBladeWorkTime oder der Wert von idBladeWorkTimeReset ändert, berechnet das Skript die Differenz dieser beiden Werte neu und stellt diese im Datenpunkt idBladeWorkTimeCurrent ab.

    Mit Deinem privaten Datenpunkt kannst Du nun arbeiten wie mit anderen Datenpunkten. Insbesondere kannst Du diesen Datenpunkt in der Vis darstellen.

    C 2 Replies Last reply
    0
    • hsteinmeH hsteinme

      @cosmicbase Ich arbeite nicht mit Node-Red.

      In der worx Adapter Version 1.3.7 benötigst Du folgende Datenpunkte

      • worx.0.99999999999999999999.rawMqtt.raw.blade_work_time: Gesamtklingenlaufzeit
      • worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset: Klingenlaufzeit beim letzten Reset

      Jetzt benötigst Du noch einen eigenen privaten Datenpunkt, den Du unter javascript.0 oder unter 0_userdata.0 selbst manuell im Objektbaum anlegen musst, z.B.

      0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current

      Für diesen Datenpunkt vergibst Du den Typ Zahl, keinen Maximalwert, keine Maßeinheit sowie Lese- und Schreibberechtigungen.

      'use strict';
      
      const idBladeWorkTime = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time';
      const idBladeWorkTimeReset = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset';
      const idBladeWorkTimeCurrent = '0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current';
      
      on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
          setState(idBladeWorkTimeCurrent, getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val);
      })
      

      Dieses Skript muss immer laufen. Immer dann, wenn sich der Wert von idBladeWorkTime oder der Wert von idBladeWorkTimeReset ändert, berechnet das Skript die Differenz dieser beiden Werte neu und stellt diese im Datenpunkt idBladeWorkTimeCurrent ab.

      Mit Deinem privaten Datenpunkt kannst Du nun arbeiten wie mit anderen Datenpunkten. Insbesondere kannst Du diesen Datenpunkt in der Vis darstellen.

      C Offline
      C Offline
      Cosmicbase
      wrote on last edited by Cosmicbase
      #345

      @hsteinme vielen Dank für deine Hilfe. Werde es ausprobieren und berichten.
      Machst du den Klingenreset ausschließlich über die App und in der Vis nur zur Kontrolle?
      Was machst du unter Javascript.0 genau?
      Hast du nen Screenshot?

      hsteinmeH 1 Reply Last reply
      0
      • C Cosmicbase

        @hsteinme vielen Dank für deine Hilfe. Werde es ausprobieren und berichten.
        Machst du den Klingenreset ausschließlich über die App und in der Vis nur zur Kontrolle?
        Was machst du unter Javascript.0 genau?
        Hast du nen Screenshot?

        hsteinmeH Offline
        hsteinmeH Offline
        hsteinme
        wrote on last edited by hsteinme
        #346

        @cosmicbase Ich mache überhaupt keinen Klingenreset. Einen Klingenwechsel führe ich dann aus, wenn meine Augen mir sagen, dass die Schnittflächen des Rasens zerfetzt aussehen, oder wenn ich beim gelegentlichen Umdrehen des Mähers feststelle, dass die Klingen stumpf sind.

        Private Datenpunkte konnte man früher nur unter javascript.0 anlegen. Mittlerweile wird empfohen, diese unter 0_userdata.0 anzulegen.

        5a6b8897-1348-4c6f-8ac3-8c6c6d684a18-image.png

        C 1 Reply Last reply
        0
        • hsteinmeH hsteinme

          @cosmicbase Ich mache überhaupt keinen Klingenreset. Einen Klingenwechsel führe ich dann aus, wenn meine Augen mir sagen, dass die Schnittflächen des Rasens zerfetzt aussehen, oder wenn ich beim gelegentlichen Umdrehen des Mähers feststelle, dass die Klingen stumpf sind.

          Private Datenpunkte konnte man früher nur unter javascript.0 anlegen. Mittlerweile wird empfohen, diese unter 0_userdata.0 anzulegen.

          5a6b8897-1348-4c6f-8ac3-8c6c6d684a18-image.png

          C Offline
          C Offline
          Cosmicbase
          wrote on last edited by Cosmicbase
          #347

          @hsteinme
          Wie ich einen Datenpunkt unter 0_userdata.0 anlege weiß ich. Aber wie bringe ich die folgende Datenpunkte

          worx.0.99999999999999999999.rawMqtt.raw.blade_work_time: Gesamtklingenlaufzeit
          worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset: Klingenlaufzeit beim letzten Reset

          mit ein.

          hsteinmeH 1 Reply Last reply
          0
          • C Cosmicbase

            @hsteinme
            Wie ich einen Datenpunkt unter 0_userdata.0 anlege weiß ich. Aber wie bringe ich die folgende Datenpunkte

            worx.0.99999999999999999999.rawMqtt.raw.blade_work_time: Gesamtklingenlaufzeit
            worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset: Klingenlaufzeit beim letzten Reset

            mit ein.

            hsteinmeH Offline
            hsteinmeH Offline
            hsteinme
            wrote on last edited by
            #348

            @cosmicbase Diese beiden Datenpunkte legt doch der Adapter selbst an, sobald Du auf die Version 1.3.7 wechselst:

            worx.jpg

            C 1 Reply Last reply
            0
            • hsteinmeH hsteinme

              @cosmicbase Diese beiden Datenpunkte legt doch der Adapter selbst an, sobald Du auf die Version 1.3.7 wechselst:

              worx.jpg

              C Offline
              C Offline
              Cosmicbase
              wrote on last edited by
              #349

              @hsteinme Die v. 1.3.7 habe ich ja und die Datenpunkte sehe ich ja. Hast du gemeint ich muss das Script getreu deinem manuell schreiben?
              Ich hätte gemeint das Skript wird automatisch generiert.

              hsteinmeH 1 Reply Last reply
              0
              • C Cosmicbase

                @hsteinme Die v. 1.3.7 habe ich ja und die Datenpunkte sehe ich ja. Hast du gemeint ich muss das Script getreu deinem manuell schreiben?
                Ich hätte gemeint das Skript wird automatisch generiert.

                hsteinmeH Offline
                hsteinmeH Offline
                hsteinme
                wrote on last edited by
                #350

                @cosmicbase Handarbeit ist angesagt - wobei Du gern meine Vorlage über die Zwischenablage kopieren kannst und dabei nicht vergessen darfst, die Seriennummer Deines Mähers dort statt der vielen Neunen einzusetzen.

                C 1 Reply Last reply
                0
                • hsteinmeH hsteinme

                  @cosmicbase Handarbeit ist angesagt - wobei Du gern meine Vorlage über die Zwischenablage kopieren kannst und dabei nicht vergessen darfst, die Seriennummer Deines Mähers dort statt der vielen Neunen einzusetzen.

                  C Offline
                  C Offline
                  Cosmicbase
                  wrote on last edited by
                  #351

                  @hsteinme Also habe ich die dich richtig verstanden das dein privater Datenpunkt in 0_userdata.0 liegt und das unter Javascript.0 ein Skript läuft mit deinem entsprechenden Inhalt.

                  hsteinmeH 1 Reply Last reply
                  0
                  • C Cosmicbase

                    @hsteinme Also habe ich die dich richtig verstanden das dein privater Datenpunkt in 0_userdata.0 liegt und das unter Javascript.0 ein Skript läuft mit deinem entsprechenden Inhalt.

                    hsteinmeH Offline
                    hsteinmeH Offline
                    hsteinme
                    wrote on last edited by hsteinme
                    #352

                    @cosmicbase Skripte liegen nicht unter javascript.0 (Namen sind Schall und Rauch). Skripte liegen im Reiter Skripte. Ehe Du hier weiter machst, empfehle ich Dir, irgendwas Einleitendes über die Anlage von Javaskripten nachzulesen.

                    C 1 Reply Last reply
                    0
                    • hsteinmeH hsteinme

                      @cosmicbase Skripte liegen nicht unter javascript.0 (Namen sind Schall und Rauch). Skripte liegen im Reiter Skripte. Ehe Du hier weiter machst, empfehle ich Dir, irgendwas Einleitendes über die Anlage von Javaskripten nachzulesen.

                      C Offline
                      C Offline
                      Cosmicbase
                      wrote on last edited by
                      #353

                      @hsteinme sorry klar ich meine nicht den Adapter. Habe mich geirrt. Ich habe ja schon Skripte laufen. Natürlich unter dem Reiter Skripte. Meine sind halt Blockly.

                      C 1 Reply Last reply
                      0
                      • C Cosmicbase

                        @hsteinme sorry klar ich meine nicht den Adapter. Habe mich geirrt. Ich habe ja schon Skripte laufen. Natürlich unter dem Reiter Skripte. Meine sind halt Blockly.

                        C Offline
                        C Offline
                        Cosmicbase
                        wrote on last edited by Cosmicbase
                        #354

                        @hsteinme
                        Das skript von dir schaut bei mir jetzt so aus.

                        'use strict';
                         
                         const idBladeWorkTime = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time';
                         const idBladeWorkTimeReset = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time_reset';
                         const idBladeWorkTimeCurrent = '0_userdata.0.worx.blade_work_time_current';
                          
                          on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                              setState(idBladeWorkTimeCurrent, getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val);
                              })
                        

                        Der Wert wo ausgegeben wird ist dann sicherlich Minuten oder?
                        Wenn ich den Wert in h/min haben will brauche ich dann parallel ein zusätzliches Javascript?
                        Oder kann ich die Zeitumrechnung einfach mit einbauen?
                        So nach dem Beispiel.

                        'use strict';
                         
                         const idBladeWorkTime = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time';
                         const idBladeWorkTimeReset = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time_reset';
                         const idBladeWorkTimeCurrent = '0_userdata.0.worx.blade_work_time_current';
                          
                        on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                              setState(idBladeWorkTimeCurrent, getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val);
                              })
                        
                        on({id: [idBladeWorkTimeCurrent], change: "ne"}, function (dp) {
                        	var timenew = Math.floor(dp.state.val / 3600 )+'h'+Math.floor( (dp.state.val % 3600) / 60 )+'min';
                            	setState(idBladeWorkTimeCurrent,timenew);
                        });
                         
                        

                        Kann ich das umrechnen von Minuten in h/min auch in das Skript von dir so miteinbauen?
                        Und wie könnte es in deinem o.g. Skript als komplettes aussehen?

                        Den privaten DP '0_userdata.0.worx.blade_work_time_current' habe ich in der VIS zur Anzeige hinterlegt.
                        Einzig das er glaube ich in Minuten angezeigt wird. Ich will ihn gerne in Sunden/Minuten angezeigt haben.
                        Kannst du das skript auf Fehler überprüfen und ggf. ändern?

                        Wäre toll wenn du ne Lösung hättest.

                        hsteinmeH 1 Reply Last reply
                        0
                        • C Cosmicbase

                          @hsteinme
                          Das skript von dir schaut bei mir jetzt so aus.

                          'use strict';
                           
                           const idBladeWorkTime = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time';
                           const idBladeWorkTimeReset = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time_reset';
                           const idBladeWorkTimeCurrent = '0_userdata.0.worx.blade_work_time_current';
                            
                            on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                                setState(idBladeWorkTimeCurrent, getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val);
                                })
                          

                          Der Wert wo ausgegeben wird ist dann sicherlich Minuten oder?
                          Wenn ich den Wert in h/min haben will brauche ich dann parallel ein zusätzliches Javascript?
                          Oder kann ich die Zeitumrechnung einfach mit einbauen?
                          So nach dem Beispiel.

                          'use strict';
                           
                           const idBladeWorkTime = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time';
                           const idBladeWorkTimeReset = 'worx.0.20193xxxxxx32683E.rawMqtt.raw.blade_work_time_reset';
                           const idBladeWorkTimeCurrent = '0_userdata.0.worx.blade_work_time_current';
                            
                          on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                                setState(idBladeWorkTimeCurrent, getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val);
                                })
                          
                          on({id: [idBladeWorkTimeCurrent], change: "ne"}, function (dp) {
                          	var timenew = Math.floor(dp.state.val / 3600 )+'h'+Math.floor( (dp.state.val % 3600) / 60 )+'min';
                              	setState(idBladeWorkTimeCurrent,timenew);
                          });
                           
                          

                          Kann ich das umrechnen von Minuten in h/min auch in das Skript von dir so miteinbauen?
                          Und wie könnte es in deinem o.g. Skript als komplettes aussehen?

                          Den privaten DP '0_userdata.0.worx.blade_work_time_current' habe ich in der VIS zur Anzeige hinterlegt.
                          Einzig das er glaube ich in Minuten angezeigt wird. Ich will ihn gerne in Sunden/Minuten angezeigt haben.
                          Kannst du das skript auf Fehler überprüfen und ggf. ändern?

                          Wäre toll wenn du ne Lösung hättest.

                          hsteinmeH Offline
                          hsteinmeH Offline
                          hsteinme
                          wrote on last edited by hsteinme
                          #355

                          @cosmicbase Der Ansatz, die Zeitumrechnung gleich im ersten on-Statement durchzuführen, ist ein guter Ansatz. Mit Deinem zweiten on-Statement läufst Du nämlich in eine Endlosschleife hinein: Wenn sich idBladeWorkTimeCurrent ändert, berechnest Du den Wert neu und änderst ihn damit erneut. Also schlägt wieder die zweite on-Angabe zu usw. usf.

                          'use strict';
                          
                          const idBladeWorkTime = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time';
                          const idBladeWorkTimeReset = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset';
                          const idBladeWorkTimeCurrent = '0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current';
                          
                          function zweiStellig(zahl) {
                              return zahl < 10 ? '0' + zahl : zahl
                          }
                          
                          function stundenMinuten(minuten) {
                              return parseInt(minuten / 60) + ':' + zweiStellig(minuten % 60);
                          }
                          
                          on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                              setState(idBladeWorkTimeCurrent, stundenMinuten(getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val));
                          })
                          

                          Wegen einer besseren Übersichtlichkeit ist es sinnvoll, die Zeitumrechnung in eine eigene Funktion auszulagern.

                          Wichtig: blade_work_time_current enthält jetzt keine Zahl mehr, sondern einen String. Also diesen bestehenden Datenpunkt zunächst löschen und als Typ String neu anlegen.

                          C 1 Reply Last reply
                          0
                          • hsteinmeH hsteinme

                            @cosmicbase Der Ansatz, die Zeitumrechnung gleich im ersten on-Statement durchzuführen, ist ein guter Ansatz. Mit Deinem zweiten on-Statement läufst Du nämlich in eine Endlosschleife hinein: Wenn sich idBladeWorkTimeCurrent ändert, berechnest Du den Wert neu und änderst ihn damit erneut. Also schlägt wieder die zweite on-Angabe zu usw. usf.

                            'use strict';
                            
                            const idBladeWorkTime = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time';
                            const idBladeWorkTimeReset = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset';
                            const idBladeWorkTimeCurrent = '0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current';
                            
                            function zweiStellig(zahl) {
                                return zahl < 10 ? '0' + zahl : zahl
                            }
                            
                            function stundenMinuten(minuten) {
                                return parseInt(minuten / 60) + ':' + zweiStellig(minuten % 60);
                            }
                            
                            on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                                setState(idBladeWorkTimeCurrent, stundenMinuten(getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val));
                            })
                            

                            Wegen einer besseren Übersichtlichkeit ist es sinnvoll, die Zeitumrechnung in eine eigene Funktion auszulagern.

                            Wichtig: blade_work_time_current enthält jetzt keine Zahl mehr, sondern einen String. Also diesen bestehenden Datenpunkt zunächst löschen und als Typ String neu anlegen.

                            C Offline
                            C Offline
                            Cosmicbase
                            wrote on last edited by
                            #356

                            @hsteinme vielen Dank für deine Hilfe.
                            Die Idee die Zeit in h/min umzurechnen war nur so ein Gedanke der sicherlich Sinn macht.
                            Den DP zu löschen und Zahl in String anzulegen habe ich verstanden.
                            Leider kenn ich mich mit JS so gut wie gar nicht aus, deswegen meine Fragen.
                            Kann ich dein Skript jetzt so anlegen oder sollten meine Funktionen aus 2 JS bestehen?
                            Eins für Bladetime und 1 für Zeitumwandlung.

                            hsteinmeH 1 Reply Last reply
                            0
                            • C Cosmicbase

                              @hsteinme vielen Dank für deine Hilfe.
                              Die Idee die Zeit in h/min umzurechnen war nur so ein Gedanke der sicherlich Sinn macht.
                              Den DP zu löschen und Zahl in String anzulegen habe ich verstanden.
                              Leider kenn ich mich mit JS so gut wie gar nicht aus, deswegen meine Fragen.
                              Kann ich dein Skript jetzt so anlegen oder sollten meine Funktionen aus 2 JS bestehen?
                              Eins für Bladetime und 1 für Zeitumwandlung.

                              hsteinmeH Offline
                              hsteinmeH Offline
                              hsteinme
                              wrote on last edited by
                              #357

                              @cosmicbase Nimm das Skript, das ich Dir heute Morgen aufgeschrieben habe.

                              C 2 Replies Last reply
                              0
                              • hsteinmeH hsteinme

                                @cosmicbase Nimm das Skript, das ich Dir heute Morgen aufgeschrieben habe.

                                C Offline
                                C Offline
                                Cosmicbase
                                wrote on last edited by
                                #358

                                @hsteinme Wird gemacht.

                                Vielen herzlichen Dank

                                1 Reply Last reply
                                0
                                • hsteinmeH hsteinme

                                  @cosmicbase Nimm das Skript, das ich Dir heute Morgen aufgeschrieben habe.

                                  C Offline
                                  C Offline
                                  Cosmicbase
                                  wrote on last edited by Cosmicbase
                                  #359

                                  @hsteinme
                                  Wird der 0_userdata.0.worx.blade_work_time_current erst befüllt wenn sich eine Differenz ergibt?
                                  Im Moment steht weder false noch 0 drin.
                                  Muss aber mit mähen auch noch warten weil ich frisch angesäht habe.
                                  Lediglich einen Kantenschnitt habe ich durchgeführt.

                                  Aber da hat sich auch nix an den Werten von

                                  worx.0.999999999999999999.rawMqtt.raw.blade_work_time
                                  und
                                  worx.0.999999999999999999.rawMqtt.raw.blade_work_time_reset

                                  geändert.😕

                                  Der Datenpunkt ist jetzt string statt number.
                                  JS wird unter Skripte/Common ausgeführt. Sollte doch richtig sein.
                                  Die Rechte 664 habe ich unberührt lassen.

                                  Kuck dir mal den Screenshot an.
                                  c8806c3f-08c4-4c93-87c2-4abe1d4f71f0-image.png

                                  hsteinmeH 1 Reply Last reply
                                  0
                                  • C Cosmicbase

                                    @hsteinme
                                    Wird der 0_userdata.0.worx.blade_work_time_current erst befüllt wenn sich eine Differenz ergibt?
                                    Im Moment steht weder false noch 0 drin.
                                    Muss aber mit mähen auch noch warten weil ich frisch angesäht habe.
                                    Lediglich einen Kantenschnitt habe ich durchgeführt.

                                    Aber da hat sich auch nix an den Werten von

                                    worx.0.999999999999999999.rawMqtt.raw.blade_work_time
                                    und
                                    worx.0.999999999999999999.rawMqtt.raw.blade_work_time_reset

                                    geändert.😕

                                    Der Datenpunkt ist jetzt string statt number.
                                    JS wird unter Skripte/Common ausgeführt. Sollte doch richtig sein.
                                    Die Rechte 664 habe ich unberührt lassen.

                                    Kuck dir mal den Screenshot an.
                                    c8806c3f-08c4-4c93-87c2-4abe1d4f71f0-image.png

                                    hsteinmeH Offline
                                    hsteinmeH Offline
                                    hsteinme
                                    wrote on last edited by
                                    #360

                                    @cosmicbase sagte in Adapter: Worx Landroid:

                                    Wird der 0_userdata.0.worx.blade_work_time_current erst befüllt wenn sich eine Differenz ergibt?

                                    Hier steht die Antwort, wann der private Datenpunkt gefüllt wird: https://forum.iobroker.net/post/639077

                                    @cosmicbase sagte in Adapter: Worx Landroid:

                                    Im Moment steht weder false noch 0 drin.

                                    String-Datenpunkte sind anfänglich immer leer.

                                    C 1 Reply Last reply
                                    0
                                    • hsteinmeH hsteinme

                                      @cosmicbase sagte in Adapter: Worx Landroid:

                                      Wird der 0_userdata.0.worx.blade_work_time_current erst befüllt wenn sich eine Differenz ergibt?

                                      Hier steht die Antwort, wann der private Datenpunkt gefüllt wird: https://forum.iobroker.net/post/639077

                                      @cosmicbase sagte in Adapter: Worx Landroid:

                                      Im Moment steht weder false noch 0 drin.

                                      String-Datenpunkte sind anfänglich immer leer.

                                      C Offline
                                      C Offline
                                      Cosmicbase
                                      wrote on last edited by Cosmicbase
                                      #361

                                      @hsteinme
                                      Habe dein Skript ausgiebig getestet. Im Adapter ist eine Differenz vorhanden, jedoch das JS Skript spuckt immer noch 0,00h/min aus.
                                      Datenpunkt ist auch noch bei 0.
                                      Irgendwas muss im Skript noch nicht stimmen.
                                      Auch in der App wird unter Klingenlaufzeit 2h angezeigt, was ohne Umwandlung immerhin 120min wären.

                                      Unbenannt.PNG

                                      Hier sieht man das eine Differenz zwischen blade_work_time und blade_work_time_reset gebildet wurde.
                                      Daraus sollte das js Skript doch die Zeit in Minuten oder mit Umwandlung in h/min ausgeben.

                                      Ich werde heute noch das eingangs erwähnte Skript ohne Umwandlung probieren. Also nur die Ausgabe in Minuten.

                                      1 Reply Last reply
                                      0
                                      • hsteinmeH hsteinme

                                        @cosmicbase Ich arbeite nicht mit Node-Red.

                                        In der worx Adapter Version 1.3.7 benötigst Du folgende Datenpunkte

                                        • worx.0.99999999999999999999.rawMqtt.raw.blade_work_time: Gesamtklingenlaufzeit
                                        • worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset: Klingenlaufzeit beim letzten Reset

                                        Jetzt benötigst Du noch einen eigenen privaten Datenpunkt, den Du unter javascript.0 oder unter 0_userdata.0 selbst manuell im Objektbaum anlegen musst, z.B.

                                        0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current

                                        Für diesen Datenpunkt vergibst Du den Typ Zahl, keinen Maximalwert, keine Maßeinheit sowie Lese- und Schreibberechtigungen.

                                        'use strict';
                                        
                                        const idBladeWorkTime = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time';
                                        const idBladeWorkTimeReset = 'worx.0.99999999999999999999.rawMqtt.raw.blade_work_time_reset';
                                        const idBladeWorkTimeCurrent = '0_userdata.0.MyWorx.99999999999999999999.blade_work_time_current';
                                        
                                        on ({id: [idBladeWorkTime, idBladeWorkTimeReset], change: 'ne'}, function() {
                                            setState(idBladeWorkTimeCurrent, getState('idBladeWorkTime').val - getState('idBladeWorkTimeReset').val);
                                        })
                                        

                                        Dieses Skript muss immer laufen. Immer dann, wenn sich der Wert von idBladeWorkTime oder der Wert von idBladeWorkTimeReset ändert, berechnet das Skript die Differenz dieser beiden Werte neu und stellt diese im Datenpunkt idBladeWorkTimeCurrent ab.

                                        Mit Deinem privaten Datenpunkt kannst Du nun arbeiten wie mit anderen Datenpunkten. Insbesondere kannst Du diesen Datenpunkt in der Vis darstellen.

                                        C Offline
                                        C Offline
                                        Cosmicbase
                                        wrote on last edited by Cosmicbase
                                        #362

                                        @hsteinme said in Adapter: Worx Landroid:

                                        Für diesen Datenpunkt vergibst Du den Typ Zahl, keinen Maximalwert, keine Maßeinheit sowie Lese- und Schreibberechtigungen.

                                        Bedeutet keine Lese und Schreibberechtigung = 0 oder die typische Lese-Schreibberechtigung = 664 ?

                                        Kannst du nochmal einen Blich auf das oder die Skripte werfen?

                                        Der 0.Userdata DP bleibt auf Wert 0 bzw. 0:00 obwohl scheinbar die blade_time_current mit Daten befüllt wird.

                                        Unbenannt.PNG

                                        1 Reply Last reply
                                        0
                                        • C Offline
                                          C Offline
                                          Cosmicbase
                                          wrote on last edited by Cosmicbase
                                          #363

                                          Jetzt hab ich mal die 2 Datenpunkte nen Screenshoot gemacht.

                                          Unbenannt.PNG

                                          Unbenannt.PNG

                                          Einmal läuft ein JS mit der Umrechnung in h/min und einmal ganz normal in Minuten.
                                          Leider haben die Skripte zu keinem Zeitpunkt eine klare Differenz errechnet.

                                          hsteinmeH 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          52

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe