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. [gelöst] $-Selector liefert keine Werte

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] $-Selector liefert keine Werte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 3 Kommentatoren 2.0k 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.
  • T Offline
    T Offline
    threedee
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich bin recht neu mit dem ioBrocker am ausprobieren und wollte Testweise ein Script schreiben welches mir alle Objekte der Aufzählung LichtSteuerung = DaemmerungOhneNacht liefert.

    folgendes Script habe ich benutzt

    ! ````
    function main() {
    log('Anfang');
    //$('state[id=*.state]').each(function(id) {
    $('channel(LichtSteuerung="DaemmerungOhneNacht")').each(function(id) {
    var val = getObject(id).common.name;
    log("DeviceST=" + val);
    });
    log('Ende');
    }
    ! main();

    
    leider liefert die Funktion keine Werte zurück.
    
    die Ausgabe im Log ist folgende
    

    09:55:20.595 [info] javascript.1 Start javascript script.js.common.Test.Skript3
    09:55:20.595 [info] javascript.1 script.js.common.Test.Skript3: Anfang
    09:55:20.595 [info] javascript.1 script.js.common.Test.Skript3: Ende
    09:55:20.595 [info] javascript.1 script.js.common.Test.Skript3: registered 0 subscriptions and 0 schedules

    
    wenn ich im Selektor auf alle Objekte mit id=*.state filtere funktioniert es und ich bekomme alle Objekte zurückgeliefert.
    
    Hat jemand eine Idee woran es liegen könnte?
    1 Antwort Letzte Antwort
    0
    • BuZZyB Offline
      BuZZyB Offline
      BuZZy
      schrieb am zuletzt editiert von
      #2

      .. verstehe ich es richtig, dass du eine neue Aufzählung mit dem Namen "LichtSteuerung" erstellt hast und da drunter ein Objekt mit "DaemmerungOhneNacht" wo du die States/Gerät eingefügt hast?

      Ich gehe stark davon aus, dass es sich in der Aufzählung bei dir um States und nicht um Channels handelt.

      Dann:

      $('state(lichtsteuerung=daemmerungohnenacht)').each(function(id) {
      		log("State: " + id);
      	}
      );
      

      ****(JavaScript Adapter muss neu gestartet werden nachdem du die Aufzählung angelegt hast)

      Wenn du den JavaScript Adapter nicht neu startest "kennt" dieser die neue Aufzählung nicht.****

      Gruß

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        threedee
        schrieb am zuletzt editiert von
        #3

        Das hat leider auch nichts gebracht.

        Laut der Dokumentation:

        Format of selector:
        
        "name[commonAttr=something1](enumName=something2){nativeName=something3}[id=idfilter][state.id=idfilter]"
        name can be: state, channel or device "idfilter" can have wildcards '*'
        

        ich habe es eben noch mal mit state probiert, da ich in meinem enum nur states eingefügt habe. Dieses hat leider ebenso wenig geklappt wie der Test mit dem enum functions.Licht.

        1 Antwort Letzte Antwort
        0
        • AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          Poste mal einen Screenshot von deiner Enum, ist wahrscheinlich nur eine Kleinigkeit.

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

          1 Antwort Letzte Antwort
          0
          • BuZZyB Offline
            BuZZyB Offline
            BuZZy
            schrieb am zuletzt editiert von
            #5

            Hast du den JavaScript Adapter neu gestartet?

            Groß-/Kleinschreibung der Aufzählung beachtet (Manuell erzeugte enums werden glaube ich im Objekt immer klein geschrieben)?

            Genau so funktioniert dein Script bei mir:

            function main() {
                log('Anfang');
                //$('state[id=*.state]').each(function(id) {
                $('state(lichtsteuerung=daemmerungohnenacht)').each(function(id) {
                var val = getObject(id).common.name;
                log("DeviceST=" + val);
                });
                log('Ende');
            }
            
            main();
            

            Hab es schnell mal bei mir getestet:
            3092_screenshot_-_09.01.2018___11_04_23.png
            3092_screenshot_-_09.01.2018___11_18_47.png
            Gruß

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              threedee
              schrieb am zuletzt editiert von
              #6

              Ich habe 2 Javascript Instanzen. Habe beide neu gestartet. Wahrscheinlich reicht es aber doch nur den neuzustarten auf dem das Script läuft oder?

              Mein enum sieht wie folgt aus:
              2679_fehlerselector.png

              Gross/Kleinschreibung habe ich auch shcon sämtiche Kombinationen durch.

              1 Antwort Letzte Antwort
              0
              • BuZZyB Offline
                BuZZyB Offline
                BuZZy
                schrieb am zuletzt editiert von
                #7

                Funktioniert bei mir.. Habe auch mal die Aufzählung mit zwei Tradfri Lampen erstellt..

                Die Tradfri Lampen haben aber im Objekt als Name nur "on/off".. Aber dieser wird von dem Script ja korrekt ausgegeben:

                3092_screenshot_-_09.01.2018___11_49_03.png
                3092_screenshot_-_09.01.2018___11_49_19.png

                Kopier dir hier den kompletten Code nochmal neu und versuch es nochmal.

                function main() {
                    log('Anfang');
                    //$('state[id=*.state]').each(function(id) {
                    $('state(lichtsteuerung=daemmerungohnenacht)').each(function(id) {
                    var val = getObject(id).common.name;
                    log("DeviceST=" + val);
                    });
                    log('Ende');
                }
                
                main();
                

                Gruß

                1 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  threedee
                  schrieb am zuletzt editiert von
                  #8

                  Heureka!!!!

                  Habe es rausgefunden. Es lag wirklich an der Gross-/Kleinschreibung. Bei mir ist der Name des Enums in Camel-Case geschrieben.

                  Ich Nase habe bei den Test aber dummerweise nur vorne das geändert und nicht im ganzen Namen. Und in meinen Tests habe ich dann wohl immer irgendwelche Kombinationen getestet die irgendeinen Haken drin hatten.

                  Vielen Dank für eure schnelle Hilfe

                  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

                  787

                  Online

                  32.6k

                  Benutzer

                  82.2k

                  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