Autor Thema: ESP RGBWW Wifi Led Controller - Firmware vbs  (Gelesen 35509 mal)

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
ESP RGBWW Wifi Led Controller - Firmware vbs
« am: 18 April 2017, 09:26:13 »
ACHTUNG:
Name und Update-URL für das FHEM-Modul hat sich geändert. Bitte folgende URL benutzen:
update add https://raw.githubusercontent.com/verybadsoldier/esp_rgbww_fhemmodule/master/controls_espledcontroller.txt
Name ist nun "EspLedController". Devices in FHEM müssen entsprechend umgestellt werden.

Es handelt sich hier um einen Fork von Patrick's (mrpj) Firmware für die Selbstbau-ESP-RGBWW-Controller von hier:
https://forum.fhem.de/index.php?topic=48918.0

Da ich die Firmware jetzt einige Wochen auf mehreren Controller bei mir betrieben habe und auch keine weiteren Problem aufgetaucht sind, würde ich die Firmware jetzt aus dem Status "experimentell" entlassen, da ich sie jetzt für ausreichend stabil halte.

Die Änderungen bzw. neuen Features an Firmware bzw. FHEM Modul sind hier zu finden:
https://github.com/verybadsoldier/esp_rgbww_firmware/wiki#modifications
https://github.com/verybadsoldier/esp_rgbww_fhemmodule/wiki#modifcations

Firmware
Ich hab hier mal versucht, die Firmware zu beschreiben:
https://github.com/verybadsoldier/esp_rgbww_firmware/wiki

Die URL zum Installieren der Firmware (über Webinterface) ist diese:
http://rgbww.dronezone.de/release/version.json

Es gibt auch eine "Testing"-Variante mit evtl. noch nicht so gut erprobten Features (Tester willkommen!):
http://rgbww.dronezone.de/testing/version.json


Nach der Erstinstallation kann die Firmware später in FHEM mit dem Befehl "fw_update" aktualisiert werden:
https://github.com/verybadsoldier/esp_rgbww_fhemmodule/wiki#controller-firmware-updates

FHEM Modul

Ich hab auch das FHEM-Modul angepasst, so dass die Features (alle?) auch direkt aus FHEM heraus verwendet werden können. Auch dazu hier ein bisschen Dokumentation:
https://github.com/verybadsoldier/esp_rgbww_fhemmodule/wiki

Um diese Version des Moduls von der Original-Version "32_LedController" unterscheiden zu können und damit beide Version auf einem System parallel betrieben werden können, heißt diese Version hier "32_EspLedController".

Das Modul kann als FHEM-Repository eingebunden und upgedatet werden:
update add https://raw.githubusercontent.com/verybadsoldier/esp_rgbww_fhemmodule/master/controls_espledcontroller.txt
Wer möchte, kann auch den develop-Kanal nutzen (neuer, aber weniger getestet):
update add https://raw.githubusercontent.com/verybadsoldier/esp_rgbww_fhemmodule/develop/controls_espledcontroller.txt
Achtung:
Bis Dez. 2017 hieß das Modul ebenfalls "32_LedController" und wurde nachträglich in "32_EspLedController" umbenannt. Der alte existiert im Git momentan noch, wird jedoch nicht mehr gepflegt. Also bitte auf den neuen Namen umstellen.

Hinweise
Die Firmware und das FHEM-Modul sind als Einheit gedacht. Also es wird nicht bzw. schlecht funktionieren, die neue Firmware mit dem alten FHEM-Modul oder umgekehrt zu benutzen.

Wenn etwas nicht klappt, bitte Bescheid geben. Bitte dazu sagen, was genau gemacht wurde, was das erwartete Ergebnis war und Logausgaben posten.


Updates
https://github.com/verybadsoldier/esp_rgbww_firmware/wiki#overview-of-modifications

Release
25.04.2017 - vbs4b
06.05.2017 - vbs5b
19.05.2017 - vbs6
06.08.2017 - vbs7 - EventServer verschickt immer auch RAW Werte, set-Command "ct" hinzugefügt
03.12.2017 - vbs9 - Fixed MQTT username/password
05.12.2017 - vbs10 - Added output pin configuration
xx.12.2017 - vbs11 - Bugfix: ap-password was missing in configuration API
07.12.2017 - vbs12 - Bugfix: Config parameter mqtt/topic-base not being loaded from config
27.12.2017 - vbs16 - Feature: Updated to Sming 3.5
                                BugfixTCP connection handling. Added some elements to JSON info structure
                                Bugfix: Fixed HTTP redirection to /webapp
                                Feature: version tag to settings file
02.01.2018 - vbs17 (withdrawn) - Bugfix: Fix crashes on parallel HTTP requests
27.01.2018 - vbs30  - Feature: webapp updated to shojo6 (thanks!)
                               - Feature: Added "uptime" in info message
                               - Improvement: Better handling of clock syncs when clock master reboots
                               - Improvement: Removed custom version string. Solely use Git version string now for consistent versioning
                               - Improvement: improved stability
                               - Improvement: compiled with SMING Release settings (no serial debug output)
                               - Bugfix: Fixed webclient crash when SSIDs with non-ASCII characters appear (SSID will be ignored!)
                               - Bugfix: Fixed MQTT clock sync drift
01.03.2018 - vbs31: - webapp shojo7
10.04.2018 - vbs32: - updated to Sming 3.5.1
                               - fixed spurious reboots


Testing
17.12.2017 - vbs15b - Fixed HTTP redirection to /webapp
17.12.2017 - vbs14b - Fixed TCP connection handling. Added some elements to JSON info structure
27.12.2017 - vbs16
02.01.2018 - vbs17
11.01.2018 - vbs24b - Fixed MQTT clock sync drift
                               - Added "uptime" in info message
                               - Better handling of clock syncs when clock master reboots
                               - Fixed webclient crash when SSIDs with non-ASCII characters appear (SSID will be ignored!)
                               - Fixed rboot config conflicting with Sming RTC
                               - Removed custom version string. Solely use Git version string now for consistent versioning
20.01.2018 - vbs26b - webapp updated to shojo3 (thanks)
                               - improved stability
                               - uptime only updated every 60 seconds
... and many more
 
Mit diesem Befehl können alle Controller upgedatet werden:
set TYPE=EspLedController fw_update
Nach einem Upgrade von der Original-FW wird noch die alte Update-URL im Controller hinterlegt sein. Mit diesem Befehl lassen sich einmalig alle Controller auf die neue Update-URL setzen:
set TYPE=EspLedController config config-ota-url http://rgbww.dronezone.de/release/version.json
« Letzte Änderung: 10 April 2018, 19:22:14 von vbs »
Gefällt mir Gefällt mir x 8 Liste anzeigen

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #1 am: 18 April 2017, 23:00:15 »
Man kann jetzt auch Firmware-Updates direkt aus FHEM heraus anstoßen.
« Letzte Änderung: 19 April 2017, 23:14:07 von vbs »

Offline Mafi

  • New Member
  • *
  • Beiträge: 21
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #2 am: 19 April 2017, 22:27:02 »
Ich habe jetzt mal das geänderte FHEM Modul runtergeladen und das vorhandene mit dem neuen überschrieben. Nach einem Reload des Moduls konnte ich dann erfolgreich die Firmware des RGBWW Controllers auf die Entwicklerversion updaten. Prima!
Nach einem Neustart von FHEM, weil die ON/OFF Funktion via Lampensymbol in der FHEM Oberfläche nicht mehr ging (schaltete immer nur ein, aber nie aus und zeigte auch immer eine ausgeschaltete Birne) war dann allerdings mein LEDController Device ganz weg und ich bekam nur mehrere Fehlermeldungen beim Start, dass ich das Gerät doch bitte erst definieren soll. Das kam wohl von diversen NOTIFYs, die sich auf den jetzt verschwundenen Controller bezogen.
Es stellte sich nach Sichtung des Quelltextes heraus, dass das Moodul jetzt eine andere Definition des Devices verlangt. Entgegen der Fehlermeldung, die ich zunächst beim Versuch das Device wieder anzulegen erhielt, lautet die Syntax nicht "<name> LedController <type> <IP>" sondern es muss "<name> LedController <IP> <port>" sein und es müssen auch alle Parameter angegebn werden.
Damit konnte ich das Device dann wieder anlegen. Jetzt gibt es allerdings die vorher vorhandene ON/OFF Funktion via Glühbirnensymbol gar nicht mehr. Ist das so gewollt? Ich habe jetzt einfach eine Schaltfläche mit der Farbe Schwarz zum Abschalten hinzugefügt.
Mehr habe ich jetzt noch nicht ausprobiert, Farbe direkt setzen und einige Fades haben aber schon funktioniert.

Fernziel für mich ist es, den Controller für mein Aquarium einzusetzen. Dazu muss ich aber RGB und zwei Weißkanäle getrennt bedienen können, weshalb diese Firmware für mich interessant ist. Wie mir scheint, könnte ich das damit wohl umsetzen. Sonnenaufgang mit den RGB LEDs, dann langsam die beiden Weißkanäle aufdimmen und abends umgekehrt. Oder so ähnlich. Idealerweise kann ich den gesamten Tagesablauf einmal morgens auf dem Controller starten und muss danach nicht mehr eingreifen bis spät abends das Licht wieder aus ist.
Die Aquarienleuchte einfach als normale RGBWWCW Leuchte zu definieren geht nicht, weil ich für volle Helligkeit im Becken alle Kanäle gleichzeitig auf voller Leistung benötige, die normale Vorgehensweise die Helligkeit über alle Farben und Farbtemperaturen konstant zu lassen ist da nicht brauchbar. Für Wohnraumbeleuchtung ist das natürlich das richtige Verhalten, da erwartet man, dass die Helligkeit nicht von der Farbtemperatur abhängt.

Grüße
Markus

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #3 am: 19 April 2017, 22:59:01 »
Es stellte sich nach Sichtung des Quelltextes heraus, dass das Moodul jetzt eine andere Definition des Devices verlangt. Entgegen der Fehlermeldung, die ich zunächst beim Versuch das Device wieder anzulegen erhielt, lautet die Syntax nicht "<name> LedController <type> <IP>" sondern es muss "<name> LedController <IP> <port>" sein und es müssen auch alle Parameter angegebn werden.
Danke für den Hinweise! Ich hab die Hilfe korrigiert und werde das auch im Wiki erwähnen.
EDIT:
War im Prinzip ein Bug... der Port war optional gedacht und sollte dann auf 9090 "defaulten"... also eigentlich keine Änderungen an der Defintion notwendig
/EDIT

Damit konnte ich das Device dann wieder anlegen. Jetzt gibt es allerdings die vorher vorhandene ON/OFF Funktion via Glühbirnensymbol gar nicht mehr. Ist das so gewollt? Ich habe jetzt einfach eine Schaltfläche mit der Farbe Schwarz zum Abschalten hinzugefügt.
Also die Befehle on/off sind vorhanden und sollten hoffentlich weiter funktionieren. Ich kann nicht genau sagen, was bei deinem Glühbirnensymbol passiert. Kannst du auf Befehle bezogen sagen, was nicht funktioniert bzw. das einmal mit Befehlen nachvollziehen? Ich vermute, dass ein Kommando "toggle" benötigt wird (oder eine andere Definition von webCmd). Werde ich mal hinzufügen bei Gelegenheit.

Fernziel für mich ist es, den Controller für mein Aquarium einzusetzen. Dazu muss ich aber RGB und zwei Weißkanäle getrennt bedienen können, weshalb diese Firmware für mich interessant ist. Wie mir scheint, könnte ich das damit wohl umsetzen. Sonnenaufgang mit den RGB LEDs, dann langsam die beiden Weißkanäle aufdimmen und abends umgekehrt.
Ich fürchte, da muss ich die enttäuschen: die hardwareseitigen Ausgänge sind genau so verknüpft wie mit der original Firmware. Also du kannst leider nicht die CW/WW-Kanäle getrennt von RGB steuern.
Was jetzt möglich ist, ist zB den Hue-Kanal zu kommandieren während zB der Helligkeitskanal einen Fade ausführt. Aber ich fürchte, dass dich das nicht wirklich weiter bringen wird.
« Letzte Änderung: 19 April 2017, 23:11:11 von vbs »

Offline ComputerZOO

  • Full Member
  • ***
  • Beiträge: 167
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #4 am: 19 April 2017, 23:20:15 »
Moin,
werden diese Fehlermeldungen in dem (neuen) Modul nun abgefangen?
Use of uninitialized value $a in pattern match (m//) at ./FHEM/32_LedController.pm line 958.
Use of uninitialized value $a in pattern match (m//) at ./FHEM/32_LedController.pm line 959.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #5 am: 19 April 2017, 23:28:08 »
Vielleicht :) Ist wirklich einiges umgebaut und mir ist bisher nix aufgefallen. Wenns auftritt wirds gefixt ;)

Offline funclass

  • Jr. Member
  • **
  • Beiträge: 99
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #6 am: 20 April 2017, 09:05:27 »
Hey vbs,

da du derzeit viel Zeit mit der Firmware verbringst möchte ich hier die (vielleicht penetrante) Frage nach nem einfachen "stopp-Kommando" nochmal stellen.
Ich würde es wirklich schick finden, wenn ich eine laufende Animation einfach via stopp anhalten könnte.

Kannst du den Aufwand hierfür grob einschätzen? Hab mir die Firmware noch nicht so detailliert angesehen, außer damals zum Erstellen der Modul-Doku.

Gruß funclass

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #7 am: 20 April 2017, 09:36:36 »
Jau, stop ist drin. Gibt auch pause, continue etc.:
https://github.com/verybadsoldier/esp_rgbww_firmware/wiki#channel-animation-control

Die Befehle können auch auf einzelne Kanäle beschränkt werden. Also du kannst zB auch nur den Fade des Hue-Kanals stoppen und den Helligkeitsfade weiterlaufen lassen.
« Letzte Änderung: 20 April 2017, 09:47:56 von vbs »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Mafi

  • New Member
  • *
  • Beiträge: 21
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #8 am: 20 April 2017, 10:29:05 »
Danke für den Hinweise! Ich hab die Hilfe korrigiert und werde das auch im Wiki erwähnen.
EDIT:
War im Prinzip ein Bug... der Port war optional gedacht und sollte dann auf 9090 "defaulten"... also eigentlich keine Änderungen an der Defintion notwendig
/EDIT
Super!

Also die Befehle on/off sind vorhanden und sollten hoffentlich weiter funktionieren. Ich kann nicht genau sagen, was bei deinem Glühbirnensymbol passiert. Kannst du auf Befehle bezogen sagen, was nicht funktioniert bzw. das einmal mit Befehlen nachvollziehen? Ich vermute, dass ein Kommando "toggle" benötigt wird (oder eine andere Definition von webCmd). Werde ich mal hinzufügen bei Gelegenheit.

Da müsste ich erst einmal nachsehen. Bisher war beim Anlegen eines LEDControllers diese ON/OFF Funktion mit dem Glühlampensymbol automatisch vorhanden, ich habe da nichts angelegt. Vermutlich löst das einen Toggle Befehl aus. Im Moment habe ich anstelle der Glühbirne "opened" da stehen und witzigerweise ist das anklickbar und schaltet das Licht ein. Nur aus geht es so nicht mehr. Da muss irgendwas durcheinander in meiner Definition sein...

Ich fürchte, da muss ich die enttäuschen: die hardwareseitigen Ausgänge sind genau so verknüpft wie mit der original Firmware. Also du kannst leider nicht die CW/WW-Kanäle getrennt von RGB steuern.
Was jetzt möglich ist, ist zB den Hue-Kanal zu kommandieren während zB der Helligkeitskanal einen Fade ausführt. Aber ich fürchte, dass dich das nicht wirklich weiter bringen wird.

 :( Schade. Dann hatte ich unter "Kanal" etwas falsches verstanden, nämlich die Hardwarekanäle und nicht die HSV Werte. Aber das Auftrennen und getrennt ansteuern der Hardwarekanäle ist ja in einem anderen Thread auch schon ein Thema gewesen, deshalb gebe ich Hoffnung nicht auf, dass es das irgendwann geben wird  :)

Grüße
Markus

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #9 am: 20 April 2017, 10:59:02 »
Da müsste ich erst einmal nachsehen. Bisher war beim Anlegen eines LEDControllers diese ON/OFF Funktion mit dem Glühlampensymbol automatisch vorhanden, ich habe da nichts angelegt. Vermutlich löst das einen Toggle Befehl aus. Im Moment habe ich anstelle der Glühbirne "opened" da stehen und witzigerweise ist das anklickbar und schaltet das Licht ein. Nur aus geht es so nicht mehr. Da muss irgendwas durcheinander in meiner Definition sein...
Früher hat das Reading "state" den Zustand on/off wiedergegeben. Jetzt nutzt das Modul DevIO zur Kommunikation mit dem Controller. DevIO nimmt implizit das Reading "state" in Beschlag und schreibt dort "openend" "disconnected" usw. rein. Ich vermute mal, dass das Lampensymbol "off" sendet, wenn es "on" entdeckt als state. Aber da es jetzt stattdessen "opened" entdeckt, wird es vermutlich einfach ein "toggle" schicken. Den Befehl "toggle" hab ich jetzt eingebaut, sollte dann also funktionieren.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #10 am: 20 April 2017, 11:01:16 »
Achso, hier ist die Modul-Dokumentation zu pause/stop/continue:
https://github.com/verybadsoldier/esp_rgbww_fhemmodule/wiki#new-commands

Ist wahrscheinlich praxisrelevanter als die Firmware-Doku.

Offline lewej

  • Full Member
  • ***
  • Beiträge: 371
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #11 am: 20 April 2017, 19:07:56 »
Hi,

kann ich das fhem Modul, über das FHEM Interface mit einem update add einbinden, wenn ja könntest welchen Befehl muss man absetzen(URL ??).

Gruß und Danke
Super Job

lewej

Offline lewej

  • Full Member
  • ***
  • Beiträge: 371
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #12 am: 20 April 2017, 19:11:09 »
Hi,

ich hatte das bereits in dem Thread Modul (original) gefragt, im Webinterface ist MQTT als Reiter da, jedoch kann ich diesen nicht aktivieren. Muss ich da eine andere Firmware nutzen?

Gruß
lewej

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1720
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #13 am: 20 April 2017, 19:27:55 »
kann ich das fhem Modul, über das FHEM Interface mit einem update add einbinden, wenn ja könntest welchen Befehl muss man absetzen(URL ??).
Sorry, gibt es leider (noch) nicht.

ich hatte das bereits in dem Thread Modul (original) gefragt, im Webinterface ist MQTT als Reiter da, jedoch kann ich diesen nicht aktivieren. Muss ich da eine andere Firmware nutzen?
MQTT ist bisher nicht implementiert. Ich hab aber in den letzten Tagen ziemlich viel damit rumgespielt und ausprobiert. An einigen Stellen leider mit recht ernüchternden Ergebnissen. Wofür würdest du MQTT bei dem Controller nutzen wollen?

Offline lewej

  • Full Member
  • ***
  • Beiträge: 371
Antw:ESP RGBWW Wifi Led Controller - Experimental Firmware
« Antwort #14 am: 20 April 2017, 19:51:58 »
Hi,

ich muss in der Küche drei Stück verbauen, dann welche im Wohnzimmer, jetzt ist unser EG sehr offen, deshalb muss ich die Controller irgendwie synchron bekommen. Man könnte jetzt zwar mit fhem mit notifys rum spielen, aber das ist zu langsam und damit schwindet der WAF :(.

Am liebsten wäre mir auch noch eine Variante, wo die Controller sich ohne FHEM oder MQTT mit einander unterhalten könnten (Multicast).

PS. Ich habe deine Firmware drauf und werde berichten.