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 mit "Fenster offen Script"

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Problem mit "Fenster offen Script"

Geplant Angeheftet Gesperrt Verschoben JavaScript
71 Beiträge 6 Kommentatoren 3.9k 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.
  • werner2000xW Offline
    werner2000xW Offline
    werner2000x
    schrieb am zuletzt editiert von werner2000x
    #59

    Ich bin doch jetzt neuen script, da es mir einfacher ist:

    const ids = Array.prototype.slice.apply($("(functions=window)"));
     
    on({id: ids, change: "ne"}, async function() {
        let count = 0;
        for (let id of ids) {
            if (getState(id).val) count++;
        }
        setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
    });
    

    Raspi4 8 GB mit Aqara Zigbee USB, iob und PI-hole
    Innogy Smarthome
    Bosch Bridge 2
    HUE Bridge
    OpenWB Wallbox mit EVU Kit
    Google Nest Pro Hub

    CodierknechtC HomoranH paul53P 3 Antworten Letzte Antwort
    0
    • werner2000xW werner2000x

      Ich bin doch jetzt neuen script, da es mir einfacher ist:

      const ids = Array.prototype.slice.apply($("(functions=window)"));
       
      on({id: ids, change: "ne"}, async function() {
          let count = 0;
          for (let id of ids) {
              if (getState(id).val) count++;
          }
          setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
      });
      
      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #60

      @werner2000x sagte in Problem mit "Fenster offen Script":

      Ich bin doch jetzt neuen script:

      Wir aber (noch) nicht.
      Wir möchten erstmal Stück für Stück sehen, was da wie eingerichtet ist.

      "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
      1
      • werner2000xW werner2000x

        Ich bin doch jetzt neuen script, da es mir einfacher ist:

        const ids = Array.prototype.slice.apply($("(functions=window)"));
         
        on({id: ids, change: "ne"}, async function() {
            let count = 0;
            for (let id of ids) {
                if (getState(id).val) count++;
            }
            setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
        });
        
        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #61

        @werner2000x sagte in Problem mit "Fenster offen Script":

        Ich bin doch jetzt neuen script:

        sollst du aber nicht

        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
        • werner2000xW werner2000x

          Ich bin doch jetzt neuen script, da es mir einfacher ist:

          const ids = Array.prototype.slice.apply($("(functions=window)"));
           
          on({id: ids, change: "ne"}, async function() {
              let count = 0;
              for (let id of ids) {
                  if (getState(id).val) count++;
              }
              setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
          });
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #62

          @werner2000x sagte: neuen script

          Dann ergänze es durch Log-Ausgaben:

          const ids = Array.prototype.slice.apply($("(functions=window)"));
          log(ids);
           
          on({id: ids, change: "ne"}, async function() {
              let count = 0;
              for (let id of ids) {
                  if (getState(id).val) count++;
              }
              setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
              log('Anzahl offen: ' + count);
          });
          

          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

          werner2000xW 1 Antwort Letzte Antwort
          2
          • paul53P paul53

            @werner2000x sagte: neuen script

            Dann ergänze es durch Log-Ausgaben:

            const ids = Array.prototype.slice.apply($("(functions=window)"));
            log(ids);
             
            on({id: ids, change: "ne"}, async function() {
                let count = 0;
                for (let id of ids) {
                    if (getState(id).val) count++;
                }
                setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
                log('Anzahl offen: ' + count);
            });
            
            werner2000xW Offline
            werner2000xW Offline
            werner2000x
            schrieb am zuletzt editiert von
            #63

            @paul53 Hier der Log:

            javascript.0	16:11:59.416	info	script.js.Meine_Geräte.FensterOffenWarung: Anzahl offen: 3
            

            Raspi4 8 GB mit Aqara Zigbee USB, iob und PI-hole
            Innogy Smarthome
            Bosch Bridge 2
            HUE Bridge
            OpenWB Wallbox mit EVU Kit
            Google Nest Pro Hub

            paul53P 1 Antwort Letzte Antwort
            0
            • werner2000xW werner2000x

              @paul53 Hier der Log:

              javascript.0	16:11:59.416	info	script.js.Meine_Geräte.FensterOffenWarung: Anzahl offen: 3
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #64

              @werner2000x sagte: Hier der Log:

              Wo ist der Log aus Zeile 2?

              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

              werner2000xW 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @werner2000x sagte: Hier der Log:

                Wo ist der Log aus Zeile 2?

                werner2000xW Offline
                werner2000xW Offline
                werner2000x
                schrieb am zuletzt editiert von
                #65

                @paul53 Log aus 2. Zeile:

                avascript.0	16:15:19.420	info	script.js.Meine_Geräte.FensterOffenWarung: [ 'innogy-smarthome.0.Esszimmer.Fenstersensor-Esszimmer.Fenstersensor-Esszimmer.IsOpen', 'innogy-smarthome.0.Flur.Tür-und-Fenstersensor-1.Tür-und-Fenstersensor-1.IsOpen', 'innogy-smarthome.0.Küche.Fenstersensor-Küche.Fenstersensor-Küche.IsOpen', 'innogy-smarthome.0.Schlafzimmer.Fenster.WDS.IsOpen', 'zigbee.0.00158d008b158119.contact', 'zigbee.0.00158d008b159b8c.contact', 'zigbee.0.00158d008b159c0a.contact', 'zigbee.0.00158d008b31a568.contact' ]
                javascript.0	16:15:19.421	info	script.js.Meine_Geräte.FensterOffenWarung: registered 8 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                

                Raspi4 8 GB mit Aqara Zigbee USB, iob und PI-hole
                Innogy Smarthome
                Bosch Bridge 2
                HUE Bridge
                OpenWB Wallbox mit EVU Kit
                Google Nest Pro Hub

                paul53P 1 Antwort Letzte Antwort
                0
                • werner2000xW werner2000x

                  @paul53 Log aus 2. Zeile:

                  avascript.0	16:15:19.420	info	script.js.Meine_Geräte.FensterOffenWarung: [ 'innogy-smarthome.0.Esszimmer.Fenstersensor-Esszimmer.Fenstersensor-Esszimmer.IsOpen', 'innogy-smarthome.0.Flur.Tür-und-Fenstersensor-1.Tür-und-Fenstersensor-1.IsOpen', 'innogy-smarthome.0.Küche.Fenstersensor-Küche.Fenstersensor-Küche.IsOpen', 'innogy-smarthome.0.Schlafzimmer.Fenster.WDS.IsOpen', 'zigbee.0.00158d008b158119.contact', 'zigbee.0.00158d008b159b8c.contact', 'zigbee.0.00158d008b159c0a.contact', 'zigbee.0.00158d008b31a568.contact' ]
                  javascript.0	16:15:19.421	info	script.js.Meine_Geräte.FensterOffenWarung: registered 8 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                  
                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #66

                  @werner2000x sagte: Log aus 2. Zeile

                  Da sind doch die 8 Datenpunkt-IDs der Fenster!
                  Liefert "contact" ebenfalls true bei "offen"?

                  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

                  werner2000xW 1 Antwort Letzte Antwort
                  1
                  • paul53P paul53

                    @werner2000x sagte: Log aus 2. Zeile

                    Da sind doch die 8 Datenpunkt-IDs der Fenster!
                    Liefert "contact" ebenfalls true bei "offen"?

                    werner2000xW Offline
                    werner2000xW Offline
                    werner2000x
                    schrieb am zuletzt editiert von werner2000x
                    #67

                    @paul53 Die Fenster isopen (innogy) liefern 0 bei zu, die contact-event 1 bei zu.

                    Kategorie3.jpg

                    Raspi4 8 GB mit Aqara Zigbee USB, iob und PI-hole
                    Innogy Smarthome
                    Bosch Bridge 2
                    HUE Bridge
                    OpenWB Wallbox mit EVU Kit
                    Google Nest Pro Hub

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • werner2000xW werner2000x

                      @paul53 Die Fenster isopen (innogy) liefern 0 bei zu, die contact-event 1 bei zu.

                      Kategorie3.jpg

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

                      @werner2000x sagte: contact-event 1 bei zu.

                      Dann modifiziere die Schleife:

                          for (let id of ids) {
                              let open = getState(id).val;
                              if(id.includes('contact')) open = !open;
                              if(open) count++;
                          }
                      

                      Ich würde allerdings eine Vereinheitlichung per Alias bevorzugen, wie @Codierknecht bereits erwähnte.

                      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

                      werner2000xW 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @werner2000x sagte: contact-event 1 bei zu.

                        Dann modifiziere die Schleife:

                            for (let id of ids) {
                                let open = getState(id).val;
                                if(id.includes('contact')) open = !open;
                                if(open) count++;
                            }
                        

                        Ich würde allerdings eine Vereinheitlichung per Alias bevorzugen, wie @Codierknecht bereits erwähnte.

                        werner2000xW Offline
                        werner2000xW Offline
                        werner2000x
                        schrieb am zuletzt editiert von werner2000x
                        #69

                        @paul53 Danke für die Hilfe.
                        Es kommt der Fehler "open is not defined"

                        onst ids = Array.prototype.slice.apply($("(functions=window)"));
                        log(ids);
                         
                        on({id: ids, change: "ne"}, async function() {
                            let count = 0;
                            for (let id of ids) {
                                if (getState(id).val) count++;
                                 if(id.includes('contact')) open = !open;
                                if(open) count++;
                            }
                            setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
                            log('Anzahl offen: ' + count);
                            	
                            
                        });
                        

                        Raspi4 8 GB mit Aqara Zigbee USB, iob und PI-hole
                        Innogy Smarthome
                        Bosch Bridge 2
                        HUE Bridge
                        OpenWB Wallbox mit EVU Kit
                        Google Nest Pro Hub

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • werner2000xW werner2000x

                          @paul53 Danke für die Hilfe.
                          Es kommt der Fehler "open is not defined"

                          onst ids = Array.prototype.slice.apply($("(functions=window)"));
                          log(ids);
                           
                          on({id: ids, change: "ne"}, async function() {
                              let count = 0;
                              for (let id of ids) {
                                  if (getState(id).val) count++;
                                   if(id.includes('contact')) open = !open;
                                  if(open) count++;
                              }
                              setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
                              log('Anzahl offen: ' + count);
                              	
                              
                          });
                          
                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #70

                          @werner2000x sagte: "contact event" jedoch immer noch als offen gewertet.

                          Du solltest die bestehende Schleife modifizieren und nicht eine weitere Schleife hinzufügen.

                          const ids = Array.prototype.slice.apply($("(functions=window)"));
                          // log(ids);
                           
                          on({id: ids, change: "ne"}, async function() {
                              let count = 0;
                              for (let id of ids) {
                                  let open = getState(id).val;
                                  if(id.includes('contact')) open = !open;
                                  if(open) count++;
                              }
                              setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
                              log('Anzahl offen: ' + count);
                          });
                          

                          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

                          werner2000xW 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @werner2000x sagte: "contact event" jedoch immer noch als offen gewertet.

                            Du solltest die bestehende Schleife modifizieren und nicht eine weitere Schleife hinzufügen.

                            const ids = Array.prototype.slice.apply($("(functions=window)"));
                            // log(ids);
                             
                            on({id: ids, change: "ne"}, async function() {
                                let count = 0;
                                for (let id of ids) {
                                    let open = getState(id).val;
                                    if(id.includes('contact')) open = !open;
                                    if(open) count++;
                                }
                                setStateAsync("javascript.0.FensterUeberwachung.DoorsOpen", count, true);
                                log('Anzahl offen: ' + count);
                            });
                            
                            werner2000xW Offline
                            werner2000xW Offline
                            werner2000x
                            schrieb am zuletzt editiert von
                            #71

                            @paul53 sorry, habe falsch eingefügt. Jetzt klappt es. :-)

                            Raspi4 8 GB mit Aqara Zigbee USB, iob und PI-hole
                            Innogy Smarthome
                            Bosch Bridge 2
                            HUE Bridge
                            OpenWB Wallbox mit EVU Kit
                            Google Nest Pro Hub

                            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

                            413

                            Online

                            32.4k

                            Benutzer

                            81.5k

                            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