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 beim Vergleichen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

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

Problem beim Vergleichen

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 437 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.
  • mrFenyxM Offline
    mrFenyxM Offline
    mrFenyx
    schrieb am zuletzt editiert von
    #1

    Hi,
    ich habe das folgende Szenario:

    const TemperatureDp = "daswetter.0.NextHours.Location_1.Day_1.current.temp_value";
    if (TemperatureDp != "") {
        on("TemperatureDp", function (dp) {
            Temperature = dp.state.val;
            log("Current Temperature is " + Temperature);
        });
    }
    

    Ich bekomme aber einen Kompilerfehler:

    Operator '!=' cannot be applied to types '"daswetter.0.NextHours.Location_1.Day_1.current.temp_value"' and '""'.
    const TemperatureDp: "daswetter.0.NextHours.Location_1.Day_1.current.temp_value"
    

    Kann mir bitte jemand helfen? Wieso kommt das? Wie kann ich dieses Vergleich machen?
    Danke!

    paul53P 1 Antwort Letzte Antwort
    0
    • mrFenyxM mrFenyx

      Hi,
      ich habe das folgende Szenario:

      const TemperatureDp = "daswetter.0.NextHours.Location_1.Day_1.current.temp_value";
      if (TemperatureDp != "") {
          on("TemperatureDp", function (dp) {
              Temperature = dp.state.val;
              log("Current Temperature is " + Temperature);
          });
      }
      

      Ich bekomme aber einen Kompilerfehler:

      Operator '!=' cannot be applied to types '"daswetter.0.NextHours.Location_1.Day_1.current.temp_value"' and '""'.
      const TemperatureDp: "daswetter.0.NextHours.Location_1.Day_1.current.temp_value"
      

      Kann mir bitte jemand helfen? Wieso kommt das? Wie kann ich dieses Vergleich machen?
      Danke!

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

      @mrFenyx sagte:

      Ich bekomme aber einen Kompilerfehler:

      Das ist kein Compiler-Fehler, sondern der Javascript-Editor meckert fälschlicherweise. Der Code funktioniert, wenn die Variable Temperature auch deklariert wird.

              let Temperature = dp.state.val;
      

      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

      AlCalzoneA 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @mrFenyx sagte:

        Ich bekomme aber einen Kompilerfehler:

        Das ist kein Compiler-Fehler, sondern der Javascript-Editor meckert fälschlicherweise. Der Code funktioniert, wenn die Variable Temperature auch deklariert wird.

                let Temperature = dp.state.val;
        
        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von AlCalzone
        #3

        @paul53 @mrFenyx
        Das Problem ist Zeile 2. Der Compiler erkennt, dass TemperatureDp niemals "" sein kann, weil es in der Zeile darüber als konstant definiert und mit einem Wert versehen wird. Die if-Abfrage ist daher sinnlos.

        @mrFenyx Wenn wir schon dabei sind: Zeile 3 ist ebenfalls murks - entferne die Anführungszeichen um TemperatureDp, sonst wird auf einen nicht existierenden State "TemperatureDp" getriggert statt auf "daswetter.0.NextHours.Location_1.Day_1.current.temp_value":

        - on("TemperatureDp", function (dp) {
        + on(TemperatureDp, function (dp) {
        

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

        paul53P 1 Antwort Letzte Antwort
        0
        • AlCalzoneA AlCalzone

          @paul53 @mrFenyx
          Das Problem ist Zeile 2. Der Compiler erkennt, dass TemperatureDp niemals "" sein kann, weil es in der Zeile darüber als konstant definiert und mit einem Wert versehen wird. Die if-Abfrage ist daher sinnlos.

          @mrFenyx Wenn wir schon dabei sind: Zeile 3 ist ebenfalls murks - entferne die Anführungszeichen um TemperatureDp, sonst wird auf einen nicht existierenden State "TemperatureDp" getriggert statt auf "daswetter.0.NextHours.Location_1.Day_1.current.temp_value":

          - on("TemperatureDp", function (dp) {
          + on(TemperatureDp, function (dp) {
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @AlCalzone sagte:

          Die if-Abfrage ist daher sinnlos.

          Das kann die Syntax-Prüfung des Editors erkennen ?

          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

          AlCalzoneA 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @AlCalzone sagte:

            Die if-Abfrage ist daher sinnlos.

            Das kann die Syntax-Prüfung des Editors erkennen ?

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

            @paul53 Da steckt TypeScript dahinter und das kann es, ja :)

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

            paul53P 1 Antwort Letzte Antwort
            1
            • AlCalzoneA AlCalzone

              @paul53 Da steckt TypeScript dahinter und das kann es, ja :)

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

              @AlCalzone sagte:

              das kann es

              Danke. Ja, eine Deklaration mit var oder let anstelle von const wird beim Vergleich nicht angemeckert.

              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

              1 Antwort Letzte Antwort
              0
              • mrFenyxM Offline
                mrFenyxM Offline
                mrFenyx
                schrieb am zuletzt editiert von mrFenyx
                #7

                Danke. Die Frage wäre, was wenn ich TemperatureDp als "" (leer) deklariere. Das ganze ist ein Teil eines Skriptes wo dieses Wert auch leer gelassen sein könnte.

                EDIT: habe es als var deklariert und es scheint zu gehen ;)

                paul53P 1 Antwort Letzte Antwort
                0
                • mrFenyxM mrFenyx

                  Danke. Die Frage wäre, was wenn ich TemperatureDp als "" (leer) deklariere. Das ganze ist ein Teil eines Skriptes wo dieses Wert auch leer gelassen sein könnte.

                  EDIT: habe es als var deklariert und es scheint zu gehen ;)

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

                  @mrFenyx sagte:

                  Das ganze ist ein Teil eines Skriptes wo dieses Wert auch leer gelassen sein könnte.

                  Dann kann die ID aber nicht als Konstante deklariert sein.
                  Übrigens stört sich der Compiler nicht an dem sinnlosen Vergleich, sondern führt den Code richtig aus.

                  JS_Temp.JPG

                  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

                  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

                  623

                  Online

                  32.5k

                  Benutzer

                  81.7k

                  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