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

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

Vorheriges Thema - Nächstes Thema

Papaloewe

#45
ZitatDas bekomme ich nicht von heute auf morgen hin.
Das verlangt aber auch wirklich niemand. ;)

Hier habe ich einen Lightwork-Editor gefunden:
https://hohmbody.com/flickerstrip/lightwork/

oder

https://github.com/digitalcoleman/neoPixel_Sequencer/

Gruß
thomas

kmxak

hey. also ich bekomme es nicht kompiliert es gibt tausende fehler.

Welche esp version wird denn genommen?
Welche IDE version?

Kann mir einer mal das komplette Projekt und die Plugins hochladen?
Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.

mbrak

Zitat von: kmxak am 04 August 2017, 16:33:51
hey. also ich bekomme es nicht kompiliert es gibt tausende fehler.

Welche esp version wird denn genommen?
Welche IDE version?

Kann mir einer mal das komplette Projekt und die Plugins hochladen?

vielleicht das gleiche Problem wie bei mir zuvor.

der Speicherort der Libs und die Version ist elementar wichtig.

schaue über den lib-manager der ide nach, welche version du wirklich installiert hast. die FASTLED muss in der Version 3.1.3 und die NeoPixelBus in der Versin 2.2.8 vorliegen.
lösche einige nicht benötigte plugins. sonst reicht der speicher nicht aus auf dem WEMOS.

ide hab ich bei mir die 1.8.1
was meinst du mit esp version? ich hab nen wemos d1 mini. läuft super.

Gruß Michael

kmxak

Ok das mit Muss in der Version sein wusste ich nicht.

Hab es aber nun mit der richtigen Version hinbekommen.

Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.

djcysmic

#49
Zitat von: dev0 am 04 August 2017, 10:24:59
Den Patch scheinst Du nicht ordentlich getestet zu haben (die Zeilennummern werden bei Dir anders sein):

2017.08.04 09:45:54.169 1: PERL WARNING: "my" variable $cp masks earlier declaration in same scope at ./FHEM/34_ESPEasy.pm line 586, <$fh> line 456.
2017.08.04 09:45:54.170 1: PERL WARNING: "my" variable $cp masks earlier declaration in same scope at ./FHEM/34_ESPEasy.pm line 589, <$fh> line 456.
2017.08.04 09:45:54.171 1: PERL WARNING: "my" variable $speed masks earlier declaration in same scope at ./FHEM/34_ESPEasy.pm line 601, <$fh> line 456.


- bitte korrigieren und gründlich testen ob nicht noch andere Bugs versteckt sind.
- diff mit svn erstellen.
- nur die Änderungen in den Patch einbringen, die zu NeoPixelFX gehören (auch keine Leerzeichen am Zeilenende oder Typos entfernen).
- Mit "svn diff" testen, dass auch nur diese Änderungen enthalten sind.
- Codeduplizierung möglichst vermeiden.

Wenn ich den Patch richtig verstanden habe, dann verwendet das ESPEasy Modul für neopixelfx eine andere Syntax als das Plugin selbst. Das Plugin verwendet nur "neopixelfx", das Modul hingegen "nfx_.* und nfxparam_.*". Das würde mir nicht gefallen, da es u.a. den Anwender (und mich) verwirren kann/wird. Wenn ich mich nicht ganz täusche, dann ist das bei allen anderen Plugins bisher auch nicht der Fall.

Auf ein neues...

Vielen Dank schon mal für deine Mühe und sorry, dass es mit dem Patchfile nicht auf Anhieb klappt - da bin ich noch in der Lernphase und dachte, ich könnte gleich einige Fehler im Modul mit ausbügeln (z.B. der Link zum Lights-Plugin führt bei mir auf eine 404-Seite)

Ich habe das Plugin jetzt nochmal angepasst und dass Hauptkommando von "neopixelfx" auf "nfx" umbenannt. Das sollte die Verwirrung hoffentlich in Grenzen halten - die Syntax an sich ist für die einzelnen Befehle im Plugin identisch. In der setlist tauchen sie jetzt allerdings mit Unterstrich statt dem Leerzeichen auf. Die Parameter (nfxparam) in der setlist sind als Ergänzung gedacht, um die Effekte aus der setlist heraus vorkonfigurieren zu können - wenn es zu verwirrend ist, können wir sie aber auch wieder heraus nehmen.

Die Webhilfe habe ich um die Funktionen des Plugins ergänzt und die Rückmeldungen über JSON implementiert.

Alle Änderungen im Patch-FIle sind jetzt rein auf das NeopixelBusFX-Plugin bezogen und bei mir erscheinen auch keine Fehlermeldungen mehr...

@all - die neue Version des Plugins ist bereits im Github eingecheckt

Zitat von: Papaloewe am 04 August 2017, 13:09:16
Hier habe ich einen Lightwork-Editor gefunden:
https://hohmbody.com/flickerstrip/lightwork/

oder

https://github.com/digitalcoleman/neoPixel_Sequencer/

Vielen Dank - werde ich mir mal ansehen, wenn ich etwas Zeit finde ;)

dev0

#50
@djcysmic: Schau Dir mal bitte den angehängten Patch an, ob damit Deine Anforderungen auch erfüllt sind. Bitte auch auf Funktionalität testen, dass habe/kann ich nicht, da ich das Plugin nicht verwende.

Auf diese Weise bauen wir mMn keine (echte) Extrawurst ein, die sich nur auf (d)ein Plugin bezieht. Die Funktionen, die das nfx Plugin benötigt, sollten verfügbar sein und es ist auch für andere (Light-)Plugins verwendbar und erweiterbar. Statt eines neuen Attributs wird das mapLightCmds Attribut verwendet um die Befehle zu nativen Befehlen zu mappen, damit die FHEM Widgets genutzt werden können.

Edit: neues .diff angehangen

dev0

Zitat
ich könnte gleich einige Fehler im Modul mit ausbügeln (z.B. der Link zum Lights-Plugin führt bei mir auf eine 404-Seite)
Gerne, aber bitte als getrennten Patch, damit man, zur Not, die einzelnen Commits getrennt änden/zurückziehen kann.

dev0

In obrigen .diff hatte sich beim clean up noch einen Fehler eingeschlichen, der dazu führte, dass die mapLightCmds ignoriert wurden.
Habe das .diff ausgetauscht.

djcysmic

Zitat von: dev0 am 05 August 2017, 12:39:12
@djcysmic: Schau Dir mal bitte den angehängten Patch an, ob damit Deine Anforderungen auch erfüllt sind. Bitte auch auf Funktionalität testen, dass habe/kann ich nicht, da ich das Plugin nicht verwende.

Auf diese Weise bauen wir mMn keine (echte) Extrawurst ein, die sich nur auf (d)ein Plugin bezieht. Die Funktionen, die das nfx Plugin benötigt, sollten verfügbar sein und es ist auch für andere (Light-)Plugins verwendbar und erweiterbar. Statt eines neuen Attributs wird das mapLightCmds Attribut verwendet um die Befehle zu nativen Befehlen zu mappen, damit die FHEM Widgets genutzt werden können.

Edit: neues .diff angehangen

Vielen Dank - gerade getestet und es funktioniert super.
Ich habe nur eine Kleinigkeit in der Hilfe gefunden:
set <esp> nfx rgb aa00ff 1000 +10
bitte ändern in
set <esp> nfx rgb aa00ff 1000 10
Positive Vorzeichen versteht das Plugin irgendwie nicht.

Ich hatte erst bedenken bei gleichzeitiger Nutzung mit dem Lights-Plugin, weil es Überschneidungen gibt (rgb, on, off)
Aber das kann ja dann über ein eigenes Device laufen, wo das mapLightCmds wieder neu belegt werden kann ;)

Super Arbeit, danke nochmal  :D

dev0

Ich habe die Erweiterung gerade eingecheckt, damit steht die Verison 1.30 ab 8:00 Uhr über das Update bereit.

Hugo Becker

Hallo,
ich habe ESPEasy mit dem Plugin auf einem Wemos D1 mini laufen. Funktioniert (eigentlich) auch.
In den Devices taucht auch "NeoPixelBusFX" und u.a. "NeoPixel - Candle" auf und ich kann den WS2812B auch steuern.
Für alle Plugins wird in FHEM ein eigenes Device angelegt, nur für "NeoPixelBusFX" nicht.
Ist das richtig bzw. wie kann ich das ändern ?
Gruß Hugo

dev0

Wenn von (irgend)einem ESPEasy Plugin Daten (via Controller Plugin) übergeben werden, dann werden die entsprechenden Devices/Readings auch angelegt wenn 'autocreate' aktiviert ist. Ob das NeoPixelBusFX Plugin das macht weiß ich nicht, davon gehe ich aber aus. Der Plugin-Maintainer wird das aber genauer beantworten können...

Papaloewe

Ich denke das NeoPixelBusFX-Plugin macht es bisher nicht, daher habe ich dann noch zus. den WiFi-RSSI auf dem EspEasy definiert und schwupps wurde das Devise im FHEM angelegt.

Hugo Becker

@Papaloewe
Exakt so habe ich es auch gemacht. Zuerst NeoPixelBusFX-Plugin (kein automatisches Anlegen in FHEM).
Danach Wifi - RSSI, dieses wurde sofort mit allen Readings angelegt. Nur das NFX nicht.
Naja, vielleicht kommt das noch.
Vielen Dank für Deine Antwort Papaloewe...

djcysmic

Hallo Hugo,

in den Device-Einstellungen hast du die Möglichkeit, das Häkchen bei "Send to Controller" zu setzen und darunter ein Delay > 0 einzugeben.
Dann sendet er in diesem Zeitabstand seinen Status (gerade getestet) und sollte in diesem Rahmen dann auch automatisch erstellt werden.

Viele Grüße
Nico