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. [gelöst] Bug in Javascript?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

[gelöst] Bug in Javascript?

Geplant Angeheftet Gesperrt Verschoben JavaScript
17 Beiträge 4 Kommentatoren 1.0k 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.
  • I iob69

    Hallo, ich hab ein Phänomen, das wie ein Bug aussieht, obwohl ich mir das fast nicht vorstellen, kann, dass so was essenzielles falsch laufen kann. Vielleicht hab ich nur Tomaten auf den Augen :thinking_face:

    Ich hab folgender Script-Teil:

            let state: boolean = getState(DPOccupancy).val;
            if (state == true) {
                // einschalten
                console.log('occupancy for on:' + state);
            } else {
                // ausschalten
                console.log('occupancy for off:' + state);
             }
    

    mit folgender Ausgabe:

    occupancy for off:true
    

    Komisch, nicht?
    Der debugger bestätigt mir, dass er trotz state==true (siehe unten im watch) in den else - Zweig geht!?
    22fb0f75-f669-4028-b827-f1a0620afbd0-grafik.png

    Was mach ich hier falsch???

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von
    #7

    @iob69

    ja string und du bist in die
    truthy / falsy falle getappt

    https://developer.mozilla.org/en-US/docs/Glossary/Truthy
    https://developer.mozilla.org/en-US/docs/Glossary/Falsy

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    I 1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @iob69

      ja string und du bist in die
      truthy / falsy falle getappt

      https://developer.mozilla.org/en-US/docs/Glossary/Truthy
      https://developer.mozilla.org/en-US/docs/Glossary/Falsy

      I Offline
      I Offline
      iob69
      schrieb am zuletzt editiert von
      #8

      @oliverio
      Nein, state kann kein String sein, er wird ja als boolean deklariert

      1 Antwort Letzte Antwort
      0
      • I iob69

        @ticaki
        Das kann nicht sein. Ich hab ja
        let state: boolean = getstate(...
        Das ist typescript. Da könnte nie ein string zugeordnet werden.

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

        @iob69

        Typescript prüft keine Werte zur Laufzeit

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        I 1 Antwort Letzte Antwort
        0
        • T ticaki

          @iob69

          Typescript prüft keine Werte zur Laufzeit

          I Offline
          I Offline
          iob69
          schrieb am zuletzt editiert von
          #10

          @ticaki
          Aber der Datentyp des Datenpunktes ist auch Boolean!

          T 1 Antwort Letzte Antwort
          0
          • I iob69

            @ticaki
            Das kann nicht sein. Ich hab ja
            let state: boolean = getstate(...
            Das ist typescript. Da könnte nie ein string zugeordnet werden.

            haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #11

            @iob69 sagte in Bug in Javascript?:

            Das ist typescript. Da könnte nie ein string zugeordnet werden.

            Das ist nicht so ganz richtig, .val kann alles mögliche auf einem State sein. Der Typ ist als any definiert.

            Screenshot 2025-02-11 at 15.21.27.png

            @iob69 sagte in Bug in Javascript?:

            Aber der Datentyp des Datenpunktes ist auch Boolean!

            Und der aktuelle Wert in dem Datenpunkt auch? Weil man aktuell noch andere Datentypen schreiben kann, als der State vorgibt. Das erzeugt nur eine Warnung im Log.

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            1 Antwort Letzte Antwort
            1
            • I iob69

              @ticaki
              Aber der Datentyp des Datenpunktes ist auch Boolean!

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

              @iob69

              Teste es doch mit einem typeof Ich kann nur sagen was ich sehe

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              I 1 Antwort Letzte Antwort
              1
              • T ticaki

                @iob69

                Teste es doch mit einem typeof Ich kann nur sagen was ich sehe

                I Offline
                I Offline
                iob69
                schrieb am zuletzt editiert von
                #13

                @ticaki
                Ok, stimmt, typeof liefert string!???
                Wieso liefert mir val einen String wenn der Datenpunkt vom typ boolean ist? wozu gibt man denn den typen in einem Datentyp überhaupt an???

                haus-automatisierungH 1 Antwort Letzte Antwort
                0
                • I iob69

                  @ticaki
                  Ok, stimmt, typeof liefert string!???
                  Wieso liefert mir val einen String wenn der Datenpunkt vom typ boolean ist? wozu gibt man denn den typen in einem Datentyp überhaupt an???

                  haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #14

                  @iob69 sagte in Bug in Javascript?:

                  wozu gibt man denn den typen in einem Datentyp überhaupt an???

                  Wie gesagt, man bekommt eine Warnung wenn man einen anderen Datentyp schreibt als angegeben. Wie genau hast den Datenpunkt denn geschrieben?

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  I 1 Antwort Letzte Antwort
                  2
                  • haus-automatisierungH haus-automatisierung

                    @iob69 sagte in Bug in Javascript?:

                    wozu gibt man denn den typen in einem Datentyp überhaupt an???

                    Wie gesagt, man bekommt eine Warnung wenn man einen anderen Datentyp schreibt als angegeben. Wie genau hast den Datenpunkt denn geschrieben?

                    I Offline
                    I Offline
                    iob69
                    schrieb am zuletzt editiert von
                    #15

                    @haus-automatisierung
                    Der wird von einem Sensor geliefert:

                    2b0b9d54-9914-4d15-b63b-511c919ba496-grafik.png

                    Dann ist der wohl ein string, so n sch...
                    Und den mappe ich dann auf einen boolean. Ok, danke ich weiss jetzt etwa wo ich suchen muss, danke an alle!

                    haus-automatisierungH 1 Antwort Letzte Antwort
                    0
                    • I iob69

                      @haus-automatisierung
                      Der wird von einem Sensor geliefert:

                      2b0b9d54-9914-4d15-b63b-511c919ba496-grafik.png

                      Dann ist der wohl ein string, so n sch...
                      Und den mappe ich dann auf einen boolean. Ok, danke ich weiss jetzt etwa wo ich suchen muss, danke an alle!

                      haus-automatisierungH Online
                      haus-automatisierungH Online
                      haus-automatisierung
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #16

                      @iob69 sagte in Bug in Javascript?:

                      Der wird von einem Sensor geliefert:

                      Dann bitte einen Issue im Adapter öffnen, welcher den State falsch setzt. Falls Du eh mit einem Alias arbeitest, dann kannst ja einfach die Lesefunktion nutzen, um daraus ein Boolean zu machen:

                      val === 'true'

                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                      📚 Meine inoffizielle ioBroker Dokumentation

                      I 1 Antwort Letzte Antwort
                      0
                      • haus-automatisierungH haus-automatisierung

                        @iob69 sagte in Bug in Javascript?:

                        Der wird von einem Sensor geliefert:

                        Dann bitte einen Issue im Adapter öffnen, welcher den State falsch setzt. Falls Du eh mit einem Alias arbeitest, dann kannst ja einfach die Lesefunktion nutzen, um daraus ein Boolean zu machen:

                        val === 'true'

                        I Offline
                        I Offline
                        iob69
                        schrieb am zuletzt editiert von
                        #17

                        @haus-automatisierung
                        Nein, der Adapter kann nichts dafür, der DP ist string. Ich hab den mal gelöscht und beim wiedererstellen hab ich das offenbar nicht wieder auf bool geändert.

                        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

                        863

                        Online

                        32.5k

                        Benutzer

                        81.6k

                        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