HM-LC-RGBW-WM: mehrere Geräte synchronisieren

Begonnen von DC, 25 Februar 2017, 22:50:38

Vorheriges Thema - Nächstes Thema

DC

Hallo zusammen,

Ich habe mehrere HM-LC-RGBW-WM, die ich bei Bedarf synchronisieren möchte.

Dafür habe ich zunächst einen zentralen Dummy angelegt:

Zitat
define v.RGB_Program dummy
attr v.RGB_Program alias Programm
attr v.RGB_Program group 90 Szenen
attr v.RGB_Program icon light_led_stripe_rgb
attr v.RGB_Program room 00_Wohnzimmer
attr v.RGB_Program setList state:0,1,2,3,4,5,6,7
attr v.RGB_Program webCmd state


define v.RGB_Picker dummy
attr v.RGB_Picker alias Farbe
attr v.RGB_Picker devStateIcon {my $icon=Color_devStateIcon(ReadingsVal($name,"rgb","000000"));;$icon=~s/on/light_led_stripe_rgb/;;$icon}
attr v.RGB_Picker group 90 Szenen
attr v.RGB_Picker icon light_led_stripe_rgb
attr v.RGB_Picker readingList hue
attr v.RGB_Picker room 00_Wohnzimmer
attr v.RGB_Picker setList hue:colorpicker,HUE,0,1,100
attr v.RGB_Picker stateFormat hue
attr v.RGB_Picker userReadings rgb {my $hue=ReadingsVal($name,"hue","0");;($hue eq "100")?"FFFFFF":Color::hsv2hex(($hue/100),1,1)}
attr v.RGB_Picker webCmd hue


define v.RGB_Dimmer dummy
attr v.RGB_Dimmer alias Dimmer
attr v.RGB_Dimmer group 90 Szenen
attr v.RGB_Dimmer icon light_led_stripe_rgb
attr v.RGB_Dimmer room 00_Wohnzimmer
attr v.RGB_Dimmer setList state:slider,0,1,100
attr v.RGB_Dimmer webCmd state

Notifys übertragen die Einstellungen auf alle Aktoren:

Zitat
define W.RGB_Picker_notify notify v.RGB_Picker:hue.* { fhem "set W.Sideboard_TV_Color color " . ReadingsVal($NAME,'hue',100) };;{ fhem "set W.TV_Color color " . ReadingsVal($NAME,'hue',100) }
define W.RGB_Dimmer_notify notify v.RGB_Dimmer.* { fhem "set W.Sideboard_TV_Dim pct " . ReadingsVal($NAME,'state',25) };;{ fhem "set W.TV_Dim pct " . ReadingsVal($NAME,'state',25) }
define W.RGB_Programm_notify notify v.RGB_Program.* { fhem "set W.Sideboard_TV_Auto colProgram " . ReadingsVal($NAME,'state',25) };;{ fhem "set W.TV_Auto colProgram " . ReadingsVal($NAME,'state',25) }

Das funktioniert auch recht gut, aber der Dimmer schaltet auch Aktoren ein, die eigentlich ausgeschaltet waren und auch ausgeschaltet bleiben sollen.

Es gibt 4 unabhängig schaltbare Aktoren:
- RGB.TV
- RGB.Wohnzimmer
- RGB.Terrasse
- RGB.Gartenkugeln

Das Zielszenario sollte folgendes sein:
- Einschaltbefehl via Taster oder WebUI: FHEM holt aus den Dummies die aktuellen Sollwerte und schaltet den gewünschten Aktor ein
- bei Farbverläufen:

  • wird das Programm bei allen eingeschalteten Aktoren angehalten
  • wird aus einem Device der Hue-Wert ausgelesen
  • werden alle eingeschalteten Aktoren mit einem Verlauf (5 Sek.) auf diese Farbe eingestellt
  • wird der Verlauf auf allen eingeschalteten Aktoren neu gestartet
- Veränderungen in den Dummies wirken nur auf bereits eingeschaltete Aktoren

Wie löse ich das am besten ?
----------
FHEM auf rPi, HMLAN, HM
Mac, iPad, iPhone

martinp876

Nutze die Kommandos effektiv:
set device1,devise2,device3 pct value

Du willst alle Werte des einen Dimmer auf die anderen übertragen. Allerdings reagiert dein notify auf alle Events. Solltest du versuchen zu verbessern. State ist hier ein Problem, schlecht implementiert. Du solltest evtl Level nutzen. Das spiegelt immer den Level wieder, lässt sich auch filtern.

Warum. Aber sollte etwas angehen, was nicht soll? Das musst du genauer beschreiben.

DC

Danke für die schnelle Antwort, Martin.

ZitatWarum. Aber sollte etwas angehen, was nicht soll? Das musst du genauer beschreiben

Verändere ich z.B. den Dummy Dimmer auf 50%, setzt er alle Aktoren auf 50%, auch wenn sie vorher auf 0 standen.
Ich möchte aber nur die Aktoren verändern, die vorher schon eingeschaltet waren.

ZitatState ist hier ein Problem, schlecht implementiert. Du solltest evtl Level nutzen. Das spiegelt immer den Level wieder, lässt sich auch filtern.

Hast Du einen Link, wo so was ähnliches besser realisiert wurde ?
----------
FHEM auf rPi, HMLAN, HM
Mac, iPad, iPhone

hobu

Evtl. kannst Du den Status von den Devices ja direkt rausfiltern?

Meine zB so:
set W.Sideboard_TV_Auto:FILTER=state="off" colProgram
Raspberry Pi (Model B)
HM-CFG-USB, HM-CC-RT-DN, HM-LC-SW1-FM, HM-Dis-WM55, HM-FK-SCO