Frage zu Bedingungen bei WeekdayTimer

Begonnen von det., 11 November 2013, 22:09:37

Vorheriges Thema - Nächstes Thema

det.

Hallo @all,
ich möchte mit folgendem Konstrukt einen FS20 Schalter dazu bringen, bei Dunkelheit ein Licht einzuschalten und 22.00 Uhr wieder aus. Der State schaltet zwar auf on und off, aber das FS20 Device nicht. Was mache ich falsch?



define BrunnenLicht_Autom WeekdayTimer BrunnenLicht  Mo-Fr|14:00|on  Mo-Fr|22:00|off {ReadingsVal("OWX_26_0A9116000000","light",0) >= "1"}
LG
det.

Dietmar63

versuch es mal mit:

define BrunnenLicht_Autom WeekdayTimer BrunnenLicht  Mo-Fr|14:00|on  Mo-Fr|22:00|off {ReadingsVal("OWX_26_0A9116000000","light",0) gt "1"}


Perl hat die Besonderheit, dass zwischen numerischem Vergleich und Stringvergleich unterschiedliche Operatoren genutzt werden müssen - anfangs immer eine böse Falle.
Vielleicht liegt es daran.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

det.

Hallo Dietmar,
danke für den schnellen Versuch, daran lag es aber leider nicht = gleiches Ergebnis = state schaltet prima um (Zeit einfach auf 23.00 gesetzt) - state ist on - FS20 Schalter BrunnenLicht bleibt off...
Bin ratlos, irgendwie stört die Bedingung die Ausführung des Befehles.
LG
det.

Dietmar63

schalte mal verbose 5 an. Dann siehst du was gesendet wird.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

det.

Hallo Dietmar,
sehen schon - aber verstehen - Fehlanzeige
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|14:00|on : 1 -> 14:00:00 -> on
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|14:00|on : 2 -> 14:00:00 -> on
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|14:00|on : 3 -> 14:00:00 -> on
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|14:00|on : 4 -> 14:00:00 -> on
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|14:00|on : 5 -> 14:00:00 -> on
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|23:10|off : 1 -> 23:10:00 -> off
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|23:10|off : 2 -> 23:10:00 -> off
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|23:10|off : 3 -> 23:10:00 -> off
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|23:10|off : 4 -> 23:10:00 -> off
2013.11.11 22:40:54 5: [BrunnenLicht_Autom] Switchingtime: Mo-Fr|23:10|off : 5 -> 23:10:00 -> off
2013.11.11 22:41:24 5: [BrunnenLicht_Autom] list of windowsenors found: ''
2013.11.11 22:41:24 4: [BrunnenLicht_Autom] 11.11.2013 14:00:00 ; aktParam: 0.0 ; newParam: on
2013.11.11 22:41:24 5: [BrunnenLicht_Autom] no switch in the yesterdays because of the devices type.
2013.11.11 22:41:24 4: [BrunnenLicht_Autom] Next switch 11.11.2013 23:10:00
LG
det.

Dietmar63

warten bis

ZitatNext switch 11.11.2013 23:10:00
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

det.

Hallo Diermar,

leider schaltet nachts nichts aus und nachmittags nichts an:

 2013.11.12 14:00:01 5: [BrunnenLicht_Autom] list of windowsenors found: ''
2013.11.12 14:00:01 4: [BrunnenLicht_Autom] Jetzt:12.11.2013 14:00:06 -> Next: 12.11.2013 14:00:00 -> Param: on -6
2013.11.12 14:00:01 4: [BrunnenLicht_Autom] 12.11.2013 14:00:00 ; aktParam: 0.0 ; newParam: on
2013.11.12 14:00:01 4: [BrunnenLicht_Autom] command: {ReadingsVal("OWX_26_0A9116000000","light",0) gt "1"}
2013.11.12 14:00:01 3: 1
2013.11.12 14:00:01 4: [BrunnenLicht_Autom] Next switch 12.11.2013 23:10:00


LG
det.

Dietmar63

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

det.

Hallo Dietmar,
ich versteh das leider ebenfalls nicht, der state Deines Moduls ist on, die Beleuchtung leider nicht. Im log steht wieder:
2013.11.13 14:00:00 5: [BrunnenLicht_Autom] list of windowsenors found: ''
2013.11.13 14:00:00 4: [BrunnenLicht_Autom] Jetzt:13.11.2013 14:00:05 -> Next: 13.11.2013 14:00:00 -> Param: on -5
2013.11.13 14:00:00 4: [BrunnenLicht_Autom] 13.11.2013 14:00:00 ; aktParam: 0.0 ; newParam: on
2013.11.13 14:00:00 4: [BrunnenLicht_Autom] command: {ReadingsVal("OWX_26_0A9116000000","light",0) gt "1"}
2013.11.13 14:00:00 3: 1
2013.11.13 14:00:00 4: [BrunnenLicht_Autom] Next switch 13.11.2013 23:10:00
LG
det.

Dietmar63

aber ich verstehe es jetzt:
durch
{ReadingsVal("OWX_26_0A9116000000","light",0) gt "1"}
hast du keine Bedingung, sondern den kompletten Perlcode definiert, der zu den jeweiligen Schaltzeiten ausgeführt werden soll. In einem solchem Fall machen HC und WDT nichts selbst.
Im Grunde wird nur deine Bedingung geprüft aber nichts gemacht. Deine Code (command: {ReadingsVal("OWX_26_0A9116000000","light",0) gt "1"}) liefert jedenfalls true: die einsame "1" in der darauf folgenden Zeile.

Bedingungen müssen in runden Klammern eingeschlossen sein:
(ReadingsVal("OWX_26_0A9116000000","light",0) gt "1")

Dann sendet HC/WDT "set geraet ... on"

Du kannst es einfach ausprobieren, indem du in der Detailansicht der  Oberfläche des HC/WDT  die {} durch () ersetzt.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

det.

Hallo Dietmar,
Dein Versuch hat zur Folge :
STATE inactive

Das hatte ich schon versucht. Langsam dämmert mir, dass mglw. meine ganze Frage/Aufgabenstellung so nicht geht... Ziel ist es, ab 14 Uhr zu prüfen, ob es etwa schon dunkel genug ist - um das Außenlicht einzuschalten - und das dann zu tun, wenn die Bedingung eintritt. Bisher hatte ich da Twilight im Einsatz, möchte das aber gern durch einen 1-wire Lichtsensor ersetzen, der nicht so viel Daten liefert, welche ich zu so einfacher Aufgabe nicht benötige.
LG
det.

Dietmar63

ich nutze dafür Twilight:
define TwilightMessage1       notify Twilight.*:aktEvent:.*ss_weather.*      set StehlampeTisch on;; set StehlampeTV on

Du kannst vielleicht ein notify auf den 1wire-Sensor bauen, wenn er feuert, dann das Licht einschalten - ohne WD.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

det.

Hallo Dietmar,
will mal eine Rückmeldung geben, konnte heute das Problem folgendermaßen lösen:
define TH_Dunkel THRESHOLD OWX_26_0A9116000000:light:0:20 ||||OFF:ON
define BrunnenLicht_TH WeekdayTimer BrunnenLicht Mo-So|13:00|on Mo-So|22:00|off  (ReadingsVal("TH_Dunkel", "state", "OFF") eq "ON")
und schon klappt es mit dem helligkeitsgesteuerten Außenlicht. Nächste Änderung kommt, wenn Du die Wochenende (+Feiertags) Funktion eingebaut hast.
Schon mal im Voraus vielen Dank für Deine hervorragende Arbeit!
LG
det.

Puschel74

Hallo,

Wochenende und Feiertage lassen sich bequem per $we prüfen.
Für die Feiertage muss dazu allerdings eine <beliebiger_Name>.holiday Datei angelegt und ausgewertet werden.

Diese pflege ich aber immer.
Somit weiß FHEM auch wann ich Urlaub habe oder - zeitnah logischerweise - wann ich krank bin (was Gottlob recht selten vorkommt).
Sobald ich die Krankmeldung vom Hausarzt in der Hand habe wird das in meine Feiertag.holiday eingetragen.
FHEM wertet diese Datei dann aus und füllt $we dann entsprechend mit 0 oder 1

Alternativ könnte man auch den Google-Kalender pflegen.
Ich lege meine Urlaubseinträge aber nicht in der "Cloud" ab sondern behalte diese lieber innerhalb der Hauswände  8)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

det.

@Puschel74
sorry - aber Thema verfehlt -5- setzen (oder vor dem langen Kommentar richtig lesen, worum es geht)
LG
det.