Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] if Abfrage will nicht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] if Abfrage will nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @CyberMicha last edited by

      @CyberMicha sagte:

      Verstehen tue ich es aber dennoch nicht, wieso es nicht funktioniert.

      Ich kann auch keinen Fehler entdecken. Vielleicht irgendwo ein unsichtbares Zeichen ? Aber dann würde wahrscheinlich der Compiler meckern.

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @CyberMicha last edited by

        @CyberMicha sagte:

        im false Fall noch eine Prüfung auf die szene ein.

        Du meinst die kommentierte Abfrage ?

            } else if (!getState('scene.0.Feierabend'/*Feierabend*/).val) { 
        

        Da fehlt im Original übrigens .val.

        1 Reply Last reply Reply Quote 0
        • C
          CyberMicha last edited by CyberMicha

          @paul53 sagte in if Abfrage will nicht:

          ber zu umständlich programmiert. Weshalb triggerst Du auf jede Aktualisierung ? Das sollte man nur in Ausnahmefällen (Taster) tun. Vorschlag:

          Jetzt verstehe ich gar nichts mehr. Dein Code liefert nun auch immer zu Hause. Egal was ich schicke.

          17:16:29.347	info	javascript.0 (1055501) script.js.Testing.Anwesenheit: State true
          17:16:29.347	info	javascript.0 (1055501) script.js.Testing.Anwesenheit: Zu Hause
          17:16:46.040	info	javascript.0 (1055501) script.js.Testing.Anwesenheit: State false
          17:16:46.041	info	javascript.0 (1055501) script.js.Testing.Anwesenheit: Zu Hause
          
          on('iot.0.services.custom_atHome'/*Service for atHome*/, function(dp) {
              log("State " + dp.state.val);
              if (dp.state.val) {
                  log("Zu Hause");
                  //setState('scene.0.szenenname', true); // Szene starten
              } else {
                  log("Unterwegs");
                  //setState('scene.0.szenenname', true); // Szene starten
              }
          });
          
          UncleSam paul53 2 Replies Last reply Reply Quote 0
          • UncleSam
            UncleSam Developer @CyberMicha last edited by UncleSam

            @CyberMicha kannst du mal log(JSON.stringify(obj.state.val)) ausgeben? Dann sehen wir, was der Datenpunkt tatsächlich für einen Typ hat.

            Der Grund: wenn dort ein "false" als String drin steht, dann wird das als wahr angenommen; nur wenn wirklich ein Boolean drin steht, funktioniert es.

            C 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @CyberMicha last edited by paul53

              @CyberMicha sagte:

              Dein Code liefert nun auch immer zu Hause. Egal was ich schicke.

              Auch wenn das Log liefert: State false ?
              Erweitere mal das Log:

                  log("State " + dp.state.val + ', Typ: ' + typeof dp.state.val);
              
              C 1 Reply Last reply Reply Quote 0
              • C
                CyberMicha @UncleSam last edited by

                @UncleSam sagte in if Abfrage will nicht:

                false

                   log("JSON: " + JSON.stringify(dp.state.val))
                
                17:20:03.384	info	javascript.0 (1055501) script.js.Testing.Anwesenheit: JSON: "false"
                17:20:03.385	info	javascript.0 (1055501) script.js.Testing.Anwesenheit: State false
                17:20:03.386	info	javascript.0 (1055501) script.js.Testing.Anwesenheit: Zu Hause
                
                paul53 1 Reply Last reply Reply Quote 0
                • C
                  CyberMicha @paul53 last edited by

                  @paul53
                  17:21:30.448 info javascript.0 (1055501) script.js.Testing.Anwesenheit: State true, Typ: string
                  17:21:30.449 info javascript.0 (1055501) script.js.Testing.Anwesenheit: Zu Hause

                  Da ist wohl das Problem. Nur wie bekomme ich iobroker dazu, es als echten bool zu nehmen.

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @CyberMicha last edited by

                    @CyberMicha
                    Das ist ein String - kein Boolean.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @CyberMicha last edited by

                      @CyberMicha sagte in if Abfrage will nicht:

                      Nur wie bekomme ich iobroker dazu, es als echten bool zu nehmen.

                      on('iot.0.services.custom_atHome'/*Service for atHome*/, function(dp) {
                          let val = toBoolean(dp.state.val);
                          log("State " + val);
                          if (val) {
                              log("Zu Hause");
                              //setState('scene.0.szenenname', true); // Szene starten
                          } else {
                              log("Unterwegs");
                              //setState('scene.0.szenenname', true); // Szene starten
                          }
                      });
                      
                      C 1 Reply Last reply Reply Quote 0
                      • C
                        CyberMicha @paul53 last edited by

                        @paul53
                        Geht, danke! Man man man, hätte gedacht iobroker ist da pfiffiger 🙂 bzw fehlt bei iot dann eine Möglichkeit bei custom services einen typen mitzugeben.

                        Danke alle für die Zeit und die Nerven 🙂

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        387
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        4
                        18
                        438
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo