ESP RGBWW Wifi Led Controller - Firmware vbs

Begonnen von vbs, 18 April 2017, 09:26:13

Vorheriges Thema - Nächstes Thema

Frank_Huber

#675
denke ich hab was ich will (für das back-End):

Hardware:
define ESP_RGBWW_1 EspLedController 192.168.112.139
attr ESP_RGBWW_1 DbLogExclude .*
attr ESP_RGBWW_1 group Hardware
attr ESP_RGBWW_1 room ESP_RGBWW
attr ESP_RGBWW_1 stateFormat R=raw_red | G=raw_green | B=raw_blue | CW=raw_cw | WW=raw_ww


Dummys: (wie deine, nur 6 Stück)
define D_ESP_RGBWW_1_White_Dimmer dummy
attr D_ESP_RGBWW_1_White_Dimmer alias 1_Weiß_Dimmer
attr D_ESP_RGBWW_1_White_Dimmer group Dimmer
attr D_ESP_RGBWW_1_White_Dimmer room ESP_RGBWW
attr D_ESP_RGBWW_1_White_Dimmer setList state:slider,0,1,100
attr D_ESP_RGBWW_1_White_Dimmer webCmd state

define D_ESP_RGBWW_1_White_Color dummy
attr D_ESP_RGBWW_1_White_Color alias 2_Weiß-Farbton
attr D_ESP_RGBWW_1_White_Color group Dimmer
attr D_ESP_RGBWW_1_White_Color room ESP_RGBWW
attr D_ESP_RGBWW_1_White_Color setList state:slider,0,1,100
attr D_ESP_RGBWW_1_White_Color webCmd state

define D_ESP_RGBWW_1_RGB_Dimmer dummy
attr D_ESP_RGBWW_1_RGB_Dimmer alias 3_RGB-Dimmer
attr D_ESP_RGBWW_1_RGB_Dimmer group Dimmer
attr D_ESP_RGBWW_1_RGB_Dimmer room ESP_RGBWW
attr D_ESP_RGBWW_1_RGB_Dimmer setList state:slider,0,1,100
attr D_ESP_RGBWW_1_RGB_Dimmer webCmd state

define D_ESP_RGBWW_1_RGB_R dummy
attr D_ESP_RGBWW_1_RGB_R alias 4_Rot
attr D_ESP_RGBWW_1_RGB_R group Dimmer
attr D_ESP_RGBWW_1_RGB_R room ESP_RGBWW
attr D_ESP_RGBWW_1_RGB_R setList state:slider,0,1,100
attr D_ESP_RGBWW_1_RGB_R webCmd state

define D_ESP_RGBWW_1_RGB_G dummy
attr D_ESP_RGBWW_1_RGB_G alias 5_Grün
attr D_ESP_RGBWW_1_RGB_G group Dimmer
attr D_ESP_RGBWW_1_RGB_G room ESP_RGBWW
attr D_ESP_RGBWW_1_RGB_G setList state:slider,0,1,100
attr D_ESP_RGBWW_1_RGB_G webCmd state

define D_ESP_RGBWW_1_RGB_B dummy
attr D_ESP_RGBWW_1_RGB_B alias 6_Blau
attr D_ESP_RGBWW_1_RGB_B group Dimmer
attr D_ESP_RGBWW_1_RGB_B room ESP_RGBWW
attr D_ESP_RGBWW_1_RGB_B setList state:slider,0,1,100
attr D_ESP_RGBWW_1_RGB_B webCmd state


Logik per DOIF:
define DOIF_ESP_RGBWW_1 DOIF (["^D_ESP_RGBWW"])\
{\
my $w_dim = ReadingsVal("D_ESP_RGBWW_1_White_Dimmer","state","0")/100;;\
my $w_col = ReadingsVal("D_ESP_RGBWW_1_White_Color","state","0");;\
my $rgb_dim = ReadingsVal("D_ESP_RGBWW_1_RGB_Dimmer","state","0")/100;;\
my $rgb_r = ReadingsVal("D_ESP_RGBWW_1_RGB_R","state","0");;\
my $rgb_g = ReadingsVal("D_ESP_RGBWW_1_RGB_G","state","0");;\
my $rgb_b = ReadingsVal("D_ESP_RGBWW_1_RGB_B","state","0");;\
my $raw_r = 0;;my $raw_g = 0;;my $raw_b = 0;;my $raw_cw = 0;;my $raw_ww = 0;;\
\
$raw_r = ($rgb_r * 10.23) * $rgb_dim;;\
$raw_g = ($rgb_g * 10.23) * $rgb_dim;;\
$raw_b = ($rgb_b * 10.23) * $rgb_dim;;\
\
if ($w_col < 50 ) {\
$raw_ww = $w_col * 20.46 * $w_dim;;\
$raw_cw = 1023 * $w_dim;;   \
} else {\
$raw_cw = (100 - $w_col) * 20.46 * $w_dim;;\
$raw_ww = 1023 * $w_dim;;\
\
};;\
fhem ("set ESP_RGBWW_1 raw $raw_r,$raw_g,$raw_b,$raw_ww,$raw_cw");;\
}
attr DOIF_ESP_RGBWW_1 DbLogExclude .*
attr DOIF_ESP_RGBWW_1 do always
attr DOIF_ESP_RGBWW_1 group Logik
attr DOIF_ESP_RGBWW_1 room ESP_RGBWW


jetzt muss ich mir Gedanken machen wie ich das als Frontend hinbekomme.
mal schauen was es an ESPs gibt die 6 analoge Eingänge haben. damit müste sich was basteln lassen.

kadettilac89

Zitat von: Frank_Huber am 16 August 2018, 13:38:41
jetzt muss ich mir Gedanken machen wie ich das als Frontend hinbekomme.

Ich habe meine Slider schon vor Langem gebaut, sehe grad dass sich im Colorpicker einiges getan hat ... ggf. kannst du die Colorpicker von hue (als dummy) verwenden und daraus die Raw-Werte abgreifen und mit denen per notify oder doif schalten

https://wiki.fhem.de/wiki/Color

Zitat von: Frank_Huber am 16 August 2018, 13:38:41
mal schauen was es an ESPs gibt die 6 analoge Eingänge haben. damit müste sich was basteln lassen.

Was willst du damit schalten? Der Controller macht ja genau die 5 Kanäle, oder ist das ein anderes Projekt?

Frank_Huber

#677
Zitat von: kadettilac89 am 16 August 2018, 15:39:00
Ich habe meine Slider schon vor Langem gebaut, sehe grad dass sich im Colorpicker einiges getan hat ... ggf. kannst du die Colorpicker von hue (als dummy) verwenden und daraus die Raw-Werte abgreifen und mit denen per notify oder doif schalten

https://wiki.fhem.de/wiki/Color

Was willst du damit schalten? Der Controller macht ja genau die 5 Kanäle, oder ist das ein anderes Projekt?

Frontend = etwas was an der Wand hängt. Denke da s war vorher nicht klar.

d.h. ich will die Dummys über Hardware füttern. ein ESP32 mit Fadern z.B.
das Backend in FHEM steht ja jetzt.
Es muss halt etwas sein was ohne Handy / Tablet / sonstwas einfach zu bedienen ist. Also tauglich für Frau und Kinder. :-)
Hab da jetzt nen kleines 6-Kanal DMX Pult im Auge, das dann ausschlachten und nen ESP32 rein. mittels ESPEasy anbinden und fertig sind die Hardware-Fader.

Frank_Huber

Morgähn,

besteht in des vbs Firmware die Möglichkeit Einschalt Settings zu definieren?
Also nach Power Up gewisse raw Werte einzustellen?

vbs

Geht mW leider nicht, fände ich aber auch ein sinnvolles Feature.

Im Moment ist es so, dass beim Booten die zuletzt eingestellte Farbe wieder eingestellt wird. Aber auch das geht soweit ich weiß nur für HSV (nicht für RAW). Also da müsste man eigentlich mal einiges umbauen...

Frank_Huber

#680
OK, danke für die Info.
dann versuche ich mich mal mit einem Presence und DOIF zu behelfen.

EDIT:
presence Modul anlegen für den Controller,
den Code aus dem DOIF in die myUtils auslagern,
neues DOIF anlegen:
defmod ESP_RGBWW_1_startup DOIF ([ESP_RGBWW_1_presence:"^present$"]) {esp_rgbww_1} (set ESP_RGBWW_1_presence overrideInterval 60)\
DOELSEIF ([ESP_RGBWW_1_presence:"^absent$"]) ((set ESP_RGBWW_1_presence overrideInterval 5))
attr ESP_RGBWW_1_startup do always


dauert paar Sekunden, aber nach Startup werden die Dimmer-Dummys abgefragt und der Controller eingestellt.

vbs

Besteht da allgemeines Interesse an einem besser kontrollierbaren Bootup-Verhalten? Also feste Farbe und Wahl zwischen HSV und Raw?

RaspiLED

Ja klar ;-) Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Frank_Huber

Alternativ zur festen Boot Farbe wäre es auch denkbar dass sich der Controller im Modul "anmeldet"
Damit könnte FHEM schneller die Ereichbarkeit feststellen und direkt darauf reagieren.

Oder der Controller könnte sich einfach die letzte Einstellung merken.

kadettilac89

Zitat von: vbs am 21 August 2018, 11:03:41
Besteht da allgemeines Interesse an einem besser kontrollierbaren Bootup-Verhalten? Also feste Farbe und Wahl zwischen HSV und Raw?

Ich hätte Interesse an einem loopenden Programm (set LED_rgb hue +359 120 lqr:Rainbow) beim Start :)  Aber fester Startwert ist auch schon interessant.

vbs

Haha ich bin offenbar etwas zerstreut:
https://github.com/verybadsoldier/esp_rgbww_firmware/wiki#startup-color--vbs33

Aber die Doku wird offenbar auch nicht so gut angenommen ;)

Frank_Huber

#686
Zitat von: vbs am 21 August 2018, 16:45:44
Haha ich bin offenbar etwas zerstreut:
https://github.com/verybadsoldier/esp_rgbww_firmware/wiki#startup-color--vbs33

Aber die Doku wird offenbar auch nicht so gut angenommen ;)

Uuups. :)
vielleicht in der Modul-Doku verlinken?

aber btw: Das OTA Update liefert die vbs32.

Frank_Huber

Das OTA Update auf die testing Version hat ihn wohl erstmal getötet.
Er kommt nicht mehr online.

Gesendet von meinem Doogee S60 mit Tapatalk


vbs

Hm ist hier auch passiert. Muss ich mir ansehen.

Frank_Huber

Wollte den aus der ersatzteilkiste gerade auf die Release Version ziehen um den neuen zu ersetzen: scheinbar auch tot.

Gesendet von meinem Doogee S60 mit Tapatalk