Hallo, bin seit Dez. FHEM-Fan, also noch etwas "frisch"....
Trotz vieler Suchen finde ich zu einer Threshold-Strg keine Lösung:
Ich möchte über einen 2-Pktsteller die Raumtemperatur steuern und dabei eine variable Wunschtemperatur verwenden:
# Definition Wunschtemperatur OG_Bad
define TempDes_OG_Bad dummy
attr TempDes_OG_Bad fp_Columban 759,196,2,Wunschtemperatur OG_Bad
attr TempDes_OG_Bad room OG_Bad
attr TempDes_OG_Bad setList state:17,18,19,20,21,22,23,24
attr TempDes_OG_Bad webCmd state
# Notify zur Strg. des Zusammenspiels Änderung im Floorplan und Weitergabe an FHEM
define Notify_OG_Bad notify TempDes_OG_Bad { my $neuer_wert = ReadingsVal("TempDes_OG_Bad","state","0") }
attr Notify_OG_Bad room OG_Bad
# Temperatursteuerung OG_Bad
define THRES_OG_Bad THRESHOLD TS_OG_Bad:temperature:0.2:TempDes_OG_Bad:state SD1 # SD1=IT-Funkschalter
attr THRES_OG_Bad number_format %.1f
attr THRES_OG_Bad room OG_Bad
attr THRES_OG_Bad state_cmd1_gt off
attr THRES_OG_Bad state_cmd2_lt on
attr THRES_OG_Bad state_format _m _dv _sc
# Setze zu definierten Zeiten die Temperatur auf Wunschtemperatur, ausserhalb auf 19; setze jedesmal nach der Heizzeit die Wunschtemperatur auf 20.5 zurück
define Strg_OG_Bad DOIF ( [06:00-07:30|8] or [07:00-09:00|7] or [18:00-20:00|78] ) ( set THRES_OG_Bad external) DOELSE ( set THRES_OG_Bad external off, set THRES_OG_Bad desired 19, set TempDes_OG_Bad 20.5 )
attr Strg_OG_Bad fp_Columban 780,1400,2,
attr Strg_OG_Bad room OG_Bad
attr Strg_OG_Bad state active
Grundsätzlich funktioniert das, aber merkwürdigerweise passiert nach einem Save cfg Folgendes:
Ich setze mit set THRES_OG_Bad desired 17 in der Kommandozeile die Thresholdstrg. auf definierten Status. Am anderen Tag schaltet er brav SD1 (IT-Funkschalter) auf ON, aber nicht OFF nach Erreichen der Temperatur sondern erst nach Erreichen Der Uhrzeit 07:30
LogFile:
2015.01.29 06:00:00 2: IT set SD1 off
2015.01.29 06:00:00 2: IT set SD1 on
2015.01.29 06:55:36 2: IT set SD1 off
2015.01.29 07:30:00 2: IT set SD1 off
2015.01.29 07:30:00 2: IT set SD1 off
Ich verwende Raspberry Pi mit Busware CUL CC1101. Es liegt nicht an der Empfangssensitivität, da der Schalter sonst immer anspricht.
Hat jemand eine Idee, was ich falsch eingebe in cfg?
Zitat von: sinisan am 29 Januar 2015, 20:44:14
Hallo, bin seit Dez. FHEM-Fan, also noch etwas "frisch"....
Trotz vieler Suchen finde ich zu einer Threshold-Strg keine Lösung:
Ich möchte über einen 2-Pktsteller die Raumtemperatur steuern und dabei eine variable Wunschtemperatur verwenden:
# Definition Wunschtemperatur OG_Bad
define TempDes_OG_Bad dummy
attr TempDes_OG_Bad fp_Columban 759,196,2,Wunschtemperatur OG_Bad
attr TempDes_OG_Bad room OG_Bad
attr TempDes_OG_Bad setList state:17,18,19,20,21,22,23,24
attr TempDes_OG_Bad webCmd state
# Notify zur Strg. des Zusammenspiels Änderung im Floorplan und Weitergabe an FHEM
define Notify_OG_Bad notify TempDes_OG_Bad { my $neuer_wert = ReadingsVal("TempDes_OG_Bad","state","0") }
attr Notify_OG_Bad room OG_Bad
# Temperatursteuerung OG_Bad
define THRES_OG_Bad THRESHOLD TS_OG_Bad:temperature:0.2:TempDes_OG_Bad:state SD1 # SD1=IT-Funkschalter
attr THRES_OG_Bad number_format %.1f
attr THRES_OG_Bad room OG_Bad
attr THRES_OG_Bad state_cmd1_gt off
attr THRES_OG_Bad state_cmd2_lt on
attr THRES_OG_Bad state_format _m _dv _sc
# Setze zu definierten Zeiten die Temperatur auf Wunschtemperatur, ausserhalb auf 19; setze jedesmal nach der Heizzeit die Wunschtemperatur auf 20.5 zurück
define Strg_OG_Bad DOIF ( [06:00-07:30|8] or [07:00-09:00|7] or [18:00-20:00|78] ) ( set THRES_OG_Bad external) DOELSE ( set THRES_OG_Bad external off, set THRES_OG_Bad desired 19, set TempDes_OG_Bad 20.5 )
attr Strg_OG_Bad fp_Columban 780,1400,2,
attr Strg_OG_Bad room OG_Bad
attr Strg_OG_Bad state active
Grundsätzlich funktioniert das, aber merkwürdigerweise passiert nach einem Save cfg Folgendes:
Ich setze mit set THRES_OG_Bad desired 17 in der Kommandozeile die Thresholdstrg. auf definierten Status. Am anderen Tag schaltet er brav SD1 (IT-Funkschalter) auf ON, aber nicht OFF nach Erreichen der Temperatur sondern erst nach Erreichen Der Uhrzeit 07:30
LogFile:
2015.01.29 06:00:00 2: IT set SD1 off
2015.01.29 06:00:00 2: IT set SD1 on
2015.01.29 06:55:36 2: IT set SD1 off
2015.01.29 07:30:00 2: IT set SD1 off
2015.01.29 07:30:00 2: IT set SD1 off
Ich verwende Raspberry Pi mit Busware CUL CC1101. Es liegt nicht an der Empfangssensitivität, da der Schalter sonst immer anspricht.
Hat jemand eine Idee, was ich falsch eingebe in cfg?
Mir ist nicht bewusst, dass ich "set ... external off" eingabaut hätte ;)
Umschalten auf feste Vorgabe kannst du mit "set ... active" vornehmen.
Gruß
Damian
Damian, vielen Dank für die schnelle Antwort!
Ok, war ich wohl zu kreativ.... Hab's rausgenommen...
Leider schnall' ich das aber immer noch nicht so ganz, weil ich auch die Beschreibung in der Threshold Reference wohl nicht richtig verstehe:
set .... active: Modul wird aktiviert, falls unter target_value ein Sensor für die Sollwertvorgabe definiert wurde (ja, bei mir die einstellbare Wunschtemperatur "TempDes_OG_Bad"), wird der aktuelle Sollwert (müsste ja genau diese mit "external" zu regelnde Wunschtemperatur sein) solange eingefroren (also nicht verändert) bis "set external" (erneut ?) gesetzt wird.
Kann das also mit der DOIF-Schleife so gar nicht funktionieren, wie ich den THRESHOLD vom external- in den desired-Status umsteuern möchte?
Wäre Die echt nochmals für eine Antwort dankbar!
Zitat von: sinisan am 30 Januar 2015, 15:29:37
Damian, vielen Dank für die schnelle Antwort!
Ok, war ich wohl zu kreativ.... Hab's rausgenommen...
Leider schnall' ich das aber immer noch nicht so ganz, weil ich auch die Beschreibung in der Threshold Reference wohl nicht richtig verstehe:
set .... active: Modul wird aktiviert, falls unter target_value ein Sensor für die Sollwertvorgabe definiert wurde (ja, bei mir die einstellbare Wunschtemperatur "TempDes_OG_Bad"), wird der aktuelle Sollwert (müsste ja genau diese mit "external" zu regelnde Wunschtemperatur sein) solange eingefroren (also nicht verändert) bis "set external" (erneut ?) gesetzt wird.
Kann das also mit der DOIF-Schleife so gar nicht funktionieren, wie ich den THRESHOLD vom external- in den desired-Status umsteuern möchte?
Wäre Die echt nochmals für eine Antwort dankbar!
Ich habe gerade noch mal nachgeschaut. Es reicht aus dem external-Modus einfach set ... desired ... aufzurufen, um in den active-Modus zu wechseln (Modus mit fixer Vorgabe). Mit set .. external wird die Vorgabetemperatur wieder vom angegebenen Target_Sensor genommen. Bei dir heißt das:
define Strg_OG_Bad DOIF ( [06:00-07:30|8] or [07:00-09:00|7] or [18:00-20:00|78] ) ( set THRES_OG_Bad external) DOELSE (set THRES_OG_Bad desired 19, set TempDes_OG_Bad 20.5 )
Gruß
Damian
Vielen Dank Damian, das funktioniert jetzt!
Mittlerweile meine ich Deinen THRESHOLD verstanden zu haben. Coole Sache!