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

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

Vorheriges Thema - Nächstes Thema

mbrak

Hallo

Getreu dem Motto "Geht nicht, gibts nicht" hab ich es dann doch noch hinbekommen.

Hatte beide Libs falsch installiert. Die FASTLED hatte bei mir die Version 3.1.5!!! Auf Github gibts nur eine 3.1.3. Also hab ich die installiert. Keine Ahnung wo meine herkam.
Bei der NeoPixelBus hatte ich wohl auch ein altes Teil drin. Hab die 2.2.8 nachinstalliert und siehe da es lässt sich nach Löschen einiger nicht benötigten Plugins kompilieren und hochladen.

Läuft auch schon in FHEM zu meiner vollsten Zufriedenheit. Ganz vielen Dank für die Unterstützung!!! und natürlich für das feine Plugin  ;D

Gruß Michael

mbrak

Zitat von: kmxak am 02 August 2017, 18:11:31
habe den ESP am laufen und den esp in der bridge aber wie geht es nun weiter?  :o

Hi

Hast du nun ein Device in FHEM mit dem Namen des ESPs??
Das solltest Du nach dem einrichten des ESPs über Devices/Plugin/NeoPixelFX haben.

Dann sollte dein FHEM aktuell genug sein.... ich musste eben noch ein Update machen.... und Du hast als SET Befehl das NeoPixelFX.
Da hängst du dann gemäß des Befehlssyntax deine Ausschweifungen hinter  ;D ;D ;D

Gruß Michael

kmxak

Ja habe wohl alles aber das:
Zitatund Du hast als SET Befehl das NeoPixelFX.
Da hängst du dann gemäß des Befehlssyntax deine Ausschweifungen hinter  ;D ;D ;D
sagt mir rein gar nix xD

Sehe bei Readings
Fadedelay

20

2017-08-02 18:23:09
Fadetime

1000

2017-08-02 18:23:09
Lastmode

0

2017-08-02 18:23:09
Mode

0

2017-08-02 18:23:09
presence

present

2017-08-02 18:22:25
state

Fad: 20 Fad: 1000 Las: 0 Mod: 0

2017-08-02 18:23:09


Kann auch bei Set was auswählen aber ka was ich da machen soll. Bei den Led stripes habe ich rgb picker und regler aber hier ist ja nix
Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.

mbrak

Zitat von: kmxak am 02 August 2017, 18:23:53
Ja habe wohl alles aber das:  sagt mir rein gar nix xD

Sehe bei Readings
Fadedelay

20

2017-08-02 18:23:09
Fadetime

1000

2017-08-02 18:23:09
Lastmode

0

2017-08-02 18:23:09
Mode

0

2017-08-02 18:23:09
presence

present

2017-08-02 18:22:25
state

Fad: 20 Fad: 1000 Las: 0 Mod: 0

2017-08-02 18:23:09


Kann auch bei Set was auswählen aber ka was ich da machen soll. Bei den Led stripes habe ich rgb picker und regler aber hier ist ja nix


gib mal folgendes in der Befehlszeile oben in FHEM ein:

set <Name von deinem ESP Device> neopixelfx kitt FF0000

Schau dir auf der Githubseite von dem Plugin (erster Post hier) die anderen Befehle an.

kmxak

#34
ok das scheint zu gehen

ist allerdings etwas umständlich

kann ich das ganze auch über mqtt steuern?
Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.

mbrak

Da bin ich dann raus :) mqtt kommt mir nicht ins Haus :)
Da espeasy aber auch mqtt kann sollte das kein Problem sein. Kannst unter espeasy mega ja bis zu 3 Controller angeben.

djcysmic

MQTT sollte von Haus aus kein Problem darstellen bei ESP Easy - allerdings hab ich's nicht getestet. Und seit es das Modul von Uli (dev0) gibt, nutze ich MQTT auch fast gar nicht mehr.

Ich habe vor einiger Zeit einen Vorschlag zur Implementierung des NeopixelBusFX-Plugin in das ESP Easy-Modul an Uli geschickt, der den Vorschlag gerade prüft und dann hoffentlich ins Modul mit aufnimmt.
Das würde dann so aussehen, dass man - ähnlich wie beim Lights-Plugin - die Funktionen über ein Attribut freischaltet und dann zusätzliche set-Befehle bekommt (siehe Post #5). Dann wird man auch auf Colorpicker etc. zurückgreifen können, was die Bedienung deutlich komfortabler macht ;)

kmxak

Gehen alle nicht Effekte? Fire z.b leuchten nur 2 LEDs. Wie viele LEDs gehen maximal?

Gesendet von meinem SM-G930F mit Tapatalk

Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.

djcysmic

Habe es gerade nochmal ausprobiert - bei mir funktioniert es. Wieviel LEDs hast du in den Device Settings angegeben und mit welchen Parametern hast du den Fire Effekt gestartet?

Momentan habe ich die Anzahl der LEDs auf 255 begrenzt, weil ich nicht weiß, welche anderen Devices noch unter ESP Easy laufen. Wenn du mehr benötigst, brauchst du einfach nur
ARRAYSIZE 255
im Plugin auf deine gewünschte Maximalzahl anpassen ;)

kmxak

habe 300

fire 30 20 20 20
fire [fps] [brightness] [cooling] [brightness]

leider war nix erklärt

ok die zahl werde ich mal anpassen.

kann ich auch eigene effekte programmieren?
wie und wo geht das?
Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.

djcysmic

Habe gerade deine Parameter bei mir probiert und auch die laufen ohne Probleme.

Bei der Syntax hatte ich noch einen Fehler in der Beschreibung. Die korrekte Syntax für den Fire-Effekt lautet:

neopixelfx fire [fps] [brightness] [cooling] [sparking]

Was fehlt dir denn noch an Erklärung? Eine nähere Beschreibung des Fire-Effektes findest du hier: https://github.com/krzychb/EspFire2012

Für eigene Effekte müsste das Plugin erweitert werden. Aus FHEM heraus sind nur die angegebenen Effekte im Rahmen ihrer Parameter abrufbar.
Mir fehlt da noch eine Idee, wie man eigene Effekte sinnvoll programmieren könnte - machbar ist es sicherlich, aber auch entsprechend umständlich...

Welche Effekte fehlen dir denn? Vielleicht kann ich das Plugin ja entsprechend erweitern. ;)

kmxak

Hey danke dir erstmal. Werde mich da morgen nochmal genauer dran setzen.

Ich habe einen Effekt gesehen der mir gefiel.

Als erstes Läuft ein Pixel über den Stripe und und zieht die Hauptfarbe hinter sich her. Das ganze ist dann für Licht an. Blauer Pixel zieht das weiße Licht quasi ans Ende und es leuchtet weiß. Bei aus dann umgekehrt.

Color Wipe Effekt wäre so ähnlich
Aufgrund der Tapatalk Abschaltung nur noch bedingt erreichbar.

Papaloewe

Hallo und vielen Dank für dein Modul.
Darauf habe ich schon lange gewartet. Jetzt kann ich meinen Coffee-Table vollenden.

Der Hammer wäre es wirklich, wenn man eigene Effekte erzeugen könnte.
Diesen Ansatz hatte schonmal vor einer Zeit der Forumsteilnehmer swhome verfolgt.
https://forum.fhem.de/index.php/topic,50174.0.html

Bie seinem Plugin war es möglich komplette LED-Bit-Farb-Muster zu übergeben.
Allerdings hat sein Modul den Nachteil, dass z.B. schon bei einem einfachem Lauflicht die Übertragung quasi online erfolgte und daher viel zu lange gedauert hat. Das Lauflicht geriet dann schnell ins Stocken.
Wenn man jetzt eine Musterabfolge mit einer zus. kleinen Anwendung erzeugt (da hatte ich auch schonmal etwas gefunden, muss nochmal suchen) und dann in einem Schwung auf den ESP übertragen könnte, sollte das doch viel flüssiger ablaufen.

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.

Gruß
Thomas

djcysmic

Zitat von: kmxak am 03 August 2017, 22:55:57
Als erstes Läuft ein Pixel über den Stripe und und zieht die Hauptfarbe hinter sich her. Das ganze ist dann für Licht an. Blauer Pixel zieht das weiße Licht quasi ans Ende und es leuchtet weiß. Bei aus dann umgekehrt.

Ich habe einen Wipe-Effekt eingebaut und im Github eingecheckt. Syntax ist:

neopixelfx wipe <color> [dotcolor] [speed]

mögliche Speedwerte 0-50
negative Speedwerte lassen den Effekt rückwärts laufen ;)

Zitat von: Papaloewe am 04 August 2017, 08:29:56
Der Hammer wäre es wirklich, wenn man eigene Effekte erzeugen könnte.
Diesen Ansatz hatte schonmal vor einer Zeit der Forumsteilnehmer swhome verfolgt.
https://forum.fhem.de/index.php/topic,50174.0.html

Bie seinem Plugin war es möglich komplette LED-Bit-Farb-Muster zu übergeben.
Allerdings hat sein Modul den Nachteil, dass z.B. schon bei einem einfachem Lauflicht die Übertragung quasi online erfolgte und daher viel zu lange gedauert hat. Das Lauflicht geriet dann schnell ins Stocken.
Wenn man jetzt eine Musterabfolge mit einer zus. kleinen Anwendung erzeugt (da hatte ich auch schonmal etwas gefunden, muss nochmal suchen) und dann in einem Schwung auf den ESP übertragen könnte, sollte das doch viel flüssiger ablaufen.

Die Idee mit dem Playfile ist nicht schlecht. Evtl. gibt es ja die Möglichkeit, dass SPIFFS vom ESP dafür zu nutzen - allerdings weiß ich noch nicht, ob man da aus FHEM so ohne weiteres darauf zugreifen kann und die Implementierung würde auch etwas dauern. Das bekomme ich nicht von heute auf morgen hin.

Möglicherweise gibt es ja auch schon eine standardisierte Schnittstelle für die WS2812 bzw. eine Software, mit der man Playfiles einigermaßen nutzerfreundlich erstellen kann (ähnlich wie JINX für Matrizen)...
Da muss ich mich nochmal genauer mit befassen ;)

dev0

Zitat von: djcysmic am 30 Juli 2017, 01:08:01
Bist du zwischenzeitlich schon dazu gekommen, dir den Patch mal anzusehen?

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.