Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Abfrage "Zustand irgendeines Fensters hat sich geändert"

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Abfrage "Zustand irgendeines Fensters hat sich geändert"

    This topic has been deleted. Only users with topic management privileges can see it.
    • Goersch
      Goersch last edited by

      Hallo,

      bewege mich leider was javascript angeht bei den Anfängen :oops:; muss deshalb eine wahrscheinlich einfache Frage stellen:

      In einem hier gefundenen Skript zur Anzeige der Systemmeldungen finde ich folgendes:

      var SelectorUNREACH = $('channel[state.id=*.UNREACH]');
      ....
      SelectorUNREACH.on(function(obj) {          // bei Zustandänderung *.UNREACH in allen Gewerken
          countService(obj);
      });
      
      

      Sowas versuche ich nun verzweifelt so umzumünzen, dass eine Funktion für alle Objekte mit "Fenster" im Namen aufgerufen wird, sobald sich der Zusand des Fensters geändert hat. Also in etwa so

      var fensterZustand= $('channel[name=*Fenster*, state.id=*.State]');
      ....
      fensterZustand.on(function(obj) {          
          lueftung(obj);
      });
      
      

      Geht das "irgendwie" :oops: oder

      muss ich einen Trigger "händisch" für jedes Fenster aufsetzen oder

      kann ich das mit einer Schleife über alle Objekte machen und dann - wenn der Name "Fenster" enthält, einen trigger dynamisch einrichten, der bei Änderung des "State" aufgerufen wird

      Danke!

      Georg

      1 Reply Last reply Reply Quote 0
      • Y
        ykuendig last edited by

        Das müsste schon gehen.

        Ich habe mal was in der Art für alle Storen zusammengestrickt.

        Storen alle hoch:
        
        createState("javascript.0.vis.Storen.hoch", false);
        
        on({id: "javascript.0.Storen.hoch"/*javascript.0.vis.Storen.hoch*/}, function(obj){
            var cacheSelector = $('channel{TYPE=BLIND}[state.id=*.LEVEL]');     // Get all shutter of Homematic
        	log("Script - Storen alle hoch läuft", 'info');
        	cacheSelector.each(function (id, i) {
        		setState(id, 100);
        	});
        });
        

        Jetzt müsste man eben wissen, in wieweit Deine Fenster gruppiert sind. Z.B. über die Enumerationen. Dann müsste das anzupaasen sein

        1 Reply Last reply Reply Quote 0
        • Goersch
          Goersch last edited by

          ich häng direkt die nächste Frage dran :oops: : Wie müsste eine Schleife über alle Objekte eines Raums aussehen ?

          1 Reply Last reply Reply Quote 0
          • Y
            ykuendig last edited by

            Das geht dann in die Richtung: http://forum.iobroker.net/viewtopic.php … oms#p10395

            Oder das ev...````
            var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk Licht

            1 Reply Last reply Reply Quote 0
            • Goersch
              Goersch last edited by

              @ykuendig: danke -das schaue ich mir mal an

              1 Reply Last reply Reply Quote 0
              • Goersch
                Goersch last edited by

                😄 das hat mir schon mal sehr weitergeholfen - danke.

                Nächste Herausforderung :

                Das Funktioniert leider nicht - ich kann nicht auf "name" - filtern

                var  fensterObjekte = $('channel[state.id=*.STATE](name=SZOG_Fenster)').each(function(id) {
                    log(id);
                    });
                
                

                während das hier funktionieren würde

                var  fensterObjekte = $('channel[state.id=*.STATE](functions=Lueftung)').each(function(id) {
                    log(id);
                    });
                
                

                Ich kann jetzt allen Fenstern die Funktion "Lueftung" hinzufügen und schon sollte es passen. Aber ich würde schon noch gerne wissen, was ich bei "(name=SZOG_Fenster")" falsch mache. Ich habs auch mit "Fenster" versucht - immer keine Ausgabe

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Hast Du es mal mit eckigen Klammern versucht ?

                  var  fensterObjekte = $('channel[state.id=*.STATE][name=SZOG_Fenster]').each(function(id) {
                      log(id);
                      });
                  
                  1 Reply Last reply Reply Quote 0
                  • Goersch
                    Goersch last edited by

                    @paul53: hatte ich nicht versucht 🙂 - funktioniert aber auch nicht 😐

                    1 Reply Last reply Reply Quote 0
                    • Y
                      ykuendig last edited by

                      Da weiss ich auch zuwenig.

                      Müsste uns @Bluefox mal mitteilen, ob im Channel Filter überhaupt nach Namen gesucht werden kann?

                      1 Reply Last reply Reply Quote 0
                      • Goersch
                        Goersch last edited by

                        ich heb mich mal nach "oben"

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        492
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        1233
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo