Variabler Timer für Bewässerung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
sami77
Beiträge: 86
Registriert: 25. Sep 2017 19:04
Answers: 1

Variabler Timer für Bewässerung

Beitrag 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
von sami77 » 2. Jun 2020 16:43
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
Gehe zur vollständigen Antwort

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Variabler Timer für Bewässerung

Beitrag 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
BYe
Harald

sami77
Beiträge: 86
Registriert: 25. Sep 2017 19:04
Answers: 1

Re: Variabler Timer für Bewässerung

Beitrag 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

Antworten