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. JavaScript
  5. [gelöst] Zeitlich verzögertes Einschalten eines "Slave"

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    109

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    152

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    865

[gelöst] Zeitlich verzögertes Einschalten eines "Slave"

Scheduled Pinned Locked Moved JavaScript
javascript
6 Posts 3 Posters 413 Views 2 Watching
  • 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.
  • K Offline
    K Offline
    klaus88
    wrote on last edited by klaus88
    #1

    Hallo,
    bräuchte einen Tipp von euch:
    Ich möchte gerne mit einem Schalter mein Büro stromlos machen. Ist ein relativ leichtes Unterfangen (dachte ich!) und baute einen Sonoff (Tasmota) R2 ein um ihn über den iobroker bzw. natürlich der VIS ein und aus zu schalten.
    Funktioniert prinzipiell - nur ab und zu fällt mir die Sicherung, weil anscheinend so viel draufhängt, dass der Startstrom oder die Startleistung zu viel wird.

    Daher hatte ich folgende Idee:
    Alle Verbraucher aufteilen auf 2 Verteiler wobei der Sonoff Power R2 den ersten Verteiler einschaltet und dann eine Sonoff WLAN Steckdose am 1. Verteiler den 2. Verteiler zeitlich verzögert einschaltet.
    Script dazu weiter unten.
    Nur : Wenn der erste Verteiler stromlos ist, ist auch die WLAN Steckdose stromlos. Daher muss ich beim einschalten warten bis diese im Netz ist um einen State zu setzen.
    Habt ihr vielleicht hier eine bessere, oder einfachere Idee?

    Script:
    Ich habe einen State den ich true oder false setze. Aufgrund der Änderung dieses States wird der 1 Verteiler eingeschalten und 60 sek. später der 2. Verteiler über die WLAN Steckdose. Ich gehe von der Annahme aus, dass eine WLAN Steckdose innerhalb 60 sek. am Netz ist.
    Beim Ausschalten gehe ich den anderen Weg, damit die WLAN Steckdose auch beim starten auch wirklich den State false hat - also nicht eingeschaltet ist.

    /* -----------------------------------
    zeitlich verzögertes einschalten des Büros
    Veröffentlichungsdatum: 26.10.2021
    
    Änderungen:
    
    ------------------------------------*/
    
    //Setzen des State im VIS, falls noch nicht vorhanden
    var Beschreibung = new Array();
    var Name = new Array();
    var Art = new Array();
    var Def = new Array();
    Beschreibung[0] = "0_userdata.0.VIS.Buero1OG.Power";
    Name[0] = "Buero 1OG Power";
    Art[0] = "boolean";
    Def[0] = "false";
    
    	
    for (var x = 0; x < Beschreibung.length; x++) {
    		if (!existsState(Beschreibung[x])) {
    			createState(Beschreibung[x], {
    				type: Art[x],
    				name: Name[x],
    				read: true,
    				write: true,
    				def: Def[x]
    			});
    		}
    	}
    	
    var objBuero_Master = 'sonoff.0.SonOffBuero1OG.POWER';
    var objBuero_Slave = 'sonoff.0.SonOffS20_2.POWER';	
    
    	
    on({id: Beschreibung[0], val: true}, function(dp) {
    	setState(objBuero_Master, true);
    	setTimeout(function() {
    		setState(objBuero_Slave, true);
    		}, 60000);
    });
    
    on({id: Beschreibung[0], val: false}, function(dp) {
    	setState(objBuero_Slave, false);
    	setTimeout(function() {
    		setState(objBuero_Master, false);
    		}, 5000);
    });
    

    Danke für eure Hilfe.
    Klaus

    AsgothianA 1 Reply Last reply
    0
    • K klaus88

      Hallo,
      bräuchte einen Tipp von euch:
      Ich möchte gerne mit einem Schalter mein Büro stromlos machen. Ist ein relativ leichtes Unterfangen (dachte ich!) und baute einen Sonoff (Tasmota) R2 ein um ihn über den iobroker bzw. natürlich der VIS ein und aus zu schalten.
      Funktioniert prinzipiell - nur ab und zu fällt mir die Sicherung, weil anscheinend so viel draufhängt, dass der Startstrom oder die Startleistung zu viel wird.

      Daher hatte ich folgende Idee:
      Alle Verbraucher aufteilen auf 2 Verteiler wobei der Sonoff Power R2 den ersten Verteiler einschaltet und dann eine Sonoff WLAN Steckdose am 1. Verteiler den 2. Verteiler zeitlich verzögert einschaltet.
      Script dazu weiter unten.
      Nur : Wenn der erste Verteiler stromlos ist, ist auch die WLAN Steckdose stromlos. Daher muss ich beim einschalten warten bis diese im Netz ist um einen State zu setzen.
      Habt ihr vielleicht hier eine bessere, oder einfachere Idee?

      Script:
      Ich habe einen State den ich true oder false setze. Aufgrund der Änderung dieses States wird der 1 Verteiler eingeschalten und 60 sek. später der 2. Verteiler über die WLAN Steckdose. Ich gehe von der Annahme aus, dass eine WLAN Steckdose innerhalb 60 sek. am Netz ist.
      Beim Ausschalten gehe ich den anderen Weg, damit die WLAN Steckdose auch beim starten auch wirklich den State false hat - also nicht eingeschaltet ist.

      /* -----------------------------------
      zeitlich verzögertes einschalten des Büros
      Veröffentlichungsdatum: 26.10.2021
      
      Änderungen:
      
      ------------------------------------*/
      
      //Setzen des State im VIS, falls noch nicht vorhanden
      var Beschreibung = new Array();
      var Name = new Array();
      var Art = new Array();
      var Def = new Array();
      Beschreibung[0] = "0_userdata.0.VIS.Buero1OG.Power";
      Name[0] = "Buero 1OG Power";
      Art[0] = "boolean";
      Def[0] = "false";
      
      	
      for (var x = 0; x < Beschreibung.length; x++) {
      		if (!existsState(Beschreibung[x])) {
      			createState(Beschreibung[x], {
      				type: Art[x],
      				name: Name[x],
      				read: true,
      				write: true,
      				def: Def[x]
      			});
      		}
      	}
      	
      var objBuero_Master = 'sonoff.0.SonOffBuero1OG.POWER';
      var objBuero_Slave = 'sonoff.0.SonOffS20_2.POWER';	
      
      	
      on({id: Beschreibung[0], val: true}, function(dp) {
      	setState(objBuero_Master, true);
      	setTimeout(function() {
      		setState(objBuero_Slave, true);
      		}, 60000);
      });
      
      on({id: Beschreibung[0], val: false}, function(dp) {
      	setState(objBuero_Slave, false);
      	setTimeout(function() {
      		setState(objBuero_Master, false);
      		}, 5000);
      });
      

      Danke für eure Hilfe.
      Klaus

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      wrote on last edited by
      #2

      @klaus88 sagte in Zeitlich verzögertes Einschalten einer "Slave" - Steckdose:

      Daher hatte ich folgende Idee:
      Alle Verbraucher aufteilen auf 2 Verteiler wobei der Sonoff Power R2 den ersten Verteiler einschaltet und dann eine Sonoff WLAN Steckdose am 1. Verteiler den 2. Verteiler zeitlich verzögert einschaltet.
      Script dazu weiter unten.
      Nur : Wenn der erste Verteiler stromlos ist, ist auch die WLAN Steckdose stromlos. Daher muss ich beim einschalten warten bis diese im Netz ist um einen State zu setzen.
      Habt ihr vielleicht hier eine bessere, oder einfachere Idee?
      Script:
      Ich habe einen State den ich true oder false setze. Aufgrund der Änderung dieses States wird der 1 Verteiler eingeschalten und 60 sek. später der 2. Verteiler über die WLAN Steckdose. Ich gehe von der Annahme aus, dass eine WLAN Steckdose innerhalb 60 sek. am Netz ist.
      Beim Ausschalten gehe ich den anderen Weg, damit die WLAN Steckdose auch beim starten auch wirklich den State false hat - also nicht eingeschaltet ist.

      Bitte bedenken:

      • Wie ist das Einschaltverhalten der WLan Steckdose. Behält sie den letzten Status bei oder ist sie beim einschalten immer "an" ?
      • im Adapter für die WLan Steckdose sollte es einen State für die Verbindung geben. Ich würde beim einschalten auf diesen State triggern um sicher zu gehen das der Schaltbefehl durch geht. Das sollte besser sein als eine Zeitsteuerung.

      Ich würde im Zweifelsfall nicht das ganze Büro stromlos schalten sondern (wenn elektrisch möglich) über mehrere Schaltsteckdosen arbeiten. Der Strombedarf der Schaltsteckdosen ist gering, so das das energetisch unkritisch sein sollte.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      K 1 Reply Last reply
      1
      • AsgothianA Asgothian

        @klaus88 sagte in Zeitlich verzögertes Einschalten einer "Slave" - Steckdose:

        Daher hatte ich folgende Idee:
        Alle Verbraucher aufteilen auf 2 Verteiler wobei der Sonoff Power R2 den ersten Verteiler einschaltet und dann eine Sonoff WLAN Steckdose am 1. Verteiler den 2. Verteiler zeitlich verzögert einschaltet.
        Script dazu weiter unten.
        Nur : Wenn der erste Verteiler stromlos ist, ist auch die WLAN Steckdose stromlos. Daher muss ich beim einschalten warten bis diese im Netz ist um einen State zu setzen.
        Habt ihr vielleicht hier eine bessere, oder einfachere Idee?
        Script:
        Ich habe einen State den ich true oder false setze. Aufgrund der Änderung dieses States wird der 1 Verteiler eingeschalten und 60 sek. später der 2. Verteiler über die WLAN Steckdose. Ich gehe von der Annahme aus, dass eine WLAN Steckdose innerhalb 60 sek. am Netz ist.
        Beim Ausschalten gehe ich den anderen Weg, damit die WLAN Steckdose auch beim starten auch wirklich den State false hat - also nicht eingeschaltet ist.

        Bitte bedenken:

        • Wie ist das Einschaltverhalten der WLan Steckdose. Behält sie den letzten Status bei oder ist sie beim einschalten immer "an" ?
        • im Adapter für die WLan Steckdose sollte es einen State für die Verbindung geben. Ich würde beim einschalten auf diesen State triggern um sicher zu gehen das der Schaltbefehl durch geht. Das sollte besser sein als eine Zeitsteuerung.

        Ich würde im Zweifelsfall nicht das ganze Büro stromlos schalten sondern (wenn elektrisch möglich) über mehrere Schaltsteckdosen arbeiten. Der Strombedarf der Schaltsteckdosen ist gering, so das das energetisch unkritisch sein sollte.

        A.

        K Offline
        K Offline
        klaus88
        wrote on last edited by
        #3

        @asgothian : Erstmal ganz herzlichen Dank für deine Rückmeldung! Kurz zu deinen Themen : WLAN Steckdose ist genau so - also sie "merkt" sich den letzten Status.

        Frage zu deiner 2. Bemerkung: Das ist mir auch eingefallen, aber ich bin dann bei folgenden Problem hängen geblieben, da ich kein Profi in Java bin:
        Geht es, dass ich verschachtelt 2 onChange funktionen betreibe bzw. abfrage?
        Also erste wäre wie im Script oben : on({id: Beschreibung[0], val: true}, function(dp) {
        Zweite, wäre dann darunter (also in der ersten onchange Funktion) wenn die WLAN Steckdose alive ist
        Weißt du das - geht das?

        Danke
        Klaus

        paul53P 1 Reply Last reply
        0
        • K klaus88

          @asgothian : Erstmal ganz herzlichen Dank für deine Rückmeldung! Kurz zu deinen Themen : WLAN Steckdose ist genau so - also sie "merkt" sich den letzten Status.

          Frage zu deiner 2. Bemerkung: Das ist mir auch eingefallen, aber ich bin dann bei folgenden Problem hängen geblieben, da ich kein Profi in Java bin:
          Geht es, dass ich verschachtelt 2 onChange funktionen betreibe bzw. abfrage?
          Also erste wäre wie im Script oben : on({id: Beschreibung[0], val: true}, function(dp) {
          Zweite, wäre dann darunter (also in der ersten onchange Funktion) wenn die WLAN Steckdose alive ist
          Weißt du das - geht das?

          Danke
          Klaus

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @klaus88 sagte: Geht es, dass ich verschachtelt 2 onChange funktionen betreibe bzw. abfrage?

          Nicht verschachtelt, sondern untereinander. Und nur einen Trigger pro Datenpunkt verwenden, da sonst Ressourcenverschwendung.

          on(Beschreibung[0], function(dp) { // triggert bei Wertänderung
             if(dp.state.val) setState(objBuero_Master, true);
             else {
          	setState(objBuero_Slave, false);
          	setTimeout(function() {
          	    setState(objBuero_Master, false);
          	}, 1000);
             }
          });
          
          on({id: idConnected, change: 'gt'}, function() {
             if(getState(objBuero_Master).val) setState(objBuero_Slave, true);
          });
          

          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

          K 2 Replies Last reply
          1
          • paul53P paul53

            @klaus88 sagte: Geht es, dass ich verschachtelt 2 onChange funktionen betreibe bzw. abfrage?

            Nicht verschachtelt, sondern untereinander. Und nur einen Trigger pro Datenpunkt verwenden, da sonst Ressourcenverschwendung.

            on(Beschreibung[0], function(dp) { // triggert bei Wertänderung
               if(dp.state.val) setState(objBuero_Master, true);
               else {
            	setState(objBuero_Slave, false);
            	setTimeout(function() {
            	    setState(objBuero_Master, false);
            	}, 1000);
               }
            });
            
            on({id: idConnected, change: 'gt'}, function() {
               if(getState(objBuero_Master).val) setState(objBuero_Slave, true);
            });
            
            K Offline
            K Offline
            klaus88
            wrote on last edited by
            #5

            @paul53 : OK Alles klar - Danke!! - werde ich heute abend mal versuchen!
            Danke vielmals für die Hilfe!

            lg
            Klaus

            1 Reply Last reply
            0
            • paul53P paul53

              @klaus88 sagte: Geht es, dass ich verschachtelt 2 onChange funktionen betreibe bzw. abfrage?

              Nicht verschachtelt, sondern untereinander. Und nur einen Trigger pro Datenpunkt verwenden, da sonst Ressourcenverschwendung.

              on(Beschreibung[0], function(dp) { // triggert bei Wertänderung
                 if(dp.state.val) setState(objBuero_Master, true);
                 else {
              	setState(objBuero_Slave, false);
              	setTimeout(function() {
              	    setState(objBuero_Master, false);
              	}, 1000);
                 }
              });
              
              on({id: idConnected, change: 'gt'}, function() {
                 if(getState(objBuero_Master).val) setState(objBuero_Slave, true);
              });
              
              K Offline
              K Offline
              klaus88
              wrote on last edited by klaus88
              #6

              @paul53 :

              Hab's natürlich nicht bis am Abend ausgehalten :-)

              FUNKTIONIERT PERFEKT!! DANKE vielmals für eure Hilfe.

              Falls jemand ein ähnliches Problem hat hier das endgültige Script:

              /* -----------------------------------
              zeitlich verzögertes einschalten des Büros
              Veröffentlichungsdatum: 26.10.2021
              
              Änderungen:
              
              ------------------------------------*/
              
              /*Setzen des State im VIS, falls noch nicht vorhanden*/
              var Beschreibung = new Array();
              var Name = new Array();
              var Art = new Array();
              var Def = new Array();
              Beschreibung[0] = "0_userdata.0.VIS.Buero1OG.Power";
              Name[0] = "Buero 1OG Power";
              Art[0] = "boolean";
              Def[0] = "false";
              
              	
              for (var x = 0; x < Beschreibung.length; x++) {
              		if (!existsState(Beschreibung[x])) {
              			createState(Beschreibung[x], {
              				type: Art[x],
              				name: Name[x],
              				read: true,
              				write: true,
              				def: Def[x]
              			});
              		}
              	}
              	
              var objBuero_Master = 'sonoff.0.SonOffBuero1OG.POWER';
              var objBuero_Slave = 'sonoff.0.SonOffS20_2.POWER';
              var objBuero_Slaveconnected = 'sonoff.0.SonOffS20_2.alive';	
              
              	
              on({id:Beschreibung[0], change: 'any'}, function(dp) {
              	if(dp.state.val) setState(objBuero_Master, true);
              		else {
              				setState(objBuero_Slave, false);
              				setTimeout(function() {
              					setState(objBuero_Master, false);
              				}, 10000);
              		}	
              });
              
              /* Change bei Änderung die größer ist als der alte Wert --> also bei true */
              on({id: objBuero_Slaveconnected, change: 'gt'}, function() {
                 if(getState(objBuero_Master).val) setState(objBuero_Slave, true);
              });
              

              lg
              Klaus

              1 Reply Last reply
              0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              503

              Online

              32.8k

              Users

              82.7k

              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