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
  5. Problem mit getState()

NEWS

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Problem mit getState()

Geplant Angeheftet Gesperrt Verschoben JavaScript
15 Beiträge 4 Kommentatoren 1.1k Aufrufe 5 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.
  • F fastfoot

    @psims Das liegt an der asynchronen Befehlsverarbeitung in Javascript, das getState() wird bereits ausgeführt obwohl setState() noch nicht fertig ist. Entweder callbacks verwenden oder die Async Versionen von set- und getState() verwenden. Ich bin nicht sicher ob es diese schon im Latest(4.8.4) gibt, dann blieben nur die callbacks

    P Offline
    P Offline
    PSims
    schrieb am zuletzt editiert von
    #3

    @fastfoot Danke für die schnelle Rückmeldung. Ich habe gerade festgestellt, dass ich schon die aktuellste latest-Version von Javascript installiert habe. Hier sind auf jeden Fall die Async-Versionen wie async, await und co. verfügbar. Ich habe auch schon ein bisschen herumprobiert, doch komme ich nicht zum gewünschten Ergebnis. Wie müsste ich denn mein o.g. Skript umschreiben, damit es wie gewünscht funktioniert? Es wäre wirklich super wenn du/ ihr mir helfen könntet, da ich leider noch nicht so erfahren in Javascript-Programmierung bin.

    F 1 Antwort Letzte Antwort
    0
    • P PSims

      @fastfoot Danke für die schnelle Rückmeldung. Ich habe gerade festgestellt, dass ich schon die aktuellste latest-Version von Javascript installiert habe. Hier sind auf jeden Fall die Async-Versionen wie async, await und co. verfügbar. Ich habe auch schon ein bisschen herumprobiert, doch komme ich nicht zum gewünschten Ergebnis. Wie müsste ich denn mein o.g. Skript umschreiben, damit es wie gewünscht funktioniert? Es wäre wirklich super wenn du/ ihr mir helfen könntet, da ich leider noch nicht so erfahren in Javascript-Programmierung bin.

      F Offline
      F Offline
      fastfoot
      schrieb am zuletzt editiert von
      #4

      @psims Probiere mal so, Änderungen in den Zeilen 3, 13 und 16

      var Text_Hilf;
       
      on({id: "telegram.0.communicate.request"}, async function (){
          var command = getState("telegram.0.communicate.request").val;
          var user = command.substring(1, command.indexOf("]"));
          var AusgabeAenderung;
       
          command = command.substring(command.indexOf("]") + 1, command.length);
          
          if ((command == 'Schutz aktivieren') || (command =='Schutz deaktivieren')) {
              
              if (command == 'Schutz aktivieren'){
                  await setStateAsync('0_userdata.0.Alarmanlage.Alarm_Zustand', true);
                  AusgabeAenderung = 'ALARMANLAGE <b>AKTIVIERT</b>\n\n';
              } else {
                  await setStateAsync('0_userdata.0.Alarmanlage.Alarm_Zustand', false);
                  AusgabeAenderung = 'ALARMANLAGE <b>DEAKTIVIERT</b>\n\n';
              }
       
              sendTo('telegram', {
                  user: user,
                  text:   AusgabeAenderung +
                          '<b>Aktuelle Statusübersicht</b>\n' +
                          '------------------------------------------\n' +
                          'Alarmstatus: ' + TextAlarm(getState("0_userdata.0.Alarmanlage.Alarm_Zustand").val) + '\n' +
                          'Auslösung: ' + TextAlarm(getState("0_userdata.0.Alarmanlage.Alarm_Aktiv").val) + '\n' +
                          '------------------------------------------',
                  parse_mode: 'HTML',
          });
          };   
      });
       
      function TextAlarm(zustandAlarm){
          Text_Hilf = 'nicht aktiv';
          if (zustandAlarm==true){
              Text_Hilf = 'aktiv';
          }
          return Text_Hilf
      }
      
      

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      1 Antwort Letzte Antwort
      0
      • AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #5

        Der korrekte Weg wären lokale Variablen für den Schutzzustand, die dann nur in den State gespeichert werden. Das getState kann man sich dann sparen und direkt die Variable verwenden.

        setState gefolgt von getState missbraucht eine Datenbank als Variable. Das sorgt erstens für mehr Systemlast, und zweitens zu Verzögerung durch den Umweg über die Datenbank.

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        F 1 Antwort Letzte Antwort
        0
        • AlCalzoneA AlCalzone

          Der korrekte Weg wären lokale Variablen für den Schutzzustand, die dann nur in den State gespeichert werden. Das getState kann man sich dann sparen und direkt die Variable verwenden.

          setState gefolgt von getState missbraucht eine Datenbank als Variable. Das sorgt erstens für mehr Systemlast, und zweitens zu Verzögerung durch den Umweg über die Datenbank.

          F Offline
          F Offline
          fastfoot
          schrieb am zuletzt editiert von
          #6

          @alcalzone sagte in Problem mit getState():

          Der korrekte Weg wären lokale Variablen für den Schutzzustand, die dann nur in den State gespeichert werden. Das getState kann man sich dann sparen und direkt die Variable verwenden.

          setState gefolgt von getState missbraucht eine Datenbank als Variable. Das sorgt erstens für mehr Systemlast, und zweitens zu Verzögerung durch den Umweg über die Datenbank.

          Eigentlich wollte ich das auch vorschlagen, dann kam mir aber der Gedanke, dass man mit der Variablen eigentlich nur den Zustand beschreibt, der nach dem setState() herrschen sollte, genau weiss man es nur nach getState(). Diesen 'Konflikt' konnte ich gerade nicht auflösen, also hatte ich es so belassen in meiner Lösung :-)

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          T AlCalzoneA 2 Antworten Letzte Antwort
          0
          • F fastfoot

            @alcalzone sagte in Problem mit getState():

            Der korrekte Weg wären lokale Variablen für den Schutzzustand, die dann nur in den State gespeichert werden. Das getState kann man sich dann sparen und direkt die Variable verwenden.

            setState gefolgt von getState missbraucht eine Datenbank als Variable. Das sorgt erstens für mehr Systemlast, und zweitens zu Verzögerung durch den Umweg über die Datenbank.

            Eigentlich wollte ich das auch vorschlagen, dann kam mir aber der Gedanke, dass man mit der Variablen eigentlich nur den Zustand beschreibt, der nach dem setState() herrschen sollte, genau weiss man es nur nach getState(). Diesen 'Konflikt' konnte ich gerade nicht auflösen, also hatte ich es so belassen in meiner Lösung :-)

            T Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von
            #7

            Hab zwar noch nicht mit setStateAsync() rumgespielt, wenn die Nachricht jedoch den tatsächlichen Zustand widerspiegeln soll muß man auf Änderungen der beiden States reagieren.

            Wenn innerhalb von setStateAsync() ein setState() aufgerufen wird, dass den wert auf "false" setzt, wird man es auf diesem Weg wohl nicht mitbekommen.

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            1 Antwort Letzte Antwort
            0
            • F fastfoot

              @alcalzone sagte in Problem mit getState():

              Der korrekte Weg wären lokale Variablen für den Schutzzustand, die dann nur in den State gespeichert werden. Das getState kann man sich dann sparen und direkt die Variable verwenden.

              setState gefolgt von getState missbraucht eine Datenbank als Variable. Das sorgt erstens für mehr Systemlast, und zweitens zu Verzögerung durch den Umweg über die Datenbank.

              Eigentlich wollte ich das auch vorschlagen, dann kam mir aber der Gedanke, dass man mit der Variablen eigentlich nur den Zustand beschreibt, der nach dem setState() herrschen sollte, genau weiss man es nur nach getState(). Diesen 'Konflikt' konnte ich gerade nicht auflösen, also hatte ich es so belassen in meiner Lösung :-)

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von AlCalzone
              #8

              @fastfoot sagte in Problem mit getState():

              dass man mit der Variablen eigentlich nur den Zustand beschreibt, der nach dem setState() herrschen sollte

              Hä? setState (und setStateAsync) schreibt den Wert, den du übergibst in die Datenbank. Wenn direkt danach mit dem Wert was gemacht werden soll, brauchst du ihn doch nicht wieder aus der Datenbank lesen. Du weißt den Wert doch schon.
              Das ist wie als würde ich mir nen Notizzettel schreiben und selbst per Post schicken, um zu schauen was auf dem Notizzettel steht.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              F T 2 Antworten Letzte Antwort
              0
              • AlCalzoneA AlCalzone

                @fastfoot sagte in Problem mit getState():

                dass man mit der Variablen eigentlich nur den Zustand beschreibt, der nach dem setState() herrschen sollte

                Hä? setState (und setStateAsync) schreibt den Wert, den du übergibst in die Datenbank. Wenn direkt danach mit dem Wert was gemacht werden soll, brauchst du ihn doch nicht wieder aus der Datenbank lesen. Du weißt den Wert doch schon.
                Das ist wie als würde ich mir nen Notizzettel schreiben und selbst per Post schicken, um zu schauen was auf dem Notizzettel steht.

                F Offline
                F Offline
                fastfoot
                schrieb am zuletzt editiert von
                #9

                @alcalzone sagte in Problem mit getState():

                Das ist wie als würde ich mir nen Notizzettel schreiben und selbst per Post schicken, um zu schauen was auf dem Notizzettel steht.

                Es ist in der Analogie wohl eher so, als wenn ich einen Anderen bitte, etwas auf den Zettel zu schreiben und dann lese, ob der das auch richtig geschrieben hat :-)

                iobroker läuft unter Docker auf QNAP TS-451+
                SkriptRecovery: https://forum.iobroker.net/post/930558

                AlCalzoneA 1 Antwort Letzte Antwort
                0
                • F fastfoot

                  @alcalzone sagte in Problem mit getState():

                  Das ist wie als würde ich mir nen Notizzettel schreiben und selbst per Post schicken, um zu schauen was auf dem Notizzettel steht.

                  Es ist in der Analogie wohl eher so, als wenn ich einen Anderen bitte, etwas auf den Zettel zu schreiben und dann lese, ob der das auch richtig geschrieben hat :-)

                  AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #10

                  @fastfoot Ne, wenn dann bittest du den anderen, es vorzulesen. Ist aber auch egal, da du sicher davon ausgehen kannst, dass er es richtig macht, wenn das Skript nicht mit Fehler abstürzt.

                  Dennoch bleibe ich dabei: Es spricht nichts dagegen die Daten rausspeichern, um beim nächsten Skript-Start darauf zuzugreifen, oder von wo anders darauf zu reagieren.
                  Eine Datenbank als Variable zu missbrauchen ist Unsinn.

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  • AlCalzoneA AlCalzone

                    @fastfoot sagte in Problem mit getState():

                    dass man mit der Variablen eigentlich nur den Zustand beschreibt, der nach dem setState() herrschen sollte

                    Hä? setState (und setStateAsync) schreibt den Wert, den du übergibst in die Datenbank. Wenn direkt danach mit dem Wert was gemacht werden soll, brauchst du ihn doch nicht wieder aus der Datenbank lesen. Du weißt den Wert doch schon.
                    Das ist wie als würde ich mir nen Notizzettel schreiben und selbst per Post schicken, um zu schauen was auf dem Notizzettel steht.

                    T Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von ticaki
                    #11

                    @alcalzone

                    EDIT: Ups war garnicht an mich gerichtet... sry :)

                    Ich habe dir nicht widersprochen, sondern den Gedanken des Vorpostens weitergeführt.
                    Die Bestätigung das die Alarmanlage tatsächlich scharf geschaltet wurde ist durch ein "setStateAsync()" nicht zu verwirklichen. Dazu muß man auf Änderungen von '0_userdata.0.Alarmanlage.Alarm_Zustand' mit einem Delay reagieren um nicht doppelte Meldungen zu erhalten.

                    Das ist für den Fall nötig dass das Alarmsystem im Fehlerfall die Variable wieder auf false setzt. Ansonsten ist nach setzten des States dessen auslesen überflüssig.

                    @fastfoot
                    Das die Datenbank es richtig macht muß man einfach annehmen* und alle anderen "Fehler" findest du auf diese Art nicht. :)
                    *Wenn nicht wird viel viel mehr nicht funktionieren als nur das Skript g

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    AlCalzoneA 1 Antwort Letzte Antwort
                    0
                    • T ticaki

                      @alcalzone

                      EDIT: Ups war garnicht an mich gerichtet... sry :)

                      Ich habe dir nicht widersprochen, sondern den Gedanken des Vorpostens weitergeführt.
                      Die Bestätigung das die Alarmanlage tatsächlich scharf geschaltet wurde ist durch ein "setStateAsync()" nicht zu verwirklichen. Dazu muß man auf Änderungen von '0_userdata.0.Alarmanlage.Alarm_Zustand' mit einem Delay reagieren um nicht doppelte Meldungen zu erhalten.

                      Das ist für den Fall nötig dass das Alarmsystem im Fehlerfall die Variable wieder auf false setzt. Ansonsten ist nach setzten des States dessen auslesen überflüssig.

                      @fastfoot
                      Das die Datenbank es richtig macht muß man einfach annehmen* und alle anderen "Fehler" findest du auf diese Art nicht. :)
                      *Wenn nicht wird viel viel mehr nicht funktionieren als nur das Skript g

                      AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von AlCalzone
                      #12

                      @ticaki Okay, für den Fall dass irgendwas als Reaktion auf das setStateAsync von außen den State wieder zurück setzt, kann es tatsächlich Sinn machen. Alarm_Aktiv auszulesen, kannst du in dem Beispiel nicht vermeiden, Alarm_Zustand hingegen schon.

                      Aber es ist dennoch nicht garantiert, dass bis zum Auslesen für die Nachricht die Reaktion schon erfolgt ist. Da Skripte parallel laufen, ist folgendes denkbar

                      • Skript A setzt State 1 auf true
                      • Skript B reagiert auf State 1 (macht was, kann ein paar ms dauern)
                      • Skript A liest State 1 wieder aus (true)
                      • Skript B ist fertig mit Reaktion und setzt State 1 auf false (zu spät)
                      • Skript A liest State 2 aus (true)
                      • Skript B setzt State 2 auf false (zu spät)
                      • Skript A versendet Meldung mit true, true, obwohl beide States false sind

                      In dem Fall wäre es vielleicht sinnvoller, Skript B reagieren zu lassen und die Meldung selbst zu senden (mit garantiert richtigen und aktuellen Daten)

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      T 1 Antwort Letzte Antwort
                      0
                      • AlCalzoneA AlCalzone

                        @ticaki Okay, für den Fall dass irgendwas als Reaktion auf das setStateAsync von außen den State wieder zurück setzt, kann es tatsächlich Sinn machen. Alarm_Aktiv auszulesen, kannst du in dem Beispiel nicht vermeiden, Alarm_Zustand hingegen schon.

                        Aber es ist dennoch nicht garantiert, dass bis zum Auslesen für die Nachricht die Reaktion schon erfolgt ist. Da Skripte parallel laufen, ist folgendes denkbar

                        • Skript A setzt State 1 auf true
                        • Skript B reagiert auf State 1 (macht was, kann ein paar ms dauern)
                        • Skript A liest State 1 wieder aus (true)
                        • Skript B ist fertig mit Reaktion und setzt State 1 auf false (zu spät)
                        • Skript A liest State 2 aus (true)
                        • Skript B setzt State 2 auf false (zu spät)
                        • Skript A versendet Meldung mit true, true, obwohl beide States false sind

                        In dem Fall wäre es vielleicht sinnvoller, Skript B reagieren zu lassen und die Meldung selbst zu senden (mit garantiert richtigen und aktuellen Daten)

                        T Nicht stören
                        T Nicht stören
                        ticaki
                        schrieb am zuletzt editiert von
                        #13

                        @alcalzone
                        Deshalb habe ich geschrieben auf Änderungen zu reagieren, also .on() zu verwenden. Ich widerspreche dir noch immer nicht, sondern bin deiner Meinung. :)

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        P 1 Antwort Letzte Antwort
                        0
                        • T ticaki

                          @alcalzone
                          Deshalb habe ich geschrieben auf Änderungen zu reagieren, also .on() zu verwenden. Ich widerspreche dir noch immer nicht, sondern bin deiner Meinung. :)

                          P Offline
                          P Offline
                          PSims
                          schrieb am zuletzt editiert von
                          #14

                          Hallo an euch und vielen Dank für die vielen Informationen.

                          @fastfoot
                          Deine vorgeschlagene Variante mit den verschiedenen Asynch-Parametern/ -Funktionen hatte ich auch ausprobiert. Jedoch hat sich der Zustand des Datenpunktes gar nicht mehr geändert, wenn ich diesen beschreiben wollte. Deshalb bin ich dann auf die Variante mit den lokalen Variablen umgeswitcht.

                          Somit wird nun am Anfang des Skriptes der aktuelle Zustand der Datenpunkte in eine lokale Variable geschrieben. Die ich dann im Skript weiter verwende. Das einzig "doofe" ist halt, dass ich diese dann im laufenden Skript mit verändern muss, da ich den aktuellen Zustand des Datenpunktes im laufenden Skript ja auch weiter benötige und über getState (aufgrund des Asynch-Problems) nicht nutzen kann.

                          Also hier ein Beispiel:

                          Hier werden die Werte am Anfang des Skriptes aus der Datenbank geholt bzw. in eine lokale Variable geschrieben:

                              // Einlesen der Zustände der Alarmanlage
                              STATE_ALARM_ZUSTAND = getState('0_userdata.0.Alarmanlage.Alarm_Zustand').val;
                              STATE_ALARM_AKTIV = getState('0_userdata.0.Alarmanlage.Alarm_Aktiv').val;
                          

                          Wenn jetzt innerhalb des Skriptes der Zustand des Datenpunktes geändert wird, ändere ich im Anschluss auch die lokale Variable, da ich diese ja im Nachhinein auch weiter nutze bzw. abfrage:

                              // Setze Alarmzustand aktiv
                              setState('0_userdata.0.Alarmanlage.Alarm_Zustand', true);
                              STATE_ALARM_ZUSTAND = true;
                          

                          Und hier wird die Variable dann nochmals genutzt bzw. abgefragt, bevor sie dann per Telegram verschickt wird:

                              sendTo('telegram', {
                                  text:      '<b>Aktuelle Statusübersicht</b>\n' +
                                              '------------------------------------------\n' +
                                              'Alarmstatus: ' + TextAlarm(STATE_ALARM_ZUSTAND) + '\n' +
                                              'Auslösung: ' + TextAlarm(STATE_ALARM_AKTIV) + '\n' +
                                              '------------------------------------------',
                                  parse_mode: 'HTML',
                              })
                          
                          function TextAlarm(zustandAlarm){
                              Text_Hilf = 'nicht aktiv';
                              if (zustandAlarm==true){
                                  Text_Hilf = 'aktiv';
                              }
                              return Text_Hilf
                          }
                          

                          Aus eurer Sicht wäre das nun die optimale und gleichzeitig auch ressourcenschonende Variante?

                          T 1 Antwort Letzte Antwort
                          1
                          • P PSims

                            Hallo an euch und vielen Dank für die vielen Informationen.

                            @fastfoot
                            Deine vorgeschlagene Variante mit den verschiedenen Asynch-Parametern/ -Funktionen hatte ich auch ausprobiert. Jedoch hat sich der Zustand des Datenpunktes gar nicht mehr geändert, wenn ich diesen beschreiben wollte. Deshalb bin ich dann auf die Variante mit den lokalen Variablen umgeswitcht.

                            Somit wird nun am Anfang des Skriptes der aktuelle Zustand der Datenpunkte in eine lokale Variable geschrieben. Die ich dann im Skript weiter verwende. Das einzig "doofe" ist halt, dass ich diese dann im laufenden Skript mit verändern muss, da ich den aktuellen Zustand des Datenpunktes im laufenden Skript ja auch weiter benötige und über getState (aufgrund des Asynch-Problems) nicht nutzen kann.

                            Also hier ein Beispiel:

                            Hier werden die Werte am Anfang des Skriptes aus der Datenbank geholt bzw. in eine lokale Variable geschrieben:

                                // Einlesen der Zustände der Alarmanlage
                                STATE_ALARM_ZUSTAND = getState('0_userdata.0.Alarmanlage.Alarm_Zustand').val;
                                STATE_ALARM_AKTIV = getState('0_userdata.0.Alarmanlage.Alarm_Aktiv').val;
                            

                            Wenn jetzt innerhalb des Skriptes der Zustand des Datenpunktes geändert wird, ändere ich im Anschluss auch die lokale Variable, da ich diese ja im Nachhinein auch weiter nutze bzw. abfrage:

                                // Setze Alarmzustand aktiv
                                setState('0_userdata.0.Alarmanlage.Alarm_Zustand', true);
                                STATE_ALARM_ZUSTAND = true;
                            

                            Und hier wird die Variable dann nochmals genutzt bzw. abgefragt, bevor sie dann per Telegram verschickt wird:

                                sendTo('telegram', {
                                    text:      '<b>Aktuelle Statusübersicht</b>\n' +
                                                '------------------------------------------\n' +
                                                'Alarmstatus: ' + TextAlarm(STATE_ALARM_ZUSTAND) + '\n' +
                                                'Auslösung: ' + TextAlarm(STATE_ALARM_AKTIV) + '\n' +
                                                '------------------------------------------',
                                    parse_mode: 'HTML',
                                })
                            
                            function TextAlarm(zustandAlarm){
                                Text_Hilf = 'nicht aktiv';
                                if (zustandAlarm==true){
                                    Text_Hilf = 'aktiv';
                                }
                                return Text_Hilf
                            }
                            

                            Aus eurer Sicht wäre das nun die optimale und gleichzeitig auch ressourcenschonende Variante?

                            T Nicht stören
                            T Nicht stören
                            ticaki
                            schrieb am zuletzt editiert von
                            #15

                            @psims
                            Ich würde, um Fehler in Zukunft auszuschließen(späteres editieren), folgende Variante bevorzugen:

                            // Setze Alarmzustand aktiv
                                STATE_ALARM_ZUSTAND = true;
                                setState('0_userdata.0.Alarmanlage.Alarm_Zustand', STATE_ALARM_ZUSTAND);
                            

                            Desweiteren würde ich innerhalb des If Blocks nur die Variable verändern und hinter diesem den State setzten.

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            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

                            836

                            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