Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Abfrage MQTT Variable

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    9
    1
    79

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

Abfrage MQTT Variable

Scheduled Pinned Locked Moved Einsteigerfragen
24 Posts 4 Posters 1.2k Views 2 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.
  • N NeueKlasse

    @codierknecht Danke fuer die Schnelle Antwort!

    um wieder in das ganze thema Java einzusteigen wollte ich noch den Korrekten Zählerstand in die
    Uservariable schreiben... irgendwo scheint hier noch etwas zu haken...
    desweiteren Stelle ich mir die Frage, wie oft wird das Script pro Zeiteinheit ueberhaupt ausgefuehrt?

    JavaGascounter.jpg

    CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    wrote on last edited by
    #4

    @neueklasse sagte in Abfrage MQTT Variable:

    desweiteren Stelle ich mir die Frage, wie oft wird das Script pro Zeiteinheit ueberhaupt ausgefuehrt?

    So wird das Ganze nur 1x beim Start des Script ausgeführt.
    Du brauchst einen Trigger, der auf Änderungen reagiert.

    on({id: "mqtt.0.tele.Gascounter.SENSOR", change: "ne"}, async function (obj) {
      var GascounterESP32 = getAttr(obj.state.val, 'Counter.C1');
      // hier Dein Code
    });
    
    

    By the way: Scripte und Ausgaben aus Log oder Terminal nicht als Screenshot sondern in Code-Tags </> posten.
    Nicht jeder hat Lust, das Ganze nochmal abzutippen. Und auf dem Handy sind Screenshots nur schwer lesbar.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    N 1 Reply Last reply
    0
    • CodierknechtC Codierknecht

      @neueklasse sagte in Abfrage MQTT Variable:

      desweiteren Stelle ich mir die Frage, wie oft wird das Script pro Zeiteinheit ueberhaupt ausgefuehrt?

      So wird das Ganze nur 1x beim Start des Script ausgeführt.
      Du brauchst einen Trigger, der auf Änderungen reagiert.

      on({id: "mqtt.0.tele.Gascounter.SENSOR", change: "ne"}, async function (obj) {
        var GascounterESP32 = getAttr(obj.state.val, 'Counter.C1');
        // hier Dein Code
      });
      
      

      By the way: Scripte und Ausgaben aus Log oder Terminal nicht als Screenshot sondern in Code-Tags </> posten.
      Nicht jeder hat Lust, das Ganze nochmal abzutippen. Und auf dem Handy sind Screenshots nur schwer lesbar.

      N Offline
      N Offline
      NeueKlasse
      wrote on last edited by NeueKlasse
      #5

      @codierknecht ahh... ok Danke,

      
      var CounterCalc = 0;
      
      on({id: "mqtt.0.tele.Gascounter.SENSOR", change: "ne"}, async function (obj) {  // trigger
          var GascounterESP32 = getAttr(obj.state.val, 'Counter.C1');                 // write state into Variable
      
          CounterCalc = (GascounterESP32 / 10);                                                   // calculation
              setState('0_userdata.0.Gaszaehler.Gaszaehlerstand'/*Gaszaehlerstand*/,CounterCalc); // calculated value into uservalue
      
      });
      

      könntest Du mir noch bitte sagen wieso er die uservariable mit setState nicht überschreibt mit CounterCalc?

      CodierknechtC 1 Reply Last reply
      0
      • N NeueKlasse

        @codierknecht ahh... ok Danke,

        
        var CounterCalc = 0;
        
        on({id: "mqtt.0.tele.Gascounter.SENSOR", change: "ne"}, async function (obj) {  // trigger
            var GascounterESP32 = getAttr(obj.state.val, 'Counter.C1');                 // write state into Variable
        
            CounterCalc = (GascounterESP32 / 10);                                                   // calculation
                setState('0_userdata.0.Gaszaehler.Gaszaehlerstand'/*Gaszaehlerstand*/,CounterCalc); // calculated value into uservalue
        
        });
        

        könntest Du mir noch bitte sagen wieso er die uservariable mit setState nicht überschreibt mit CounterCalc?

        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        wrote on last edited by
        #6

        @neueklasse
        Könnte man noch etwas vereinfachen:

        on({id: "mqtt.0.tele.Gascounter.SENSOR", change: "ne"}, async function (obj) {
            setState('0_userdata.0.Gaszaehler.Gaszaehlerstand', parseInt(getAttr(obj.state.val, 'Counter.C1')) / 10); 
        });
        

        Der Wert wird geschrieben, sobald sich der der DP mqtt.0.tele.Gascounter.SENSOR das nächste mal ändert.
        Wenn das Script gestartet wird, solltest Du im Log etwas mit 1 Subscriptions sehen.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        1 Reply Last reply
        0
        • N NeueKlasse

          @codierknecht Danke fuer die Schnelle Antwort!

          um wieder in das ganze thema Java einzusteigen wollte ich noch den Korrekten Zählerstand in die
          Uservariable schreiben... irgendwo scheint hier noch etwas zu haken...
          desweiteren Stelle ich mir die Frage, wie oft wird das Script pro Zeiteinheit ueberhaupt ausgefuehrt?

          JavaGascounter.jpg

          mickymM Offline
          mickymM Offline
          mickym
          Most Active
          wrote on last edited by
          #7

          @neueklasse sagte in Abfrage MQTT Variable:

          @codierknecht Danke fuer die Schnelle Antwort!

          um wieder in das ganze thema Java einzusteigen ….

          Du steigst nicht in Java ein, sondern in Javascript. Das ist ein gewaltiger Unterschied.
          ;)

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          N 1 Reply Last reply
          0
          • mickymM mickym

            @neueklasse sagte in Abfrage MQTT Variable:

            @codierknecht Danke fuer die Schnelle Antwort!

            um wieder in das ganze thema Java einzusteigen ….

            Du steigst nicht in Java ein, sondern in Javascript. Das ist ein gewaltiger Unterschied.
            ;)

            N Offline
            N Offline
            NeueKlasse
            wrote on last edited by NeueKlasse
            #8

            @mickym Stimmt!

            @Codierknecht

            javascript.0 (193) script.js.User_Scripts.Gascounter: setForeignState(id=0_userdata.0.Gaszaehler.Gaszaehlerstand, state={"val":null,"ack":false,"ts":1675419639482,"q":0,"from":"system.adapter.javascript.0","lc":1675419639482,"c":"script.js.User_Scripts.Gascounter"})

            auf die vorherige sowie 'kurze' variante gibt es eine subscription, aber bei value steht "null" drin. (oben gezeigter Log)

            1 Reply Last reply
            0
            • CodierknechtC Codierknecht

              @neueklasse

              getAttr(getState("DEINE_ID").val, 'Counter.C1');
              

              Oder als Blockly:
              80ff6709-c677-4591-8224-e81b9b3b1c45-image.png

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #9

              @codierknecht
              getAttr() wurde für Blockly entwickelt und wird in Javascript nicht benötigt.

              @neueklasse sagte in Abfrage MQTT Variable:

              wie oft wird das Script pro Zeiteinheit ueberhaupt ausgefuehrt?

              Man benötigt einen Trigger.

              const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
              const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
              
              on(idSensor, function(dp) {
                  let zaehler = Math.round(dp.state.val.Counter.C1) / 10;
                  setState(idZaehler, zaehler, 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

              N CodierknechtC 2 Replies Last reply
              0
              • paul53P paul53

                @codierknecht
                getAttr() wurde für Blockly entwickelt und wird in Javascript nicht benötigt.

                @neueklasse sagte in Abfrage MQTT Variable:

                wie oft wird das Script pro Zeiteinheit ueberhaupt ausgefuehrt?

                Man benötigt einen Trigger.

                const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                
                on(idSensor, function(dp) {
                    let zaehler = Math.round(dp.state.val.Counter.C1) / 10;
                    setState(idZaehler, zaehler, true);
                });
                
                N Offline
                N Offline
                NeueKlasse
                wrote on last edited by
                #10

                @paul53

                hier bekomme ich einen

                error javascript.0 (193) at Object.<anonymous> (script.js.User_Scripts.Gascounter:8:51)

                (in Zeile 8 befindet sich "let zaehler =")

                hatte vorher einen Denkfehler, das durch 10 Teilen ist falsch.. ich moechte hier nur von
                Integer auf float (statt 1234567 auf 12345.67)

                paul53P 1 Reply Last reply
                0
                • N NeueKlasse

                  @paul53

                  hier bekomme ich einen

                  error javascript.0 (193) at Object.<anonymous> (script.js.User_Scripts.Gascounter:8:51)

                  (in Zeile 8 befindet sich "let zaehler =")

                  hatte vorher einen Denkfehler, das durch 10 Teilen ist falsch.. ich moechte hier nur von
                  Integer auf float (statt 1234567 auf 12345.67)

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by paul53
                  #11

                  @neueklasse sagte: nur von Integer auf float (statt 1234567 auf 12345.67)

                  Dann kann das Runden weggelassen werden. Laut erstem Beitrag muss "COUNTER" groß geschrieben werden.

                  const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                  const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                   
                  on(idSensor, function(dp) {
                      let zaehler = dp.state.val.COUNTER.C1 / 100;
                      setState(idZaehler, zaehler, 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

                  N 1 Reply Last reply
                  0
                  • paul53P paul53

                    @neueklasse sagte: nur von Integer auf float (statt 1234567 auf 12345.67)

                    Dann kann das Runden weggelassen werden. Laut erstem Beitrag muss "COUNTER" groß geschrieben werden.

                    const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                    const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                     
                    on(idSensor, function(dp) {
                        let zaehler = dp.state.val.COUNTER.C1 / 100;
                        setState(idZaehler, zaehler, true);
                    });
                    
                    N Offline
                    N Offline
                    NeueKlasse
                    wrote on last edited by NeueKlasse
                    #12

                    @paul53 COUNTER Grossgeschrieben, das hatte ich auch versucht, ändert leider nichts an dem Error

                    paul53P 1 Reply Last reply
                    0
                    • paul53P paul53

                      @codierknecht
                      getAttr() wurde für Blockly entwickelt und wird in Javascript nicht benötigt.

                      @neueklasse sagte in Abfrage MQTT Variable:

                      wie oft wird das Script pro Zeiteinheit ueberhaupt ausgefuehrt?

                      Man benötigt einen Trigger.

                      const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                      const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                      
                      on(idSensor, function(dp) {
                          let zaehler = Math.round(dp.state.val.Counter.C1) / 10;
                          setState(idZaehler, zaehler, true);
                      });
                      
                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      wrote on last edited by Codierknecht
                      #13

                      @paul53 sagte in Abfrage MQTT Variable:

                      getAttr() wurde für Blockly entwickelt und wird in Javascript nicht benötigt.

                      Danke für den Hinweis - sollte aber doch trotzdem funktionieren.

                      Das hier funzt jedenfalls einwandfrei:

                      const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                      const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                       
                      on({id: idSensor, change: "ne"}, async function (obj) {
                          let zaehler = parseInt(getAttr(obj.state.val, "COUNTER.C1")) / 100;
                          setState(idZaehler, zaehler, true);
                      });
                      

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      N 1 Reply Last reply
                      0
                      • CodierknechtC Codierknecht

                        @paul53 sagte in Abfrage MQTT Variable:

                        getAttr() wurde für Blockly entwickelt und wird in Javascript nicht benötigt.

                        Danke für den Hinweis - sollte aber doch trotzdem funktionieren.

                        Das hier funzt jedenfalls einwandfrei:

                        const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                        const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                         
                        on({id: idSensor, change: "ne"}, async function (obj) {
                            let zaehler = parseInt(getAttr(obj.state.val, "COUNTER.C1")) / 100;
                            setState(idZaehler, zaehler, true);
                        });
                        
                        N Offline
                        N Offline
                        NeueKlasse
                        wrote on last edited by
                        #14

                        @codierknecht Jap, das funzt! Danke,

                        @paul53 mich würde trotzdem interessieren wieso es ohne die getAttr im moment noch nicht geht.

                        CodierknechtC paul53P 2 Replies Last reply
                        0
                        • N NeueKlasse

                          @paul53 COUNTER Grossgeschrieben, das hatte ich auch versucht, ändert leider nichts an dem Error

                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by paul53
                          #15

                          @neueklasse sagte: ändert leider nichts an dem Error

                          Dann enthält der Datenpunkt kein Objekt, sondern ein JSON.

                          const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                          const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                           
                          on(idSensor, function(dp) {
                              let zaehler = JSON.parse(dp.state.val).COUNTER.C1 / 100;
                              setState(idZaehler, zaehler, 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

                          CodierknechtC N 2 Replies Last reply
                          0
                          • paul53P paul53

                            @neueklasse sagte: ändert leider nichts an dem Error

                            Dann enthält der Datenpunkt kein Objekt, sondern ein JSON.

                            const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                            const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                             
                            on(idSensor, function(dp) {
                                let zaehler = JSON.parse(dp.state.val).COUNTER.C1 / 100;
                                setState(idZaehler, zaehler, true);
                            });
                            
                            CodierknechtC Online
                            CodierknechtC Online
                            Codierknecht
                            Developer Most Active
                            wrote on last edited by
                            #16

                            @paul53 sagte in Abfrage MQTT Variable:

                            Dann enthält der Datenpunkt kein Objekt, sondern ein JSON.

                            Davon war ich bei MQTT einfach mal ausgegangen ;-)

                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                            HmIP|ZigBee|Tasmota|Unifi
                            Zabbix Certified Specialist
                            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                            1 Reply Last reply
                            0
                            • N NeueKlasse

                              @codierknecht Jap, das funzt! Danke,

                              @paul53 mich würde trotzdem interessieren wieso es ohne die getAttr im moment noch nicht geht.

                              CodierknechtC Online
                              CodierknechtC Online
                              Codierknecht
                              Developer Most Active
                              wrote on last edited by
                              #17

                              @neueklasse sagte in Abfrage MQTT Variable:

                              mich würde trotzdem interessieren wieso es ohne die getAttr im moment noch nicht geht.

                              Mich auch :grin:

                              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                              HmIP|ZigBee|Tasmota|Unifi
                              Zabbix Certified Specialist
                              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                              1 Reply Last reply
                              0
                              • N NeueKlasse

                                @codierknecht Jap, das funzt! Danke,

                                @paul53 mich würde trotzdem interessieren wieso es ohne die getAttr im moment noch nicht geht.

                                paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by
                                #18

                                @neueklasse sagte: wieso es ohne die getAttr im moment noch nicht geht.

                                Es fehlte JSON.parse().

                                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

                                CodierknechtC 1 Reply Last reply
                                0
                                • paul53P paul53

                                  @neueklasse sagte: wieso es ohne die getAttr im moment noch nicht geht.

                                  Es fehlte JSON.parse().

                                  CodierknechtC Online
                                  CodierknechtC Online
                                  Codierknecht
                                  Developer Most Active
                                  wrote on last edited by Codierknecht
                                  #19

                                  @paul53
                                  Jepp - wenn man dann auch die korrekte Groß- und Kleinschreibung verwendet, klappt's auch mit dem Nachbarn :man-facepalming:
                                  In meinem Test-DP stand das noch als Counter.

                                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                  HmIP|ZigBee|Tasmota|Unifi
                                  Zabbix Certified Specialist
                                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                  N 1 Reply Last reply
                                  0
                                  • paul53P paul53

                                    @neueklasse sagte: ändert leider nichts an dem Error

                                    Dann enthält der Datenpunkt kein Objekt, sondern ein JSON.

                                    const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                                    const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                                     
                                    on(idSensor, function(dp) {
                                        let zaehler = JSON.parse(dp.state.val).COUNTER.C1 / 100;
                                        setState(idZaehler, zaehler, true);
                                    });
                                    
                                    N Offline
                                    N Offline
                                    NeueKlasse
                                    wrote on last edited by
                                    #20

                                    @paul53, @Codierknecht Funktionieren beide! Danke ihr Beiden!!

                                    ist das hier der richtige thread für... gibt es eine moeglichkeit von einer
                                    zahl z.b. 32,4 in der VIS nur die 2. Stelle auszugeben?

                                    also bei ems-esp.0.boiler.actual boiler temperature => hier betraegt die Object ID 32,4. wenn ich nur die 2. Stelle anzeigen lassen wollen würde, gibt es hier eine möglichkeit, oder muss ich separate Variablen erstellen in die ich per script die einzelnen stellen verteile?

                                    CodierknechtC 1 Reply Last reply
                                    0
                                    • N NeueKlasse

                                      @paul53, @Codierknecht Funktionieren beide! Danke ihr Beiden!!

                                      ist das hier der richtige thread für... gibt es eine moeglichkeit von einer
                                      zahl z.b. 32,4 in der VIS nur die 2. Stelle auszugeben?

                                      also bei ems-esp.0.boiler.actual boiler temperature => hier betraegt die Object ID 32,4. wenn ich nur die 2. Stelle anzeigen lassen wollen würde, gibt es hier eine möglichkeit, oder muss ich separate Variablen erstellen in die ich per script die einzelnen stellen verteile?

                                      CodierknechtC Online
                                      CodierknechtC Online
                                      Codierknecht
                                      Developer Most Active
                                      wrote on last edited by
                                      #21

                                      @neueklasse
                                      Da soll also tatsächlich nur eine "2" stehen?
                                      Würde mit einem Binding funktionieren - z.B. in einem HTML-Widget

                                      {val:ems-esp.0.boiler.actual_boiler_temperature; val.substr(1,1)}
                                      

                                      Ich habe hier mal vorausgesetzt, dass in der Objekt-ID nicht wirklich Leerzeichen enthalten sind.

                                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                      HmIP|ZigBee|Tasmota|Unifi
                                      Zabbix Certified Specialist
                                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                      N 1 Reply Last reply
                                      0
                                      • CodierknechtC Codierknecht

                                        @neueklasse
                                        Da soll also tatsächlich nur eine "2" stehen?
                                        Würde mit einem Binding funktionieren - z.B. in einem HTML-Widget

                                        {val:ems-esp.0.boiler.actual_boiler_temperature; val.substr(1,1)}
                                        

                                        Ich habe hier mal vorausgesetzt, dass in der Objekt-ID nicht wirklich Leerzeichen enthalten sind.

                                        N Offline
                                        N Offline
                                        NeueKlasse
                                        wrote on last edited by
                                        #22

                                        @codierknecht Super, funktioniert, danke! Jetzt kann ich mit den neuen erkenntnissen herumexperimentieren!

                                        1 Reply Last reply
                                        0
                                        • CodierknechtC Codierknecht

                                          @paul53
                                          Jepp - wenn man dann auch die korrekte Groß- und Kleinschreibung verwendet, klappt's auch mit dem Nachbarn :man-facepalming:
                                          In meinem Test-DP stand das noch als Counter.

                                          N Offline
                                          N Offline
                                          NeueKlasse
                                          wrote on last edited by NeueKlasse
                                          #23

                                          @codierknecht

                                          die 'idAnpassfaktor' betraegt 0,999987 ich habe es bereits mit parseFloat und get Attr getestet, leider geht
                                          das nicht so wie ich möchte...

                                          ">> <<" ist zur veranschaulichung

                                          const idSensor = 'mqtt.0.tele.Gascounter.SENSOR';
                                          const idZaehler = '0_userdata.0.Gaszaehler.Gaszaehlerstand';
                                          const idVerbrauch = '0_userdata.0.Gaszaehler.Gasverbrauch';
                                          const idZustandszahl = '0_userdata.0.Gaszaehler.Umrechnung.Zustandszahl';
                                          const idBrennwert = '0_userdata.0.Gaszaehler.Umrechnung.Brennwert';
                                          const idAnpassfaktor = '0_userdata.0.Gaszaehler.Umrechnung.Anpassfaktor';
                                           
                                          on({id: idSensor, change: "ne"}, async function (obj) {
                                              let zaehler = parseInt(getAttr(obj.state.val, "COUNTER.C1")) / 100 * >> idAnpassfaktor <<;
                                              var roundedm3 = Math.round((zaehler + Number.EPSILON) * 100) / 100;
                                              var roundedkwh = Math.round((zaehler + Number.EPSILON) * 100 * 0.95 * 11.1) / 100;
                                              setState(idZaehler, roundedm3, true);
                                              setState(idVerbrauch, roundedkwh, true);
                                          });
                                          
                                          

                                          wie wäre hier der Korrekte Syntax?

                                          CodierknechtC 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

                                          680

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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