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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Konvertierung von Zeichenkette nach Zahl?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    908

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Konvertierung von Zeichenkette nach Zahl?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
46 Beiträge 6 Kommentatoren 5.7k Aufrufe 3 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.
  • X Offline
    X Offline
    xbow42
    schrieb am zuletzt editiert von
    #9

    lege den Datenpunkt manuell an unter Objekte

    mqtt.0.tele.sonoff.zaelerstand als Typ Zahl

    s. Zitat: Mit setState(id, wert, true); und deinem Wunsch für b

    Mit setState('mqtt.0.tele.sonoff.zaelerstand', inhalt.SML.Total_in , true);

    edit: ok warst schneller: :D

    Ich würde den DP trotzdem lieber beim Gerät abspeichern, als Daten zu einem Gerät an zu vielen Stellen zu haben.

    1 Antwort Letzte Antwort
    0
    • B Offline
      B Offline
      baumsass
      schrieb am zuletzt editiert von
      #10

      bekomme es nicht hin.Die Objekt-Id ist angelegt . 15166_unbenannt.jpg

      1 Antwort Letzte Antwort
      0
      • a200A Offline
        a200A Offline
        a200
        schrieb am zuletzt editiert von
        #11

        Du hast ZaehlerstandDP falsch definiert erstmal " und dann '

        einfach "javascript.0.Zählerstand_Haus" ohne die ' und Kommentare!

        oder noch einfacher:

        setState("javascript.0.Zählerstand_Haus", b, true);
        

        alternativ;

        setState("javascript.0.Zählerstand_Haus", parseFloat(b), true);
        

        Dann wird die Variable b nach Float umgewandelt, bevor sie geschrieben wird.

        IoBroker auf QNAP TS-451, Raspi und NUC

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          dirkhe
          Developer
          schrieb am zuletzt editiert von
          #12

          Du solltest mal genau hinsehen, was du als id eingetragen hast..

          "'Xxxx kann nicht funktionieren. Da sind zu viele Anführungszeichen, sowohl oben als such unten.

          Du kannst auch das sonoff Objekt erweitern mit extendObject

          1 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            baumsass
            schrieb am zuletzt editiert von
            #13

            funktioniert.

            Wird das denn auch aktualisiert wenn sich das "Hauptobjekt" per mqtt ändert?

            nur passiert es manchmal das eine komische Zahl gelesen wird.
            15166_unbenannt.jpg

            obwohl es im Objekt richtig steht

            15166_unbenannt1.jpg

            1 Antwort Letzte Antwort
            0
            • X Offline
              X Offline
              xbow42
              schrieb am zuletzt editiert von
              #14

              schön dass es jetzt klappt!

              Um Blocky und js besser zu lernen habe ich mal versucht den Wert "Total_in" einzeln heraus zu kitzeln.

              Kann mir wer sagen warum die slice()-Funktion nicht funktioniert von dem Blocklyscript?

              ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
              ! <block type="variables_set" id="J(;S,}.VY694q:bm7{RX" x="-87" y="13"><field name="VAR">MSG</field>
              ! <value name="VALUE"><block type="text" id="}QR6t|5yHFKulBE3MDg"><field name="TEXT">{"Time":"2019-01-24T19:33:29","SML":{"Total_in":6001.0760,"Total_out":0.1580,"Power_curr":0}}</field></block></value>
              ! <next><block type="variables_set" id="vu_7]U4wBf}NDqfu9k.;"><field name="VAR">Total_In_Anfang</field>
              ! <value name="VALUE"><block type="math_arithmetic" id="lZ*9j-Z7ry#|Dv@~qA@"><field name="OP">ADD</field> ! <value name="A"><shadow type="math_number" id="gt9WUG(t6ie[i0tKU2#{"><field name="NUM">1</field></shadow> ! <block type="text_indexOf" id="Fzr9Z_.VcNYSKogLRSW"><field name="END">FIRST</field>
              ! <value name="VALUE"><block type="variables_get" id="Y0[TCzK(_u,bbEwq6zkY"><field name="VAR">MSG</field></block></value>
              ! <value name="FIND"><shadow type="text" id="USy|6K2qk[Fo[GSXW;Ni"><field name="TEXT">Total_in</field></shadow></value></block></value>
              ! <value name="B"><shadow type="math_number" id="6dYrhU.Q+JCq,BiN4+"><field name="NUM">10</field></shadow></value></block></value>
              ! <next><block type="debug" id=".jvcF-W){%M[ioY}BX2s"><field name="Severity">log</field>
              ! <value name="TEXT"><shadow type="text" id="tl@EmOKRb!@{/qFiYavJ"><field name="TEXT">test</field></shadow>
              ! <block type="text_join" id="kDzGc/=@fs.;[1+x
              {W."><mutation items="2"></mutation>
              ! <value name="ADD0"><block type="text" id="0amyFZF@:-}un:C/}Ap9"><field name="TEXT">Total_in Anfang:</field></block></value>
              ! <value name="ADD1"><block type="variables_get" id=")#lY-5faPghWkOLQJOr}"><field name="VAR">Total_In_Anfang</field></block></value></block></value>
              ! <next><block type="variables_set" id="bH=X:.FnyZcLxbc4Gxu"><field name="VAR">MSG_temp</field>
              ! <value name="VALUE"><block type="text_getSubstring" id="b-}pQm]p1~{.+
              -n^z3w"><mutation at1="true" at2="true"></mutation>
              ! <field name="WHERE1">FROM_START</field>
              ! <field name="WHERE2">FROM_START</field>
              ! <value name="STRING"><block type="variables_get" id="I6Dj7iz4mGByHiGof]"><field name="VAR">MSG</field></block></value>
              ! <value name="AT1"><block type="variables_get" id="BTh9Y{g4GxjmywWlS?S_"><field name="VAR">Total_In_Anfang</field></block></value>
              ! <value name="AT2"><block type="text_length" id="3yNvV@(z!V2eu[PGJkV"><value name="VALUE"><shadow type="text" id="jEc3oYD0^{g~aWOoiyd"><field name="TEXT">abc</field></shadow> ! <block type="variables_get" id="ERMT^T1e-_Z2qF~^asqR"><field name="VAR">MSG</field></block></value></block></value></block></value> ! <next><block type="debug" id="n^a!SA,R;N2mtW%Y!FGx"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="tl@EmOKRb!@{/qFiYavJ"><field name="TEXT">test</field></shadow> ! <block type="text_join" id="*^t{*5(L{8P0_0OLX=[J"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="2YcYNZt}@JVua}qe:[H!"><field name="TEXT">msg_temp:</field></block></value> ! <value name="ADD1"><block type="variables_get" id="l]^}U=9nv}H2=4j0ZYE"><field name="VAR">MSG_temp</field></block></value></block></value>
              ! <next><block type="variables_set" id="3T;;^[khXtinCJMhQ7A"><field name="VAR">Total_In_Ende</field>
              ! <value name="VALUE"><block type="math_arithmetic" id="Y)|^oQ}myYr9z2{Y=Ac"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id="gt9WUG(t6ie[i0tKU2#{"><field name="NUM">1</field></shadow> ! <block type="text_indexOf" id="[}N#SvlVd/Wn%4UPRAk"><field name="END">FIRST</field>
              ! <value name="VALUE"><block type="variables_get" id="VL9+#!QZjT6J^R+ieH+?"><field name="VAR">MSG_temp</field></block></value>
              ! <value name="FIND"><shadow type="text" id="y0~a)00,%78~dWt
              |WF+"><field name="TEXT">,</field></shadow></value></block></value>
              ! <value name="B"><shadow type="math_number" id="Y4=}S=KwfSy)mx:f*O^c"><field name="NUM">1</field></shadow></value></block></value>
              ! <next><block type="debug" id="uetZ4+!2o~l/MYdRS]I["><field name="Severity">log</field>
              ! <value name="TEXT"><shadow type="text" id="tl@EmOKRb!@{/qFiYavJ"><field name="TEXT">test</field></shadow>
              ! <block type="text_join" id="|(w.-P{}EP,Xg8u+^pFq"><mutation items="3"></mutation>
              ! <value name="ADD0"><block type="text" id="O#T[mg/@6]x24QAS;3"><field name="TEXT">total_in_ende:</field></block></value>
              ! <value name="ADD1"><block type="variables_get" id="g1Xk|JjJx0?Ed2oYvS?w"><field name="VAR">Total_In_Ende</field></block></value>
              ! <value name="ADD2"><block type="variables_get" id="D13lawug2;^NsIx?u{1)"><field name="VAR">MSG</field></block></value></block></value>
              ! <next><block type="variables_set" id="?1PY=A6,Fyz{*a(Vjs}^"><field name="VAR">Total_In</field>
              ! <value name="VALUE"><block type="convert_tonumber" id="o#N2EfkR^+A(|sMZ60Bv"><value name="VALUE"><block type="text_getSubstring" id="xnDhP9V_E^BDu|!q{0M~"><mutation at1="true" at2="true"></mutation>
              ! <field name="WHERE1">FROM_START</field>
              ! <field name="WHERE2">FROM_START</field>
              ! <value name="STRING"><block type="variables_get" id="+E|jMCP+AJt}Nw9(c~A
              "><field name="VAR">MSG</field></block></value>
              ! <value name="AT1"><block type="variables_get" id="Nk,YVt?R5vJC2%!ZSdZ"><field name="VAR">Total_In_Anfang</field></block></value> ! <value name="AT2"><block type="variables_get" id="#lv!hlG8nsJdBa;SUb"><field name="VAR">Total_In_Ende</field></block></value></block></value></block></value> ! <next><block type="debug" id=";6og#CF0)(]Rxuv1dfW"><field name="Severity">log</field>
              ! <value name="TEXT"><shadow type="text" id="tl@EmOKRb!@{/qFiYavJ"><field name="TEXT">test</field></shadow>
              ! <block type="text_join" id="KR=dUtSffy=D:}Gq8]dr"><mutation items="2"></mutation>
              ! <value name="ADD0"><block type="text" id="1kBDH/HP.tjPp4A._OC2"><field name="TEXT">Total_in ist:</field></block></value>
              ! <value name="ADD1"><block type="variables_get" id="v6Qt]msR*tM.@f1~Ozk4"><field name="VAR">Total_In</field></block></value></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></xml>

              1 Antwort Letzte Antwort
              0
              • a200A Offline
                a200A Offline
                a200
                schrieb am zuletzt editiert von
                #15

                nein, wird nicht aktualisiert.

                dafür musste du folgendes eintragen:

                on({id: "mqtt.0.tele.sonoff.SENSOR", change: "ne"}, function (obj) {
                	inhalt = JSON.parse(getState(id).val);
                	setState("javascript.0.Zählerstand_Haus", parseFloat(inhalt.SML.Total_in), true);
                });
                

                jetzt wird, bei der Änderung des "mqtt.0.tele.sonoff.SENSOR" der Datenpunkt ausgelesen, verarbeitet und der Total_in Wert wird in "javascript.0.Zählerstand_Haus" geschrieben.

                Ist das das, was du willst?

                IoBroker auf QNAP TS-451, Raspi und NUC

                1 Antwort Letzte Antwort
                0
                • B Offline
                  B Offline
                  baumsass
                  schrieb am zuletzt editiert von
                  #16

                  teste ich.

                  1 Antwort Letzte Antwort
                  0
                  • B Offline
                    B Offline
                    baumsass
                    schrieb am zuletzt editiert von
                    #17

                    ja nur mit diesen einen Satz macht IObroker das was ich möchte. Mehr steht jetzt nicht mehr im Script.

                    Leider mit falschen Zahlen siehe oben.

                    Die Aktualisierung erfolgt sofort.

                    15166_unbenannt.jpg

                    in der Ojekt ID der per MQTT kommt steht das in der Beschreibung:

                    Zeichenkette

                    {

                    "sql.0": {

                    "enabled": true,

                    "changesOnly": true,

                    "debounce": 0,

                    "maxLength": 10,

                    "retention": "63072000",

                    "changesRelogInterval": 0,

                    "changesMinDelta": 0,

                    "storageType": "",

                    "aliasId": "StromzählerHaus"

                    }

                    }

                    1 Antwort Letzte Antwort
                    0
                    • a200A Offline
                      a200A Offline
                      a200
                      schrieb am zuletzt editiert von
                      #18

                      hast du noch eine Quelle, die da rein schreibt. wie man sieht sind die "fremden" Einträge mit Ack False, während unsere true sind.

                      Die Quelle ist javascript, Also denke ich, dass du noch ein Skript am Laufen hast, das dir dort die Werte einfügt. Prüfe das mal.

                      bis morgen.

                      ps. kann es sein, dass in dem mqtt-Objekt mehrere Einträge mit "Total_in" gibt. Dann musst du [0] einfügen.

                      setState("javascript.0.Zählerstand_Haus", parseFloat(inhalt.SML.Total_in[0]), true);
                      

                      oder mehrere SML Blöcke, dann;

                      setState("javascript.0.Zählerstand_Haus", parseFloat(inhalt.SML[0].Total_in), true);
                      

                      Schick mir den gesamten Inhalt des MQTT-Datenpunktes.

                      IoBroker auf QNAP TS-451, Raspi und NUC

                      1 Antwort Letzte Antwort
                      0
                      • B Offline
                        B Offline
                        baumsass
                        schrieb am zuletzt editiert von
                        #19

                        Du hattest recht da hat was anderes reingeschrieben war aber mein Fehler beim kopieren….

                        Das Skript sieht jetzt so aus

                        var inDP = "mqtt.0.tele.sonoff.SENSOR"; // Hier den Pfad zu deinem MQTT Datenpunkt angeben!

                        var inhalt = getState(inDP).val;

                        inhalt = JSON.parse(inhalt);

                        var a = inhalt.Time;

                        var b = inhalt.SML.Total_in;

                        var c = inhalt.SML.Total_out;

                        var d = inhalt.SML.Power_curr;

                        log("Time = " + a);

                        log("Total In = " + b);

                        log("Total Out = " + c);

                        log("Power = " + d);

                        var ZaehlerstandDP = "javascript.0.Zählerstand_Haus"; // Dein ZielDatenpunkt

                        setState(ZaehlerstandDP, b, true);

                        var ZaehlerstandDP = "javascript.0.Zählerstand_PV"; // Dein ZielDatenpunkt

                        setState(ZaehlerstandDP, c, true);

                        on({id: "mqtt.0.tele.sonoff.SENSOR", change: "ne"}, function (obj) {

                        inhalt = JSON.parse(getState(id).val);

                        setState("javascript.0.Zählerstand_Haus", parseFloat(inhalt.SML.Total_in), true);

                        });

                        leider wird aes immer nur einmal abgearbeitet… nur wenn ich das script neu starte.

                        1 Antwort Letzte Antwort
                        0
                        • a200A Offline
                          a200A Offline
                          a200
                          schrieb am zuletzt editiert von
                          #20

                          @baumsass:

                          Du hattest recht da hat was anderes reingeschrieben war aber mein Fehler beim kopieren….

                          Das Skript sieht jetzt so aus

                          var inDP = "mqtt.0.tele.sonoff.SENSOR"; // Hier den Pfad zu deinem MQTT Datenpunkt angeben!

                          var inhalt = getState(inDP).val;

                          inhalt = JSON.parse(inhalt);

                          var a = inhalt.Time;

                          var b = inhalt.SML.Total_in;

                          var c = inhalt.SML.Total_out;

                          var d = inhalt.SML.Power_curr;

                          log("Time = " + a);

                          log("Total In = " + b);

                          log("Total Out = " + c);

                          log("Power = " + d);

                          var ZaehlerstandDP = "javascript.0.Zählerstand_Haus"; // Dein ZielDatenpunkt

                          setState(ZaehlerstandDP, b, true);

                          var ZaehlerstandDP = "javascript.0.Zählerstand_PV"; // Dein ZielDatenpunkt

                          setState(ZaehlerstandDP, c, true);

                          on({id: "mqtt.0.tele.sonoff.SENSOR", change: "ne"}, function (obj) {

                          inhalt = JSON.parse(getState(id).val);

                          setState("javascript.0.Zählerstand_Haus", parseFloat(inhalt.SML.Total_in), true);

                          }); `

                          leider wird aes immer nur einmal abgearbeitet… nur wenn ich das script neu starte.

                          mach folgendes:

                          on({id: "mqtt.0.tele.sonoff.SENSOR", change: "ne"}, function (obj) {
                             inhalt = JSON.parse(getState(id).val);
                             setState("javascript.0.Zählerstand_Haus", parseFloat(inhalt.SML.Total_in), true);
                             setState("javascript.0.Zählerstand_PV", parseFloat(inhalt.SML.Total_Out), true);
                          });
                          

                          mehr brauchst du nicht. Mit deinem Skript hast du die beide Werte mehrmals in den Datenpunkt geschrieben. Wenn das nicht hilft, dann brauche ich einen kompletten Eintrag aus mqtt.0.tele.sonoff.SENSOR um die Datenstruktur zu sehen.

                          IoBroker auf QNAP TS-451, Raspi und NUC

                          1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            baumsass
                            schrieb am zuletzt editiert von
                            #21

                            leider funktioniert das nicht.

                            habe jetzt nur dein Script da drin.

                            15166_screenshot_20190125-124342_chrome.jpg

                            1 Antwort Letzte Antwort
                            0
                            • a200A Offline
                              a200A Offline
                              a200
                              schrieb am zuletzt editiert von
                              #22

                              @baumsass:

                              leider funktioniert das nicht.

                              habe jetzt nur dein Script da drin. `

                              Ich kann dir nicht helfen, wenn du mir nicht den Inhalt deines Inputsobjekts zeigst.

                              IoBroker auf QNAP TS-451, Raspi und NUC

                              1 Antwort Letzte Antwort
                              0
                              • B Offline
                                B Offline
                                baumsass
                                schrieb am zuletzt editiert von
                                #23

                                reicht dir das :?: Sorry screenshot vom handy… bin noch auf Arbeit
                                15166_screenshot_20190125-131300_chrome.jpg

                                {"Time":"2019-01-25T13:12:31","SML":{"Total_in":6021.8000,"Total_out":0.1580,"Power_curr":0}}

                                War der Letyte Eintrag

                                1 Antwort Letzte Antwort
                                0
                                • a200A Offline
                                  a200A Offline
                                  a200
                                  schrieb am zuletzt editiert von
                                  #24
                                  on({id: "mqtt.0.tele.sonoff.SENSOR", change: "ne"}, function (obj) {
                                     inhalt = JSON.parse(getState("mqtt.0.tele.sonoff.SENSOR").val);				// Diese Zeile wurde geändert!
                                     setState("javascript.0.Zählerstand_Haus", parseFloat(inhalt.SML.Total_in), true);
                                     setState("javascript.0.Zählerstand_PV", parseFloat(inhalt.SML.Total_Out), true);
                                  });
                                  

                                  Versuchs mal damit!

                                  IoBroker auf QNAP TS-451, Raspi und NUC

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #25

                                    Besser so:

                                    on("mqtt.0.tele.sonoff.SENSOR", function (obj) {
                                       inhalt = JSON.parse(obj.state.val);
                                       setState("javascript.0.Zählerstand_Haus", inhalt.SML.Total_in, true);
                                       setState("javascript.0.Zählerstand_PV", inhalt.SML.Total_out, true);
                                    });
                                    

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      baumsass
                                      schrieb am zuletzt editiert von
                                      #26

                                      scheint zu funktionieren ich beobachte und Berichte morgen!!!

                                      DANKE DANKE DANKE!

                                      1 Antwort Letzte Antwort
                                      0
                                      • B Offline
                                        B Offline
                                        baumsass
                                        schrieb am zuletzt editiert von
                                        #27

                                        Eins noch…. was ich per Blocky nie hinbekommen habe.

                                        Wie ziehe ich zb von einen aktuellen Datenpunkt(Zahl) einen in der Vergangenheit liegenden Datenpunkt ab? (zb Zählerstand aktuell-Zählerstand Vorletzter Wert oder Letzte Wert)

                                        1 Antwort Letzte Antwort
                                        0
                                        • a200A Offline
                                          a200A Offline
                                          a200
                                          schrieb am zuletzt editiert von
                                          #28

                                          @baumsass:

                                          Eins noch…. was ich per Blocky nie hinbekommen habe.

                                          Wie ziehe ich zb von einen aktuellen Datenpunkt(Zahl) einen in der Vergangenheit liegenden Datenpunkt ab? (zb Zählerstand aktuell-Zählerstand Vorletzter Wert oder Letzte Wert) `

                                          Schau dir mal den Adapter an: viewtopic.php?f=36&t=20897 an. Wenn du den auf deine Verbrauchsdatenpunkte setzt, dann bekommst du automatisch eine Statistik.

                                          IoBroker auf QNAP TS-451, Raspi und NUC

                                          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

                                          738

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          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