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. Mehrere Fenster - Check, ob länger als 15min geöffnet

NEWS

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

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

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

Mehrere Fenster - Check, ob länger als 15min geöffnet

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blockly
8 Beiträge 4 Kommentatoren 655 Aufrufe 2 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.
  • P Offline
    P Offline
    piro
    schrieb am zuletzt editiert von piro
    #1

    Hallo zusammen,

    Iobroker ist echt genial. Bin seit 2 Wochen dabei. Sehr genial.

    Ich möchte gerne folgendes umsetzen.

    Alle Fenster sollen bei Statusänderungen überprüft werden. Das bekomme ich hin.
    Wenn festgestellt wurde, dass ein Fenster geöffnet ist, soll nach 15 Minuten wieder überprüft werden, ob es immer noch geöffnet ist. Wenn ja, soll eine Benachrichtigung versendet werden.

    Ich könnte jetzt für jedes Fenster und für jede Tür ein Script schreiben und mit Intervall 15 Minuten dies realisieren.

    Frage: Kann man das auch in einem Script bewerkstelligen?

    Idee: Ein Script mit Threads damit die Überprüfung bei STATE Änderung weiter läuft. Aber wie geht das? Geht das überhaupt?
    Oder muss ich wirklich für jedes ein eigenes Script haben?

    Danke im Voraus.
    Sven

    paul53P htreckslerH 2 Antworten Letzte Antwort
    0
    • P piro

      Hallo zusammen,

      Iobroker ist echt genial. Bin seit 2 Wochen dabei. Sehr genial.

      Ich möchte gerne folgendes umsetzen.

      Alle Fenster sollen bei Statusänderungen überprüft werden. Das bekomme ich hin.
      Wenn festgestellt wurde, dass ein Fenster geöffnet ist, soll nach 15 Minuten wieder überprüft werden, ob es immer noch geöffnet ist. Wenn ja, soll eine Benachrichtigung versendet werden.

      Ich könnte jetzt für jedes Fenster und für jede Tür ein Script schreiben und mit Intervall 15 Minuten dies realisieren.

      Frage: Kann man das auch in einem Script bewerkstelligen?

      Idee: Ein Script mit Threads damit die Überprüfung bei STATE Änderung weiter läuft. Aber wie geht das? Geht das überhaupt?
      Oder muss ich wirklich für jedes ein eigenes Script haben?

      Danke im Voraus.
      Sven

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

      @piro sagte:

      muss ich wirklich für jedes ein eigenes Script haben?

      Nein, aber für jedes Fenster einen eigenen Trigger und eine eigene Verzögerung (timeout) bzw. eigenes Intervall.

      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

      1 Antwort Letzte Antwort
      0
      • P piro

        Hallo zusammen,

        Iobroker ist echt genial. Bin seit 2 Wochen dabei. Sehr genial.

        Ich möchte gerne folgendes umsetzen.

        Alle Fenster sollen bei Statusänderungen überprüft werden. Das bekomme ich hin.
        Wenn festgestellt wurde, dass ein Fenster geöffnet ist, soll nach 15 Minuten wieder überprüft werden, ob es immer noch geöffnet ist. Wenn ja, soll eine Benachrichtigung versendet werden.

        Ich könnte jetzt für jedes Fenster und für jede Tür ein Script schreiben und mit Intervall 15 Minuten dies realisieren.

        Frage: Kann man das auch in einem Script bewerkstelligen?

        Idee: Ein Script mit Threads damit die Überprüfung bei STATE Änderung weiter läuft. Aber wie geht das? Geht das überhaupt?
        Oder muss ich wirklich für jedes ein eigenes Script haben?

        Danke im Voraus.
        Sven

        htreckslerH Offline
        htreckslerH Offline
        htrecksler
        Forum Testing
        schrieb am zuletzt editiert von
        #3

        @piro
        Das Script macht das was du möchtest.

        var idFensterAuf = "hm-rpc.0.NEQ1158xxx.1.STATE";
        var timer    = null;
        subscribe(idFensterAuf, function (obj) {
           if (obj.newState.val) {
              // Starte timer für 60 Minuten
              if (!timer) {
                 timer = setTimeout(function () {
                    timer = null;
                    //log("Fenster länger als 60 Minuten auf", 'warn');
                 }, 60*60000);
              }
           } else {
              // Fenster zugemacht. Falls timer läuft = stopp
              //log('Fenster geschlossen!', 'warn');
              if (timer) {
                 clearTimeout(timer);
                 timer = null;
              }
           }
        });
        
        

        Gruss Hermann

        ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          piro
          schrieb am zuletzt editiert von
          #4

          @htrecksler mit deinem Script würde ich es aber für jedes Fenster bzw. Tür erstellen müssen, oder?

          @paul53 Ok, es wäre dann ein Script aber ganz viele Trigger. Da geht auch die Übersichtlichkeit verloren.

          Aktuell arbeite ich mit dem Selector, um zu schauen, ob sich ein Zustand ändert.

          Ich versuche einfach mal ein Script und berücksichtige eure Hinweise.

          Trotzdem bin ich dankbar für weitere Hilfestellung

          paul53P 1 Antwort Letzte Antwort
          0
          • P piro

            @htrecksler mit deinem Script würde ich es aber für jedes Fenster bzw. Tür erstellen müssen, oder?

            @paul53 Ok, es wäre dann ein Script aber ganz viele Trigger. Da geht auch die Übersichtlichkeit verloren.

            Aktuell arbeite ich mit dem Selector, um zu schauen, ob sich ein Zustand ändert.

            Ich versuche einfach mal ein Script und berücksichtige eure Hinweise.

            Trotzdem bin ich dankbar für weitere Hilfestellung

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

            @piro sagte:

            ganz viele Trigger. Da geht auch die Übersichtlichkeit verloren.

            Alternative: Ein Array mit IDs und dazu ein Array mit Timer-Variablen.

            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

            paul53P 1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              piro
              schrieb am zuletzt editiert von
              #6

              oh, dass ist Neuland für mich. Ich versuche heute Abend mal mein Glück und werde es euch wissen lassen.

              B 1 Antwort Letzte Antwort
              0
              • P piro

                oh, dass ist Neuland für mich. Ich versuche heute Abend mal mein Glück und werde es euch wissen lassen.

                B Offline
                B Offline
                BoehserWolf
                schrieb am zuletzt editiert von
                #7

                @piro Glaube das Script von @Pittini ist was du suchst.

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @piro sagte:

                  ganz viele Trigger. Da geht auch die Übersichtlichkeit verloren.

                  Alternative: Ein Array mit IDs und dazu ein Array mit Timer-Variablen.

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

                  @piro sagte:

                  Aktuell arbeite ich mit dem Selector

                  @paul53 sagte:

                  Array mit IDs und dazu ein Array mit Timer-Variablen.

                  Etwa so:

                  const STATEs = $('*.STATE');
                  const ids = [];
                  const timers = [];
                  
                  STATEs.each(function(id, i) {
                      ids[i] = id;
                  });
                  
                  on(ids, function(dp) {
                      let idx = ids.indexOf(dp.id);
                      if(dp.state.val) {
                          timers[idx] = setInterval(function() {
                              sendTo('telegram.0', 'Fenster ' + dp.common.name + ' ist mind. 15 Minuten offen');
                          }, 900000); // 15 Minuten
                      }
                      else if(timers[idx]) clearInterval(timers[idx]);
                  });
                  

                  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

                  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

                  892

                  Online

                  32.5k

                  Benutzer

                  81.6k

                  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