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. [gelöst]Funktion nur für bestimmten Zeitraum ausführen (Timer)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    406

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

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

[gelöst]Funktion nur für bestimmten Zeitraum ausführen (Timer)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 436 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.
  • ChaotC Offline
    ChaotC Offline
    Chaot
    schrieb am zuletzt editiert von
    #1

    Ich bin gerade irgendwie nicht so richtig auf der Höhe und brauche mal etwas Hilfe.

    Folgende Ausgangssituation:

    Ich habe in einem Zimmer einen Dect Thermostaten und einen Dash Button

    Über den Dash Button möchte ich den Thermostaten voll aufregeln.

    Das erfolgt hiermit:

    var Taster = "amazon-dash.0.00-fc-xx-xx-xx-a9.pressed"/*pressed*/; 
    var idTarget = "fritzdect.0.Comet_1196xxx99192.targettemp"/*Target Temp*/;
    var idComfy = "fritzdect.0.Comet_1196xxx99192.comfytemp";
    var idNight = "fritzdect.0.Comet_1196xxx99192.nighttemp";
    var idHigh = "28";
    
    on({id: Taster, val: true}, function (obj) {
    setState(idTarget, idHigh);
    });
    
    

    Soweit funktioniert das jetzt ohne Probleme.

    Jetzt möchte ich allerdings die Funktion erweitern und bin mir nicht so richtig im Klaren wie ich vorgehen sollte.

    Hinzufügen möchte ich:

    • einen Timer mit 60 Minuten der nach 60 Minuten auf die die Komforttemperatur zurückschaltet. Bei erneutem Drücken soll der Timer neu starten.

    • einen Datenpunkt in dem ich die abgelaufene Zeit des Timers sehen kann für VIS

    Ich habe mehrere Möglichkeiten gefunden aber bin scheinbar irgendwie zu blöd das umzusetzen.

    viewtopic.php?f=21&t=16364&p=172478&hil … pt#p172478

    viewtopic.php?f=21&t=7808

    Bitte zerlegt mich jetzt nicht, aber ich bin die Tage nicht so richtig fähig klar zu denken(Erkältung), möchte aber das irgendwie schon weiterbringen.

    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @Chaot:

      • einen Datenpunkt in dem ich die abgelaufene Zeit des Timers sehen kann für VIS `
        Dafür muss man setInterval() verwenden. Möchtest Du die abgelaufene Zeit oder die Restdauer anzeigen ?

      Vorschlag (nicht getestet) mit Restdauer (in Minuten):

      const idTaster = "amazon-dash.0.00-fc-xx-xx-xx-a9.pressed"/*pressed*/; 
      const idTarget = "fritzdect.0.Comet_1196xxx99192.targettemp"/*Target Temp*/;
      const idComfy = "fritzdect.0.Comet_1196xxx99192.comfytemp";
      const idNight = "fritzdect.0.Comet_1196xxx99192.nighttemp";
      const idVis = "javascript.0..."; // Anzeige Restdauer in Minuten
      const High = 28;
      
      var cnt = getState(idVis).val;
      var timer = null;
      
      function countDown() {
         cnt--;
         setState(idVis, cnt, true);
         if(cnt <= 0) {
            clearInterval(timer);
            setState(idTarget, getState(idComfy).val);
         }   
      }
      
      on({id: idTaster, val: true}, function () {
         setState(idTarget, High);
         cnt = 60;
         setState(idVis, cnt, true);
         if(timer) clearInterval(timer);
         timer = setInterval(countDown, 60000); // jede Minute
      });
      

      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
      • ChaotC Offline
        ChaotC Offline
        Chaot
        schrieb am zuletzt editiert von
        #3

        Ich danke dir ganz herzlich.

        Das funktioniert einwandfrei.

        Darf ich noch eine Frage loswerden?

        Du hast den Anfang von

        "var"

        auf

        "const"

        geändert. Was ist da der Unterschied?

        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Chaot:

          Was ist da der Unterschied? `
          Mit const deklariert man Konstanten, deren Wert anschließend im Skript nicht mehr geändert werden kann (trifft nicht auf den <u>Inhalt</u> von Objekten / Arrays zu). Es ist einfach nur konsequenter.

          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
          • ChaotC Offline
            ChaotC Offline
            Chaot
            schrieb am zuletzt editiert von
            #5

            Danke!

            Wieder etwas schlauer :D

            ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

            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

            325

            Online

            32.7k

            Benutzer

            82.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