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. Liste von Geräte IDs die einen bestimmten Status haben

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Liste von Geräte IDs die einen bestimmten Status haben

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 3 Kommentatoren 1.8k 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.
  • C Offline
    C Offline
    Creator
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich benötige für die Darstellung in VIS alle Lampen die An sind oder z.b. alle Fenster/ Türen die auf sind.

    Mein erste Idee wäre es jetzt mir ein Array zu bauen mit allen IDs dieses dann zu iterieren und auf den Status "true" zu prüfen.

    Das Ergebnis steht dann in einem weiteren Array.

    Beispiel:

    `// Alle IDs von Lichtquellen 
    var allLights = [
            "hm-rpc.1.NEQ0891467.13.STATE"/*Keller_Licht_Treppe_und_Flur:13.STATE*/, 
            "hm-rpc.1.NEQ0891467.14.STATE"/*Keller_Licht_Technikraum:14.STATE*/, 
            "hm-rpc.1.NEQ0891467.15.STATE"/*Keller_Licht_Werkstatt_Waescheraum:15.STATE*/, 
            "hm-rpc.1.NEQ0891467.16.STATE"/*Buero_Licht:16.STATE*/
        ];
    
    var lightsOn =  [];
    
    for (i = 0; i < allLights.length; i++) {
        if (getState(allLights[i]).val === true) {                                          
            lightsOn.push(allLights[i]);
            console.log(allLights[i]);
        } 
    }` 
    
    Dazu habe ich die eine oder andere Frage  ;) 
    
    Muss ich die IDs in einer Liste pflegen oder gibt es so was wie "gibMirAlleIdsAusDemGewerkLicht()"? Das wäre ja quasi einfacher, aber ein Taster gehört ja auch zum Gewerk Licht. 
    
    Das Array "lightsOn" soll immer dann aktualisiert werden wenn sich irgendein Status verändert. Wie mache ich das am geschicktesten? 
    
    Mein Ziel ist es im Vis später das Array "lightsOn" zu iterieren um eine Liste aller Lampen zu erstellen die an sind.[/i][/i][/i]
    
    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo,

      gibt ein Zahl der Lichter Skript: http://forum.iobroker.net/viewtopic.php … 48&#p41673

      Genauso gibt es auch noch ein Fenster Skript.

      Es funktioniert über die Abfrage aller States eines bestimmten Typs innerhalb eines Gewerks (z B Lichter oder Verschluss).

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

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

        @Creator:

        Muss ich die IDs in einer Liste pflegen oder gibt es so was wie "gibMirAlleIdsAusDemGewerkLicht()"? Das wäre ja quasi einfacher, aber ein Taster gehört ja auch zum Gewerk Licht. `

        Schau mal hier: https://github.com/iobroker/iobroker.ja ... --selector

        Der $-Selektor erlaubt dir, eine große Anzahl an States nach bestimmten Kriterien zu filtern.

        Dann kannst du:

        • mit der each-Funktion für jeden State eine gewisse Aktion durchzuführen

        • mit der on-Funktion auf Änderungen lauschen

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

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          Creator
          schrieb am zuletzt editiert von
          #4

          Ich bin leider erst jetzt wieder dazu gekommen mal was zu machen, aber leider habe ich wohl ein JS Verständnis Problem.

          Warum kann ich so was wie:

          var allLights = [
                  { id: "hm-rpc.1.NEQ0891467.13.STATE"/*Keller_Licht_Treppe_und_Flur:13.STATE*/, displayName: "Keller Flur"},
                  { id: "hm-rpc.1.NEQ0891467.14.STATE"/*Keller_Licht_Technikraum:14.STATE*/, displayName: "Keller Technikraum"},
                  { id: "hm-rpc.1.NEQ0891467.15.STATE"/*Keller_Licht_Werkstatt_Waescheraum:15.STATE*/, displayName: "Keller Werkstatt"},
                  { id: "hm-rpc.1.NEQ0891467.16.STATE"/*Buero_Licht:16.STATE*/, displayName: "Büro"}
              ];
          
          

          Nicht mit .each durchlaufen. Oder mit .on einen trigger drauf legen?

          Wenn man aber z.b. einen Selector nutzt wie:

          $('channel[state.id=*.STATE](functions="funcLight")');
          
          

          funktioniert es.

          Anders gefragt, was ist der Unterschied zwischen den beiden Objekten und wie sollte ich am besten "allLights" definieren so das es funktioniert.

          1 Antwort Letzte Antwort
          0
          • C Offline
            C Offline
            Creator
            schrieb am zuletzt editiert von
            #5

            Ich habe jetzt einen anderen Weg eingeschlagen und den Code im Link von pix umgebaut.

            Jetzt habe ich ein JSON:

            [{"id":"hm-rpc.1.NEQ0891532.13.STATE","displayName":"Wohnzimmer"},{"id":"hm-rpc.1.NEQ0891532.17.STATE","displayName":"Küche"}]
            

            Ich überlege, wie ich das jetzt in Vis darstellen könnte.

            Im Grunde möchte ich eine Liste bauen welche eine Lampe und den Namen darstellt.

            Die Objekt ID soll gleich gesetzt sein, damit man diese halt auch schalten kann.

            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

            663

            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