Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Ausführen von aktualisierendem JavaScript Code

    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

    Ausführen von aktualisierendem JavaScript Code

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

      @Böhner:

      mit welchem Widget last Ihr den Wert Anzeigen? `
      Ich, gar nicht, weil ich keinen youless habe 😉 Ich habe nur versucht eine Erläuterung zu geben, wie man minütlich die Werte in javascript.0-Variable schreibt.

      Zum Darstellen in vis kannst du dann z.B. das basic HTML - Widget nehmen und in der HTML-Eigenschaft {javascript.0.CurrentElectricityUsage_WP} eintragen; über die Bindingfunktionalität von vis wird dort dann der Variablenwert geholt und angezeigt. Alternativ im basic String-Widget und unter Objekt-ID javascript.0.CurrentElectricityUsage_WP wählen.

      1 Reply Last reply Reply Quote 0
      • B
        Böhner last edited by

        ja danke läuft jetzt 🙂

        1 Reply Last reply Reply Quote 0
        • A
          andreas0003 last edited by

          Hallo, vielen Dank für diese Anleitung. Ich habe auch 2 LS120 jedoch am s0 Bus angeschlossen. Leider liefert mir das Skript immer nur den Wert 0. Was müsste ich denn ändern, damit die Daten vom s0 ausgelesen werden?

          Hier die Ausgabe, wenn ich den Link im Browser eingebe ip\a

          86577,100 kWh

          0 Watt

          0%

          2090,968 kWh

          713 Watt

          0

          Es wird wohl der obere und nicht der untere Wert geloggt.

          viele Grüße

          Andreas

          1 Reply Last reply Reply Quote 0
          • A
            andreas0003 last edited by

            Hallo,

            hat keiner eine Idee?

            vg

            Andreas

            1 Reply Last reply Reply Quote 0
            • M
              mx-driver last edited by

              Hallo,

              Kann man auch den Zählerstand abfragen?

              Gruss

              Mx-driver

              V 1 Reply Last reply Reply Quote 0
              • V
                vitallo @mx-driver last edited by

                Hallo, auch wenn schon etwas älter - habe ich die gleich Fragestellung. Wie kann ich den Zählerstand abfragen ?

                Gefunden hab ich nur das als php Code
                <?
                $IP = GetValue(42120 /[ System\IP-Adressen\Youless LS110]/);
                $url = "http://$IP/a?f=j";

                $handle=fopen($url, "r");
                $json="";
                $json=fgets($handle, 10000 /[Objekt #10000 existiert nicht]/);
                fclose($handle);
                $Meter= json_decode($json);

                SetValue(54104 /[ Versorgung\Strommessung\EVN\Zählerstand]/, 1str_replace(",",".",$Meter->cnt));
                SetValue(24466 /
                [ Versorgung\Strommessung\EVN\aktuelle Leistung]/, 1str_replace(",",".",$Meter->pwr));
                SetValue(33148 /[ Versorgung\Strommessung\EVN\Signalstärke]/, 1*str_replace(",",".",$Meter->lvl));

                ?>

                Jemand eine Idee ?

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

                  Hallo,

                  bin gerade bei meinen Versuchen, die Daten des youless für Vis zu nutzen auf folgendes Wiki gestoßen:

                  https://wiki.td-er.nl/index.php?title=YouLess

                  Hilft vielleicht irgendwann irgendwem ...

                  Gruß
                  Frank

                  1 Reply Last reply Reply Quote 0
                  • eierfeile
                    eierfeile last edited by eierfeile

                    Ich hatte auch eine Zeit nach einer Anleitung gesucht um den youless auszuwerten. Parser und JS fand ich aber eher kompliziert im Vergleich zu Blockly und JSON. Ich hab es wie folgt umgesetzt. Ggf hilft das noch jmd anders?! Man brauch dazu nur 3 Datenpunkte. Gesamtverbrauch als string und Rest als number. Oder man konvertiert im Blockly den ersten Wert als Number. Geht auch. Funktioniert einwandfrei bei mir.
                    5cef679d-0ed2-475d-94c8-921ef4a6d758-image.png

                    Es basiert auf dieser Anleitung: https://www.machs-smart.de/json-blockly-einlesen-parsen-verarbeiten/

                    M D 2 Replies Last reply Reply Quote 0
                    • M
                      mx-driver @eierfeile last edited by mx-driver

                      @eierfeile Klasse!
                      nachgebaut und hat direkt funktioniert.

                      Hier mal das Blockly falls es jemand braucht 🙂

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <variables>
                          <variable id="U`X2r)s~:#1daPU6#C5S">result</variable>
                        </variables>
                        <block type="schedule" id="h)sr[UqjCX4r`J0y,NOU" x="213" y="38">
                          <field name="SCHEDULE">*/5 * * * *</field>
                          <statement name="STATEMENT">
                            <block type="request" id="C@^EhcbOp4pfjda+@DS$">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                              <field name="WITH_STATEMENT">TRUE</field>
                              <field name="LOG"></field>
                              <value name="URL">
                                <shadow type="text" id="?F;%q5pb.vNj3_(|nAbj">
                                  <field name="TEXT">http://192.168.178.130/a?f=j</field>
                                </shadow>
                              </value>
                              <statement name="STATEMENT">
                                <block type="control" id="#qP~WDbEXNtX-^w0YWmo">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">Meine_Geraete.0.Youless_Gesamtverbrauch</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="get_attr" id="DT:+-IH`~S/_~:^(cIe1">
                                      <value name="PATH">
                                        <shadow type="text" id="pP)C9-DV_0PgX]OX,E)w">
                                          <field name="TEXT">cnt</field>
                                        </shadow>
                                      </value>
                                      <value name="OBJECT">
                                        <block type="convert_json2object" id="V=JUWD*B8!qW2PGQOo@F">
                                          <value name="VALUE">
                                            <block type="variables_get" id=":V0ok#UMRzhU+v6M6F1~">
                                              <field name="VAR" id="U`X2r)s~:#1daPU6#C5S">result</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="~0Y4#HidzaQ3;PM6H(0C" disabled="true">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">Meine_Geraete.0.Youless_Momentanverbrauch</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="get_attr" id="Jo.jGs.yi=0(1_[;BcO|">
                                          <value name="PATH">
                                            <shadow type="text" id="#DOA[Vtj?9bhe2KGAZ6k">
                                              <field name="TEXT">pwr</field>
                                            </shadow>
                                          </value>
                                          <value name="OBJECT">
                                            <block type="convert_json2object" id="`}J3R/ZvCZ}_HFvs,7r6">
                                              <value name="VALUE">
                                                <block type="variables_get" id="2[,~KAOhOS3:D++8VL4f">
                                                  <field name="VAR" id="U`X2r)s~:#1daPU6#C5S">result</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id="V7qiF1[#4B%UF[;H.N~D" disabled="true">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">Meine_Geraete.0.Youless_Signalstaerke</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="get_attr" id="c4B1sGnP32M@w(0kpy/g">
                                              <value name="PATH">
                                                <shadow type="text" id="koHP)70[DX91M@B@P0hX">
                                                  <field name="TEXT">lvl</field>
                                                </shadow>
                                              </value>
                                              <value name="OBJECT">
                                                <block type="convert_json2object" id="{20BTmI`~|{2m)?A)u:6">
                                                  <value name="VALUE">
                                                    <block type="variables_get" id="9%rHN^Uwq8X#m]qsQY?F">
                                                      <field name="VAR" id="U`X2r)s~:#1daPU6#C5S">result</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </statement>
                        </block>
                      </xml>
                      
                      1 Reply Last reply Reply Quote 0
                      • D
                        DeeJayDave @eierfeile last edited by

                        @eierfeile Hallo zusammen,
                        vielen Dank für das Skript! 🙂 Tolle Arbeit. Ich habe jedoch noch Einträge im Log, die ich nicht fixen kann:

                        javascript.0
                        2021-09-02 10:37:40.159	warn	You are assigning a string to the state "alias.0.Youless_Zählerstand" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
                        
                        javascript.0
                        2021-09-02 10:37:40.088	info	State value to set for "0_userdata.0.Youless_Gesamtverbrauch" has to be type "number" but received type "string"
                        

                        Könnt ihr mir verraten, wie euer Datenpunkt "Gesamtverbrauch" definiert ist?

                        _ 1 Reply Last reply Reply Quote 0
                        • _
                          _techniker_ @DeeJayDave last edited by _techniker_

                          @deejaydave said in Ausführen von aktualisierendem JavaScript Code:

                          @eierfeile Hallo zusammen,
                          vielen Dank für das Skript! 🙂 Tolle Arbeit. Ich habe jedoch noch Einträge im Log, die ich nicht fixen kann:

                          javascript.0
                          2021-09-02 10:37:40.159	warn	You are assigning a string to the state "alias.0.Youless_Zählerstand" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
                          
                          javascript.0
                          2021-09-02 10:37:40.088	info	State value to set for "0_userdata.0.Youless_Gesamtverbrauch" has to be type "number" but received type "string"
                          

                          Könnt ihr mir verraten, wie euer Datenpunkt "Gesamtverbrauch" definiert ist?

                          Das würde mich auch interessieren.

                          23457,066 ist mein Wert und bekomme die selber Meldung.

                          ...
                          createState('Aktuelle_Leistung', {type: 'number', unit: 'W', role: 'value.power'});
                          createState('Zählerstand', {type: 'number' , unit: 'kWh', role: 'value.power'});
                          ...
                          setState('Zählerstand', obj.cnt, true);
                                   setState('Aktuelle_Leistung', obj.pwr, true);
                          

                          Aktuelle_Leistung wird ohne Fehler übernohmen.

                          1 Reply Last reply Reply Quote 0
                          • D
                            DeeJayDave last edited by

                            Keiner ne Idee dazu? 😞

                            _ 1 Reply Last reply Reply Quote 0
                            • _
                              _techniker_ @DeeJayDave last edited by

                              @deejaydave said in Ausführen von aktualisierendem JavaScript Code:

                              Keiner ne Idee dazu? 😞

                              Sieht so aus. Schade. 😞

                              _ 1 Reply Last reply Reply Quote 0
                              • _
                                _techniker_ @_techniker_ last edited by _techniker_

                                @_techniker_

                                http://192.168.*.*/a?f=j
                                

                                Mit diesem Befehl lese ich die Daten aus und bekomme:

                                cnt " 23559,653"
                                pwr 661
                                lvl 24
                                dev "(±0%)"
                                det ""
                                con ""
                                sts ""
                                cs0 " 0,000"
                                ps0 0
                                raw 221

                                Evtl liegt es ja an " "
                                Nur wie bekomme ich das weg?

                                1 Reply Last reply Reply Quote 0
                                • D
                                  DeeJayDave last edited by

                                  So wie es aussieht, werden wir mit diesem Fehler leben müssen 😞

                                  Asgothian 1 Reply Last reply Reply Quote 0
                                  • Asgothian
                                    Asgothian Developer @DeeJayDave last edited by

                                    @deejaydave sagte in Ausführen von aktualisierendem JavaScript Code:

                                    So wie es aussieht, werden wir mit diesem Fehler leben müssen 😞

                                    Nein, müsst ihr nicht. Die Lösung ist aber extrem einfach:

                                    An Stelle von

                                    setState('Zählerstand', obj.cnt, true);
                                    setState('Aktuelle_Leistung', obj.pwr, true);
                                    
                                    setState('Zählerstand',parseFloat( obj.cnt), true);
                                    setState('Aktuelle_Leistung', parseFloat(obj.pwr), true);
                                    
                                    _ 1 Reply Last reply Reply Quote 0
                                    • D
                                      DeeJayDave last edited by

                                      @asgothian Danke dir für die Rückmeldung. Ich hab das Blockly-Skript von "eierfeile" nachgebaut und so sieht mein javaskript aus:

                                      var result;

                                      schedule("*/5 * * * * *", async function () {
                                        try {
                                          require("request")('http://192.168.178.73/a?f=j', async function (error, response, result) {
                                            setState("0_userdata.0.Youless_Gesamtverbrauch"/*Youless_Gesamtverbrauch*/, getAttr((function () { try {return JSON.parse(result);} catch(e) {return {};}})(), 'cnt'));
                                          setState("0_userdata.0.Youless_Momentanverbrauch"/*Youless_Momentanverbrauch*/, getAttr((function () { try {return JSON.parse(result);} catch(e) {return {};}})(), 'pwr'));
                                          setState("0_userdata.0.Youless_Signalstaerke"/*Youless_Signalstaerke*/, getAttr((function () { try {return JSON.parse(result);} catch(e) {return {};}})(), 'lvl'));
                                          }).on("error", function (e) {console.error(e);});
                                        } catch (e) { console.error(e); }
                                      });
                                      

                                      Könntest du mir verraten wo und wie ich das in dieses Skript einbauen soll? Danke im Voraus 🙂

                                      Asgothian 1 Reply Last reply Reply Quote 0
                                      • Asgothian
                                        Asgothian Developer @DeeJayDave last edited by

                                        @deejaydave

                                        Das parsefloat muss um die getattr Aufrufe herum gesetzt werden.

                                        A.

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          DeeJayDave @Asgothian last edited by

                                          @asgothian Verstehe, danke. Aber in meinem Fall (ich nutze Blockly) kann ich es gar nicht einfügen. Also müsste ich das Blockly-Skript löschen und stattdessen ein Javaskript aufsetzen? Oder gibt es eine Möglichkeit den parsefloat im Blockly einzusetzen?

                                          Asgothian 1 Reply Last reply Reply Quote 0
                                          • Asgothian
                                            Asgothian Developer @DeeJayDave last edited by

                                            @deejaydave Es gibt einen Konvertierungsbaustein (bei mir im englischen toNumber) den du da vor einhängen kannst.

                                            A.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            905
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            14
                                            32
                                            5349
                                            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