[Project] NeopixelBusFX - WS2812 Effekt-Plugin für ESPEasy

Begonnen von djcysmic, 05 Juli 2017, 21:19:46

Vorheriges Thema - Nächstes Thema

dev0

Ich habe gerade die aktualisierte ESPEasy Modulversion 2.0 eingecheckt. Wie angekündigt ist es notwendig, dass alle Anwender des nfx Plugin von djcysmic das Attribut mapLightCmds von 'Lights' auf 'nfx' ändern müssen, falls es gesetzt ist.

Alt:
attr <dev> mapLightCmds Lights
Neu:
attr <dev> mapLightCmds nfx

DaBombrider

Hallo alle zusammen,

ich habe vor einer Woche das NEOPIXELplugin entdeckt und diese Woche ausprobiert. Leider ist mir noch einiges unklar. Ich habe die .bin Datei auf ein Wemos d1 Mini ohne Arduino IDE geflasht, aber wie bekomme ich die FastLED Library und faketv.h auf den Wemos ohne Arduino IDE?
Ebenfalls ist mir in den Set-Befehlen [fps] [brightness] [cooling] [sparking] und [count] unklar. Was muss ich hier einsetzen?

Gruß

djcysmic

Zitat von: DaBombrider am 16 Oktober 2018, 21:12:53
Hallo alle zusammen,

ich habe vor einer Woche das NEOPIXELplugin entdeckt und diese Woche ausprobiert. Leider ist mir noch einiges unklar. Ich habe die .bin Datei auf ein Wemos d1 Mini ohne Arduino IDE geflasht, aber wie bekomme ich die FastLED Library und faketv.h auf den Wemos ohne Arduino IDE?

Hallo,
wenn du die .bin auf den Wemos flashst, brauchst du dir um alles andere keine Gedanken machen - da sind alle Libraries und zusätzlichen Daten bereits mitkompiliert worden.

Zitat von: DaBombrider am 16 Oktober 2018, 21:12:53
Ebenfalls ist mir in den Set-Befehlen [fps] [brightness] [cooling] [sparking]

Diese Parameter werden nur von dem Fire-Effekt genutzt - eine detaillierte Beschreibung dazu findest du unter
https://github.com/krzychb/EspFire2012#components

Setzen musst du die Parameter nicht unbedingt, da sind Standardwerte hinterlegt. Um den Effekt besser zur Geltung zu bringen, kannst du damit aber etwas spielen.
Die Standardwerte sind:
fps = 50,
cooling = 50,
sparking = 120,
brightness = 31

Zitat von: DaBombrider am 16 Oktober 2018, 21:12:53
und [count] unklar. Was muss ich hier einsetzen?

Der count Parameter verändert die Anzahl der zusammengefassten Pixel für einen Effekt - damit kannst du den Effekt strecken oder stauchen.

Viele Grüße
Nico

DaBombrider

Hallo djcysmic,

vielen Dank für die schnelle und ausführliche Antwort. Ich werde mich am Wochenende gleich mal ransetzen.

Gruß Dabombrider

dev0

@djcysmic: Wenn Du eine Idee hast, wie wir ggf. die default Werte knapp und sinnvoll in der command reference unterbringen können, dann bin ich nicht abgeneigt das einzubinden.

Einfacher wäre es natürlich, wenn das Plugin und die Beschreibung in der ESP Easy Distribution wären. Aber das bedeutet natürlich einen gewissen Zeitaufwand. Vorteil wäre, dass Bugs bzw. Erweiterungen vom EE Team übernommen werden. Zumindest verhält es sich bei meinem 'FHEM HTTP' Controller so...

djcysmic

Zitat von: dev0 am 18 Oktober 2018, 13:05:41
@djcysmic: Wenn Du eine Idee hast, wie wir ggf. die default Werte knapp und sinnvoll in der command reference unterbringen können, dann bin ich nicht abgeneigt das einzubinden.

Einfacher wäre es natürlich, wenn das Plugin und die Beschreibung in der ESP Easy Distribution wären. Aber das bedeutet natürlich einen gewissen Zeitaufwand. Vorteil wäre, dass Bugs bzw. Erweiterungen vom EE Team übernommen werden. Zumindest verhält es sich bei meinem 'FHEM HTTP' Controller so...

Wir könnten die Default-Werte ja in der Parameterbeschreibung hinterlegen - in etwa so:

fire [fps, Default:50] [brightness 0-255, Default:31] [cooling 20-100, Default:50] [sparking 50-200, Default:120]

Über die Aufnahme des Plugins in die Distribution habe ich auch schon nachgedacht, aber ich sehe die Chancen eher als gering an, da das Plugin doch einige Ressourcen beansprucht.
Wenn ich die Zeit dafür finde, kann ich gerne einen Versuch starten - ist nur im Moment etwas schwierig, da ich mit meinem Hausbau zeitlich sehr gebunden bin.

dev0

ZitatWir könnten die Default-Werte ja in der Parameterbeschreibung hinterlegen - in etwa so:
Ist mir recht. Kannst Du bei Gelegenheit gerne hier posten, brauch in dem Fall auch nicht in Form eines Patches zu sein. Kommt dann in die nächste Version mit rein.

djcysmic


all <rrggbb> [fadetime, Default:1000] [delay +/-ms, Default:20]
bgcolor <rrggbb>
colorfade <rrggbb_start> <rrggbb_end> [startpixel, Default:0] [endpixel, Default:Pixelanzahl-1]
comet <rrggbb> [speed +/- 0-50, Default:25]
count <value, Default:1>
dim <value 0-255, Default:255>
dualscan <rrggbb> [rrggbb background, Default:000000] [speed +/- 0-50, Default:25]
dualwipe <rrggbb> [rrggbb dot, Default:000000] [speed +/- 0-50, Default:25]
fade <rrggbb> [fadetime ms] [delay +/-ms, Default:20]
fadedelay <value in +/-ms, Default:20>
fadetime <value in ms, Default:1000>
faketv [startpixel, Default:0] [endpixel, Default:Pixelanzahl-1]
fire [fps, Default:50] [brightness 0-255, Default:31] [cooling 20-100, Default:50] [sparking 50-200, Default:120]
kitt <rrggbb> [speed +/- 0-50, Default:25]
line <startpixel> <endpixel> <rrggbb>
off [fadetime, Default:1000] [delay +/-ms, Default:20]
on [fadetime, Default:1000] [delay +/-ms, Default:20]
one <pixel> <rrggbb>
rainbow [speed +/- 0-50, Default:1]
rgb <rrggbb> [fadetime, Default:1000] [delay +/-ms, Default:20]
scan <rrggbb> [rrggbb background, Default:000000] [speed +/- 0-50, Default:25]
simpleclock [bigtickcolor, Default:505050] [smalltickcolor, Default:101010] [hourcolor, Default:0000FF] [minutecolor, Default:00FF00] [secondcolor, Default:FF0000]
sparkle <rrggbb> [rrggbb background, Default:000000] [speed +/- 0-50, Default:25]
speed <value 0-50, Default:25>
stop
theatre <rrggbb> [rrggbb background, Default:000000] [speed +/- 0-50, Default:25]
toggle [fadetime, Default:1000]
twinkle <rrggbb> [rrggbb background, Default:000000] [speed +/- 0-50, Default:25]
twinklefade <rrggbb> [number of pixels] [speed +/- 0-50, Default:25]
wipe <rrggbb> [rrggbb dot, Default:000000] [speed +/- 0-50, Default:25]


Ich habe mal alle Default-Werte eingetragen.
Hoffentlich wird das nicht zu unübersichtlich...

DaBombrider

Hallo djcysmic,

ich habe am Wochenende das Modul getestet und es ist super. Eine Frage ist aber noch offen. Gibt es eine Begrenzung der LED-Anzahl? Bis 150 war alles okay. Mehr ging nicht.

Gruß Dabombrider

djcysmic

Zitat von: DaBombrider am 21 Oktober 2018, 19:24:19
Hallo djcysmic,

ich habe am Wochenende das Modul getestet und es ist super. Eine Frage ist aber noch offen. Gibt es eine Begrenzung der LED-Anzahl? Bis 150 war alles okay. Mehr ging nicht.

Gruß Dabombrider

In der fertig kompilierten Version ist die Obergrenze auf 300 LEDs eingestellt. Allerdings gab es einen Bug für den Scan/Dualscan-Effekt bei mehr als 128 Pixel. Ich habe jetzt nochmal die aktuelle Version kompiliert und ins Github hochgeladen - allerdings nicht weiter getestet. Vielleicht hast du damit Erfolg.

Ansonsten ist mir bis jetzt kein Fehler bekannt bei mehr als 150 LEDs - wie sieht denn das Fehlerbild bei dir aus?

DaBombrider

Vielen Dank ich teste es am Mittwoch. Ein Fehlerbild gab es nicht wirklich. Mehr als 150 LED´s haben einfach nicht geleuchtet. Ich melde mich am Mittwoch bzw. Donnerstag noch einmal.

Papaloewe

Bitte nicht steinigen, aber wo finde ich nochmal das fertig kmpilierte bin-File?

djcysmic


RockFan

Hallo djcysmic,
ich habe diesen Thread gefunden, da ich nach der Möglichkeit gesucht habe digitale LEDs mit FHEM zu steuern, bin nun aber bzgl. Basteleien ein Newbie. Nach einigen Fehlversuchen mit dem Flashen eines ESP-01 - die richtige "Verdrahtung" zu finden war nicht leicht - habe ich es gestern endlich geschafft (aktuelles firmware1024.bin auf Deinem github).

Ich habe dann auch gleich mal ein LED-Strip mit 300 LEDs angeschlossen und diese glücklicherweise recht schnell zum Laufen gebracht  :)

Bin echt begeistert - tolle Arbeit!!

Die meisten beschriebenen Kommandos bin ich dann durchgegangen. Folgende Punkte/Probleme sind dabei aufgekommen:

1. Sobald ich die Konstruktion stromtechnisch einschalte leuchten die letzten 4 LEDs (297 bis 300) weiß; das bleibt im Prinzip auch immer so, selbst wenn ich mit bei Komandos den ganzen Streifen "verwende"; auch nach einem "off" bleiben sie weiß - LED Count habe ich in der ESP Easy Konfiguration des ESP-01 natürlich auf 300 gesetzt; das Reading zeigt diese 300 auch an. Das kann aber natürlich auch ein Defekt des Strips sein (wie kann ich das ohne zerschneiden des Streifens testen?).

2. Ich kann mit dem Kommando "one" nur pixel bis 256 ansprechen. Bei 257 leuchtet wieder der Erste, bei 258 der Zweite, usw. Bei line funktioniert es richtig, bei faketv geht es zwar über die 256, es stimmt aber irgendwie nicht mehr (sobald der zweite Wert 256 oder größer ist geht der Effekt bis zum Ende des Streifens).

3. Das Reading bgcolor bleibt bei mir immer auf 000000; selbst mit dem Kommando bgcolor ändert sich dieser Zustand nicht, es wird aber trotzdem eine Hintergrundfarbe gesetzt.

4. Auch das eigenständige Kommando "count" erschließt sich mir trotz Deiner Erklärung weiter oben immer noch nicht so ganz. Sollte es hierzu ein eigentlich Reading geben? Jedenfalls ändert sich am Verhalten der Effekte scheinbar nichts. wenn ich count setzte. Sollten nicht z.B. 3 Pixel scannen, wenn ich count zuvor auf 3 setze?

Hier noch ein List des Devices:

Internals:
   DEF        192.168.178.46 80 ESPBridge ESP_LED1_ESP01_0
   ESPBridge_MSGCNT 188
   ESPBridge_TIME 2018-10-27 13:35:47
   ESP_BUILD  20102
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID 17: ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   HOST       192.168.178.46
   IDENT      ESP_LED1_ESP01_0
   INTERVAL   300
   IODev      ESPBridge
   LASTInputDev ESPBridge
   MSGCNT     188
   NAME       esp_300LEDs
   NOTIFYDEV  global
   NR         1089
   NTFY_ORDER 50-esp_300LEDs
   PORT       80
   STATE      opened
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.00
   READINGS:
     2018-10-27 13:35:47   Fadedelay       0
     2018-10-27 13:35:47   Fadetime        1800
     2018-10-27 13:35:47   Lastmode        9
     2018-10-27 13:35:47   Mode            0
     2018-10-26 16:31:21   bgcolor         000000
     2018-10-26 16:31:21   dim             255
     2018-10-26 16:31:21   fadedelay       0
     2018-10-26 16:31:21   fadetime        1000
     2018-10-26 16:31:21   lastmode        simpleclock
     2018-10-26 16:31:21   mode            fade
     2018-10-26 16:31:21   pixelcount      300
     2018-10-27 13:35:13   presence        present
     2018-10-26 16:31:21   rgb             ffc933
     2018-10-27 11:24:01   state           opened
   helper:
     fpc        1540632250
     mapLightCmds:
       all        nfx
       bgcolor    nfx
       colorfade  nfx
       comet      nfx
       count      nfx
       ct         nfx
       dim        nfx
       dualscan   nfx
       fade       nfx
       fadedelay  nfx
       fadetime   nfx
       faketv     nfx
       fire       nfx
       kitt       nfx
       line       nfx
       off        nfx
       on         nfx
       one        nfx
       pct        nfx
       rainbow    nfx
       rgb        nfx
       scan       nfx
       simpleclock nfx
       sparkle    nfx
       speed      nfx
       stop       nfx
       theatre    nfx
       toggle     nfx
       twinkle    nfx
       twinklefade nfx
       wipe       nfx
     pm:
       Encode     1
       JSON       1
     received:
       Fadedelay  1540640147
       Fadetime   1540640147
       Lastmode   1540640147
       Mode       1540640147
   sec:
     admpwd     
Attributes:
   IODev      ESPBridge
   Interval   300
   colorpicker RGB
   group      ESPEasy Device
   mapLightCmds nfx
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   0


Durch die 18 Seiten des Threads bin ich einige Male (je nach Arbeitsschritt und neuen Fragen) durchgeflogen. Ich hoffe, ich habe keine Antworten zu meinen Punkten übersehen  ::)

Danke schon mal!

Viele Grüße
Dieter

Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

djcysmic

Zitat von: RockFan am 27 Oktober 2018, 14:10:12
Die meisten beschriebenen Kommandos bin ich dann durchgegangen. Folgende Punkte/Probleme sind dabei aufgekommen:

1. Sobald ich die Konstruktion stromtechnisch einschalte leuchten die letzten 4 LEDs (297 bis 300) weiß; das bleibt im Prinzip auch immer so, selbst wenn ich mit bei Komandos den ganzen Streifen "verwende"; auch nach einem "off" bleiben sie weiß - LED Count habe ich in der ESP Easy Konfiguration des ESP-01 natürlich auf 300 gesetzt; das Reading zeigt diese 300 auch an. Das kann aber natürlich auch ein Defekt des Strips sein (wie kann ich das ohne zerschneiden des Streifens testen?).


Hallo Dieter, vielen Dank für deine Rückmeldung.
Da ich selber aktuell nur einen Stripe mit 144 LEDs habe, sind mir einige Fehler bisher nicht aufgefallen und testen kann ich es auch nicht.
Dass die 4 letzten LEDs nach dem Einschalten direkt weiß werden ist nicht normal - ich tippe auch auf einen defekten Streifen. Du könntest den Data-Anschluss mal irgendwo im Stripe anschließen und schauen, ob sich was verändert. Wenn die letzten 4 LEDs trotzdem weiß bleiben, ist wohl die 4.- oder 5.letzte LED defekt.

Zitat von: RockFan am 27 Oktober 2018, 14:10:12

2. Ich kann mit dem Kommando "one" nur pixel bis 256 ansprechen. Bei 257 leuchtet wieder der Erste, bei 258 der Zweite, usw. Bei line funktioniert es richtig, bei faketv geht es zwar über die 256, es stimmt aber irgendwie nicht mehr (sobald der zweite Wert 256 oder größer ist geht der Effekt bis zum Ende des Streifens).


Das war ein Bug, der jetzt behoben sein sollte - ich wollte Speicher sparen und habe nur mit einer 8-Bit-Variable gearbeitet.

Zitat von: RockFan am 27 Oktober 2018, 14:10:12

3. Das Reading bgcolor bleibt bei mir immer auf 000000; selbst mit dem Kommando bgcolor ändert sich dieser Zustand nicht, es wird aber trotzdem eine Hintergrundfarbe gesetzt.


Setze bitte mal das Attribut
parseCmdResponse nfx
Dann sollten die Readings korrekt angezeigt werden.

Zitat von: RockFan am 27 Oktober 2018, 14:10:12

4. Auch das eigenständige Kommando "count" erschließt sich mir trotz Deiner Erklärung weiter oben immer noch nicht so ganz. Sollte es hierzu ein eigentlich Reading geben? Jedenfalls ändert sich am Verhalten der Effekte scheinbar nichts. wenn ich count setzte. Sollten nicht z.B. 3 Pixel scannen, wenn ich count zuvor auf 3 setze?


Ich habe aktualisierte Versionen ins Github hochgeladen - teste mal bitte, ob jetzt alles funktioniert.

Viele Grüße und ein schönes Wochenende.