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.
    • 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

                        929
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        2
                        13
                        638
                        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