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. JavaScript Syntax Verstaendnisproblem

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    692

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

JavaScript Syntax Verstaendnisproblem

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
30 Beiträge 5 Kommentatoren 1.4k 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.
  • BananaJoeB BananaJoe

    @neueklasse Ich habe gerade am Anfang mir oft das Detail des Skriptes in Blockly zusammengeklickt - und dann auf die JavaScript-Ansicht umgeschaltet oben rechts.
    So lernte ich schneller die Befehle und mit welchem man was macht. Der Blockly-Code ist dann manchmal "überladen" aber das vereinfachen ist dann ja eine gute Übung

    N Offline
    N Offline
    NeueKlasse
    schrieb am zuletzt editiert von
    #5

    @bananajoe Danke fuer den Hinweis, das versuche ich!

    1 Antwort Letzte Antwort
    0
    • rrov1R rrov1

      @neueklasse versuche es mal mit:

      var costperday = parseFloat(getState("0_userdata.0.Gaszaehler.Verbrauch.Daily").val) * 13.70 / 100;
      

      Dokumentation der getState()-Funktion: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#getstate

      N Offline
      N Offline
      NeueKlasse
      schrieb am zuletzt editiert von
      #6

      @rrov1

      ich bringe die If funktion leider nicht zum laufen... wenn das if auskommentiert ist wird alles richtig resetted...
      der Wert beträgt aber "Room cleaning"....

      var idRobotState = 'mihome-vacuum.0.info.state';
      
      on({id: idRobotState, change: "ne"}, async function (obj) {
      
          if (idRobotState === "Room cleaning") {
              setState('mihome-vacuum.0.rooms.315001052296.roomClean', false);
              setState('mihome-vacuum.0.rooms.315001052297.roomClean', false);
              setState('mihome-vacuum.0.rooms.315001052299.roomClean', false);
              setState('mihome-vacuum.0.rooms.315001052301.roomClean', false);
              setState('mihome-vacuum.0.rooms.315001052302.roomClean', false);
              setState('mihome-vacuum.0.rooms.315001052303.roomClean', false);
              setState('mihome-vacuum.0.rooms.315001052305.roomClean', false);
          }
      
      });
      
      paul53P BananaJoeB CodierknechtC 3 Antworten Letzte Antwort
      0
      • N NeueKlasse

        @rrov1

        ich bringe die If funktion leider nicht zum laufen... wenn das if auskommentiert ist wird alles richtig resetted...
        der Wert beträgt aber "Room cleaning"....

        var idRobotState = 'mihome-vacuum.0.info.state';
        
        on({id: idRobotState, change: "ne"}, async function (obj) {
        
            if (idRobotState === "Room cleaning") {
                setState('mihome-vacuum.0.rooms.315001052296.roomClean', false);
                setState('mihome-vacuum.0.rooms.315001052297.roomClean', false);
                setState('mihome-vacuum.0.rooms.315001052299.roomClean', false);
                setState('mihome-vacuum.0.rooms.315001052301.roomClean', false);
                setState('mihome-vacuum.0.rooms.315001052302.roomClean', false);
                setState('mihome-vacuum.0.rooms.315001052303.roomClean', false);
                setState('mihome-vacuum.0.rooms.315001052305.roomClean', false);
            }
        
        });
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #7

        @neueklasse

            if(obj.state.val === 'Room cleaning') {
        

        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
        • N NeueKlasse

          @rrov1

          ich bringe die If funktion leider nicht zum laufen... wenn das if auskommentiert ist wird alles richtig resetted...
          der Wert beträgt aber "Room cleaning"....

          var idRobotState = 'mihome-vacuum.0.info.state';
          
          on({id: idRobotState, change: "ne"}, async function (obj) {
          
              if (idRobotState === "Room cleaning") {
                  setState('mihome-vacuum.0.rooms.315001052296.roomClean', false);
                  setState('mihome-vacuum.0.rooms.315001052297.roomClean', false);
                  setState('mihome-vacuum.0.rooms.315001052299.roomClean', false);
                  setState('mihome-vacuum.0.rooms.315001052301.roomClean', false);
                  setState('mihome-vacuum.0.rooms.315001052302.roomClean', false);
                  setState('mihome-vacuum.0.rooms.315001052303.roomClean', false);
                  setState('mihome-vacuum.0.rooms.315001052305.roomClean', false);
              }
          
          });
          
          BananaJoeB Offline
          BananaJoeB Offline
          BananaJoe
          Most Active
          schrieb am zuletzt editiert von
          #8

          @neueklasse aus dem Kopf: nur 2x =, dann passt er die Typen an

          if (obj.state.val == "Room cleaning")
          

          on reagiert auf die Datenpunktänderungen und übergibt dieses Objektzustand an die angegebene Funktion - mit dem Variablennamen obj weil das in der Klammer so angegeben wird.

          Mit dem Objekt erhälts du auch, aber nicht nur den Wert. Sondern z.B. alle Eigenschaften oder den Zeitstempel der Änderung.
          obj.state.val enthält den Wert zu dem Zeitpunkt wo on ausgelöst wurde.

          Zum Vergleichsoperator === : Ich nehme eigentlich immer den ==
          Siehe auch https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness?retiredLocale=de

          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

          CodierknechtC 1 Antwort Letzte Antwort
          1
          • N NeueKlasse

            @rrov1

            ich bringe die If funktion leider nicht zum laufen... wenn das if auskommentiert ist wird alles richtig resetted...
            der Wert beträgt aber "Room cleaning"....

            var idRobotState = 'mihome-vacuum.0.info.state';
            
            on({id: idRobotState, change: "ne"}, async function (obj) {
            
                if (idRobotState === "Room cleaning") {
                    setState('mihome-vacuum.0.rooms.315001052296.roomClean', false);
                    setState('mihome-vacuum.0.rooms.315001052297.roomClean', false);
                    setState('mihome-vacuum.0.rooms.315001052299.roomClean', false);
                    setState('mihome-vacuum.0.rooms.315001052301.roomClean', false);
                    setState('mihome-vacuum.0.rooms.315001052302.roomClean', false);
                    setState('mihome-vacuum.0.rooms.315001052303.roomClean', false);
                    setState('mihome-vacuum.0.rooms.315001052305.roomClean', false);
                }
            
            });
            
            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #9

            @neueklasse
            Um das von @paul53 etwas zu erläutern:
            Im Zeile 1 besetzt Du eine Variable mit der Objekt-ID des DP.
            In Zeile 3 triggerst Du auf Änderung dieses DP.
            Der Inhalt des betroffenen Objektes wird als Parameter obj an die anonyme Methode übergeben. Das ist aber dann das komplette Objekt!
            Mit obj.state.val kommst Du an den eigentlichen Wert.

            "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
            1
            • BananaJoeB BananaJoe

              @neueklasse aus dem Kopf: nur 2x =, dann passt er die Typen an

              if (obj.state.val == "Room cleaning")
              

              on reagiert auf die Datenpunktänderungen und übergibt dieses Objektzustand an die angegebene Funktion - mit dem Variablennamen obj weil das in der Klammer so angegeben wird.

              Mit dem Objekt erhälts du auch, aber nicht nur den Wert. Sondern z.B. alle Eigenschaften oder den Zeitstempel der Änderung.
              obj.state.val enthält den Wert zu dem Zeitpunkt wo on ausgelöst wurde.

              Zum Vergleichsoperator === : Ich nehme eigentlich immer den ==
              Siehe auch https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness?retiredLocale=de

              CodierknechtC Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #10

              @bananajoe sagte in JavaScript Syntax Verstaendnisproblem:

              Zum Vergleichsoperator === : Ich nehme eigentlich immer den ==

              Um es etwas verständlicher auszudrücken:
              == prüft auf Wertgleichheit. === prüft zusätzlich noch auf Typgleichheit.

              Beispiel:
              Ein Vergleich zwischen einem Float 1 und einem Integer 1 liefert bei == ein true zurück. Bei === ein false.

              "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

              paul53P 1 Antwort Letzte Antwort
              1
              • paul53P paul53

                @neueklasse

                    if(obj.state.val === 'Room cleaning') {
                
                N Offline
                N Offline
                NeueKlasse
                schrieb am zuletzt editiert von
                #11

                @paul53

                kann es sein das die if abfrage mit der obj.state.val anders sein muss aufgrund des abgefragten objekts? siehe screenshots,
                er setzt die 6 States so nicht auf false.

                Screenshot 2023-02-06 132317.jpg
                Screenshot 2023-02-06 132248.jpg

                var idRobotState = 'mihome-vacuum.0.info.state';
                
                on({id: idRobotState, change: "ne"}, async function (obj) {
                
                    if(obj.state.val == 'Room cleaning') {
                        setState('mihome-vacuum.0.rooms.315001052296.roomClean', false);
                        setState('mihome-vacuum.0.rooms.315001052297.roomClean', false);
                        setState('mihome-vacuum.0.rooms.315001052299.roomClean', false);
                        setState('mihome-vacuum.0.rooms.315001052301.roomClean', false);
                        setState('mihome-vacuum.0.rooms.315001052302.roomClean', false);
                        setState('mihome-vacuum.0.rooms.315001052303.roomClean', false);
                        setState('mihome-vacuum.0.rooms.315001052305.roomClean', false);
                    }
                
                });
                
                CodierknechtC 1 Antwort Letzte Antwort
                0
                • N NeueKlasse

                  @paul53

                  kann es sein das die if abfrage mit der obj.state.val anders sein muss aufgrund des abgefragten objekts? siehe screenshots,
                  er setzt die 6 States so nicht auf false.

                  Screenshot 2023-02-06 132317.jpg
                  Screenshot 2023-02-06 132248.jpg

                  var idRobotState = 'mihome-vacuum.0.info.state';
                  
                  on({id: idRobotState, change: "ne"}, async function (obj) {
                  
                      if(obj.state.val == 'Room cleaning') {
                          setState('mihome-vacuum.0.rooms.315001052296.roomClean', false);
                          setState('mihome-vacuum.0.rooms.315001052297.roomClean', false);
                          setState('mihome-vacuum.0.rooms.315001052299.roomClean', false);
                          setState('mihome-vacuum.0.rooms.315001052301.roomClean', false);
                          setState('mihome-vacuum.0.rooms.315001052302.roomClean', false);
                          setState('mihome-vacuum.0.rooms.315001052303.roomClean', false);
                          setState('mihome-vacuum.0.rooms.315001052305.roomClean', false);
                      }
                  
                  });
                  
                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von Codierknecht
                  #12

                  @neueklasse
                  Du prüfst auf strings.
                  Die Werte sind aber number.
                  Korrekt wäre hier:

                  if(obj.state.val == 18) {
                  

                  Das wird lediglich zur besseren Lesbarkeit in Klartext übersetzt.

                  "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

                    @bananajoe sagte in JavaScript Syntax Verstaendnisproblem:

                    Zum Vergleichsoperator === : Ich nehme eigentlich immer den ==

                    Um es etwas verständlicher auszudrücken:
                    == prüft auf Wertgleichheit. === prüft zusätzlich noch auf Typgleichheit.

                    Beispiel:
                    Ein Vergleich zwischen einem Float 1 und einem Integer 1 liefert bei == ein true zurück. Bei === ein false.

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #13

                    @codierknecht sagte: Ein Vergleich zwischen einem Float 1 und einem Integer 1

                    Javascript kennt keine Integer.

                    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
                    • CodierknechtC Codierknecht

                      @neueklasse
                      Du prüfst auf strings.
                      Die Werte sind aber number.
                      Korrekt wäre hier:

                      if(obj.state.val == 18) {
                      

                      Das wird lediglich zur besseren Lesbarkeit in Klartext übersetzt.

                      N Offline
                      N Offline
                      NeueKlasse
                      schrieb am zuletzt editiert von NeueKlasse
                      #14

                      @codierknecht habe es gerade versucht, erst wenn die Funktion "on change" ausgeklammert ist funktionert es..
                      oder gibt es eine bessere Methode? z.B einen alle 60sec loop?

                      BananaJoeB 1 Antwort Letzte Antwort
                      0
                      • N NeueKlasse

                        @codierknecht habe es gerade versucht, erst wenn die Funktion "on change" ausgeklammert ist funktionert es..
                        oder gibt es eine bessere Methode? z.B einen alle 60sec loop?

                        BananaJoeB Offline
                        BananaJoeB Offline
                        BananaJoe
                        Most Active
                        schrieb am zuletzt editiert von BananaJoe
                        #15

                        @neueklasse das ganze reagiert natürlich nur wenn sich etwas ändert. Vorher passiert nichts. Also der Wert des Datenpunktes muss sich verändern (du hast change angegeben). Der Wert muss erst z.B. 17 werden um dann wieder 18 zu werden

                        Schreib mal folgendes in die Zeile vor dem if

                        console.warn("obj.state.val: " + obj.state.val);
                        

                        Das gibt er dir dann eine Warnmeldung mit dem aktuellen Wert im Log aus, siehst du unten dann in Orange (oder im Log)

                        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                        N 1 Antwort Letzte Antwort
                        1
                        • paul53P paul53

                          @codierknecht sagte: Ein Vergleich zwischen einem Float 1 und einem Integer 1

                          Javascript kennt keine Integer.

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von Codierknecht
                          #16

                          @paul53 sagte in JavaScript Syntax Verstaendnisproblem:

                          Javascript kennt keine Integer.

                          Eines meiner Probleme mit untypisierten Sprachen :grin:
                          Ich könnte auch schreiben "doofe Sprache" ... aber dann gibt's wieder Haue. :innocent:

                          "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

                          BananaJoeB 1 Antwort Letzte Antwort
                          0
                          • BananaJoeB BananaJoe

                            @neueklasse das ganze reagiert natürlich nur wenn sich etwas ändert. Vorher passiert nichts. Also der Wert des Datenpunktes muss sich verändern (du hast change angegeben). Der Wert muss erst z.B. 17 werden um dann wieder 18 zu werden

                            Schreib mal folgendes in die Zeile vor dem if

                            console.warn("obj.state.val: " + obj.state.val);
                            

                            Das gibt er dir dann eine Warnmeldung mit dem aktuellen Wert im Log aus, siehst du unten dann in Orange (oder im Log)

                            N Offline
                            N Offline
                            NeueKlasse
                            schrieb am zuletzt editiert von
                            #17

                            @bananajoe ok, alles klar, gerade getestet, jetzt funktioniert alles wie es soll!

                            gibt es die möglichkeit 2 States abzufragen?

                            on({id: idRobotState || idResetButton, change: "ne"}, async function (obj) {
                            
                            if(obj.state.val == 18) || (obj.state.val == 1) {
                            
                            paul53P 1 Antwort Letzte Antwort
                            0
                            • CodierknechtC Codierknecht

                              @paul53 sagte in JavaScript Syntax Verstaendnisproblem:

                              Javascript kennt keine Integer.

                              Eines meiner Probleme mit untypisierten Sprachen :grin:
                              Ich könnte auch schreiben "doofe Sprache" ... aber dann gibt's wieder Haue. :innocent:

                              BananaJoeB Offline
                              BananaJoeB Offline
                              BananaJoe
                              Most Active
                              schrieb am zuletzt editiert von
                              #18

                              @codierknecht sagte in JavaScript Syntax Verstaendnisproblem:

                              @paul53 sagte in JavaScript Syntax Verstaendnisproblem:

                              Javascript kennt keine Integer.

                              Eines meiner Probleme mit untypisierten Sprachen :grin:
                              Ich könnte auch schreiben "doofe Sprache" ... aber dann gibt's wieder Haue. :innocent:

                              gib TypeScript eine Chance?

                              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                              1 Antwort Letzte Antwort
                              0
                              • N NeueKlasse

                                @bananajoe ok, alles klar, gerade getestet, jetzt funktioniert alles wie es soll!

                                gibt es die möglichkeit 2 States abzufragen?

                                on({id: idRobotState || idResetButton, change: "ne"}, async function (obj) {
                                
                                if(obj.state.val == 18) || (obj.state.val == 1) {
                                
                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von paul53
                                #19

                                @neueklasse sagte: gibt es die möglichkeit 2 States abzufragen?

                                Ja, dann aber nicht mit obj.state.val.

                                on({id: [idRobotState, idResetButton], change: "ne"}, async function (obj) {
                                   if(getState(idRobotState).val == 18 || getState(idResetButton).val == 1) {
                                

                                oder

                                on({id: [idRobotState, idResetButton], change: "ne"}, async function (obj) {
                                   if(obj.id == idRobotState && obj.state.val == 18 || obj.id == idResetButton && obj.state.val == 1) {
                                

                                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
                                1
                                • paul53P paul53

                                  @neueklasse sagte: gibt es die möglichkeit 2 States abzufragen?

                                  Ja, dann aber nicht mit obj.state.val.

                                  on({id: [idRobotState, idResetButton], change: "ne"}, async function (obj) {
                                     if(getState(idRobotState).val == 18 || getState(idResetButton).val == 1) {
                                  

                                  oder

                                  on({id: [idRobotState, idResetButton], change: "ne"}, async function (obj) {
                                     if(obj.id == idRobotState && obj.state.val == 18 || obj.id == idResetButton && obj.state.val == 1) {
                                  
                                  N Offline
                                  N Offline
                                  NeueKlasse
                                  schrieb am zuletzt editiert von NeueKlasse
                                  #20

                                  @paul53

                                  dann wird hierbei (beim ersten) das (obj) nichtmehr benoetigt? zumindestens wird es laut script nicht mehr abgefragt
                                  (grau)

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • N NeueKlasse

                                    @paul53

                                    dann wird hierbei (beim ersten) das (obj) nichtmehr benoetigt? zumindestens wird es laut script nicht mehr abgefragt
                                    (grau)

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von paul53
                                    #21

                                    @neueklasse sagte: dann wird hierbei das (obj) nichtmehr benoetigt?

                                    Wenn man getState() verwendet, wird obj nicht benötigt.
                                    Im nachträglichen 2. Beispiel wird obj benötigt. Das 2. Beispiel ist übrigens effizienter - auch wenn es nicht so aussieht.

                                    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: dann wird hierbei das (obj) nichtmehr benoetigt?

                                      Wenn man getState() verwendet, wird obj nicht benötigt.
                                      Im nachträglichen 2. Beispiel wird obj benötigt. Das 2. Beispiel ist übrigens effizienter - auch wenn es nicht so aussieht.

                                      N Offline
                                      N Offline
                                      NeueKlasse
                                      schrieb am zuletzt editiert von NeueKlasse
                                      #22

                                      @paul53 das heisst man koennte das "on change" vereinfachen? das einfache weglassen von async function (obj) endet bei mir im Fehler. (beim ersten Beispiel)

                                      paul53P CodierknechtC 2 Antworten Letzte Antwort
                                      0
                                      • N NeueKlasse

                                        @paul53 das heisst man koennte das "on change" vereinfachen? das einfache weglassen von async function (obj) endet bei mir im Fehler. (beim ersten Beispiel)

                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        schrieb am zuletzt editiert von paul53
                                        #23

                                        @neueklasse sagte: vereinfachen?

                                        Ja, dann aber so:

                                        on([idRobotState, idResetButton], function () { // triggert bei Wertänderung eines DP
                                           if(getState(idRobotState).val == 18 || getState(idResetButton).val == 1) {
                                        

                                        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
                                        • N NeueKlasse

                                          @paul53 das heisst man koennte das "on change" vereinfachen? das einfache weglassen von async function (obj) endet bei mir im Fehler. (beim ersten Beispiel)

                                          CodierknechtC Online
                                          CodierknechtC Online
                                          Codierknecht
                                          Developer Most Active
                                          schrieb am zuletzt editiert von
                                          #24

                                          @neueklasse sagte in JavaScript Syntax Verstaendnisproblem:

                                          das einfache weglassen von async function (obj) endet bei mir im Fehler.

                                          Das kannst Du selbstverständlich nicht einfach weglassen.
                                          Wenn überhaupt, dann kannst Du lediglich das obj als Parameter der anonymen Methode weglassen.
                                          Ich würde es aber nicht entfernen wollen - man kann ich auch "kaputt optimieren".
                                          Das wird ja (zumindest nach meinem Verständnis) lediglich die Adresse eines Objektes übergeben. Die wegzulassen bringt jetzt nicht wirklich Vorteile.

                                          "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
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          722

                                          Online

                                          32.6k

                                          Benutzer

                                          81.9k

                                          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