KNX Dimmer Wakeup Licht

Begonnen von visionsurfer, 01 November 2016, 19:32:24

Vorheriges Thema - Nächstes Thema

visionsurfer

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



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

aliate

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ß

CoolTux

Vielleicht findest du unter dem Namen transition etwas.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

visionsurfer

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

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

Black7king

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

visionsurfer

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

EIB-Fan

#8
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

Black7king

DANKE!!!

So was meinte ich und sieht doch gleich Ganz andres aus (für mich Besser einfacher Leichter)


visionsurfer

Hi,

das ist natürlich viel besser, als das was ich bisher hatte.
Werde ich heute Abend ausprobieren.

Danke.

Grüße,
Visionsurfer

EIB-Fan

#11
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

visionsurfer

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



EIB-Fan

#13
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

visionsurfer

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

EIB-Fan

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

visionsurfer

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

EIB-Fan

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

visionsurfer


visionsurfer

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


EIB-Fan

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