Ankündigung

Einklappen
Keine Ankündigung bisher.

Beleuchtung mit zeitverzögerung einschalten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Beleuchtung mit zeitverzögerung einschalten

    Hallo zusammen,

    im Moment sehe ich wahrscheinlich den Baum vor lauter Wald nicht

    Ich habe eine Regel, welche Abends die Beleuchtung vor dem Haus einschaltet.
    Nun würde ich die einzelnen Lampen mit ein wenig Zeit Verzögerung schalten lassen wollen,
    ganz so als würde innen jemand von Schalter zu Schalter laufen ;-)

    Am liebsten also sogar noch zufällig zwischen 5 und 15 Sekunden, damit dies nicht immer gleich ist.

    Geht dies?? Habe schon im GitHub gesucht, bin aber nicht wirklich weiter gekommen.

    VG und einen tollen 1. Advent

    Jörg

    #2
    Ja, das sollte gehen, in deiner Regel machst Du höchst wahrscheinlich ein sendCommand(Lampe1, ON) und dann das gleiche für Lampe 2 usw. Wenn Du es allerdings über eine Gruppe machst, dann musst Du ein bisschen was ändern. Eigentlich musst Du jedes Einschalten in einen Timer einbauen. Da findest Du im Wiki was. Ansonste poste mal deine aktuelle Rule, dann wissen wir besser wie und wo ansetzen.

    Gruß
    Thomas

    Kommentar


      #3
      Also derzeit habe ich folgendes:

      Code:
      rule Sunset_Event_30
      when
       Item Sunset_Event_30 received update ON
      then
       Lampe_Haustuere.sendCommand(ON)
       Thread::sleep(2000) //time is set in milliseconds (1000ms = 1sec)
       Lampe_Treppe.sendCommand(ON)
      end
      Ich würde aber lieber zwischen den beiden Schaltvorgängen eine Zeit haben, die zufällig zwischen z.B. 2-5 Sekunden liegt.

      Dazu habe ich im Wiki nix gefunden :-(

      Gruß,
      Jörg

      Kommentar


        #4
        Wenn Du Dir die Demo rules mal anschaust, wirst Du eine hilfreiche Funktion finden nämlich Math::random. Diese Funktion liefert eine zufällige Zahl zwischen 0 und 1, wenn Du sie also mit 5000 multiplizierst, hast Du Deine Zufälligkeit.

        Kommentar


          #5
          Hi,

          also ich habe jetzt mit

          Code:
          Thread::sleep((Math::random * 5000.0).intValue)
          Eine zufällige Einschaltzeit, aber manchmal eben auch "sofort" da die Zufallszahl ja 0-x ist.
          Wie könnte ich denn 3-x erreichen??

          Gruß,
          Jörg

          Kommentar


            #6
            Zitat von JoergA Beitrag anzeigen
            Code:
            Thread::sleep((Math::random * 5000.0).intValue)
            Wie könnte ich denn 3-x erreichen??
            Wie wäre es mit
            Code:
            Thread::sleep((3000 + Math::random * 2000.0).intValue)

            Kommentar


              #7
              DANKE, works like a charm

              Kommentar

              Lädt...
              X