FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: bene_dicere am 10 Mai 2016, 09:20:53

Titel: DOIF in Abhängigkeit von Readings Timer
Beitrag von: bene_dicere am 10 Mai 2016, 09:20:53
Hallo,

ich bräuchte ein wenig Unterstützung und zwar schließe ich meine Rollladen über folgendes DOIF

([({twilight("myTwilight.4","ss","17:45","22:00")}+int(rand(900)))|8] or [({twilight("myTwilight.4","ss","18:00","22:30")}+int(rand(900)))|7]) (set WZ.Rolllade down) DOELSE

(Hierzu habe ich noch ne kleine Frage und zwar schaltet das DOIF immer zweimal, das heißt auch wenn die Rolllade geschlossen ist wird nach gefühlten 10-15 min noch mal der Aktor angesteuert, egal ob ich die Rolllade nochmal manuell verändert habe oder sie geschlossen ist. Als Attributes habe ich noch do always hinzugefügt.)

Dieses erzeugt zb die zwei folgenden Timer bei den Readings:
timer_1_c1 10.05.2016 21:03:13|8
timer_2_c1 10.05.2016 21:03:30|7

Ich habe mir jetzt einen Fenstersensor gekauft und habe noch zusätzlich die Bedingung eingebaut, wenn das Fensten geöffnet ist die Rollade nicht zu schließen. Per DOSELSEIF möchte ich gerne sagen wenn es später ist als timer_1_c1 |8 oder später ist als timer_2_c1 |7 und ich das fenster schließe soll die Rolllade automatisch auch mit schließen.
Um den Timer aus den Readings zu lesen habe ich folgendes genutzt ([WZ2.DOIF.ROLLLADEN.DOWN:timer_1_c1]) jedoch fehlt mir der Bezug zur Zeit.

Bin ich auf dem richtigen Weg oder ist dies komplett Falsch und ich kann gar nicht zum Timer verknüpfen?

Es handelt sich falls es relevant ist um HM Aktoren.
Ich hoffe sonst nichts wichtiges vergessen zu haben.
Titel: Antw:DOIF in Abhängigkeit von Readings Timer
Beitrag von: Ellert am 10 Mai 2016, 10:45:59
Zitat(Hierzu habe ich noch ne kleine Frage und zwar schaltet das DOIF immer zweimal, das heißt auch wenn die Rolllade geschlossen ist wird nach gefühlten 10-15 min noch mal der Aktor angesteuert, egal ob ich die Rolllade nochmal manuell verändert habe oder sie geschlossen ist. Als Attributes habe ich noch do always hinzugefügt.)
Die Befehle werden mehrmals aus geführt, wenn der neue Zufallszeitpunkt später als der Zeitpunkt der Aktualisierung des Timers liegt.

Lösung:
kein do always
DOELSEIF ([02:00]) statt DOELSE

ZitatBin ich auf dem richtigen Weg oder ist dies komplett Falsch und ich kann gar nicht zum Timer verknüpfen?
Du kannst zum Timer verknüpfen, musst ihn aber in ein gültiges Format bringen.

Entweder Du nutzt dies: http://fhem.de/commandref_DE.html#DOIF_Indirekten_Zeitangaben in Verbindung mit http://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen

oder Du erzeugst userReadings mit Trigger auf Timeränderungen mit Perlcode, die dann einen gültigen Zeitwert enthalten und gibst die in der Bedingung an.
Titel: Antw:DOIF in Abhängigkeit von Readings Timer
Beitrag von: bene_dicere am 10 Mai 2016, 11:08:06
Zitat von: Ellert am 10 Mai 2016, 10:45:59

Du kannst zum Timer verknüpfen, musst ihn aber in ein gültiges Format bringen.

Entweder Du nutzt dies: http://fhem.de/commandref_DE.html#DOIF_Indirekten_Zeitangaben in Verbindung mit http://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen

oder Du erzeugst userReadings mit Trigger auf Timeränderungen mit Perlcode, die dann einen gültigen Zeitwert enthalten und gibst die in der Bedingung an.

Erstmal vielen Dank für die schnelle Antwort.
Habe in der Zwischenzeit noch ein bisschen im Forum gelesen und rumprobiert. Und bin dabei auf folgenden Code gekommen:

$hms >= [WZ2.DOIF.ROLLLADEN.DOWN:timer_1_c1]

Das scheint auch zu funktionieren oder ist das nur ein Zufall und wird dauerhaft nicht funktionieren?


und was bewirkt das
DOELSEIF ([02:00])
wird dann um 2 Uhr noch mal die Rolllade geschlossen?
Titel: Antw:DOIF in Abhängigkeit von Readings Timer
Beitrag von: Ellert am 10 Mai 2016, 13:38:39
Zitatund was bewirkt das
Code: [Auswählen]

DOELSEIF ([02:00])

wird dann um 2 Uhr noch mal die Rolllade geschlossen?
Moderator informieren   Gespeichert
Es wird um 2:00 cmd_2 erzeugt, damit die 1. Bedingung wieder greift, siehe letzter Absatz der Einleitung http://fhem.de/commandref_DE.html#DOIF

ZitatDas scheint auch zu funktionieren oder ist das nur ein Zufall und wird dauerhaft nicht funktionieren?
Hätte ich wg. der Formatierung nicht erwartet, probieren hilft meisten schneller weiter  :)
Titel: Antw:DOIF in Abhängigkeit von Readings Timer
Beitrag von: bene_dicere am 10 Mai 2016, 22:03:42
Zitat von: Ellert am 10 Mai 2016, 13:38:39
Hätte ich wg. der Formatierung nicht erwartet, probieren hilft meisten schneller weiter  :)

leider hat es doch nicht geklappt :'(

Habe nochmal mit Hilfe der links versucht was brauchbares zu machen nur leider nicht mit dem erwarteten Erfolg. Bräuchte noch mal Hilfe.

([WZ2.DOIF.ROLLLADEN.DOWN:timer_1_c1:"(\d\d):(\d\d):(\d\d)"] ge $hms) (set myLampe1 on)

Hierbei scheint es jedoch so als ob immer nur die Stunde abgeglichen wird. Hab irgendwie ein Brett vor dem Kopf  :o
Titel: Antw:DOIF in Abhängigkeit von Readings Timer
Beitrag von: Ellert am 10 Mai 2016, 23:32:08
Es wird nur $1 zurückgegeben. Versuch mal:

([WZ2.DOIF.ROLLLADEN.DOWN:timer_1_c1:"(\d\d:\d\d:\d\d)"]