RGB Beleuchtung rot Blinken lassen wenn es klingelt

Begonnen von Tueftler1983, 15 April 2016, 15:03:38

Vorheriges Thema - Nächstes Thema

Tueftler1983

Hallo zusammen.
Ich überlege Grade wie ich meine RGB Beleuchtung im Wohnzimmer dazu bekomme ROT 4 mal aufzublinken und danach wieder die zuvor eingestellte Farbe annimmt wenn es an der Türe klingelt.

Das Signal der Türklingel bekomme ich auf einen Dummy namens "KlingelEingang"

Die RGB Beleuchtung wird mit dem Dummy "ledstrip" gesteuert, der als Setlist  alle Farben und On, Off hat

Denke es könnte mit einem doif gehen mir ist nur noch nicht klar wie ich da den State von "ledstrip" auslese um diesen nach dem blinken wieder zu setzen

Tueftler1983

Dachte an sowas aber da stimmt was nicht mit den klammern

define ledstrip_blinken_bei_klingeln DOIF ([KlingelEingang] eq "on") (ReadingsVal[ledstrip "state"] $LEDstate =; set ledstrip ROT, sleep 1; set ledstrip off, sleep 1; set ledstrip on, sleep 1; set ledstrip off, sleep 1; set ledstrip on, sleep 1; set ledstrip $LEDstate)

Kann mir jemand bei der Syntax helfen

Damian

Zitat von: Tueftler1983 am 15 April 2016, 15:05:57
Dachte an sowas aber da stimmt was nicht mit den klammern

define ledstrip_blinken_bei_klingeln DOIF ([KlingelEingang] eq "on") (ReadingsVal[ledstrip "state"] $LEDstate =; set ledstrip ROT, sleep 1; set ledstrip off, sleep 1; set ledstrip on, sleep 1; set ledstrip off, sleep 1; set ledstrip on, sleep 1; set ledstrip $LEDstate)

Kann mir jemand bei der Syntax helfen

define di_led DOIF ([KlingelEingang] eq "on")
(setreading di_led last [ledstrip],
  set ledstrip ROT, set ledstrip off, set ledstrip on, set ledstrip off, set ledstrip on,
  set ledstrip [di_led:last])

attr di_led wait 0,0,1,1,1,1,1


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Hallo mit dem Blinken in rot bzw RED klappt schonmal aber das zurück wechseln in den letzten state funktioniert nicht sprich die RGB LED bleiben dann rot.

Damian

Zitat von: Tueftler1983 am 15 April 2016, 20:52:40
Hallo mit dem Blinken in rot bzw RED klappt schonmal aber das zurück wechseln in den letzten state funktioniert nicht sprich die RGB LED bleiben dann rot.

Dann solltes du sie als letztes ausschalten:

Zitatdefine di_led DOIF ([KlingelEingang] eq "on")
(setreading di_led last [ledstrip],
  set ledstrip ROT, set ledstrip off, set ledstrip on, set ledstrip off, set ledstrip on,set ledstrip off,
  set ledstrip [di_led:last])
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Okay klappt jetzt habe die Wait Zeiten auf 9 gesetzt. Wobei Sekunden sind das wohl nicht.

Danke dir für die super hilfe.

Damian

Zitat von: Tueftler1983 am 15 April 2016, 21:01:15
Okay klappt jetzt habe die Wait Zeiten auf 9 gesetzt. Wobei Sekunden sind das wohl nicht.

Danke dir für die super hilfe.

Bei wait handelt es sich um Sekundenangaben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Komisch denn mit den Werten 0,0,9,9,9,9,9

Blinkt es so schnell als wären es jeweils 1-2 Sekunden

Würde gerne ein Video machen.

Damian

Zitat von: Tueftler1983 am 15 April 2016, 21:11:04
Komisch denn mit den Werten 0,0,9,9,9,9,9

Blinkt es so schnell als wären es jeweils 1-2 Sekunden

Würde gerne ein Video machen.

ja, es ist mein Fehler. Sequenzen werden geklammert, also:

(setreading di_led last [ledstrip])
  (set ledstrip ROT) (set ledstrip off) (set ledstrip on) (set ledstrip off) (set ledstrip on)(set ledstrip off)
  (set ledstrip [di_led:last])
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Ja so klappt es wunderbar. Danke dir für die RIESEN hilfe