Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Youless Script

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Youless Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @vitallo last edited by paul53

      @vitallo sagte:

      Kann ich die parts[0] abfrage - in das erste Skript einbauen ?

      parts[0] liefert die erste Zeile (Zählerstand). Damit sind noch Wandlungen erforderlich, um den Wert als Zahl zu erhalten:

         let cnt = parseFloat(parts[0].trim().replace(',', '.'));
      
      1 Reply Last reply Reply Quote 0
      • V
        vitallo @paul53 last edited by

        @paul53 said in Youless Script:

        @vitallo

        • Code bitte immer in Codetags (</>) posten.
        • Weshalb wird die gleiche URL zweimal hintereinander aufgerufen ?
        • Welche Werte sollen in Datenpunkte ? Nach der Maßeinheit (kW) zu urteilen, die beiden Leistungswerte, also die Werte in Zeilen 2 und 6 ?
        • Es fehlt die Umrechnung von Watt in kW
        • Ist ein Abfrage jede Sekunde erforderlich (Systemlast) ?

        Was ergibt folgendes Test-Skript in der Log-Ausgabe (Code tags) ?

        request.post({url: 'http://192.168.1.46/a?f=j'}, function(error, response, body) {
           if (!error && body) log(body);
        });
        

        Eine Rückgabe als JSON lässt sich einfacher per JS verarbeiten.

        • Code bitte immer in Codetags (</>) posten.

        OK , Danke für diesen Hinweis

        • Weshalb wird die gleiche URL zweimal hintereinander aufgerufen ?

        Ich dachte bisher - zwei Werte - zweimal Abfragen.

        • Welche Werte sollen in Datenpunkte ? Nach der Maßeinheit (kW) zu urteilen, die beiden Leistungswerte, also die Werte in Zeilen 2 und 6 ?

        die ersten beiden Zeilen

        erste Zeile = Zählerstand
        zweite Zeile - Aktuelle Last

        • Es fehlt die Umrechnung von Watt in kW

        das wäre nicht notwenig

        • Ist ein Abfrage jede Sekunde erforderlich (Systemlast) ?

        Naja, für den Zählerstand sicherlich nicht.

        Was ergibt folgendes Test-Skript in der Log-Ausgabe (Code tags) ?

        2020-11-21 11:49:23.193 - info: javascript.0 (1107) script.js.Strom.Testskript: {"cnt":" 107835,806","pwr":410,"lvl":38,"dev":"(±7%)","det":"","con":"","sts":"","cs0":" 0,000","ps0":0,"raw":415}

        Mittlerweile , hab ich es soweit hinbekommen das mit dem Code, soweit die beiden Werte gezogen werden - jedoch brauche ich die Einheit (Watt, kHh) nicht.

        Bildschirmfoto 2020-11-21 um 12.55.44.png

        createState('AktuellerVerbrauch');
        createState('Zählerstand');
        
        var request= require('request');
        
        schedule("* * * * * *",
        
        function()
        {
        request.post({
        url: 'http://192.168.1.46/a'
        },
        
        function(error, response, body){
        if (body) {
        var parts = body.split('\n');
        setState('AktuellerVerbrauch', parts[1], true);
        }
        }); 
        
        request.post({
        url: 'http://192.168.1.46/a'
        }, function(error, response, body){
        if (body) {
        var parts = body.split('\n');
        setState('Zählerstand', parts[0], true);
        }
        });
        }
        );```
        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @vitallo last edited by paul53

          @vitallo sagte:

          {"cnt":" 107835,806","pwr":410,

          Die Leistung also in Watt ?

          createState('Aktuelle_Leistung', {type: 'number', unit: 'W', role: 'value.power'});
          createState('Zählerstand', {type: 'number', unit: 'kWh', role: 'value.power.consumption'});
          
          schedule('*/5 * * * * *' , function() { // alle 5 s
             request.post({url: 'http://192.168.1.46/a?f=j'}, function(error, response, body) {
                if (!error && body) {
                   let obj = JSON.parse(body);
                   let cnt = parseFloat(obj.cnt.replace(',', '.'));
                   setState('Zählerstand', cnt, true);
                   setState('Aktuelle_Leistung', obj.pwr, true);
                }
             });
          });
          
          V 1 Reply Last reply Reply Quote 0
          • V
            vitallo @paul53 last edited by

            @paul53 said in Youless Script:

            @vitallo sagte:

            {"cnt":" 107835,806","pwr":410,

            Die Leistung also in Watt ?

            createState('Aktuelle_Leistung', {type: 'number', unit: 'W', role: 'value.power');
            createState('Zählerstand', {type: 'number', unit: 'kWh', role: 'value.power.consumption');
            
            schedule('*/5 * * * * *' , function() { // alle 5 s
               request.post({url: 'http://192.168.1.46/a?f=j'}, function(error, response, body) {
                  if (!error && body) {
                     let obj = JSON.parse(body);
                     let cnt = parseFloat(obj.cnt.trim().replace(',', '.'));
                     setState('Zählerstand', cnt, true);
                     setState('Aktuelle_Leistung', obj.pwr, true);
                  }
               });
            });
            

            Am liebsten wäre mir gar keine Watt oder kWh angaben.

            Habe gerade mal Dein Script getestet - es erfolgt diese Fehlermeldung

            2020-11-21 12:15:24.573 - error: javascript.0 (1107) script.js.Strom.Stromzähler compile failed:
            at script.js.Strom.Stromzähler:1
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) createState('Aktuelle_Leistung', {type: 'number', unit: 'W', role: 'value.power');
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) ^
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) SyntaxError: Unexpected token )
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at new Script (vm.js:83:7)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at Object.createScript (vm.js:277:10)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1336:28)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1559:37)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1645:17)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1196:17)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
            2020-11-21 12:15:24.573 - error: javascript.0 (1107) at process._tickCallback (internal/process/next_tick.js:68:7)

            paul53 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @vitallo last edited by paul53

              @vitallo sagte:

              es erfolgt diese Fehlermeldung

              Sorry: Geschweifte schließende Klammer vergessen - ist oben korrigiert (Zeilen 1, 2).

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @vitallo last edited by

                @vitallo sagte:

                Am liebsten wäre mir gar keine Watt oder kWh angaben.

                Der Wert der Datenpunkte sind reine Zahlen.

                V 1 Reply Last reply Reply Quote 0
                • V
                  vitallo @paul53 last edited by

                  @paul53 said in Youless Script:

                  @vitallo sagte:

                  Am liebsten wäre mir gar keine Watt oder kWh angaben.

                  Der Wert der Datenpunkte sind reine Zahlen.

                  auch wenn die Einheit dahintersteht ? Ok - Danke

                  Hab eine Fehlermeldung erhalten.


                  2020-11-21 12:26:35.598 - info: javascript.0 (1107) Start javascript script.js.KellerStromzähler
                  2020-11-21 12:26:35.598 - error: javascript.0 (1107) script.js.KellerStromzähler compile failed:
                  at script.js.KellerStromzähler:2
                  2020-11-21 12:26:35.598 - error: javascript.0 (1107) createState('Aktuelle_Leistung', {type: 'number', unit: 'W', role: 'value.power');
                  2020-11-21 12:26:35.598 - error: javascript.0 (1107) ^
                  2020-11-21 12:26:35.598 - error: javascript.0 (1107) SyntaxError: Unexpected token )
                  2020-11-21 12:26:35.598 - error: javascript.0 (1107) at new Script (vm.js:83:7)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at Object.createScript (vm.js:277:10)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1336:28)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1559:37)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1645:17)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1196:17)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                  2020-11-21 12:26:35.599 - error: javascript.0 (1107) at process._tickCallback (internal/process/next_tick.js:68:7)

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @vitallo last edited by

                    @vitallo sagte:

                    Hab eine Fehlermeldung erhalten.

                    Die beiden ersten Zeilen sind noch nicht korrigiert (schließende geschweifte Klammer).

                    createState('Aktuelle_Leistung', {type: 'number', unit: 'W', role: 'value.power'});
                    createState('Zählerstand', {type: 'number', unit: 'kWh', role: 'value.power.consumption'});
                    
                    V 1 Reply Last reply Reply Quote 0
                    • V
                      vitallo @paul53 last edited by

                      @paul53

                      Ok, jetzt ohne Fehlermeldung

                      Gibt es hier die Möglichkeit noch das W rauszunehmen ?

                      Bildschirmfoto 2020-11-21 um 13.33.50.png

                      in der Zeiten Abfrage ist es raus

                      Bildschirmfoto 2020-11-21 um 13.34.28.png

                      Das ist der Hammer wie schnell Du das zusammen hast - sag auf jeden fall schon mal DANKE

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @vitallo last edited by

                        @vitallo sagte:

                        Gibt es hier die Möglichkeit noch das W rauszunehmen ?

                        Lösche die Maßeinheit in den Objekt-Eigenschaften unter "Allgemein" (Mülleimer rechts).

                        V 1 Reply Last reply Reply Quote 0
                        • V
                          vitallo @paul53 last edited by

                          @paul53

                          Dann kann ich nun nur noch Herzlichen Dank sagen.

                          Jetzt noch in Grafana einbauen und dann hab ich das mit Deiner Arbeit / Unterstützung erledigt.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          850
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          2
                          13
                          658
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo