Dämmerungssteuerung

Begonnen von arko20, 31 August 2013, 14:18:06

Vorheriges Thema - Nächstes Thema

arko20

Hallo,

ich habe einen Oregon THN 132 Temperatursensor zum Lichtsensor umgebaut und möchte
eine Lampe dann schalten wenn der Sensor seinen niedrigsten Wert erreicht.

THGR132N_1:temperature:.*  {if(ReadingsVal("THGR132N_1","temperature", 99)<-50) {fhem("set Lampe on-till 21:43:00");}}


(siehe Anhang / see attachement)


Das Schalten funktioniert auch bei -50 und die Lampe geht auch 21:43 Uhr wieder aus , aber das Notify bleibt ja aktiv und schaltet die Lampe
immer wieder ein.
Meine Frage wäre, wie kann ich erreichen ,das das Notify nur einmal schaltet bzw . das 21:43 Uhr das Notify bis zum nächsten Abend deaktiviert wird.

Ich hatte auch noch folgendes versucht ,leider reagierte das Konstrukt nur auf den Zeitbereich?

THGR132N_1:temperature:.* {my $hm = sprintf("%%02d:%%02d", $hour, $min); if( $hm gt "20:00" && $hm lt "21:00") {if(ReadingsVal("THGR132N_1","temperature", 99) <-50) {fhem("set Lampe on-till 21:43:00");}}}

Vielen Dank.

rudolfkoenig

> wie kann ich erreichen ,das das Notify nur einmal schaltet

Da gibt es mehrere, nicht gerade elegante Loesungen:

- mit stateFormat die Helligkeit in STATE speichern, und im notify Value() und OldValue() vergleichen. Nachteil: wenn die Helligkeit um -50 schwankt, gibt es mehrere Schaltbefehle.
attr THGR132N_1 stateFormat temperature
...{if(Value("THGR132N_1")<-50 && OldValue("THGR132N_1") >= 50) {fhem("set Lampe on-till-21:43:00") } }

- alternative: Aktuellen Tag ($mday) und letzte Helligkeit in dummy speichern, und erst wieder am naechsten Tag beim Wechsel von hell auf Dunkel schalten.

- direkt nach dem Schalten der Lampe das aktuelle notify auf disabled setzen, und per at oder langen sleep diesen Attribut wieder entfernen. Nachteil: bei einem FHEM restart geht sleep+deleteattr verloren, und das notify bleibt auf disabled.
...{if(ReadingsVal("THGR132N_1","temperature", 99)<-50) {fhem("set Lampe on-till-21:43:00;; attr thisNotify disable;; sleep 36000;; deleteattr thisNotify disable") } }


Ich habe fhem.pl gerade um die $hms Variable ergaenzt, damit kann man das sprintf sparen.

arko20

Hallo ,

erstmal vielen Dank für die schnelle Antwort.

Ich werde die erste Variante probieren , da die Helligkeit bzw. der Wert sehr schnell absackt und bis jetzt noch nie geschwankt hat.
Die zweite Variante kann ich nicht nehmen da ich meinen Raspi jede halbe Stunde neu booten lasse und wie beschrieben das
Notify dauerhaft deaktiviert wird.

Mit freundlichen Grüßen
arko20

arko20

Hallo,

leider funktioniert es nicht mache ich irgend etwas falsch?

define LampeStube notify THGR132N_1:temperature:.* {if(Value("THGR132N_1")<-49 && OldValue("THGR132N_1")>=-49) {fhem("set Lampe on-till-21:43:00") } }

Ich logfile steht nichts.
Danke...


rudolfkoenig

stateFormat gesetzt?
Steht in THGR132N_1 Status das richtige?

Btw. die alternative Loesung hat kein Problem mit dem restart, falls man statt sleep ein at verwendet.

arko20

Hallo ,

Es hat doch funktioniert, habe noch eine kleine Anpassung durchgeführt.

THGR132N_1:temperature:.* {if(Value("THGR132N_1")<-49 && OldValue("THGR132N_1")>=-49) {fhem("define Licht_an at +00:20:11 set Lampe on-till 21:43") } }

Danke..