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. Abfrage ob eine Variable leer ist

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

Abfrage ob eine Variable leer ist

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 2 Kommentatoren 3.4k Aufrufe
  • Ä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 Offline
    F Offline
    Fitti
    schrieb am zuletzt editiert von
    #1

    Hi zusammen,

    ich kann ja in JS mittels if (!variable){ … abfangen, ob eine Skript-Variable gesetzt ist.

    Nur wie kann ich eine ioBroker Javaskript Variable abfangen/fragen, ob diese keinen Wert hat?

    Ein

    ****if (!"javascript.0.meineVariable"){

    log("Nix found " );

    }****

    fragt ja nur ab, ob es diese gibt - aber nicht ob diese einen Wert hat.

    Ein

    if (getState("javascript.0.meineVariable").val) != "undefined" ){…. oder

    if (!getState("javascript.0.meineVariable").val) ){… oder

    if (typeof(getState("tankerkoenig.0.stations." + i + ".name").val) != "undefined" ){…

    lassen immer alle das Skript abbrechen, mit dem Hinweis

    TypeError: Cannot read property 'val' of null

    Ich will genau diesen Zustand in meinen Skripten abfangen, damit diese nicht immer wegknallen, wenn eine Variable nicht gesetzt ist, die ich aber auslesen möchte.

    Mit try, catch bekomme ich es hin - gibt es aber eine schönere Methode?

    Danke wie immer im Voraus,

    Fitti

    "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
    Plural von Status ist auch Status!

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Ab JS-Adapter-Version 2.3.1 wird es mit

      if (getState("javascript.0.meineVariable").val === null))
      

      funktionieren. Jetzt sollte es so funktionieren:

      if (!getState("javascript.0.meineVariable"))
      

      denn bei nicht vorhandenem State wird null geliefert.

      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
      • F Offline
        F Offline
        Fitti
        schrieb am zuletzt editiert von
        #3

        @paul53:

        Ab JS-Adapter-Version 2.3.1 wird es mit

        if (getState("javascript.0.meineVariable").val === null))
        

        funktionieren. ` Klingt gut!
        @paul53:

        Jetzt sollte es so funktionieren:

        if (!getState("javascript.0.meineVariable"))
        

        denn bei nicht vorhandenem State wird null geliefert. `
        Leider nicht. Das Skript bricht dann ab.

        TypeError: Cannot read property 'val' of null

        Wenn es bald kommt, dann warte ich. Habe es ja mit try abgefangen. Sind nur unnötige Zeilen und liest sich schwerer.

        "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
        Plural von Status ist auch Status!

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Fitti:

          TypeError: Cannot read property 'val' of null `
          Auf ".val" wird doch gar nicht zugegriffen :!:

          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
          • F Offline
            F Offline
            Fitti
            schrieb am zuletzt editiert von
            #5

            @paul53:

            Auf ".val" wird doch gar nicht zugegriffen :!: `

            Nicht das ich hier zu umständlich denke… , aber..

            Ich möchte wissen, ob eine existierende Variable im javascript.0 Bereich/Scope oder wie man das nennen möchte, einen Wert hat oder ob diese leer ist.

            Nach meinen Tests ist es so, wenn ich .val nicht anfüge, dann teste ich auf das Vorhandensein der Variablen. Weiß aber immer noch nicht, ob der Wert undefiniert ist.

            <u>Hintergrund:</u>

            In einem JS legen wir mit CreateState eine Var an, diese hat aber dann gerne mal keinen Wert.

            Dann kommt eine erste Routine per on. oder schedule z. B., die erst mal diese Variable auslesen möchte. Das ist bei sehr vielen Skripten hier im Forum so. Das ist natürlich nicht sauber, kann aber jederzeit ja mal vorkommen. Dann knallt das Skript weg, da .val ein undefined zurückgibt.

            Dieses gilt es abzufangen. Ich will also genau dieses undefined umgehen oder abfangen. Also am liebsten gar nicht die Abfrage durchführen, wenn nicht möglich. Macht man ja eigentlich auch so.

            Bei einer internen Variable/Array geht das ja sehr einfach mittels if (!meineVar) {…INfo nö} else{so, alles okay,mach mal}.

            Mit try catch geht das ja sehr gut, aber etwas nervig.

            Oder habe ich hier einen Logikfehler?

            "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
            Plural von Status ist auch Status!

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @Fitti:

              TypeError: Cannot read property 'val' of null `
              Diese Meldung zeigt, dass getState(id) null liefert, also zu dieser id keine Zustände (states) vorhanden sind. Es ist so die Prüfung möglich, ohne dass es zu der Fehlermeldung kommt:

              if (getState("javascript.0.meineVariable")) x = getState("javascript.0.meineVariable").val;
              

              Stattdessen wird ein Warning-Log erzeugt und die JS-Variable x wird nicht verändert (bleibt so wie sie deklariert wurde).

              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

              368

              Online

              32.4k

              Benutzer

              81.5k

              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