Blitzfunktion mit normalen HomeMatic Dimmern/Schaltern

Begonnen von Markus Bloch, 25 Februar 2013, 22:05:34

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo zusammen,

ich bin gerade auf der Suche nach einer eleganten Lösung um zu signalisieren, dass meine Waschmaschine fertig ist. Dabei ist allerdings das Problem, das ich nicht immer weis, in welchem Raum ich bin, daher war die Idee das Licht wirklich nur für Millisekunden einzuschalten und sofort wieder auszuschalten. Nun gibt es ja die Möglichkeit ein "set on-for-timer <name> 1" zu machen. Allerdings ist das zu lange und die Dimmer Faden dabei beim auschalten wieder auf 0 % ganz gemütlich runter.

Ich möchte daher ein "set <name> on; sleep 0.1;set <name> off".

Nun ist das aber nicht die eleganteste Variante. Gerade in Hinblick auf die ACK's für die einzelnen Geräte. Die Frage ist, ob man das besser gestalten kann als so?

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

martinp876

Hallo Markus,

- ein "set on-for-timer <name> 0.1" sollte auch funktionieren. falls nicht zeichne einmal die messages auf. Die Aufloesung ist 0.1.

- ein sleep empfehle ich nie. Laesst sich manchmal nicht vermeiden, aber ich empfehle es trotzdem nicht, da es ganz fhem ausbremst

- beim dimmer brauchst du das volle kommando 'set name on ontime,level,ramptime'. das ist so nicht in fhem... mal sehen

- die HM Loesung des Problems ist komplexer - aber evtl wuerde ich es mit einem virtuellen Button realieren:
=> viruellen button definieren (z.B. vrtBtn1)
=> alle Lampen die reagieren sollen mit dem button peeren (set vrtBtn1 devicepair 0 <lampe1> single)
=> die gewuenschte Aktion in den Lampen definieren (siehe unten)
=> wenn die Waschmaschiene fertig ist ein "set vrtBtn1 press" ausfuehren
===> vorteil: - timing ist praesizer, - weniger messages in der Luft
=> moeglichkeiten: mit einem Button und einem peering kannst du 2 reaktionen definieren: press short und long kann man getrennt nutzen. Also short: waschmaschine fertig=> kurz aus. long=> tuerklingel=> lang aus.
Es sollte sich auch machen lassen, dass du das licht kurz ein oder kurz aus machst. Die Maschine ist ja nicht immer in der Nacht fertig ;-)

programmieren des Schaltverhaltens:
wenn du gleiche schalter benutzt, also gleiche dimmer, oder gleiche switches brauchst du nur einen programmieren. Vorgehen:
- programmiere das gewuenschte Verhalten des links (der Button reaktion
- lese die Daten aus dem device (getConfig) - tip: benutze das device, nicht den channel.
- speichere die Daten mit (get name saveConfig <filename>) tip: auch wieder device, channels sind incl.
- schaue dir das erzeugte File an.
--> kopiere die "reg3" zeile mit vrtBtn1 fuer jeden deiner Lampen und ersetze den namen der Lampe
--> die Zeile kannst du jetzt ausfuehren. Achtung peerhandling, siehen noch weiter unten
=> zur Sicherheit: lese alle deine Devices aus und speichere die Daten wie vor


Peerhandling:
ist zwar schon andersweitign bespeochen aber noch einmal ein paar Grundsaetze:
+ die register zu einem peer kannst du nur schreiben, wenn der channel gepeert ist. Sonst existieren die register nicht und koennen folglich nicht geschrieben werden.
+ ein nochmaliges peeren des gleichen channel<->channel paares ist moeglich. dann werden aber die Reg3 auf default-werte gesetzt. Also nach dem register-setzen nicht noch einmal peeren. Ein peeren mit einem weiteren channel(button) ist aber jederzeit ohne Auswirkungen moeglich.
+ peeren sollte auch mit peerBulk funktionieren. Zu bachten ist, dass du die peerliste den vrtBtn1 auch aktuell halten solltest. peerBulk behandelt nur die eine Seite, hier den Aktor.


Gruss
Martin