ESP RGBWW Wifi Led Controller - Firmware vbs

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

Vorheriges Thema - Nächstes Thema

Per

Kurze Frage dazu: kann ich mein "originales", über die Sammelbestellung gekauftes und bisher nicht weiter geflashtes Modul mittels neuen Modul und neuer Update-URL OTA auf den aktuellen Stand bringen? Oder muss ich einmalig die dazugehörige Firmware "online" aufspielen?

Shojo

#391
@vbs schau mal, da hat noch einer auf mein Blog ein Tipp gehabt für noch eine sehr günstige Hardware!
https://www.bastelbunker.de/esp-rgbww-wifi-led-controller-vbs-edition/#comment-43093
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

vbs

Zitat von: Per am 05 Januar 2018, 13:56:41
Kurze Frage dazu: kann ich mein "originales", über die Sammelbestellung gekauftes und bisher nicht weiter geflashtes Modul mittels neuen Modul und neuer Update-URL OTA auf den aktuellen Stand bringen? Oder muss ich einmalig die dazugehörige Firmware "online" aufspielen?
Das "müsste eigentlich"™ gehen, ich hab es aber länger nicht getestet.
Mit "online" meinst du über das Webinterface des Controllers, oder? Genau, das wäre dann die Alternative.

vbs

Zitat von: Shojo am 05 Januar 2018, 14:00:50
@vbs schau mal, da hat noch einer auf mein Blog ein Tipp gehabt für noch eine sehr günstige Hardware!
https://www.bastelbunker.de/esp-rgbww-wifi-led-controller-vbs-edition/#comment-43093
Ja das ist schick! Von diesem H801 hab ich hier im Forum auch schon mal gelesen. Sicher eine gute Alternative. Es gab "damals" auch schon Berichte, dass Leute die Firmware darauf zum Laufen gebracht haben (mit geänderte Pin-Config).
Aber mal ehrlich: nichts leuchtet schöner als selbst gelötet, oder? ;)

Shojo

#394
Zitat von: vbs am 05 Januar 2018, 14:24:06
Aber mal ehrlich: nichts leuchtet schöner als selbst gelötet, oder? ;)
Ohja, wie recht Du hast! :D

Aber schon cool  zu sehen was dein "kleines" Feature general-pin_config alles so möglich macht :)
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

vbs

Ist aber nicht mein Verdienst! Das ist schon eine Weile her (noch auf der Original-FW) durch Verändern der Pins im Code. Hab es gefunden:
https://forum.fhem.de/index.php/topic,48918.msg524270/topicseen.html#msg524270

Ist jetzt nur einfacher geworden :)

Shojo

#396
Ach noch was....
Ich habe testweise über vier Controller eine Farbspiel laufen

set WZ.Licht.RGB.Fensterfront hue +90 5 r;
set WZ.Licht.RGB.Fensterfront sat 50 5 qr;
set WZ.Licht.RGB.Fensterfront sat 80 5 qr;

davon ist einer in Master Mode und die restlichen drei im Slave Mode.
Es wird über MQTT nur der Clock und die CMD gesync, nun laufen das schon 36 Stunden,  und es sind noch alle Controller synchron.

Nicht einer läuft aus dem Ruder!
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

Per

Zitat von: vbs am 05 Januar 2018, 14:21:25Mit "online" meinst du über das Webinterface des Controllers, oder?
Eigentlich meinte ich damit die serielle Schnittstelle des Controllers. Aber wenn es über das Webinterface geht, umso besser!

vbs

Zitat von: Shojo am 05 Januar 2018, 14:42:48
Es wird über MQTT nur der Clock und die CMD gesync, nun laufen das schon 36 Stunden,  und es sind noch alle Controller synchron.

Nicht einer läuft aus dem Ruder!
Freut mich! An dem Feature hab ich tatsächlich ziemlich lange rumgedoktort und einige Sachen probiert, die nicht funktioniert haben...  ::) Das Feature war auch der eigentliche Auslöser, warum ich angefangen hatte, an der Firmware rumzuspielen.
Die Controller haben ja weder eine gemeinsame Uhrzeit noch laufen die Quarze perfekt synchron. Die Farbanimationen laufen mit 50 Hz (also 20 ms Intervalle). Das läuft nun so, dass alle Controller permanent mitzählen, wie viele Intervalle sie bisher durchlaufen haben. Der Master schickt dann als Referenz regelmäßig per MQTT wie viele Intervalle er selbst bisher durchlaufen hat. Die Slaves vergleichen dann und passen permanent minimal (im Mikrosekundenbereich) ihre eigene Intervalldauer an, um etwas zu beschleunigen oder abzubremsen, so dass dann alle Controller immer gleich viele Intervalle durchlaufen.

Das kannst du bei den Slaves in den Readings "clockCurrentInterval" und "clockSlaveOffset" sehen. Das erste gibt die aktuelle Intervallänge an in Mikrosekunden, normal ist eben 20000 (us). Werte kleiner 20000 bedeuten, dass der Controller gerade etwas schneller als normal läuft (und umgekehrt). Das "clockSlaveOffset" ist die Anzahl an Intervallen, die der Slave dem Master hinterherhinkt bzw. ihm voraus ist. Sollte also im Idealfall 0 bzw. nicht weit davon entfernt sein. Eine 7 würde bedeuten, dass der Master dem Slave 140 ms voraus ist (7 * 20 ms).

ext23

Zitat von: vbs am 05 Januar 2018, 15:39:55
Der Master schickt dann als Referenz regelmäßig per MQTT wie viele Intervalle er selbst bisher durchlaufen hat.

Wir oft ca.? Ich mach mir da ein bissel Sorgen über mein WLAN.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Shojo

Zitat von: ext23 am 05 Januar 2018, 16:15:43
Wir oft ca.? Ich mach mir da ein bissel Sorgen über mein WLAN.

Kann man alles einstellen, hier mal die List meines Master Device.


Internals:
   DEF        192.168.0.30
   DeviceName 192.168.0.30:9090
   FD         64
   IP         192.168.0.30
   LAST_RECV  1515165655.71894
   NAME       WZ.Licht.RGB.Fensterfront
   NR         412
   NTFY_ORDER 50-WZ.Licht.RGB.Fensterfront
   PARTIAL   
   PORT       9090
   STATE      on
   TYPE       EspLedController
   READINGS:
     2018-01-05 16:21:34   colorMode       hsv
     2018-01-05 13:22:12   config-color-brightness-blue 100
     2018-01-05 13:22:12   config-color-brightness-cw 100
     2018-01-05 13:22:12   config-color-brightness-green 100
     2018-01-05 13:22:12   config-color-brightness-red 100
     2018-01-05 13:22:12   config-color-brightness-ww 100
     2018-01-05 13:22:12   config-color-colortemp-cw 6000
     2018-01-05 13:22:12   config-color-colortemp-ww 2700
     2018-01-05 13:22:12   config-color-hsv-blue 0
     2018-01-05 13:22:12   config-color-hsv-cyan 0
     2018-01-05 13:22:12   config-color-hsv-green 0
     2018-01-05 13:22:12   config-color-hsv-magenta 0
     2018-01-05 13:22:12   config-color-hsv-model 0
     2018-01-05 13:22:12   config-color-hsv-red 0
     2018-01-05 13:22:12   config-color-hsv-yellow 0
     2018-01-05 13:22:12   config-color-outputmode 1
     2018-01-05 13:22:12   config-events-color_interval_ms 500
     2018-01-05 13:22:12   config-events-server_enabled 1
     2018-01-05 13:22:12   config-general-device_name WZ.Licht.RGB.Fensterfront
     2018-01-05 13:22:12   config-general-pin_config 14,4,5,15,12
     2018-01-05 13:22:12   config-network-ap-password rgbwwctrl
     2018-01-05 13:22:12   config-network-ap-secured 0
     2018-01-05 13:22:12   config-network-ap-ssid WZ.Licht.RGB.Fensterfront
     2018-01-05 13:22:12   config-network-connection-dhcp 0
     2018-01-05 13:22:12   config-network-connection-gateway 192.168.0.254
     2018-01-05 13:22:12   config-network-connection-ip 192.168.0.30
     2018-01-05 13:22:12   config-network-connection-netmask 255.255.255.0
     2018-01-05 13:22:12   config-network-mqtt-enabled 1
     2018-01-05 13:22:12   config-network-mqtt-password
     2018-01-05 13:22:12   config-network-mqtt-port 1883
     2018-01-05 13:22:12   config-network-mqtt-server 192.168.0.251
     2018-01-05 13:22:12   config-network-mqtt-topic_base Haus/Wohnzimmer/
     2018-01-05 13:22:12   config-network-mqtt-username
     2018-01-05 13:22:12   config-ota-url  http://rgbww.dronezone.de/testing/version.json
     2018-01-05 13:22:12   config-security-api_secured 0
     2018-01-05 13:22:12   config-sync-clock_master_enabled 1
     2018-01-05 13:22:12   config-sync-clock_master_interval 10
     2018-01-05 13:22:12   config-sync-clock_slave_enabled 0
     2018-01-05 13:22:12   config-sync-clock_slave_topic home/led1/clock
     2018-01-05 13:22:12   config-sync-cmd_master_enabled 1
     2018-01-05 13:22:12   config-sync-cmd_slave_enabled 0
     2018-01-05 13:22:12   config-sync-cmd_slave_topic home/led1/command
     2018-01-05 13:22:12   config-sync-color_master_enabled 0
     2018-01-05 13:22:12   config-sync-color_master_interval_ms 0
     2018-01-05 13:22:12   config-sync-color_slave_enabled 0
     2018-01-05 13:22:12   config-sync-color_slave_topic home/led1/color
     2018-01-05 16:21:34   ct              2700
     2018-01-05 16:21:34   hsv             279.3,63.05,100
     2018-01-05 16:21:34   hue             279.3
     2018-01-05 13:22:12   info-current_rom_slot 1
     2018-01-05 13:22:12   info-deviceid   3766092
     2018-01-05 13:22:12   info-event_num_clients 1
     2018-01-05 13:22:12   info-firmware   0.3.1-vbs18b
     2018-01-05 13:22:12   info-mac        60019439774c
     2018-01-05 13:22:12   info-sming_version 3.5.0
     2018-01-02 16:09:57   lastFwUpdate    Update successful - Restarting device...
     2018-01-05 16:21:34   raw_blue        645
     2018-01-05 16:21:34   raw_cw          0
     2018-01-05 16:21:34   raw_green       0
     2018-01-05 16:21:34   raw_red         422
     2018-01-05 16:21:34   raw_ww          378
     2018-01-05 16:21:34   rgb             c75eff
     2018-01-05 16:21:34   sat             63.05
     2018-01-05 13:22:07   state           opened
     2018-01-05 16:21:34   stateLight      on
     2018-01-05 16:21:34   val             100
   helper:
     isBusy     0
     oldVal     100
     cmdQueue:
Attributes:
   group      Licht
   icon       light_led_stripe_rgb
   room       0.0_Test_Zimmer,1.1_Wohnzimmer
   stateFormat stateLight
   webCmd     toggle:on:off:rgb ff73f8:rgb 8ff2ff:rgb
   widgetOverride rgb:colorpicker,HSV
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

vbs

Genau, danke Shojo. Das ist in dem Fall der Parameter "config-sync-clock_master_interval". Default ist 30, wird also normalerweise alle 30 Sekunden versendet.
Ich hab es bei mir mit 30 laufen und bisher keine Probleme. Könnte mir denken, dass durchaus auch deutlich größere Werte gut funktionieren. Wobei die Nachrichten aber klein sind und hoffentlich keine Probleme im WLAN machen.

https://github.com/verybadsoldier/esp_rgbww_firmware/wiki#clock-synchronization

(Hab gerade gesehen, dass im Wiki noch "10" als Default steht. Das stimmt aber nicht mehr, habs korrigiert...)

GU!DO

Hallo Robin,

ich würde gerne die Serielle Schnittstelle des ESP nutzen, um die einzelnen PWM Kanäle darüber EIN bzw. AUS zu schalten.
Der Hintergrund ist, dass ich ein Bussystem (openHCAN) mit ATMega Prozessoren habe, an dem ich die Controller betreiben möchte.
Die Prozessoren haben eine UART Schnittstelle integriert, die ich dazu verwenden könnte.

Somit hätte ich die Grundfunktionalität (EIN/AUS) über den Bus, und die Gimmicks (Dimmen, Farbtemperatur...) über FHEM realisiert.

Der erste Gedanke war, die Spannungsversorgung des Controllers zur Steuerung ein und aus zu schalten.
Jedoch ist die Sache mit der seriellen Schnittstelle eleganter und zudem wäre auch das gezielte Schalten einzelner Kanäle möglich.

Das die Firmware für die Kommunikation über RS232 so nicht ausgelegt ist, ist mir bekannt.

Siehst Du irgend welche Gründe, warum man die Firmware diesbezüglich nicht anpassen könnte?

Vielen Dank

Guido

P.S. Ich kann auf Deinem github Accout keinen Stable Branch Deiner Firmware-Version finden. Gibt es nur den Develop-Branch?

vbs

Hi Guido,

da seh ich technisch jetzt erstmal keine Probleme. Wenn ich ich richtig verstehe, müsstest du die Firmware so erweitern, dass auch Befehle über die serielle Schnittstelle entgegen genommen werden können. Entweder eben nur für ein/aus oder evtl. schickst du die gleichen JSON-Befehle, wie sich auch per HTTP reinkommen.

Und ja, gibt nur den devel-Branch. Ich pflege momentan keine Trennung. Ein guter Ansatzpunkt wäre vermutlich die letzte stabile Release-Version:
https://github.com/verybadsoldier/esp_rgbww_firmware/commit/b26742452ee19e6b6a63aad4b78e311024a6fb4e

Aber da passiert im Moment nicht viel. Versuche momentan nur etwas auf RAM zu optimieren.

ext23

Nabend,

ich würde dann auch von der originalen auf die vbs FW springen. Kann ich das direkt via OTA machen oder sollte ich es lieber per ISP machen?

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)