Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Script über Button vorübergehend deaktivieren

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Script über Button vorübergehend deaktivieren

Scheduled Pinned Locked Moved Skripten / Logik
2 Posts 2 Posters 813 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    noxx
    wrote on last edited by
    #1

    Hallo,

    ich nutze für einen Sonoff S20 (mit Tasmota FW und HUE Adapter) aktuell folgendes Script:

    var idTemp = "rflink.0.channels.Cresta_4.TEMP"/*Cresta_ 4 Temperature*/;
    var idAktor = "hue.0.Philips_hue.Sonoff2.on"/*Philips_hue.Sonoff2.on*/;
    
    var minOn = false;
    var temp = getState(idTemp).val;
    var aktor = getState(idAktor).val;
    
    function Zeitschaltung() {
       var morgen = compareTime('05:00', '07:00', 'between');
       var mittag = compareTime('13:00', '15:00', 'between');
       var nachmittag = compareTime('15:30', '19:30', 'between');
       var abend = compareTime('20:00', '22:00', 'between');
       if(morgen || mittag || (nachmittag && temp > 25) || abend) {
          if(!aktor) setState(idAktor, true);
       } else if(aktor && !minOn) setState(idAktor, false);
    }
    
    schedule('* * * * *', Zeitschaltung);  // jede Minute
    
    on(idTemp, function(dp) {
       temp = dp.state.val;
    });
    
    on({id: idAktor, ack: true}, function(dp) {
       aktor = dp.state.val;
       if(aktor) {
          minOn = true;
          setTimeout(function() {minOn = false;}, 1800000);  // 30 Minuten
       }
    });
    

    Nun möchte ich, das wenn ich den Schalter am Sonoff oder einen VIS-Button drücke, um

    manuell zu schalten, dieser Zustand bis 00:00 anhält und nicht mehr das Script durchlaufen wird.

    Wie stelle ich das an?

    Aktuell kann es sein, das ich manuell schalte und iobroker mir den Schalter nach 1 Minute deaktiviert.

    Gruß

    1 Reply Last reply
    0
    • BuZZyB Offline
      BuZZyB Offline
      BuZZy
      wrote on last edited by
      #2

      Manuellen Datenpunkt erstellen, diesen bei Knopfdruck auf 1 stellen und das Script anpassen dass wenn der Datenpunkt = 1 ist dann nichts tun. Zusätzlich um 0 Uhr mit einem Cronjob den Datenpunkt wieder auf 0 zurück setzen..

      Von unterwegs gesendet

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      Support us

      ioBroker
      Community Adapters
      Donate

      553

      Online

      32.7k

      Users

      82.3k

      Topics

      1.3m

      Posts
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Home
      • Recent
      • Tags
      • Unread 0
      • Categories
      • Unreplied
      • Popular
      • GitHub
      • Docu
      • Hilfe