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. Problem älteres Fenster-Zählen Skript

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Problem älteres Fenster-Zählen Skript

Geplant Angeheftet Gesperrt Verschoben JavaScript
14 Beiträge 6 Kommentatoren 907 Aufrufe 5 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.
  • crunchipC Offline
    crunchipC Offline
    crunchip
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #5

    @berlon hab kein Homematic aber vllt ist https://github.com/Pittini/iobroker-Fensterauswertung etwas für dich
    https://forum.iobroker.net/topic/31674/vorlage-generisches-fensteroffenskript-vis

    umgestiegen von Proxmox auf Unraid

    1 Antwort Letzte Antwort
    0
    • CodierknechtC Codierknecht

      @berlon sagte in Problem älteres Fenster-Zählen Skript:

      Werden beim Blockly auch die Raumnamen angezeigt?

      Nein - wie im Threadtitel angedeutet werden hier nur die offenen Fenster gezählt.
      Um damit zusätzlich eine Liste zu füllen, müsste das entsprechend erweitert werden.
      Kommt halt darauf an, was man haben möchte.
      Tatsächlich nur eine (Text) Liste der geöffneten Fenster?
      Oder doch eher den Status jedes einzelnen Fensters visualisieren.
      4a7f7080-2681-44fe-9bde-8f8120a1231f-image.png

      B Offline
      B Offline
      Berlon
      schrieb am zuletzt editiert von
      #6

      @codierknecht
      Das Skript erstellt nur eine Textliste der geöffneten Fenster. Das würde mir reichen.

      @crunchip
      Schau ich mir mal an. Ist natürlich mächtig erweitert.

      CodierknechtC 1 Antwort Letzte Antwort
      0
      • bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #7

        anbei mal Scripte von mir bzgl. Fenster, Bewegung und Licht.

        Diese Scripte gibt es schon seit Jahren (zumindest seit 7 Jahre) hier im Forum

        /* Status Zahl Bewegung
        
        zählt die Bewegung in allen Räumen und meldet die Eingeschalteten namentlich
        Daten kommen vom Gewerk "Bewegung"
        
        23.12.2016 Script von pix; geändert von Bahnuhr auf Bewegung
        */
        var logging = false;
        
        var idAnzahlEin = 'javascript.0.System.Zusammenfassung.Bewegung.Anzahl_ein',
           idAnzahl =    'javascript.0.System.Zusammenfassung.Bewegung.Anzahl',
           idRaum =      'javascript.0.System.Zusammenfassung.Bewegung.Raum';
        
        var cacheSelectorState = $('channel[state.id=*.MOTION](functions="Bewegungsmelder")'); // Gewerk Bewegungsmelder
        
        function checkDevices(obj) {
            // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Licht auf 0
           var anzahlBewegungAn = 0;
           var anzahlBewegung = 0;
           var textRaum = [];
           if (logging) {
               log('++++++ Bewegung Anzahl ++++ ');
               log('#### SCHALTER ##### ');
           }
           cacheSelectorState.each(function (id, i) {                       // Schleife für jedes gefundenen Element *.STATE im Gewerk Licht
               var obj    = getObject(id);
               var status = getState(id).val;                              // Zustand *.STATE abfragen (jedes Element)
               var raumname = getObject(id, "rooms"); 
                       
                   if (logging) {
                       log('-------');
                       log('Kanal: ' + name);
                       log('Status: ' + status); 
                   }
                   if (status) {                                      // wenn Zustand = true, dann wird die Anzahl der Bewegung hochgezählt
                       ++anzahlBewegungAn;  
                       textRaum.push(raumname.enumNames); 
                   }
                   ++anzahlBewegung;                                            // Zählt die Anzahl der vorhandenen Bewegung unabhängig vom Status
           });
           
        
        // Funktion: Doppelte Einträge aus Array entfernen (für Räume) www.okco.de (c) codemaster
        function deleteDuplicates(arr) { 
           var temp = {}; 
           for (var i = 0; i < arr.length; i++) temp[arr[i]] = true; 
           var r = []; 
           for (var k in temp) r.push(k); 
           return r;
        }
        
           // Array mit Lichternamen sortieren
           textRaum = deleteDuplicates(textRaum);
           textRaum.sort(); 
           // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
           if (logging) log("Anzahl Bewegung: " + anzahlBewegung + " # davon Bewegung an: " + anzahlBewegungAn);
           // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
           setState(idAnzahl, anzahlBewegung);                 // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Bewegung
           setState(idAnzahlEin, anzahlBewegungAn); 
           setState(idRaum, textRaum.join(', '));         // Räume, in denen Bewegung ist
        }
        
        // Trigger
        cacheSelectorState.on(function(obj) {    // bei Zustandänderung *.STATE im Gewerk Bewegung
          if (logging) log('Auslösende Bewegung: ' + obj.id + ': ' + obj.state.val);   // Info im Log, welcher Zustand sich geändert hat
          checkDevices();
        });
        
        function main() {
           setTimeout(function(){
              if (logging) log('Auslöser Skriptstart');
              checkDevices();
           }, 2000);
        }
        
        main(); // Skriptstart-Auslöser
        
        
        

        /* Status Zahl Heizung
        
        zählt die Heizung in allen Räumen und meldet die Eingeschalteten namentlich
        Daten kommen vom Gewerk "Heizung"
        
        23.12.2016 Vorlage von "pix" - geändert von bahnuhr auf Heizung
        */
        var logging = false;
        
        var idAnzahlEin = 'javascript.0.System.Zusammenfassung.Heizung.Anzahl_ein',
           idAnzahl =    'javascript.0.System.Zusammenfassung.Heizung.Anzahl',
           idRaum =      'javascript.0.System.Zusammenfassung.Heizung.Raum';
        
        var cacheSelectorLevel = $('channel[state.id=*.VALVE_STATE](functions="Heizung")'); // Gewerk Heizung
        
        function checkDevices(obj) {
            // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Heizung auf 0
           var anzahlHeizungAn = 0;
           var anzahlHeizung = 0;
           var textRaum = [];
           if (logging) log('++++++ Heizung Anzahl ++++ ');
           cacheSelectorLevel.each(function (id, i) {                     // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht
               var obj = getObject(id);
               var status = getState(id).val;                              // Zustand *.LEVEL abfragen (jedes Element)
               var raumname = getObject(id, "rooms");
               
                   if (logging) {
                       log('-------');
                       log('Kanal: ' + name);
                       log('Status: ' + status + '%'); 
                   }
                   if (parseFloat(status) > 0) {                               // Wenn Dimmwert über 0
                       ++anzahlHeizungAn;    
                       textRaum.push(raumname.enumNames);  
                   }
                   ++anzahlHeizung;                                            // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
           });   
         
        
         // Funktion: Doppelte Einträge aus Array entfernen (für Räume) www.okco.de (c) codemaster
        function deleteDuplicates(arr) { 
           var temp = {}; 
           for (var i = 0; i < arr.length; i++) temp[arr[i]] = true; 
           var r = []; 
           for (var k in temp) r.push(k); 
           return r;
        }
        
           // Array mit Lichternamen sortieren
           textRaum = deleteDuplicates(textRaum);
           textRaum.sort();
           // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
           if (logging) log("Anzahl Heizung: " + anzahlHeizung + " # davon Heizung an: " + anzahlHeizungAn);
           // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
           setState(idAnzahlEin, anzahlHeizungAn);
           setState(idAnzahl, anzahlHeizung);                 // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
           setState(idRaum, textRaum.join(', '));         // Räume, in denen Heizung an ist
        }
        
        // Trigger
        cacheSelectorLevel.on(function(obj) {    // bei Zustandänderung *.LEVEL im Gewerk Licht
          if (logging) log('Auslösende Heizung: ' + obj.id + ': ' + obj.state.val);   // Info im Log, welcher Zustand sich geändert hat
          checkDevices();
        });
        
        function main() {
           setTimeout(function(){
              if (logging) log('Auslöser Skriptstart');
              checkDevices();
           }, 2000);
        }
        
        main(); // Skriptstart-Auslöser
        
        
        

        /* Status Zahl Lichter
        
        zählt die Lichter in allen Räumen und meldet die Eingeschalteten namentlich
        Daten kommen vom Gewerk "Licht"
        
        erstellt: 17.06.2015 nach diesem Vorbild: http://forum.iobroker.net/viewtopic.php?f=21&t=869&sid=f9ba5657489ff431a1990884f90779c1#p6564
        23.06.2015 globale Variablendefinition zählen_Lichter.textLichterAn fehlte und wurde hinzugefügt
                  Log Ausgabe auskommentiert
        05.08.2015 STATE aus der Ausgabe entfernt nach Idee von stephan61 http://forum.iobroker.org/viewtopic.php?f=21&t=473&start=20#p9267
        24.03.2016 keine Anzeigen von virtuellen Kanälen mehr (in Abhängigkeit der Abfrage des Namens)
        06.05.2016 Datenpunkt für Ansagen zugefügt
        02.07.2016 abgeschaltet, da Fehler
        03.07.2016 Zähl-Funktion getrennt nach Schalter und Dimmer
                  search statt indexOf und RegEx für Suche nach Virtuellen Kanälen
        27.11.2016 Verschoben in Status
                  Code optimiert
        23.12.2016 Räume eingebaut
        */
        var logging = false;
        
        var idAnzahlEin = 'javascript.0.System.Zusammenfassung.Licht.Anzahl_ein',
           idAnzahl =    'javascript.0.System.Zusammenfassung.Licht.Anzahl',
           idText =      'javascript.0.System.Zusammenfassung.Licht.Text',
           idRaum =      'javascript.0.System.Zusammenfassung.Licht.Raum', // <---- NEU
           idAnsage =    'javascript.0.System.Zusammenfassung.Licht.Ansage';
        
        var cacheSelectorState = $('channel[state.id=*.STATE](functions="Licht")'); // Gewerk Licht
        var cacheSelectorLevel = $('channel[state.id=*.LEVEL](functions="Licht")');
        
        function checkDevices(obj) {
        // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Licht auf 0
        var anzahlLichterAn = 0;
        var anzahlLichter = 0;
        var textLichterAn = [];
        var textRaum = [];
        if (logging) {
        log('++++++ Lichter Anzahl ++++ ');
        log('#### SCHALTER ##### ');
        }
        cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Licht
        var obj = getObject(id);
        var name = getObject(id).common.name;
        var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
        var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
        var raumname = getObject(id, "rooms"); // <---- NEU
        
        // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
        // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { 
        if (logging) {
        log('-------');
        log('Kanal: ' + name);
        log('Status: ' + status); 
        }
        if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
        ++anzahlLichterAn; 
        textLichterAn.push(devicename); // Zu Array hinzufügen
        textRaum.push(raumname.enumNames); // <---- NEU
        }
        ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
        // } // ENDE VK-Abfrage
        });
        
        if (logging) log('#### DIMMER ##### ');
        cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht
        var obj = getObject(id);
        var name = getObject(id).common.name;
        var status = getState(id).val; // Zustand *.LEVEL abfragen (jedes Element)
        var devicename = name.substring(0, name.indexOf(".LEVEL")); //.state aus Text entfernen
        var raumname = getObject(id, "rooms"); // <---- NEU
        
        // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
        // if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten
        
        if (logging) {
        log('-------');
        log('Kanal: ' + name);
        log('Status: ' + status + '%'); 
        }
        if (parseFloat(status) > 0) { // Wenn Dimmwert über 0
        ++anzahlLichterAn; 
        textLichterAn.push(devicename); // Zu Array hinzufügen
        textRaum.push(raumname.enumNames); // <---- NEU
        }
        ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
        // } // Ende Abfrage VK 
        }); 
        
         // Funktion: Doppelte Einträge aus Array entfernen (für Räume) www.okco.de (c) codemaster
        function deleteDuplicates(arr) { 
           var temp = {}; 
           for (var i = 0; i < arr.length; i++) temp[arr[i]] = true; 
           var r = []; 
           for (var k in temp) r.push(k); 
           return r;
        }
        
        // Array mit Lichternamen sortieren
        textLichterAn.sort();
        textRaum = deleteDuplicates(textRaum);
        textRaum.sort(); // <---- NEU
        // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
        if (logging) log("Text: " + textLichterAn);
        if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn);
        // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
        setState(idText, textLichterAn.join(',<br>')); // Schreibt die aktuelle Namen der eingeschalteten Lichter
        setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
        setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
        // setState(idRaum, textRaum.join(',<br>')); // Räume, in denen Licht brennt // <---- NEU
        setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU
        }
        
        // Trigger
        cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Licht
        if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
        checkDevices();
        });
        cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.LEVEL im Gewerk Licht
        if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
        checkDevices();
        });
        
        function main() {
        setTimeout(function(){
        if (logging) log('Auslöser Skriptstart');
        checkDevices();
        }, 2000);
        }
        
        main(); // Skriptstart-Auslöser
        
        // Aufbereitung für Ansage
        function strip_tags(data) {
        var rueckgabe = data.replace(/(&nbsp;|<([^>]+)>)/ig, " ");
        return(rueckgabe);
        }
        
        on(idText, function (obj) {
        var text = obj.state.val;
        text = (getState(idAnzahl).val > 0 ) ? 'Lichter eingeschaltet: ' + strip_tags(text) : 'Alle Lichter sind ausgeschaltet';
        setState(idAnsage, text);
        });
        
        
        

        P.S.
        DP musst du natürlich selber anlegen.

        Vielleicht ist das ja das richtige.


        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • B Berlon

          @codierknecht
          Das Skript erstellt nur eine Textliste der geöffneten Fenster. Das würde mir reichen.

          @crunchip
          Schau ich mir mal an. Ist natürlich mächtig erweitert.

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #8

          @berlon
          Ungetestet - kurz und schmerzlos ;-)

          var count, windowList, state, parent;
          on({id: Array.prototype.slice.apply($("(functions=window)")), change: "ne"}, async function (obj) {
            count = 0;
            windowList = '';
            var state_list = Array.prototype.slice.apply($("(functions=window)"));
            for (var state_index in state_list) {
              state = state_list[state_index];
              if (getState(state).val) count++;
              parent = state.substring(0, state.lastIndexOf('.'));
              windowList += getObject(parent).common.name + '<br/>';
            }
            setState("0_userdata.0.fenster_offen", count);
            setState("0_userdata.0.fenster_liste", windowList);
          });
          

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          B 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @berlon
            Ungetestet - kurz und schmerzlos ;-)

            var count, windowList, state, parent;
            on({id: Array.prototype.slice.apply($("(functions=window)")), change: "ne"}, async function (obj) {
              count = 0;
              windowList = '';
              var state_list = Array.prototype.slice.apply($("(functions=window)"));
              for (var state_index in state_list) {
                state = state_list[state_index];
                if (getState(state).val) count++;
                parent = state.substring(0, state.lastIndexOf('.'));
                windowList += getObject(parent).common.name + '<br/>';
              }
              setState("0_userdata.0.fenster_offen", count);
              setState("0_userdata.0.fenster_liste", windowList);
            });
            
            B Offline
            B Offline
            Berlon
            schrieb am zuletzt editiert von
            #9

            wow,
            Danke erst mal für die vielen Möglichkeiten. Bin nun gerade mal an der Sache von Pittini dran.
            Habe da ein kleines Problem:
            in dem Bild von Pittini ist da ein Scroll Balken vorhanden, bei mir nicht.
            Habe das basic - html Widget genommen.
            Wie hat er da den Scroll Balken hingezaubert??

            fensteroffentut2c.png

            Pittini.png

            HomoranH 1 Antwort Letzte Antwort
            0
            • B Berlon

              wow,
              Danke erst mal für die vielen Möglichkeiten. Bin nun gerade mal an der Sache von Pittini dran.
              Habe da ein kleines Problem:
              in dem Bild von Pittini ist da ein Scroll Balken vorhanden, bei mir nicht.
              Habe das basic - html Widget genommen.
              Wie hat er da den Scroll Balken hingezaubert??

              fensteroffentut2c.png

              Pittini.png

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von Homoran
              #10

              @berlon sagte in Problem älteres Fenster-Zählen Skript:

              Wie hat er da den Scroll Balken hingezaubert??

              Wahrscheinlich im Widget konfiguriert.

              Vertical overflow -> scroll (o.ä.)

              EDIT:
              Lieber mal für dich gesucht, bevor du es nicht findest
              Screenshot_20221206-154547_Firefox.jpg

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              B 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @berlon sagte in Problem älteres Fenster-Zählen Skript:

                Wie hat er da den Scroll Balken hingezaubert??

                Wahrscheinlich im Widget konfiguriert.

                Vertical overflow -> scroll (o.ä.)

                EDIT:
                Lieber mal für dich gesucht, bevor du es nicht findest
                Screenshot_20221206-154547_Firefox.jpg

                B Offline
                B Offline
                Berlon
                schrieb am zuletzt editiert von
                #11

                @homoran
                Danke, gefunden.
                Ist im Abschnitt CSS Allgemein -> overflow-y. Hier scroll auswählen. Falls es jemand interessiert

                Wieder was gelernt.

                HomoranH 1 Antwort Letzte Antwort
                0
                • B Berlon

                  @homoran
                  Danke, gefunden.
                  Ist im Abschnitt CSS Allgemein -> overflow-y. Hier scroll auswählen. Falls es jemand interessiert

                  Wieder was gelernt.

                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #12

                  @berlon sagte in Problem älteres Fenster-Zählen Skript:

                  Ist im Abschnitt CSS Allgemein -> overflow-y. Hier scroll auswählen

                  ach was!

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

                    @berlon
                    Pack doch alle entsprechenden Datenpunkte in eine Aufzählung
                    7c20f574-6d5b-4d0b-8359-60cf37b5dc83-image.png
                    und geh' dann mit 'nem Blockly ran
                    a9e0c0e7-5b2e-499b-89f1-5362a379c425-image.png

                    R Offline
                    R Offline
                    Rushmed
                    Most Active
                    schrieb am zuletzt editiert von
                    #13

                    @codierknecht Hab dein Blockly übernommen. Funktioniert klasse.
                    Ich lass mir die Anzahl geöffneter Sensoren per Telegramm zuschicken.
                    Hast du ne ahnung wie ich noch die Namen der geöffneten Geräte in meine Nachricht bekommen kann?
                    Bin leider auf Blockly beschränkt, ansonsten könnte ich nur C&P.
                    9c21cc68-fa28-46f9-bc6c-ce3e86516d80-grafik.png

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • R Rushmed

                      @codierknecht Hab dein Blockly übernommen. Funktioniert klasse.
                      Ich lass mir die Anzahl geöffneter Sensoren per Telegramm zuschicken.
                      Hast du ne ahnung wie ich noch die Namen der geöffneten Geräte in meine Nachricht bekommen kann?
                      Bin leider auf Blockly beschränkt, ansonsten könnte ich nur C&P.
                      9c21cc68-fa28-46f9-bc6c-ce3e86516d80-grafik.png

                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #14

                      @rushmed
                      Geht nur per JS:

                      function getObjectName(const objectId) {
                          return getObject(objectId).common.name;
                      }
                      

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      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

                      608

                      Online

                      32.6k

                      Benutzer

                      82.3k

                      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