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. Wie beim Selector keine EIntrag abfangen?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    860

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Wie beim Selector keine EIntrag abfangen?

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 274 Aufrufe 1 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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    Hallo, ich habe folgendes Skript:
    Ändert sich der Feuchtigkeitswert eines Raumsensors, so wird der Raum geholt und eine Regelfunktion übergeben.
    Diese soll dann nachschauen, ob anhand des Soll-Istwert Vergleichs nachgeregelt werden soll (ist ein Zweipunktregler).
    Nun habe ich auch im Badezimmer einen Feuchtesensor (Script reagiert auf alle Sensoren).
    Aber dafür gib es keinen Sollwert.

    Also führt dies hier:

    const sollwert = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`).getState(); 
    

    zu diesem Fehler:

    script.js.common.MobileMessungen.Raumfeuchteregelung: getState has been called with id of type "undefined" but expects a string
    

    kann ich nicht irgendwie abfangen, ob die Selectorfunktion etwas zurückgegeben hat?

    Edit?
    Erst alles mit der .toArray() funktion prüfen?

    Habe es jetzt so gelöst:

        // Zuerst ids als Array holen und wenn nichts zurück kommt, dann funktion mit return beenden.
        // (Kein Wert für den Raum vorhanden) 
        const sollwertArray = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`).toArray();
        if(sollwertArray.length === 0){
            return;
        }
    
        const sollwert = getState(sollwertArray[0]).val;
    

    Oder hat jemand eine bessere Idee?

    T 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo, ich habe folgendes Skript:
      Ändert sich der Feuchtigkeitswert eines Raumsensors, so wird der Raum geholt und eine Regelfunktion übergeben.
      Diese soll dann nachschauen, ob anhand des Soll-Istwert Vergleichs nachgeregelt werden soll (ist ein Zweipunktregler).
      Nun habe ich auch im Badezimmer einen Feuchtesensor (Script reagiert auf alle Sensoren).
      Aber dafür gib es keinen Sollwert.

      Also führt dies hier:

      const sollwert = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`).getState(); 
      

      zu diesem Fehler:

      script.js.common.MobileMessungen.Raumfeuchteregelung: getState has been called with id of type "undefined" but expects a string
      

      kann ich nicht irgendwie abfangen, ob die Selectorfunktion etwas zurückgegeben hat?

      Edit?
      Erst alles mit der .toArray() funktion prüfen?

      Habe es jetzt so gelöst:

          // Zuerst ids als Array holen und wenn nichts zurück kommt, dann funktion mit return beenden.
          // (Kein Wert für den Raum vorhanden) 
          const sollwertArray = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`).toArray();
          if(sollwertArray.length === 0){
              return;
          }
      
          const sollwert = getState(sollwertArray[0]).val;
      

      Oder hat jemand eine bessere Idee?

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

      @ben1983

      keine Ahnung ob das "besser" ist oder obs geht. Mehr Auswahl schadet aber nicht.

      let sollwert = undefined;
      try {
        sollwert = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`).getState();
      } catch {
        // nix
      }
      

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      Ben1983B 1 Antwort Letzte Antwort
      1
      • T ticaki

        @ben1983

        keine Ahnung ob das "besser" ist oder obs geht. Mehr Auswahl schadet aber nicht.

        let sollwert = undefined;
        try {
          sollwert = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`).getState();
        } catch {
          // nix
        }
        
        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        schrieb am zuletzt editiert von Ben1983
        #3

        @ticaki Danke, habe es mal so eingebaut.
        Ist kürzer und übersichtlicher.
        Wäre trotzdem schön, wenn man irgendwie über die Selektorfunktion herausfinden könnte, dass nichts verfügbar ist.
        Ich schreibe am Besten mal ein Issue ;-)

        paul53P 1 Antwort Letzte Antwort
        0
        • Ben1983B Ben1983

          @ticaki Danke, habe es mal so eingebaut.
          Ist kürzer und übersichtlicher.
          Wäre trotzdem schön, wenn man irgendwie über die Selektorfunktion herausfinden könnte, dass nichts verfügbar ist.
          Ich schreibe am Besten mal ein Issue ;-)

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

          @ben1983 sagte: über die Selektorfunktion herausfinden könnte, dass nichts verfügbar ist.

          const ids = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`);
          if(ids.length) {}
          

          Der Selektor enthält das Attribut "length".

          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

          Ben1983B 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @ben1983 sagte: über die Selektorfunktion herausfinden könnte, dass nichts verfügbar ist.

            const ids = $(`state(rooms=${idRoom})[role=${roleFeuchtesollwert}]`);
            if(ids.length) {}
            

            Der Selektor enthält das Attribut "length".

            Ben1983B Offline
            Ben1983B Offline
            Ben1983
            schrieb am zuletzt editiert von
            #5

            @paul53 cool, ohne eine Funktion dahinter? Ok

            T 1 Antwort Letzte Antwort
            0
            • Ben1983B Ben1983

              @paul53 cool, ohne eine Funktion dahinter? Ok

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

              @ben1983
              Ich benutze nie funktionen dahinter :D immer for (let i = 0 ... das toArray() wird aber jetzt immer hinzugefügt - dann geht for (const x of xxx)

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              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

              820

              Online

              32.6k

              Benutzer

              82.1k

              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