Hallo,
ich bin gerade auf der Suche nach einer Zeitverknüpfung. Über die Suche bin ich hier noch nicht ganz fündig geworden.
Ich stelle mir das so vor, dass ich ein Dummy Gerät habe, nennen wir es Rasenbewässerung.
Sobald ich dieses einschalte soll jeder Ausgang/Gerät (4 an der Zahl) für eine gewisse Zeit (1-3 5 Minuten, 4 10 Minuten) laufen.
Ich kann zwar mit diversen Events abfragen ob ein Status auf off geht, aber ich will ja nicht das Programm bei der händischen Betätigung starten, sondern nur, wenn ich das Dummy Device Rasenbewässerung einschalte bzw. beim Ausschalten natürlich alles wieder deaktiviere.
Hat hier jemand eine Idee wie man das am einfachsten hin bekommt?
Wie oben geschrieben, soll der händische Betrieb trotzdem noch funktionieren.
lg
Alex
DOIF...
Eigentlich geht's um die Punkte dahinter da ich nicht weiß wie man das Devise anlegt, dann auf einen fertigen Job wartet und dann den nächsten rein startet bzw beim unterbrachen das ganze Programme stoppt.
Ich bin jetzt nicht der DOIF-Held, aber es geht ja um folgendes:
Beim schalten des dummys (Annahme: bewaesserung) würde ein Event entstehen, der verwendet werden könnte um einen DOIF zu aktivieren:
define bewaesserungOnNotify notify bewaesserung:on set bewaesserungOnDOIF initialize
und der DOIF schaltet im Zeitraster weiter:
define bewaesserungOnDOIF DOIF ([:00])
( set bewaesserung1 on )
DOELSEIF ([:05])
( set bewaesserung1 off, set bewaesserung2 on )
...
DOELSEIF ([:10])
( set bewaesserung4 off, set bewaesserungOnDOIF disable)
Vermutlich kann das noch einfacher gestaltet werden, aber vielleicht hilft das ja erstmal weiter?
Zitat von: Alex76 am 10 Mai 2016, 08:14:17
Hallo,
ich bin gerade auf der Suche nach einer Zeitverknüpfung. Über die Suche bin ich hier noch nicht ganz fündig geworden.
Ich stelle mir das so vor, dass ich ein Dummy Gerät habe, nennen wir es Rasenbewässerung.
Sobald ich dieses einschalte soll jeder Ausgang/Gerät (4 an der Zahl) für eine gewisse Zeit (1-3 5 Minuten, 4 10 Minuten) laufen.
Ich kann zwar mit diversen Events abfragen ob ein Status auf off geht, aber ich will ja nicht das Programm bei der händischen Betätigung starten, sondern nur, wenn ich das Dummy Device Rasenbewässerung einschalte bzw. beim Ausschalten natürlich alles wieder deaktiviere.
Hat hier jemand eine Idee wie man das am einfachsten hin bekommt?
Wie oben geschrieben, soll der händische Betrieb trotzdem noch funktionieren.
lg
Alex
di_Regenb DOIF ([Regenbewaesserung] eq "on") ((set dev1,dev2,dev3,dev4 on))((set dev1,dev2,dev3 off))(set dev4 off)
attr di_Regenb wait 0,300,300
attr di_Regenb do always
Gruß
Damian
Zitat von: Damian am 10 Mai 2016, 20:35:24
di_Regenb DOIF ([Regenbewaesserung] eq "on") ((set dev1,dev2,dev3,dev4 on))((set dev1,dev2,dev3 off))(set dev4 off)
attr di_Regenb wait 0,300,300
attr di_Regenb do always
Gruß
Damian
Hi Damian,
ich habs mal mit deiner Lösung probiert, aber sobald ich auf on drücke sind alle Ventile gleichzeitig offen.
Eigentlich soll ja eines geöffnet werden, dann geschlossen, nach 5min das zweite, dann geschlossen usw... bis alle 4 durch sind.
Glaub ich hab da noch irgendwo den Hund drinnen. Hast Du hier noch eine Idee?
define BewaesserungsPumpeOn notify Bewaesserungskreis1:on|Bewaesserungskreis2:on|Bewaesserungskreis3:on|Tankbefuellung:on|Tropfschlauch:on set Bewaesserungspumpe on
define di_Pumpe_aus DOIF ([Bewaesserungskreis1] eq "off" and [Bewaesserungskreis2] eq "off" and [Bewaesserungskreis3] eq "off" and [Tankbefuellung] eq "off" and [Tropfschlauch:state] eq "off") (set Bewaesserungspumpe off)
define RegenbDoIF DOIF ([Regenbewaesserung] eq "on") ((set Bewaesserungskreis1,Bewaesserungskreis2,Bewaesserungskreis3,Tropfschlauch on))((set Bewaesserungskreis1,Bewaesserungskreis2,Bewaesserungskreis3 off))(set Tropfschlauch off)
attr RegenbDoIF do always
attr RegenbDoIF room Garten
attr RegenbDoIF wait wait 0,300,300
define Regenbewaesserung dummy
attr Regenbewaesserung room Garten
attr Regenbewaesserung webCmd on:off
lg
Alex
Ich denke mal das Attribut wait ist so nicht richtig gesetzt (ein wait zu viel bei der Definition)?
Wenn ich lese:
ZitatSobald ich dieses einschalte soll jeder Ausgang/Gerät (4 an der Zahl) für eine gewisse Zeit (1-3 5 Minuten, 4 10 Minuten) laufen.
dann kann ich nicht erkennen, dass die drei nacheinander geschaltet werden sollen. Nacheinander wäre dann:
(set dev1 on) (set dev1 off, set dev2 on) (set dev2 off, set dev3 on) (...
wait 0,300,300...
Beispiele zu wait findest du wie immer in der Commandref.
Gruß
Damian
Hi,
danke für die schnelle Antwort, war wohl ein Missverständnis.
Ich hab es somit so probiert, nur irgendwie passiert nichts, wenn ich nun einschalte. Glaub da ist noch irgendwo der Hund drinnen.
define BewaesserungsPumpeOn notify Bewaesserungskreis1:on|Bewaesserungskreis2:on|Bewaesserungskreis3:on|Tankbefuellung:on|Tropfschlauch:on set Bewaesserungspumpe on
define di_Pumpe_aus DOIF ([Bewaesserungskreis1] eq "off" and [Bewaesserungskreis2] eq "off" and [Bewaesserungskreis3] eq "off" and [Tankbefuellung] eq "off" and [Tropfschlauch:state] eq "off") (set Bewaesserungspumpe off)
define RegenbDoIF DOIF ([Regenbewaesserung] eq "on") ((set Bewaesserungskreis1 on,set Bewaesserungskreis2,Bewaesserungskreis3,Tropfschlauch off))((set Bewaesserungskreis2 on,set Bewaesserungskreis1,Bewaesserungskreis3,Tropfschlauch off))((set Bewaesserungskreis3 on,set Bewaesserungskreis1,Bewaesserungskreis2,Tropfschlauch off))((set Tropfschlauch on,set Bewaesserungskreis1,Bewaesserungskreis2,Bewaesserungskreis3 off))(set Tropfschlauch,Regenbewaesserung off)
attr RegenbDoIF do always
attr RegenbDoIF room Garten
attr RegenbDoIF wait 0,300,300,300,600
define Regenbewaesserung dummy
attr Regenbewaesserung room Garten
attr Regenbewaesserung webCmd on:off
Im Prinzip müsste ja das wait für jede Klammer einen Ausdruck haben. Warum die Klammern doppelt sind, hab ich nicht verstanden, habs aber mal nach gleichem Muster nachgebaut.
lg
Alex
Ich glaub ich habs nun hin bekommen, muss das nun beobachten ob das richtig läuft:
define BewaesserungsPumpeOn notify Bewaesserungskreis1:on|Bewaesserungskreis2:on|Bewaesserungskreis3:on|Tankbefuellung:on|Tropfschlauch:on set Bewaesserungspumpe on
define di_Pumpe_aus DOIF ([Bewaesserungskreis1] eq "off" and [Bewaesserungskreis2] eq "off" and [Bewaesserungskreis3] eq "off" and [Tankbefuellung] eq "off" and [Tropfschlauch:state] eq "off") (set Bewaesserungspumpe off)
define RegenbDoIF DOIF ([Regenbewaesserung] eq "on") (set Bewaesserungskreis1 on,set Bewaesserungskreis2 off,set Bewaesserungskreis3 off,set Tropfschlauch off) (set Bewaesserungskreis1 off,set Bewaesserungskreis2 on,set Bewaesserungskreis3 off,set Tropfschlauch off) (set Bewaesserungskreis1 off,set Bewaesserungskreis2 off,set Bewaesserungskreis3 on,set Tropfschlauch off) (set Bewaesserungskreis1 off,set Bewaesserungskreis2 off,set Bewaesserungskreis3 off,set Tropfschlauch on) (set Tropfschlauch off, set Regenbewaesserung off)
attr RegenbDoIF do always
attr RegenbDoIF room Garten
attr RegenbDoIF wait 0,300,300,300,600
define Regenbewaesserung dummy
attr Regenbewaesserung room Garten
attr Regenbewaesserung webCmd on:off
Kann man irgendwie einen Timer neben dem Dummy Device anzeigen lassen oder hinter den einzelnen Ventilen?
ZitatWarum die Klammern doppelt sind, hab ich nicht verstanden, habs aber mal nach gleichem Muster nachgebaut
Die Klammern müssen nicht doppelt sein. Noch mal zum Verständins
(set bla1 on, set bla2 on) ist ok, DOIF gibt zwei Befehle weiter set bla1 on und set bla2 on.
(set bla1, bla2 on) ist nicht ok, da für DOIF Komma ein Trenner ist, daher würde DOIF daraus zwei Befehle machen set bla1 und bla2 on und das würde nicht funktionieren. Da dieses Komma nicht als Trenner für DOIF gedacht ist, sondern für den set Befehl, muss in diesem Falle dieser Ausdruck doppelt geklammert werden, damit der Ausdruck komplett so an set übergeben wird, hier also:
((set bla1, bla2 on)). Damit gibt DOIF set bla1, bla2 on als einen Befehl an set weiter.
Gruß
Damian
Die Bewässerung sieht sehr Kompliziert aus, ist doch wohl nicht für ne Hanfplantage :o