Ich möchte ein Item in x Minuten auf True setzen und nach y Minuten soll es wieder auf False fallen. Mit den Timer-Funktionen komme ich nicht weiter, weil es ja nur eine Schaltfunktion ausführen kann. Gibt es da irgendwas anderes um das einfach zu lösen?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Item verzögert ein- bzw. ausschalten
Einklappen
X
-
Zitat von Onkelandy Beitrag anzeigenDu kommst mit dem Timer schon weiter. Musst einfach ein Hilfsitem machen, das verzögert ausschaltet. Dieses Hilfsitem wird getriggert, sobald das eigentliche Item aktiviert wird. Also über on_update oder eval_trigger. Der eval Ausdruck wäre dann sowas wie sh.item.timer(60,0)
Wäre diese universelle Zeitschaltuhr eine Option?
Kommentar
-
Zitat von Onkelandy Beitrag anzeigenWenn du eh ne Logik nutzt, dann implementiere dort den timer ohne Hilfsitems.Code:# ausschalten und in 30 Sekunden anschalten sh.item.schalten(False).timer(30, True) # ??????? sh.item.schalten(False).timer(60, False)
Kommentar
-
Zitat von Onkelandy Beitrag anzeigenOhne (False)
Code:sh.EG.Diele.DALI.Decke.R.schalten.timer(10, True) sh.EG.Diele.DALI.Decke.R.schalten.timer(20, False)
Kommentar
-
Das kann gut sein, ja, da kommt dann aber das angesprochene Hilfsitem z.B. schalten_hilf zum Zug
Am besten nimmst du dort ein
Code:enforce_updates: True on_update: EG.Diele.DALI.Decke.R.schalten = False
Code:enforce_updates: True on_update: .. = False
Und setzt den Timer in der Logik:
Code:sh.EG.Diele.DALI.Decke.R.schalten_hilf.timer(20, True)
Kommentar
-
Zitat von bmx Beitrag anzeigenVielleicht kannst Du Deine Lösung ja mal dokumentieren damit andere was davon haben. Vielleicht als kleines How-To für die Webseite?
Der Ansatz war aber wichtig.
Kommentar
-
Gut, dann poste ich das mal. Ich nutze das für meine Garten-Bewässerung, dazu gibt es auch eine Logik, die aber noch nicht fertig ist.
Sinn und Zweck war hier die Bewässung meines Gartens, nicht per App, sondern automatisch. Und das funktioniert soweit auch, aber ist noch nicht fertig, da auch mein Garten noch nicht fertig ist. Mittels KNX ist ein Schaltaktor angebunden, der auf Treppenlicht eingeschaltet ist. Dort habe ich 30 Minuten eingestellt. Das ist dann quasi das Limit, falls hier was abstürzt. Den Aktor kann ich schalten bzw. auch eine Dauer übergeben. Hier übergebe ich die Beregnungs-Dauer in Minuten.
Hier also die Items:
Code:Nordost: schalten: type: bool knx_dpt: 1 knx_send: 11/0/0 knx_cache: 11/1/0 visu_acl: rw # Beregnungsdauer in Minuten Dauer: type: num knx_dpt: 5 knx_send: 11/2/0 knx_cache: 11/2/0 enforce_updates: yes visu_acl: rw sperren: type: bool cache: yes visu_acl: rw # Sperrzeit in Stunden Dauer: type: num enforce_updates: yes cache: yes visu_acl: rw on_update: - ..self = True if value > 0 else False - ..self = sh...self.timer(value*60*60, False) if value > 0 else None
Code:jetzt = sh.now() stunde = jetzt.hour # Stunden zu denen bewässert werden soll Nordost_Stunden = [6, 14, 22] # Dauer der Bewässerung in Minuten Nordost_Dauer = 20 # Startvorwahl der Bewässerung in Minuten Nordost_Start = 0 Nordost_Wind_Limit = 10 Nordost_Wind_Skip = 1 if not sh.Aussen.Garten.Bewaesserung.sperren(): if not sh.Aussen.Garten.Bewaesserung.Nordost.sperren() and stunde in Nordost_Stunden: sh.Aussen.Garten.Bewaesserung.Nordost.Dauer.timer(Nordost_Start * 60, Nordost_Dauer)
Der Grund ist, warum ich die Einstellungen in der Logik vornehmen möchte und nicht in den Items ist, dass man bei veränderten Logiken SmartHomeNG nicht neustarten muss. Bei den Items schon.
Kommentar
Kommentar