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

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

Vorheriges Thema - Nächstes Thema

xyro

Zitat von: Hi2Helmi am 07 Januar 2019, 22:17:51
Hallo,
ich habe mir einen "Bilderrahmen" gebastelt mit ein Paar LED's funktioniert auch super. Ich würde aber gerne bei bestimmten Ereignissen einzelne LED's blinken lassen. Habe leider keine Möglichkeit gefunden dies zu bewerkstelligen.
Noch eine andere Frage:
ich würde gerne über MQTT steuern, bin aber auch da noch nicht auf eine Lösung gestoßen.

Hallo Hi2Helmi,

Schau mal hier: https://forum.fhem.de/index.php/topic,33979.msg263214.html#msg263214

Vielleicht hilft dir das weiter...



xyro

Zitat von: kaizo am 07 Januar 2019, 17:24:50
Auch ein frohes neues...

Ähnliches Problem habe ich auch, das ESP-Plugin bzw. das 4096.bin kann ich installieren, neopixel auch auswählen, aber es leuchtet keine LED. Am Anfang ging auch nur die erste LED, und beim Betrachten der Signale sehe ich, dass nur die erste LED das Signal bekommt, aber dieses am DO nicht weitergibt.

Die erste LED kann auch nicht gesteuert werden.
Hätte schon gedacht dass die erste defekt ist und diese dann abgetrennt. Genutzt hat das nicht.

Irgendwann habe ich eine andere Software auf den Wemos geflashed, und siehe da, alles ist gut. Farben, Effekte, alles rennt.
(https://github.com/Aircoookie/WLED)


In ESPEASY habe ich schon alles abgestellt, I2C, serielle Schnittstelle etc.
Aber das Modul will bei mir einfach nicht.

Hat jemand das aktuelle 4096.bin aus dem git am laufen?

Gruß
Kai

Krasse Effekte  :o

Ich werde wohl alles umrüsten müssen  ;)




kaizo

Ja, die Effekte sind ein schon ein ganzes paar.
Auch die Weboberfläche ist super, schaue mir zur Zeit die Steuerung über MQTT an.

Da mein ESP-EASY nicht läuft könnte das ein Weg sein.
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

GlennDandy

Hallo, ich nutze PlatformIO. Bekomme ständig dieses compiler fehler.

Nutze ESPeasy-Mega, habe die Neopixelbus library, aus der ersten Thread Seite, in den lib ordner kopiert. Die _P124_NeoPixelBusFX.ino und die faketv.h in den src Ordner.
Dann als nächsten Schritt, in der Datei define_plugin_sets.h

// STABLE #####################################
#ifdef PLUGIN_SET_STABLE
    #define USE_SERVO
    #define USES_P124 //dieses hier hinzugefügt



Wenn ich jetzt auf Upload drücke kommt der fehler.

C:/Users/Laptop/Documents/PlattformIO/ESPEasy-mega/src/_P124_NeoPixelBusFX.ino:111:16: error: 'NeoEsp8266Uart800KbpsMethod' was not
declared in this scope
#define METHOD NeoEsp8266Uart800KbpsMethod //GPIO2 - use NeoEsp8266Dma800KbpsMethod for GPIO3(TX)

^
C:/Users/Laptop/Documents/PlattformIO/ESPEasy-mega/src/_P124_NeoPixelBusFX.ino:131:23: note: in expansion of macro 'METHOD'
NEOPIXEL_LIB<FEATURE, METHOD>* Plugin_124_pixels = NULL;
^
C:/Users/Laptop/Documents/PlattformIO/ESPEasy-mega/src/_P124_NeoPixelBusFX.ino:131:29: error: template argument 2 is invalid
NEOPIXEL_LIB<FEATURE, METHOD>* Plugin_124_pixels = NULL;
^
C:/Users/Laptop/Documents/PlattformIO/ESPEasy-mega/src/_P124_NeoPixelBusFX.ino:131:50: error: invalid type in declaration before '='
token
NEOPIXEL_LIB<FEATURE, METHOD>* Plugin_124_pixels = NULL;
^
C:/Users/Laptop/Documents/PlattformIO/ESPEasy-mega/src/_P124_NeoPixelBusFX.ino: In function 'boolean Plugin_124(byte, EventStruct*,
String&)':
C:/Users/Laptop/Documents/PlattformIO/ESPEasy-mega/src/_P124_NeoPixelBusFX.ino:111:16: error: 'NeoEsp8266Uart800KbpsMethod' was not
declared in this scope
#define METHOD NeoEsp8266Uart800KbpsMethod //GPIO2 - use NeoEsp8266Dma800KbpsMethod for GPIO3(TX)
^
C:/Users/Laptop/Documents/PlattformIO/ESPEasy-mega/src/_P124_NeoPixelBusFX.ino:278:55: note: in expansion of macro 'METHOD'
Plugin_124_pixels = new NEOPIXEL_LIB<FEATURE, METHOD>(Settings.TaskDevicePluginConfig[event->TaskIndex][0]);
^


Hat einer ne idee was ich falsch mache?

xyro

Versuche es mal mit NeoEsp8266Uart0800KbpsMethod anstatt NeoEsp8266Uart800KbpsMethod in _P124_...


Grüße

Alex

GlennDandy


ThePille

Hallo zusammen!

Ich bastel schon eine ganze Weile mit der NeoPixelBus FX rum und liebe es! Danke für die tolle Arbeit und fürs teilen! Jetzt habe ich aber ein Problem und hoffe, dass mir einer von euch helfen kann:

Ich habe eine Wemos D1 mini im Wohnzimmer mit 472 LEDs. Animationen wie z.B. wipe mit xbeliebiger Farbe, oder rainbow funktionieren problemlos über die gesamte Striplänge; die Befehle nfx all oder OFF mit fadetime lassen die erste LED kurz aufleuchten und es tut sich ansonsten nichts mehr!
Nach einigen Stunden rumsuchen hab ich dann diesen Thread hier gefunden und versucht, die LED Zahl direkt im Plugin auf z.B. 500 zu setzen und kriege ESPEasy beim besten Willen nicht kompiliert... ich habe gefühlt schon alles probiert: aktuelle Version der Arduino IDE mit aktualisierten Bibliotheken, ältere Version mit älteren Bibliotheken... es hilft alles nichts :( schon der Versuch die ESPEasy mega ohne auch nur eine Kleinigkeit zu verändern zu kompilieren produziert eine ewig lange Liste an Compiler Fehlern! Natürlich habe ich mich punktgenau an sämtliche Anleitungen gehalten und alle Dateinen 100%ig in die richtigen Ordner kopiert.

Lange Rede, kurzer Sinn: da ich wirklich nur die einfachsten Funktionen brauche und auch gar kein wirkliches Interesse daran habe im Code was zu machen, würde ich mich freuen, wenn mir einfach einer von euch eine 4096.bin mit maximaler LED Zahl 500 hier reinstellen könnte...

Schonmal danke im Vorraus und einen schönen Sonntag!

mfg Till

djcysmic

Zitat von: ThePille am 20 Januar 2019, 08:57:41
Hallo zusammen!

Ich bastel schon eine ganze Weile mit der NeoPixelBus FX rum und liebe es! Danke für die tolle Arbeit und fürs teilen! Jetzt habe ich aber ein Problem und hoffe, dass mir einer von euch helfen kann:

Ich habe eine Wemos D1 mini im Wohnzimmer mit 472 LEDs. Animationen wie z.B. wipe mit xbeliebiger Farbe, oder rainbow funktionieren problemlos über die gesamte Striplänge; die Befehle nfx all oder OFF mit fadetime lassen die erste LED kurz aufleuchten und es tut sich ansonsten nichts mehr!
Nach einigen Stunden rumsuchen hab ich dann diesen Thread hier gefunden und versucht, die LED Zahl direkt im Plugin auf z.B. 500 zu setzen und kriege ESPEasy beim besten Willen nicht kompiliert... ich habe gefühlt schon alles probiert: aktuelle Version der Arduino IDE mit aktualisierten Bibliotheken, ältere Version mit älteren Bibliotheken... es hilft alles nichts :( schon der Versuch die ESPEasy mega ohne auch nur eine Kleinigkeit zu verändern zu kompilieren produziert eine ewig lange Liste an Compiler Fehlern! Natürlich habe ich mich punktgenau an sämtliche Anleitungen gehalten und alle Dateinen 100%ig in die richtigen Ordner kopiert.

Lange Rede, kurzer Sinn: da ich wirklich nur die einfachsten Funktionen brauche und auch gar kein wirkliches Interesse daran habe im Code was zu machen, würde ich mich freuen, wenn mir einfach einer von euch eine 4096.bin mit maximaler LED Zahl 500 hier reinstellen könnte...

Schonmal danke im Vorraus und einen schönen Sonntag!

mfg Till

Hallo Till,

ich habe dir eine kompilierte Version mit 512 Pixel angehangen. Teste mal bitte, ob damit alles passt (Farben etc.).

Zitat von: xyro am 13 Januar 2019, 19:36:28
Versuche es mal mit NeoEsp8266Uart0800KbpsMethod anstatt NeoEsp8266Uart800KbpsMethod in _P124_...


Grüße

Alex

Hallo Alex,

danke für den Hinweis - das war mir auch neu.

Für alle anderen ist hier der Hintergrund dafür:

ZitatNeoEsp8266Uart1800KbpsMethod & NeoEsp8266Uart0800KbpsMethod
Use this instead of Neo800KbpsMethod to force your sketch to use the UART to send data.
NeoEsp8266Uart1800KbpsMethod only supports the TXD1/GPIO2 pin. NeoEsp8266Uart0800KbpsMethod only supports the TXD0/GPIO1 pin. The Pin argument is ignored and can be omitted.

Hier gibt's die komplette Beschreibung dazu: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods

Viele Grüße
Nico

ThePille

Gerade geflasht und läuft wunderbar!! Vielen lieben Dank!

LuckyTV

Hallo

Im DOIF auf Gitub ,,FHEM_DOIF_NFX.txt" gibt es Effekt dualwipe und dualwipeout. In der Doku gibt es nichts dazu.
Ich habe aus Github NeopixelBusFX die firmware4096.bin installiert und auch in deiner Doku ist der Effekt nicht dokumentiert.

Wie bekomme ich den Effekt zum laufen?

Gruß,
Tobias

djcysmic

Zitat von: LuckyTV am 21 Januar 2019, 10:53:10
Hallo

Im DOIF auf Gitub ,,FHEM_DOIF_NFX.txt" gibt es Effekt dualwipe und dualwipeout. In der Doku gibt es nichts dazu.
Ich habe aus Github NeopixelBusFX die firmware4096.bin installiert und auch in deiner Doku ist der Effekt nicht dokumentiert.

Wie bekomme ich den Effekt zum laufen?

Gruß,
Tobias

Hallo Tobias,

wenn du dir das DOIF genau ansiehst, wirst du feststellen, dass beides mit dem Dualwipe-Effekt realisiert wird.

## cmd_13: Dualwipe-IN-Effekt\
DOELSEIF ([$SELF:effect] eq "dualwipe") (\
set [$SELF:device] nfx dualwipe [$SELF:color_1] [$SELF:color_2] [$SELF:speed]\
)\
## cmd_14: Dualwipe-OUT-Effekt\
DOELSEIF ([$SELF:effect] eq "dualwipeout") (\
set [$SELF:device] nfx dualwipe 000000 [$SELF:color_2] [$SELF:speed]\
)\


Der Dualwipe-Effekt ist auch überall dokumentiert:
nfx dualwipe color [dotcolor] [speed]
o speed +/- 0-50, default: 25




Zitat von: ThePille am 20 Januar 2019, 21:16:22
Gerade geflasht und läuft wunderbar!! Vielen lieben Dank!

Sehr schön, das freut mich  :)

Viele Grüße
Nico

LuckyTV

Hallo,

sorry, ich hab mich da vielleicht falsch ausgedrückt. Dokumentiert schon, aber die Effekte gehen nicht und sind auch nicht unter mapLightCmds in der Liste zu finden.
Ich hab eben noch mal in deiner Doku geschaut. Dort gibt es auch fireflicker. Der ist ebenfalls nicht in der mapLightCmds liste.
Wie bereits geschrieben ist die firmware4096.bin von Github auf dem Wemos geflasched.
Hier mal ein list auf das device.

Internals:
   .AttrList  IODev Interval adjustValue colorpicker:RGB,HSV,HSVp colorpickerCTcw colorpickerCTww ctCW_reducedRange ctWW_reducedRange deepsleep:0,1 disable:1,0 disableRiskyCmds disabledForIntervals displayTextEncode:1,0 displayTextWidth do_not_notify:0,1 event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading mapLightCmds:lights,nfx maxCmdDuration:slider,0,0.25,15,1 parseCmdResponse pollGPIOs presenceCheck:1,0 readingPrefixGPIO readingSuffixGPIOState readingSwitchText:1,0,2 rgbGPIOs setState:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,50,100 useSetExtensions:0,1 userSetCmds:textField-long wwcwGPIOs wwcwMaxBri:0,1
   .triggerUsed 1
   DEF        192.168.40.42 80 ESPBridge WOZ_Stripe
   ESPBridge_MSGCNT 89430
   ESPBridge_TIME 2019-01-21 19:21:10
   ESP_BUILD  20102
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   FUUID      5c44b031-f33f-b5ad-056b-ee8caa274ecddf07
   HOST       192.168.40.42
   IDENT      WOZ_Stripe
   INTERVAL   300
   IODev      ESPBridge
   LASTInputDev ESPBridge
   MAX_CMD_DURATION 1
   MSGCNT     89430
   NAME       ESPEasy_WOZ_Stripe
   NOTIFYDEV  global
   NR         317
   NTFY_ORDER 50-ESPEasy_WOZ_Stripe
   PORT       80
   STATE      Fad: 10 Fad: 1000 Las: 0 Mod: 7
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.16
   .attraggr:
   .attrminint:
   READINGS:
     2019-01-21 19:21:10   Fadedelay       10
     2019-01-21 19:21:10   Fadetime        1000
     2019-01-21 19:21:10   Lastmode        0
     2019-01-21 19:21:10   Mode            7
     2019-01-21 17:05:41   bgcolor         fff23d
     2019-01-21 17:05:41   brightness      100
     2019-01-21 17:05:41   count           5
     2019-01-21 17:05:41   dim             255
     2019-01-21 17:05:41   fadedelay       10
     2019-01-21 17:05:41   fadetime        1000
     2019-01-21 17:05:41   hue             302
     2019-01-21 17:05:41   lastmode        off
     2019-01-21 17:05:41   mode            theatre
     2019-01-21 17:05:41   pixelcount      120
     2019-01-21 19:16:03   presence        present
     2019-01-21 17:05:41   rgb             ff1ff8
     2019-01-21 17:05:41   saturation      88
     2019-01-21 17:05:41   speed           3
     2019-01-21 19:20:55   state           Fad: 10 Fad: 1000 Las: 0 Mod: 7
   helper:
     fpc        1548005438
     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  1548094870
       Fadetime   1548094870
       Lastmode   1548094870
       Mode       1548094870
       bgcolor    1548086741
       brightness 1548086741
       count      1548086741
       dim        1548086741
       fadedelay  1548086741
       fadetime   1548086741
       hue        1548086741
       lastmode   1548086741
       mode       1548086741
       pixelcount 1548086741
       rgb        1548086741
       saturation 1548086741
       speed      1548086741
   sec:
     admpwd     
Attributes:
   IODev      ESPBridge
   Interval   300
   colorpicker RGB
   group      ESPEasy Device
   icon       hue_filled_lightstrip
   mapLightCmds nfx
   parseCmdResponse nfx
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   3


Danke für deine Antwort.

Gruß,
Tobias






djcysmic

Zitat von: LuckyTV am 21 Januar 2019, 19:32:50
Hallo,

sorry, ich hab mich da vielleicht falsch ausgedrückt. Dokumentiert schon, aber die Effekte gehen nicht und sind auch nicht unter mapLightCmds in der Liste zu finden.
Ich hab eben noch mal in deiner Doku geschaut. Dort gibt es auch fireflicker. Der ist ebenfalls nicht in der mapLightCmds liste.
Wie bereits geschrieben ist die firmware4096.bin von Github auf dem Wemos geflasched.
Hier mal ein list auf das device.

Danke für deine Antwort.

Gruß,
Tobias

Das liegt daran, dass die Effekte erst später dazu gekommen sind und (noch) nicht im ESPEasy-Plugin von FHEM implementiert sind. Das spielt aber für die Funktion des DOIF keine Rolle - das sollte trotzdem gehen. Ich habe es gerade auch nochmal probiert und bei mir läuft es.
Funktionieren denn die anderen Effekte über das DOIF? Du kannst den Befehl auch manuell über
set ESPEasy_WOZ_Stripe nfx dualwipe ff0000 0000ff
auslösen...

LuckyTV


Ich weiß was passiert ist. Ich habe, als ich das DOIF angepasst hatte überall nfx rausgelöscht, weil ich anfangs Probleme mit dem DOIF hatte.
Wenn ich in fhem manuell "set ESPEasy_WOZ_Stripe nfx dualwipe ff0000 0000ff" eingebe leuchten alle 120 LEDs rot. Sonst passiert aber nichts. Soll das so?

Die Irritation kommt daher, da der Effekt mit "set ESPEasy_WOZ_Stripe kitt ff1ff8 20" und auch mit nfx also "set ESPEasy_WOZ_Stripe nfx kitt ff1ff8 20" funktioniert.
Beim dualwipe und dualwipeout nicht. Weiß nicht ob das so seien soll.

"set ESPEasy_WOZ_Stripe nfx fireflicker 3 25" funktioniert auch.

Ich werde morgen mal DOIF umbauen und auch fireflicker integrieren und testen.

Danke und Gruß
Tobias

djcysmic

Zitat von: LuckyTV am 21 Januar 2019, 21:11:08
Ich weiß was passiert ist. Ich habe, als ich das DOIF angepasst hatte überall nfx rausgelöscht, weil ich anfangs Probleme mit dem DOIF hatte.
Wenn ich in fhem manuell "set ESPEasy_WOZ_Stripe nfx dualwipe ff0000 0000ff" eingebe leuchten alle 120 LEDs rot. Sonst passiert aber nichts. Soll das so?

Der Dualwipe-Effekt ist ein einmaliger Übergangs-Effekt zu einer neuen Farbe, welcher von einem farbigen Pixel angeführt werden kann. Der fängt an beiden Enden des Stripes an und läuft zur Mitte. Wenn er in der Mitte angekommen ist, verbleibt der Stripe in der neuen Farbe. Mit einem negativen Speed-Wert kannst du den Effekt auch umkehren. Der Default Speed-Wert ist 25.

Zitat von: LuckyTV am 21 Januar 2019, 21:11:08
Die Irritation kommt daher, da der Effekt mit "set ESPEasy_WOZ_Stripe kitt ff1ff8 20" und auch mit nfx also "set ESPEasy_WOZ_Stripe nfx kitt ff1ff8 20" funktioniert.
Beim dualwipe und dualwipeout nicht. Weiß nicht ob das so seien soll.

"set ESPEasy_WOZ_Stripe nfx fireflicker 3 25" funktioniert auch.

Ich werde morgen mal DOIF umbauen und auch fireflicker integrieren und testen.

Danke und Gruß
Tobias

Das ist korrekt, da die neuen Effekte nicht in das ESPEasy-Plugin von FHEM eingepflegt worden sind. Das ist aber auch nicht weiter wild, da über den Befehl nfx alle Befehle und Parameter erreichbar sind.

Viele Grüße
Nico