Hallo,
ich würde gerne mit meinem KNX Dimmer ein Wakeup Licht realiseren.
Ich habe den Dimmer erfolgreich in Fhem eingebunden. Ich kann also AN / AUS und per Slider auch zwischen 0 und 100% dimmen. Läuft perfekt.
Hier meine List:
Internals:
CFGFN
DEF 1/3/27:dpt5.001 1/1/27:dpt1 1/3/127:dpt5.001 1/1/127:dpt1
DEVNAME schlafzimmer_dimmen
IODev KNX
KNX_MSGCNT 25
KNX_RAWMSG C1106w137f00
KNX_TIME 2016-11-01 19:27:55
LASTInputDev KNX
MSGCNT 25
NAME schlafzimmer_dimmen
NR 7971
NTFY_ORDER 50-schlafzimmer_dimmen
STATE 0 %
TYPE KNX
Gaddr:
1 1/3/27
2 1/1/27
3 1/3/127
4 1/1/127
Gcode:
1 131b
2 111b
3 137f
4 117f
Model:
1 dpt5.001
2 dpt1
3 dpt5.001
4 dpt1
Readings:
2016-11-01 19:27:55 getG3 0 %
2016-11-01 19:27:55 getG4 off
2016-11-01 19:27:55 last-sender 1/1/6
2016-11-01 19:27:55 setG1 0 %
2016-11-01 19:14:54 setG2 off
2016-11-01 19:27:55 state 0 %
Readingsname:
Attributes:
IODev KNX
eventMap /on g2:AN/off g2:AUS/value:slider,0,1,100 g1
room Schlafzimmer
slider 0,1,100
webCmd AN::AUS::value
Kann ich nun mit so einem KNX Dimmer auch ein Wakeup Licht realisieren ? Also das er z.B. innerhalb von 5 Minuten langsam von 0 zu 100% fährt ?
Ich hoffe das geht ? Die Beispiele und Anleitungen die ich gefunden habe, waren nur für Homematic und FS20.
Grüße,
Visionsurfer
Puh, ich hab jetzt noch mal den ganzen Abend gesucht und probiert. Ich hoffe das es für KNX doch noch eine Lösung gibt, die ich bisher nur noch nicht entdeckt habe. Ich würde ja gerne über meinen eingebauten KNX Dimmer ein Wakeup Licht realisieren.
Kann eventuell jemand helfen ?
Grüße,
Visionsurfer
Zitat von: visionsurfer am 01 November 2016, 23:09:25
Puh, ich hab jetzt noch mal den ganzen Abend gesucht und probiert. Ich hoffe das es für KNX doch noch eine Lösung gibt, die ich bisher nur noch nicht entdeckt habe. Ich würde ja gerne über meinen eingebauten KNX Dimmer ein Wakeup Licht realisieren.
Kann eventuell jemand helfen ?
Grüße,
Visionsurfer
Guten Morgen,
das kannst unabhängig von der eingesetzten Technik über zB DOIF realisieren
define wakeup DOIF ([06:00])(set Dimmer value g1 5%)(set Dimmer value g1 10%)(set Dimmer value g1 15%) ....
Die einzelnen set-Befehle kannst du dann mit dem Attribut wait jeweils um X Sekunden verzögern damit das Licht langsam ansteigt.
Gruß
Vielleicht findest du unter dem Namen transition etwas.
Hi,
ok. Muss ich mal schauen ob transition, auch in Verbindung mit KNX anzuwenden ist.
@aliate
Stimmt. Da bin ich natürlich nicht drauf gekommen. Das ist bestimmt ein Weg. Werde ich auch mal probieren, wie das ganze dann aussieht und ob es gut funktioniert.
Danke.
Grüße,
Visionsurfer
Hi,
also funktioniert ziemlich gut. Für alle die es nachbauen wollen. So hab ich es gemacht:
define wakeup DOIF ([06:00])(set schlafzimmer_dimmen value 5 g1)(set schlafzimmer_dimmen value 10 g1)(set schlafzimmer_dimmen value 15 g1)(set schlafzimmer_dimmen value 20 g1)(set schlafzimmer_dimmen value 30 g1)(set schlafzimmer_dimmen value 40 g1)(set schlafzimmer_dimmen value 50 g1)(set schlafzimmer_dimmen value 75 g1)(set schlafzimmer_dimmen value 100 g1)
attr wakeup wait 10,10,10,10,10,10,10,10,10
Ich werde mit den Einstellungen noch etwas spielen um das beste Ergebnis zu erzielen. Funktioniert aber grundsätzlich.
Grüße,
Visionsurfer
Hey
sieht ja erst mal recht gut aus!
aber ist es nicht einfacher wenn Mann sagt
setze den wer auf 5 und addiere alle x Sekunden 5 dazu bis es 100 Prozent hat ?
Klar funktioniert des was du da gebastelt hast aber doch sehr aufwändig oder?
Mfg
Ja gute Frage.
Geht das in FHEM überhaupt ?
Wobei man sich da sicherlich selbst was in Perl schreiben kann ? Damit müsste ja fast alles gehen.
Kann ich nur leider nicht, oder vielleicht auch "noch" nicht.
So wie es oben beschrieben ist, klappt es ganz gut. Wobei man noch gute Werte finden muss und auch die ideale Zeit.
Ich hab es heute morgen mal als WakeUP Licht gemacht und es ist noch nicht wirklich "smooth". Ich denke da muss ich aber nur die Werte verändern.
Grüße,
Visionsurfer
Hallo,
nach Anpassung an deine Device, sollte es so funktionieren.
define wakup DOIF ([06:00]) (set Licht value ({([Licht:dimmen-get:d]+1)}))
DOELSEIF
([Licht:dimmen-get:d] >= 99) ()
attr wakup do always
attr wakup repeatcmd 5
attr wakup repeatsame 100
Das "+1" sind die Dimmschritte, und das Attribut "repeatcmd 5" die Zeit zwischen den Ausführungen der Dimmschritte. Das kannst du nach deinen Bedürfnissen anpassen. ;)
PS. Code nochmals geändert - siehe Antwort 15
Gruß Jens
DANKE!!!
So was meinte ich und sieht doch gleich Ganz andres aus (für mich Besser einfacher Leichter)
Hi,
das ist natürlich viel besser, als das was ich bisher hatte.
Werde ich heute Abend ausprobieren.
Danke.
Grüße,
Visionsurfer
Hallo zusammen,
vielleicht noch als Tipp.
Ich habe das bei mir im umgekehrten Einsatz als Einschlaf- und Nachtlicht für die Kinder.
Das DOIF ist etwas umfangreicher, aber hier der "Einschlaf- und Nachtlicht" Teil.
Das Licht wird mit Einbruch der Dunkelheit (spätestens 19:10 Uhr) auf 6% gestellt und ab 19.30 Uhr aller 20 Minuten um 1% abgesenkt. Am nächsten Morgen wird bei Sonnenaufgang (frühestens 7:00 Uhr) das Licht ausgeschaltet.
define di.Licht DOIF ([{sunset("REAL",0,"15:00:00","19:10:00")}])
(set Licht value 6)
DOELSEIF
([{sunrise("REAL",0,"07:00:10","12:00:00")}])
(set Licht value 0)
DOELSEIF
([19:30] and [$SELF:cmd] == 1)
(set Licht value ({([Licht:dimmen-get:d]-1)}))
DOELSEIF
([Licht:dimmen-get:d] == 3)
()
attr Licht do always
attr Licht repeatcmd 0:0:1200
attr Licht repeatsame 0:0:4
PS. Code nochmals geändert - siehe Antwort 15
Gruß Jens
Hi Jens,
ich habe versucht dein erstes Beispiel umzusetzen. Leider hab ich es nicht hinbekommen. Das Licht dreht sofort auf 100% auf.
Mein List für meine Dimmer sieht wie folgt aus:
Internals:
DEF 1/3/27:dpt5.001 1/1/27:dpt1 1/3/127:dpt5.001 1/1/127:dpt1
DEVNAME schlafzimmer_dimmen
IODev KNX
KNX_MSGCNT 71
KNX_RAWMSG C1106w137f00
KNX_TIME 2016-11-04 20:20:11
LASTInputDev KNX
MSGCNT 71
NAME schlafzimmer_dimmen
NR 429
NTFY_ORDER 50-schlafzimmer_dimmen
STATE 0 %
TYPE KNX
Gaddr:
1 1/3/27
2 1/1/27
3 1/3/127
4 1/1/127
Gcode:
1 131b
2 111b
3 137f
4 117f
Model:
1 dpt5.001
2 dpt1
3 dpt5.001
4 dpt1
Readings:
2016-11-02 07:42:03 getG2 off
2016-11-04 20:20:11 getG3 0 %
2016-11-04 20:20:11 getG4 off
2016-11-04 20:20:11 last-sender 1/1/6
2016-11-04 20:19:00 setG1 100 %
2016-11-04 20:20:09 setG2 off
2016-11-04 20:20:11 state 0 %
Readingsname:
Attributes:
IODev KNX
eventMap /on g2:AN/off g2:AUS/value:slider,0,1,100 g1
room Schlafzimmer
slider 0,1,100
webCmd AN::AUS::value
Mit diesen Daten habe ich mir dann folgendes WAKEUP erstellt:
define wakeup_neu DOIF ([20:15]) (set schlafzimmer_dimmen value ({([schlafzimmer_dimmen:setG1:d]+1)}) g1) DOELSEIF ([schlafzimmer_dimmen:setG1:d] >= 99)
G1 ist ja meine Gruppenadresse um den Dimmwert zu senden. Siehe meine Erklärung wie ich es im Alten Muster gemacht habe.
Ist mein Code falsch ? Oder sollte ich eine das +1 und die attr. ändern ?
Wenn der Timer aktiv ist und die Zeit erreicht ist, dreht er sofort und sehr schnell auf 100%.
Grüße,
Visionsurfer
Hallo,
hast du die Attribute im DOIF mit angegeben, wie im Beispiel gezeigt?
attr wakup do always
attr wakup repeatcmd 5
attr wakup repeatsame 100
Die Einstellmöglichkeiten standen hier:
Zitat
Das "+1" sind die Dimmschritte, und das Attribut "repeatcmd 5" die Zeit zwischen den Ausführungen der Dimmschritte. Das kannst du nach deinen Bedürfnissen anpassen. ;)
In meinem Beispiel wird 06:00 Uhr der Dimmwert aller 5 Sekunden (repeatcmd
5) um 1% (({([Licht:dimmen-get:d]
+1)})) erhöht. Maximimal wird der Vorgang 100 x (repeatsame
100) wiederholt, maximal bis der Dimmwert 99 oder höher (([Licht:dimmen-get:d]
>= 99)) erreicht wird. Hier tritt der DOELSEIF Fall ein. Die 99 habe ich genommen, da mein Dimmer trotz set 100% manchmal nur den get Wert 99% erreicht hat.
Das Beispiel regelt natürlich viel zu schnell. Da kann mann das Licht auch direkt einschalten. ;D
PS. Erläuterung nochmals geändert - siehe Antwort 15
Gruß Jens
Hi,
hmmm, irgendwo ist bei mir noch der Wurm drin. Ich hab es gerade noch mal ausprobiert und da lief es wunderbar. So wie es sein soll.
Danach hab ich den Timer 4 Minuten später gestellt. um es gleich noch mal zu probieren. Da lief es sofort auf 100% hoch.
Mir ist dann bei der Kontrolle aufgefallen das mein setG1 auf 100% steht. Ich hab nach dem ersten Test das Licht einfach mit AUS komplett aus geschaltet. Also bleibt wohl setG1 auf 100%. Da in dem DOIF sich aber alles auf setG1 bezieht, kann das ja dann nicht laufen.
Mach ich da was falsch ?
Hier mal mein List vom Dimmer wie es aktuell aussieht:
Internals:
DEF 1/3/27:dpt5.001 1/1/27:dpt1 1/3/127:dpt5.001 1/1/127:dpt1
DEVNAME schlafzimmer_dimmen
IODev KNX
KNX_MSGCNT 142
KNX_RAWMSG C1106w137f00
KNX_TIME 2016-11-04 23:04:24
LASTInputDev KNX
MSGCNT 142
NAME schlafzimmer_dimmen
NR 429
NTFY_ORDER 50-schlafzimmer_dimmen
STATE 0 %
TYPE KNX
Gaddr:
1 1/3/27
2 1/1/27
3 1/3/127
4 1/1/127
Gcode:
1 131b
2 111b
3 137f
4 117f
Model:
1 dpt5.001
2 dpt1
3 dpt5.001
4 dpt1
Readings:
2016-11-02 07:42:03 getG2 off
2016-11-04 23:04:24 getG3 0 %
2016-11-04 23:04:24 getG4 off
2016-11-04 23:04:24 last-sender 1/1/6
2016-11-04 23:04:00 setG1 100 %
2016-11-04 23:04:22 setG2 off
2016-11-04 23:04:24 state 0 %
Readingsname:
Attributes:
IODev KNX
eventMap /on g2:AN/off g2:AUS/value:slider,0,1,100 g1
room Schlafzimmer
slider 0,1,100
webCmd AN::AUS::value
Mein G2 schaltet an und aus, mein G1 regelt den Prozentwert. Wenn ich den Slider zurück schiebe, dann verändert sich setG1 natürlich auch. Wenn ich nur über den Slider arbeite, klappt alles wunderbar. Wenn ich aber einfach "aus" drücke, bleibt setG1 auf 100% und danach funktioniert das WakeUP Licht nicht mehr.
Ist da mein Aufbau falsch ?
Grüße,
Visionsurfer
Hallo,
sollte bei dir so gehen.
define wakeup_neu DOIF ([20:15]) (set schlafzimmer_dimmen value ({([schlafzimmer_dimmen:getG3:d]+1)}) g1) DOELSEIF ([schlafzimmer_dimmen:getG3:d] >= 99)
Die Werte sollen ja immer 1 höher werden als getG3.
Habe das bei mir in einem größeren DOIF laufen und ist mir bis jetzt noch nicht aufgefallen. Danke visionsurfer!
Ich werde die oben aufgeführten Beispiele noch ändern.
Gruß Jens
ok. Cool. Danke. Werde ich gleich ausprobieren. Sieht aber gut aus, bzw. leuchtet mir ein, dass es so funktionieren muss.
Noch eine Abschlussfrage dazu.
Kann ich das "hochdimmen" begrenzen ? Also wenn ich nur z.B. bis max. 75% doch dimmen will und dann fertig ?
Meine Lampen sind so hell, da bekomme ich morgens schon ein Schock, wenn er bis 100% hoch fährt.
Ich würde gerne irgendwie sagen, das bei 75% Schluss ist ?
Grüße,
Visionsurfer
Hallo,
den Maximalwert stellst du hier ein: ([schlafzimmer_dimmen:getG3:d] >= 75)
define wakeup_neu DOIF ([20:15]) (set schlafzimmer_dimmen value ({([schlafzimmer_dimmen:getG3:d]+1)}) g1) DOELSEIF ([schlafzimmer_dimmen:getG3:d] >= 75)
Gruß Jens
Danke. Funktioniert super.
Hallo,
ich muss das Thema noch mal aufgreifen. Kann es sei das es eventuell durch das:
repeatsame 100
Probleme geben kann ?
Ich habe das DOIF nun wie folgt an eine Weckzeit gebunden:
([([TabletNexus:nextAlarmTime2]+[00:05])]) (set schlafzimmer_LED_ww value ({([schlafzimmer_LED_ww:getG3:d]+5)}) g1) DOELSEIF ([schlafzimmer_LED_ww:getG3:d] >= 65)
2 mal hintereinander funktioniert es ohne Problem. Beim 3 mal, geht das Licht nicht mehr an. In einem Thread im DOIF Forum, wurde gesagt das es vielleicht am repeatsame 100 liegen kann ?
Kann das sein ? Selbst wenn ich den Wert erhöhe, wird aber der auch irgendwann mal erreicht sein.
Was meint ihr ?
Grüße,
Visionsurfer
Hallo visionsurfer,
in deinem Beispiel macht
repeatsame 100
keinen Sinn. Du erhöhst in 5-er Schritten bis 65 oder größer. Da sollte
repeatsame 15
ausreichen.
Ob das den von dir beschriebenen Fehler beeinflusst, kann ich nicht sagen. Ich würde es aber mal testen ... :D
Gruß Jens