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

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

Vorheriges Thema - Nächstes Thema

djcysmic

Zitat von: Wigbert am 06 März 2019, 21:41:07
Hallo djcysmic,
nochmals herzlichen Dank.
Es funktioniert.
Ich bin begeistert. Deine Beschreibung ist super!
Ich habe das Script in der 99_myUtils.pm noch dahingehend geändert, dass ich die IP Adresse dort fest vorgegeben hab, da ich ja nur ein Display habe (derzeit).
Mir ist zwar aufgefallen, dass im Event Monitor
2019-03-06 21:27:18 DOIF Display_Kueche_Licht error: {UDP_LED("nfx one 29 050500");}: send nfx one 29 050500
steht, aber funktionieren tut es trotzdem.
Warum dort der Eintrag "error" steht habe ich noch nicht herausgefunden.
(Der Aufruf erfolgt mit:  {UDP_LED("nfx one 29 000005");}

Super, das freut mich. Zu dem "error" habe ich auch eine Lösung gefunden:

Zitat von: Damian am 03 Oktober 2016, 22:13:47
Deine Routine liefert einen Returnwert ungleich Null.

Einfach am Ende deiner Funktion return 0; einfügen, dann sollte es keine Fehlermeldung mehr geben.

Gruß

Damian


In unserem Fall muss

return "send $cmd";

durch

return 0;

in der myUtils geändert werden  :)

Wigbert

 Super,
da wars.
Herzlichen Dank und einen schönen Tag noch!
Wigbert

stefanru

#332
Hi,

ich habe ein Problem.
Ich bekomme den Stripe einfach nicht ans leuchten.
Ich habe den ESP geflashed. Habe ihn in FHEM eingerichtet.
Habe 5V Netzteil dran.

Beim Anschließen von Gound flackert es minimal, das wars. Nichts tut sich egal was ich in FHEM versuche.
Irgendjemand eine Idee?
Hab nen Wemos D1 mini benutzt.
Im Anhang ein Screenshot von den Einstellungen in ESPEasy und hier noch der List des FHEM devices:

Internals:
   CFGFN     
   DEF        192.168.69.114 80 espEasyBridge LEDStripe_Wifi
   ESP_BUILD  20102
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   10
   ESP_VERSION 2
   FUUID      5c839a07-f33f-0c45-e65d-fe3e964a16f834fe
   HOST       192.168.69.114
   IDENT      LEDStripe_Wifi
   INTERVAL   300
   IODev      espEasyBridge
   LASTInputDev espEasyBridge
   MAX_CMD_DURATION 1
   MSGCNT     29
   NAME       ESPEasy_LEDStripe_Wifi
   NOTIFYDEV  global
   NR         97821
   NTFY_ORDER 50-ESPEasy_LEDStripe_Wifi
   PORT       80
   STATE      bri: 0 cou: 1 dim: 255 fad: 0 fad: 1000 hue: 0 las: off mod: fire pix: 22 sat: 0 spe: 25
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   espEasyBridge_MSGCNT 29
   espEasyBridge_TIME 2019-03-09 12:28:32
   READINGS:
     2019-03-09 12:28:32   brightness      0
     2019-03-09 12:28:32   count           1
     2019-03-09 12:28:32   dim             255
     2019-03-09 12:28:32   fadedelay       0
     2019-03-09 12:28:32   fadetime        1000
     2019-03-09 12:28:32   hue             0
     2019-03-09 12:28:32   lastmode        off
     2019-03-09 12:28:32   mode            fire
     2019-03-09 12:28:32   pixelcount      22
     2019-03-09 12:29:04   presence        present
     2019-03-09 12:28:32   saturation      0
     2019-03-09 12:28:32   speed           25
     2019-03-09 12:29:04   state           bri: 0 cou: 1 dim: 255 fad: 0 fad: 1000 hue: 0 las: off mod: fire pix: 22 sat: 0 spe: 25
   helper:
     fpc        1552128520
     mapLightCmds:
       all        nfx
       bgcolor    nfx
       colorfade  nfx
       comet      nfx
       count      nfx
       ct         nfx
       dim        nfx
       dualscan   nfx
       dualwipe   nfx
       fade       nfx
       fadedelay  nfx
       fadetime   nfx
       faketv     nfx
       fire       nfx
       fireflicker 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:
       brightness 1552130912
       count      1552130912
       dim        1552130912
       fadedelay  1552130912
       fadetime   1552130912
       hue        1552130912
       lastmode   1552130912
       mode       1552130912
       pixelcount 1552130912
       saturation 1552130912
       speed      1552130912
   sec:
     admpwd     
Attributes:
   IODev      espEasyBridge
   Interval   300
   group      ESPEasy Device
   mapLightCmds nfx
   parseCmdResponse nfx
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   3

hugo

Hallo,
hast du unter Tools im ESP schon einmal probiert die LED zum leuchten zu bringen?   nfx,line,1,2,ff0000 sollten dies Rot leuchten. wenn ides funktioniert würde ich erst in Fhem weitersuchen.
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

stefanru

Hi, danke für die Hilfe.
Hab ich versucht, Ausgabe ist:

{
"plugin": "124",
"mode": "on",
"lastmode": "off",
"fadetime": "1000",
"fadedelay": "20",
"dim": "255",
"rgb": "ff0000",
"hue": "0",
"saturation": "100",
"brightness": "100",
"bgcolor": "",
"count": "1",
"speed": "25",
"pixelcount": "22"
}


Leuchten tut leider nichts.
Ich habe am Wemos D1 mini die Datenleitung des Stripes (D0) an D4 am Wemos mini geklemmt. D4 entspricht GPIO2.
Sollte doch so stimmen, oder?

Was ich auch bemerkt habe, habe ich die Datenleitung des Stripes angeschlossen an D4 des mini bootet er nicht?

Jemand noch ne Idee?

Danke und Gruß,
Stefan

djcysmic

Zitat von: stefanru am 09 März 2019, 17:17:48
Leuchten tut leider nichts.
Ich habe am Wemos D1 mini die Datenleitung des Stripes (D0) an D4 am Wemos mini geklemmt. D4 entspricht GPIO2.
Sollte doch so stimmen, oder?

Was ich auch bemerkt habe, habe ich die Datenleitung des Stripes angeschlossen an D4 des mini bootet er nicht?

Jemand noch ne Idee?

Hallo Stefan,

kann es sein, dass du den Wemos auf der falschen Seite an den Stripe angeklemmt hast (D0=DO=Data Out)?
Normalerweise sollte der Dateneingang mit DI (Data In) bezeichnet sein.
D4 am Wemos sollte korrekt sein.
Weiterhin könnte es sein dass der Stripe bzw. die erste LED defekt ist...

Viele Grüße
Nico

stefanru

Hi Nico,

vielen Dank!
Das wusste ich nicht. DIN sehe ich jetzt auch :-)
Werde gleich mal umlöten.

Danke!
Stefan

hugo

Hallo,
ich suche eigentlich einen Sketch für NodeMCU mit dem Plugin "NeopixelBusFX" und  "038: NeoPixel Basic".
Im ESPEasy 2.0 fehlt der NeopixelBusFX. Ich habe versucht, selbst einen Sketch zu erzeugen, aber die Fehlermeldungen waren einfach zu viel.

Hintergrund ist, dass ich die Farbwerte in "Generic - Dummy Device" (siehe  Thread https://forum.fhem.de/index.php/topic,98011.msg913491.html#msg913491) speichern möchte. Dort aber nur Zahlen möglich sind, aber nfx ja die Werte im HEX-Format möchte oder bin falsch? Somit wäre es möglich das Script auf Neopixel umzuschreiben und trotzdem Effekte wie im NeopixelBusFX zu nutzen.
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

Afmanni

Hi,
ich habe ein ähnliches Problem wie hugo, ich hatte schon einmal ein NodeMCU problemlos geflashed. Nun habe ich mir einen neuen NodeMCU V3 zugelegt und bekomme jetzt im Arduino "StringProvider:1:33: error: StringProviderTypes.h: No such file or directory"
Ich habe mehrfach alle Libraries kopiert und auch aktualisiert aber leider alles ohne Erfolg.

Sunless

@Afmanni & hugo:
Die fertig compilierten *.bin aus dem Github funktionieren nicht? Wenn ich mich nicht irre, sind da die _P038_NeoPixel und P124_NeoPixelBusFX mit drin.

Farbwerte könnte man alternativ auch per SendToHTTP Richtung FHEM in ein Reading schubsen und von dort bei Bedarf wieder auslesen ...

Andere kurze Frage zum Quelltext:
An welcher Schraube (Parameter) muss ich drehen, damit es einen Fade-in gibt (Fade-out klappt) und wo könnte ich die Laufgeschwindigkeit vom "Rainbow" noch weiter reduzieren?
Habe 200 Leds als Treppenbeleuchtung, Esp8266-12 "pur", Bewegungsmelder oben und unten an der Treppe und steuere direkt über die Rules per "nfx,rainbow,-1" resp "nfx,rainbow,1" je nachdem, welcher Melder ausgelöst hat.

Problem dabei: würde/müsste den Farbwechsel noch langsamer haben, da meine Mädels immer versuchen zusammen mit der von ihnen gewählten Farbe die Treppe hoch resp. herunter zu kommen, was in fast schon gefährlichem Gerenne endet ...  ???

Nuja, zumindest der WAF ist bei vollen 100%  :P
FHEM-Master@Raspi2B (CUL433,etliche CUL_TCM97001-Sensoren, zig IT-Steckdosenschalter, Squeezelite)
FHEM-Slave@Raspi (via RFHEM,wired Bewegungsmelder, Sqeezelite)
DS212+ (LMS für Squeezelite-Clients, Surveillance, Mediaserver und Datengrab)
Billig-Tablets zum Steuern (TabletUI)

hugo

Hallo Sunless,
welchen *.bin hast du verwendet? Ich habe keinen gefunden mit _P038_NeoPixel und P124_NeoPixelBusFX drin.
Hannst du bitte ein Link einstellen?

Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

djcysmic

Zitat von: hugo am 02 April 2019, 14:46:51
Hallo Sunless,
welchen *.bin hast du verwendet? Ich habe keinen gefunden mit _P038_NeoPixel und P124_NeoPixelBusFX drin.
Hannst du bitte ein Link einstellen?

Hallo Hugo,

die aktualisierten .bin-Dateien im Github enthalten jetzt beide Plugins.

Zitat von: hugo am 18 März 2019, 15:54:26
Hintergrund ist, dass ich die Farbwerte in "Generic - Dummy Device" (siehe  Thread https://forum.fhem.de/index.php/topic,98011.msg913491.html#msg913491) speichern möchte. Dort aber nur Zahlen möglich sind, aber nfx ja die Werte im HEX-Format möchte oder bin falsch? Somit wäre es möglich das Script auf Neopixel umzuschreiben und trotzdem Effekte wie im NeopixelBusFX zu nutzen.

Dafür habe ich jetzt die hsvone-Funktion eingefügt, welche mit ganzen Zahlen auskommt:

nfx hsvone pixel hue saturation brightness

Die Wertebreiche:
hue[0-360°]
saturation[0-100%]
brightness[0-100%]

Zitat von: Sunless am 02 April 2019, 11:46:07
Andere kurze Frage zum Quelltext:
An welcher Schraube (Parameter) muss ich drehen, damit es einen Fade-in gibt (Fade-out klappt) und wo könnte ich die Laufgeschwindigkeit vom "Rainbow" noch weiter reduzieren?
Habe 200 Leds als Treppenbeleuchtung, Esp8266-12 "pur", Bewegungsmelder oben und unten an der Treppe und steuere direkt über die Rules per "nfx,rainbow,-1" resp "nfx,rainbow,1" je nachdem, welcher Melder ausgelöst hat.

Ich habe den Rainbow-Effekt um den Faktor 10 verlangsamt und ein FadeIn aus dem Off-Mode hinzugefügt:

nfx rainbow [speed, default: 25] [fadetime, default: 1000ms]

Zitat von: Sunless am 02 April 2019, 11:46:07
Problem dabei: würde/müsste den Farbwechsel noch langsamer haben, da meine Mädels immer versuchen zusammen mit der von ihnen gewählten Farbe die Treppe hoch resp. herunter zu kommen, was in fast schon gefährlichem Gerenne endet ...  ???

Nuja, zumindest der WAF ist bei vollen 100%  :P

Wir wollen ja nicht, dass sich noch jemand verletzt... ;)

Die aktualisierte Version gibt's wie immer im Github - viel Spaß damit ;)

Sunless

@Hugo: entweder hatte ich eine Version, die hier irgendwo angehängt war oder hatte selbst kompiliert  :-\ - tendiere zu letzterem, was das Vorhandensein der P038 bei mir erklären würde ...

... aber hat sich ja eh erledigt  :o

Danke @djcysmic für das schnelle Umsetzen des langsameren Regenbogens ... mit Speed 5 (resp. -5) haben die Mädels nun auch eine Chance, die Farbe zu verfolgen, ohne dass ich jedesmal nur durchs Zusehen ins Schwitzen komme  :P
Der Fade-in ist auch sehr angenehm fürs Auge  8)

PS: counter20ms * rainbowspeed / 10 in Zeile 1078 ff. ... danke GitHub ... so easy ... wieder was gelernt  ;)

Grüße ... Sebastian
FHEM-Master@Raspi2B (CUL433,etliche CUL_TCM97001-Sensoren, zig IT-Steckdosenschalter, Squeezelite)
FHEM-Slave@Raspi (via RFHEM,wired Bewegungsmelder, Sqeezelite)
DS212+ (LMS für Squeezelite-Clients, Surveillance, Mediaserver und Datengrab)
Billig-Tablets zum Steuern (TabletUI)

hugo

@djcysmic erstmal vielen Dank für deine Mühe. Ich hatte schon einmal geantwortet, aber diese ist wohl im Internet verschwunden.
In deiner firmware4096.bin sind beider vorhanden und funtkionieren auch. Leider habe ich ein kleines Problem mit den Rules. Bei deiner .bin kann ich in Rules 1 und Rules 3 nur einige Zeilen hinterlegen, der Rest wird abgeschnitten. Installiere ich ESP_Easy_mega-20190225_normal_ESP8266_4M.bin kann ich die Rules ohne Problem füllen. Hast du dazu eine Ahnung woran das liegen könnte?

Dein "nfx hsvone pixel hue saturation brightness" habe ich auch getest und funktioniert gut. Ein "nfx hsvline" gibt es nicht oder habe ich es überlesen.

Rules1
on System#Boot do
taskvalueset,2,4,000022
nfx,dualscan,0000FF,100
endon
on Clock#Time do
nfx,line,1,110,000000
nfx,line,1,2,[UHR#color]
nfx,line,4,6,[UHR#color]
taskvalueset,2,2,0
if %sysmin% >=5 and %sysmin% <10
nfx,line,8,11,[UHR#color]
nfx,line,39,42,[UHR#color]
endif
if %sysmin% >=10 and %sysmin% <15
nfx,line,19,22,[UHR#color]
nfx,line,39,42,[UHR#color]
endif
if %sysmin% >=15 and %sysmin% <20
nfx,line,27,33,[UHR#color]
nfx,line,39,42,[UHR#color]
endif
if %sysmin% >=20 and %sysmin% <25
nfx,line,12,18,[UHR#color]
nfx,line,39,42,[UHR#color]
endif
if %sysmin% >=25 and %sysmin% <30
nfx,line,8,11,[UHR#color]
nfx,line,36,38,[UHR#color]
nfx,line,45,48,[UHR#color]
endif
if %sysmin% >=35 and %sysmin% <40
nfx,line,8,11,[UHR#color]
nfx,line,39,42,[UHR#color]
nfx,line,45,48,[UHR#color]
endif
if %sysmin% >=30 and %sysmin% <35
nfx,line,45,48,[UHR#color]
taskvalueset,2,2,1
endif
if %sysmin% >=40 and %sysmin% <45
nfx,line,12,18,[UHR#color]
nfx,line,36,38,[UHR#color]
endif
if %sysmin% >=25 and %sysmin% <45
taskvalueset,2,2,1
endif
endon
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

djcysmic

#344
Zitat von: Sunless am 06 April 2019, 20:43:51
Danke @djcysmic für das schnelle Umsetzen des langsameren Regenbogens ... mit Speed 5 (resp. -5) haben die Mädels nun auch eine Chance, die Farbe zu verfolgen, ohne dass ich jedesmal nur durchs Zusehen ins Schwitzen komme  :P
Der Fade-in ist auch sehr angenehm fürs Auge  8)

PS: counter20ms * rainbowspeed / 10 in Zeile 1078 ff. ... danke GitHub ... so easy ... wieder was gelernt  ;)

Github ist schon ne feine Sache - freut mich, dass es jetzt passt ;)

Zitat von: hugo am 07 April 2019, 09:47:19
@djcysmic erstmal vielen Dank für deine Mühe. Ich hatte schon einmal geantwortet, aber diese ist wohl im Internet verschwunden.
In deiner firmware4096.bin sind beider vorhanden und funtkionieren auch. Leider habe ich ein kleines Problem mit den Rules. Bei deiner .bin kann ich in Rules 1 und Rules 3 nur einige Zeilen hinterlegen, der Rest wird abgeschnitten. Installiere ich ESP_Easy_mega-20190225_normal_ESP8266_4M.bin kann ich die Rules ohne Problem füllen. Hast du dazu eine Ahnung woran das liegen könnte?

Dein "nfx hsvone pixel hue saturation brightness" habe ich auch getest und funktioniert gut. Ein "nfx hsvline" gibt es nicht oder habe ich es überlesen.

Ich habe jetzt nochmal auf die aktuellste ESPEasy-Version geupdatet und einen hsvline-Befehl hinzugefügt.
Das Phänomen mit den Rules habe ich auch - kann mir im Moment allerdings nicht erklären, woher das kommt...

Edit: Das scheint ein Bug in ESPEasy zu sein - wenn ich eine rules1.txt manuell in den Flash uploade, zeigt er sie sauber an. Nähere Infos dazu gibt's hier: https://github.com/letscontrolit/ESPEasy/issues/1296