Seite 1 von 1

Variabler Timer für Bewässerung

Verfasst: 29. Mai 2020 14:00
von sami77
Hallo in die Runde,

ich habe mal eine kleine Frage...

Ich habe mir eine Rule gebaut, die ich über einen Dummy Schalter aktiviere, die dann meine Bewässerung (Hunter Magnetventil über SonOFF) für 15 min. einschaltet.

Ganz einfacher timer: - > sprinklertimer = createTimer(now.plusMinutes(15) ...

Funktioniert bestens!

Gibt es die Möglichkeit, quasi mit einer Scroll-Auswahl die Minuten variabel einzustellen? Ideal wäre, wenn ich in meiner App, diesen Wert variabel anpassen könnte?

quasi: > sprinklertimer = createTimer(now.plusMinutes(VARIABEL)
VARIABEL = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.........30

1000 Dank schon mal im Voraus!
Gruß!
Uwe

Re: Variabler Timer für Bewässerung

Verfasst: 29. Mai 2020 22:12
von EmptySoft
In der Sitemap kannst Du einer Variable den Wert zuweisen

Code: Alles auswählen

Setpoint item=var_Dauer label="Dauer in Minuten [%d min]" step=1 minValue=1 maxValue=30
Variable var_Dauer in der Rule natürlich initialisieren

Re: Variabler Timer für Bewässerung

Verfasst: 2. Jun 2020 16:43
von sami77
Hi Harald, das war das Stichwort! Vielen Dank!

Hier noch mal die kompletteLösung, falls es jemand nachbauen will:

Beschreibung: Ich möchte einen Schaltvorgang auslösen, der nach einer bestimmten Zeit das Gerät wieder ausschaltet. Diese Zeit kann ich variabel in meiner Sitemap festlegen. Ich habe damit einen Sprinkler, den ich wahlweise länger oder kürzer regnen lassen kann...

Benötigte Items in meine.items:

Code: Alles auswählen

Number Timerzeit "Zeit [%d min]"
/Variabler Wert in Minuten

Code: Alles auswählen

Switch Timerswitch
/Schalter für den variablen Timer


Sitemap:

Code: Alles auswählen

Setpoint item=Timerzeit label="Dauer in Minuten [%d min]" step=1 minValue=1 maxValue=30 icon=rain
/hier lege ich die Ober-/untergrenze der Auswahlwerte fest und das Intervall - hier also 1 bis 30 min. regnen lassen

Stattdessen geht das auch über einen Schieberegler, was in meinem Fall günstiger ist!

Code: Alles auswählen

Slider item=Timerzeit label="Dauer in Minuten [%d min]" step=1 minValue=1 maxValue=30 icon=rain   

Rule:

Code: Alles auswählen

var vartimer

rule "Bewässerung Variabel"
    when
        Item Timerswitch received update ON
    then
        
       logInfo("FILE", "Setting to ON and creating var timer") 
       		Sprinkler.sendCommand(ON)
          val Integer Timer_Time = (Timerzeit.state as DecimalType).intValue
       		vartimer = createTimer(now.plusMinutes(Timer_Time), [|
       		logInfo("FILE", "Timer expired and setting to OFF")
       		Sprinkler.sendCommand(OFF) 
       		Timerswitch.sendCommand(OFF)


       		])

end 

Ich hoffe es hilft jemandem weiter!

Viel Erfolg und Spaß! ;)

Gruß
U