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