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. Einsteigerfragen
  4. Abfrage MQTT Variable

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    493

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Abfrage MQTT Variable

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
24 Beiträge 4 Kommentatoren 1.2k Aufrufe 2 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.
  • 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 Offline
    CodierknechtC Offline
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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 Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von NeueKlasse
                #12

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

                paul53P 1 Antwort Letzte Antwort
                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 Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antworten Letzte Antwort
                    0
                    • N NeueKlasse

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

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                      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 Offline
                        CodierknechtC Offline
                        Codierknecht
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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 Offline
                          CodierknechtC Offline
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • paul53P paul53

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

                              Es fehlte JSON.parse().

                              CodierknechtC Offline
                              CodierknechtC Offline
                              Codierknecht
                              Developer Most Active
                              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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 Offline
                                  CodierknechtC Offline
                                  Codierknecht
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #22

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

                                    1 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                      0
                                      • N NeueKlasse

                                        @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 Offline
                                        CodierknechtC Offline
                                        Codierknecht
                                        Developer Most Active
                                        schrieb am zuletzt editiert von
                                        #24

                                        @neueklasse

                                        let zaehler = parseInt(getAttr(obj.state.val, "COUNTER.C1")) / 100 * getState(idAnpassfaktor).val;
                                        

                                        "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 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

                                        369

                                        Online

                                        32.5k

                                        Benutzer

                                        81.8k

                                        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