[gelöst] RandomTimer-disableCond mit mehreren Bedingungen um aktiv zu werden

Begonnen von Annitoka, 03 Mai 2017, 21:42:43

Vorheriges Thema - Nächstes Thema

Annitoka

Hallo zusammen,

ich habe leider im Forum noch im Wiki oder beim googeln gefunden, wie ich Randomtimer mit mehreren Bedingungen versehen kann damit der RandomTimer aktiv /nicht aktiv wird.

Probiert habe ich bisher folgendes:
1.) mit dummy Variablen und einem IF - analog dem at Befehl:
define EG_Wohnen_Wohnzimmer_LED_Licht_Sim RandomTimer *{sunset_abs(2*(Value("Zeit_vor_Sonnenuntegang_Simulation")))} EG_Wohnen_Wohnzimmer_LED_Licht *{sunset_abs(2*(Value("Zeit_nach_Sonnenuntegang_Simulation")))} 600 IF (([Helligkeit_aussen_Simulation] ne "on") and ([EG_Wohnen_Wohnzimmer_Rolladen_geschlossen] ne "off))

2.) mit dem Attribut disableCond
define EG_Wohnen_Wohnzimmer_LED_Licht_Sim RandomTimer *{sunset_abs(2*(Value("Zeit_vor_Sonnenuntegang_Simulation")))} EG_Wohnen_Wohnzimmer_LED_Licht *{sunset_abs(2*(Value("Zeit_nach_Sonnenuntegang_Simulation")))} 600
attr EG_Wohnen_Wohnzimmer_LED_Licht_Sim disableCond (Value("Alarmierung_abwesend") eq "on"), (Value("Helligkeit_aussen_Simulation") eq "off"),(Value("EG_Wohnen_Wohnzimmer_Rolladen_geschlossen") eq "on")

Hintergrund ist: Ich möchte den RandomTimer nur aktiv wenn niemand zu Hause ist ("Alarmierung_abwesend"), es draussen langsam dämmert ("Helligkeit_aussen_Simulation" - dummy-Variable über Helligkeitssensor gesteuert mit on/off). Gleichzeitig möchte ich, dass der RandomTimer aufhört, wenn der Rolladen geschlossen ist ("EG_Wohnen_Wohnzimmer_Rolladen_geschlossen")

Noch eine weitere Frage: den timeToSwitch würde ich auch gerne mit einer dummy Variablen hinterlegen. Als Lösung habe ich bisher gefunden https://forum.fhem.de/index.php/topic,43024.msg351451.html#msg351451. Kann mir jemand sagen warum die Lösung mit folgendem nicht geht?:
define EG_Wohnen_Wohnzimmer_LED_Licht_Sim RandomTimer *{sunset_abs(2*(Value("Zeit_vor_Sonnenuntegang_Simulation")))} EG_Wohnen_Wohnzimmer_LED_Licht *{sunset_abs(2*(Value("Zeit_nach_Sonnenuntegang_Simulation")))} {(Value("TimeToSwitch_Simulation"))}
wobei der dummy "TimeToSwitch_Simulation" den Wert 900 hat.

Schon mal besten Dank und viele Grüße aus Karlsruhe
Kai
Fhem auf RasPi3 mit Homematic Funkmodul HM-MOD-RPI-PCB, USB-RFXTRX und Arduino als MySensor-Gateway

Thorsten Pferdekaemper

Zitat von: Annitoka am 03 Mai 2017, 21:42:43
Probiert habe ich bisher folgendes:
1.) mit dummy Variablen und einem IF - analog dem at Befehl:
Das wird wohl nicht funktionieren. Warum auch?

Zitat
2.) mit dem Attribut disableCond
attr EG_Wohnen_Wohnzimmer_LED_Licht_Sim disableCond (Value("Alarmierung_abwesend") eq "on"), (Value("Helligkeit_aussen_Simulation") eq "off"),(Value("EG_Wohnen_Wohnzimmer_Rolladen_geschlossen") eq "on")
Ich weiß zwar nicht, was bei Dir genau was bedeutet, aber so kann man Bedingungen nicht verketten. Du musst and bzw. or verwenden. Also das hier könnte gehen:
attr EG_Wohnen_Wohnzimmer_LED_Licht_Sim disableCond (Value("Alarmierung_abwesend") eq "off" or Value("Helligkeit_aussen_Simulation") eq "off" or Value("EG_Wohnen_Wohnzimmer_Rolladen_geschlossen") eq "on")

Zitat
Noch eine weitere Frage: den timeToSwitch würde ich auch gerne mit einer dummy Variablen hinterlegen. Als Lösung habe ich bisher gefunden
Ich nehme an, dass das so gar nicht geht. Wahrscheinlich müsstest Du das ganze Ding mit defmod neu definieren.

Gruß,
   Thorsten
FUIP

Annitoka

Hallo Thorsten,

vielen Dank für deine schnelle Antwort :-)
Das mit der "and/or" Verknüpfung hat bei mir nicht funktioniert.
Ich habe jetzt ein DOIF angelegt mit den beiden zusätzlichen Bedingungen, das den RandomTimer dann auf disable setzt, falls diese nicht erfüllt sind.

Danke und Gruß
Kai
Fhem auf RasPi3 mit Homematic Funkmodul HM-MOD-RPI-PCB, USB-RFXTRX und Arduino als MySensor-Gateway