FHEM Forum

FHEM - Anwendungen => Beleuchtung => Thema gestartet von: swhome am 03 März 2016, 13:27:41

Titel: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 03 März 2016, 13:27:41
Hallo Forum,

zur Steuerung der WS2812b LED Streifen habe ich einen kleinen Controller mit Hilfe eines Arduino mit Ethernet Shield (Wiznet oder UIP) selbst gebaut. Mittlerweile funktioniert es auch mit einem ESP 8266 per WLAN.

Der Anschluß der LED an den Controller kommt ohne weitere Bauteile aus und ist hier (https://learn.adafruit.com/adafruit-neopixel-uberguide/basic-connections) gut beschrieben.

An der Netzwerkschnittstelle steht ein einfaches http-basiertes Protokoll zur Verfügung um die LEDs anzusteuern. Das zugehörige FHEM Modul bietet einen einfachen Befehlssatz mit folgenden Funktionen:

Insbesondere die Abspielfunktion aus Dateien ermöglicht trickreiches Lichtdesign, zum Beispiel Sonnenaufgänge oder sanfte Farbwechsel. Leider ist die Anzahl der ansteuerbaren Farben in diesem Modus noch auf 4096 beschränkt aber das will ich bei Gelegenheit noch ändern.

Wer das LED Netzteil nicht nur im Standby lassen sondern gern richtig ausschalten will, kann einen zusätzlichen Schaltkanal mit dem Attribut power_switch deklarieren. Das Modul wird diesen Kanal dann einschalten bevor LEDs aktiviert werden und ihn beim Kommando off wieder ausschalten.

Installation des Moduls aus GitHub: Hierzu in der FHEM Kommandozeile folgendes eingeben:
update all https://raw.githubusercontent.com/sw-home/FHEM-LEDStripe/master/controls_ledstripe.txt

Arduino

Die Anzahl der LEDs muss im Sketch eingestellt werden:

#define NUMPIXELS1     150
#define NUMPIXELS2     150

Der Arduino-Sketch kann zwei LED-Streifen steuern und ist so gedacht, daß der Controller in der Mitte der beiden Streifen plaziert wird. Das ist aber optional, die Länge des zweiten Streifens kann auch 0 sein.

Im Moment benutze ich einen alternativen Bootloader der ein Sketch-Update übers Netzwerk ermöglicht. Die IP-Adresse wird im Flash hinterlegt, und auch der Sketch verwendet diese. Alternativ kann die MAC und IP auch im Sketch definiert werden, das ist im Source auskommentiert.

Limitierend ist mitunter der Speicherbedarf im Microcontroller, bei Einzelansteuerung pro LED 3 Byte. Nachdem die Netzwerk-Libraries je nach Implementierung ziemlich speicherhungrig sind, kann es bei hunderten von LEDs schnell eng werden. Mit dem originalen Ethernet-Shield oder einem Arduino Ethernet sind bei mir 220 LED möglich, aber schon grenzwertig. Andere Netzwerk-Libs nehmen noch mehr Speicher und erlauben weniger LEDs. Im Zweifel muss man einen Arduino Mega benutzen. Wenn der Controller nicht richtig funktioniert, liegts am Speicher...

Man braucht eine ordentliche 5V Spannungsversorgung und sollte längere Streifen mit parallelen Versorgungsleitungen unterstützen. Ich habe den Controller an der 5V-Leitung direkt angeklemmt was in der Szene umstritten ist aber prima funktioniert. Wenn alle LEDs mit allen Farben voll aufgedreht werden, fließen 60mA pro LED, bei 200 Stück also 12A. In der Praxis braucht man meist weniger weil dies ja eher eine Akzentbeleuchtung sein soll. Denkbar wäre auch eine Limitierung des Stromverbrauchs im FHEM-Modul.

Modul LEDStripe

Define

define <name> LEDStripe <ip_address>

Defines a module for controlling WS2812b LED stripes connected to an Arduino with Ethernet shield
  define LED_Wohnzimmer LEDStripe 192.168.1.21
  attr LED_Wohnzimmer playfile /opt/fhem/ledwall.txt
Attributes
[/li][/list]
Commands

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 08 März 2016, 08:52:40
Anbei noch ein Foto wie ich die Lichtleisten an der Decke montiert habe.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: roedert am 14 März 2016, 15:44:07
Interessante Geschichte ... werd ich direkt mal nachbauen :)
Soll nicht zur Beleuchtung dienen, sondern als Statusanzeige - diesen Ansatz gabs hier schon mehrfach.

Zitat von: swhome am 03 März 2016, 13:27:41
Im Moment benutze ich einen alternativen Bootloader der ein Sketch-Update übers Netzwerk ermöglicht. Die IP-Adresse wird im Flash hinterlegt, und auch der Sketch verwendet diese. Alternativ kann die MAC und IP auch im Sketch definiert werden, das ist im Source auskommentiert.
Kannst du mehr zu diesem Bootloader sagen?
Bzw. zum Festlegen der IP im Quelltext ... dort steht nur:
// Enter a MAC address and IP address for your controller below
// uncomment if using fixed IP:
//byte mac[] = { 0x90, 0x42, 0xDA, 0x0D, 0x5D, 0x99 };

// The IP address will be dependent on your local network
// uncomment if using fixed IP:
//IPAddress ip(10,222,11,42);

Mac-Adresse ... kann ich mir eine aussuchen? Hat die Netzwerkkarte keien fest "eingebrannte"?
Was ist mit den restlichen infos wie Netzmaske und Gateway?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 15 März 2016, 08:12:19
Bei diesen sehr simplen Netzwerkkarten ist keine MAC gespeichert, das muss man in der eigenen Firmware machen. Wenn man eine echte Arduino Komponente kauft, ist eine MAC als Aufkleber dabei, die man in den eigenen Code übernehmen kann, ansonsten muss man sich halt selber eine ausdenken. Die anderen TCP Parameter hab ich vergessen, wahrscheinlich passen die defaults zu meinem Netzwerk. Schau mal hier:

https://www.arduino.cc/en/Reference/EthernetIPAddress

Die Sache mit dem Bootloader ist noch etwas unfertig. Mein Wunsch ist, den oben in der Zwischendecke sitzenden Controller ohne Baumaßnahmen neu flashen zu können. Der Code stammt von hier:

http://playground.arduino.cc/Code/TFTPBootloader1

Allerdings hab ich jetzt irgendwo anders einen Bootloader mit DHCP/Bootp gefunden, das erscheint mir noch viel eleganter. Die ganze Geschichte mit der statischen Netzwerkkonfiguration im Flash entfiele, und auch das etwas fummelige 5 Sekunden Timing.

Viel Erfolg beim Bauen, bin gespannt auf deine Resultate. An eine Statusanzeige hatte ich auch schon gedacht, oder an eine raumfüllende Zeitanzeige...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: roedert am 15 März 2016, 14:43:00
gekauft, Sketch angepasst und hochgeladen, bisschen gelötet ..... läuft alles prima :)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: roedert am 15 März 2016, 16:27:24
Alle Tests bisher erfolgreich .... nun muss der fliegende Testaufbau nur noch "schön" gemacht werden.

Plan ist es eine Raumecke neben der Tür mit einer Platte "abzuschrägen", darauf komtm dann der Cubietruck mit FHEM, HM-LAN-CFG, Huebridge und eben das Statusdisplay optisch angelehnt an diese Umsetzung:
https://forum.fhem.de/index.php/topic,28025.0.html

Möchtest du dein Modul nicht "offiziell" machen und einen entsprechenden Wiki-Eintrag mit den zugehörigen Infos zum Nachbau ... Hardware, Verkabelung, Sketch etc.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 18 März 2016, 23:35:08
Na klar da spricht nichts dagegen. Ich wollte hier erstmal das Interesse checken  ;D
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: roedert am 18 März 2016, 23:37:24
....einen Fan hast du schon ;)

Vielleicht weisst du auf die Schnelle die Lösung .... wie kann ich die ständigen Logmeldungen
2016.03.18 23:34:32 3: set Statusdisplay pixel 19 0 0 0 : LEDStripe returned OK,60,8, new state is on
verhindern?

attr verbose 0 hat nix genützt :(
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 19 März 2016, 00:06:13
Oh sorry ja das ist dumm. Falls du es auf die Schnelle ändern willst, entferne in diesen Zeilen
$rc = LEDStripe_request($hash,$URL);
die Zuweisung $rc=, dann sollte das Resultat des http Aufrufes nicht mehr geloggt oder angezeigt werden. Ich mache am Wochenende mal ein Update des ersten Beitrages.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Papaloewe am 19 März 2016, 20:28:16
Bin schon lange auf der Suche nach einem solchen Modul, das auch die Einzelansteuerung und Effekte unterstüzt.
Wäre es vielleicht auch prinzipiell anpassbar, damit es auf einem ESP8266 mit WIFI Anbindung läuft?
Das fände ich dann richtig spannend und würde sofort einen Testaufbau machen.

Gruß
Thomas
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 22 März 2016, 00:01:44
Hi, ich bin ziemlich sicher dass es mit dem ESP funktionieren würde, aber ich bin noch nicht dazu gekommen es auszuprobieren. Aktuell hab ich noch ein anderes dringenderes ESP Projekt das noch nicht so recht laufen will...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: harway2007 am 23 Mai 2016, 09:38:32
würde gern ein raspberry 2 oder 3 als Kontroller benutzen .. was ist da zu beachten oder zu ändern?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 23 Mai 2016, 20:21:11
Hi, Arduino und Raspberry sind total verschiedene Dinge. Soviel ich weiß kann man die WS2812 nicht zuverlässig direkt mit einen Pi ansteuern. Bei mir läuft FHEM auf dem Pi, du brauchst also nur noch den Arduino dazu :-)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 23 Mai 2016, 20:46:43
Und für den Anschluss direkt an den Raspi eigenen sich WS2801 besser.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: rippi46 am 26 Mai 2016, 08:54:20
Hallo swhome,

wirklich tolle Geschichte. :)

Habe aber leider das Problem, dass beim Absetzen eines Befehls zuerst einmal nichts passiert. Erst wenn ich noch einmal einen Befehl abschicke ändert sich am Stripe etwas.

Dicht gefolgte Befehle funktionieren sofort. Es sieht so aus als ob die Verbindug verloren geht.

Hast du ähnliche Probleme?

Gruß rippi
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: harway2007 am 26 Mai 2016, 22:39:03
Ich finde euren Ansatz prima .. da ich aber
a. den Raspberry 2 und 3 nutzen möchte
b. die Lösung mit Kondensator Anschluss am Raspberry nicht stabil läuft
schaut euch doch bitte mal das Modul
DIGI-DOT-Booster am SPI des Raspberry
an ...
würde das nicht alle Anschluss- und Steuerprobleme erledigen ?
Habe eine Forum parralel einen Eintrag dazu gestartet,
da ich es auf jeden Fall mit Raspberry anbinden möchte.
MFG Harway



Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: harway2007 am 30 Mai 2016, 22:41:41
Das Modul ist da und klappt ....
Habe 184 LEDs dran am Raspberry 2
sind noch ne Menge Fragen offen...
weiteres im Forumseintrag:
DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
MFG Harway

Nachtrag:
einzelne LEDs mit beliebiger Farbe nach RGB

spi.writebytes([0xA2, 190, 25, 180, 254])
time.sleep(DELAY)
spi.writebytes([0xA4, 10]) 
time.sleep(DELAY)
spi.writebytes([0xB2]) 
time.sleep(DELAY)
spi.close()
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: exciter am 06 September 2016, 17:20:32
Hier mal die ESP8266 Version:

#include <Adafruit_NeoPixel.h>
#include <ESP8266WiFi.h>

const char* ssid     = "XXX";
const char* password = "XXX";
WiFiServer server(80);
// Which pin on the Arduino is connected to the NeoPixels?
#define LEDPIN1           14
#define LEDPIN2           0

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS1     144
#define NUMPIXELS2     0


void reset();
// control special effects
boolean fire=false;
boolean rainbow=false;
uint16_t rainbowColor=0;

// setup network and output pins
void setup() {
// Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  Serial.println(F("Booting"));

// Initialize all pixels to 'off'
stripe_setup();
  WiFi.mode(WIFI_STA);
Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
}

// request receive loop
void loop() {
// listen for incoming clients
  WiFiClient client = server.available();  // Check if a client has connected
  if (client) {
    Serial.println(F("new client"));
   
    String inputLine = "";
   // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    boolean isGet = false;
    boolean isPost = false;
    boolean isPostData = false;
    int postDataLength;
    int ledix = 0;
    int tupel = 0;
    int redLevel = 0;
    int greenLevel = 0;
    int blueLevel = 0;
   
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (isPostData && postDataLength > 0) {
          switch (tupel++) {
            case 0:
              redLevel = colorVal(c);
              break;
            case 1:
              greenLevel = colorVal(c);
              break;
            case 2:
              blueLevel = colorVal(c);
              tupel = 0;
              stripe_setPixelColor(ledix++, stripe_color(redLevel,greenLevel,blueLevel));
              break;
          }
          if (--postDataLength == 0) {
            stripe_show();
            sendOkResponse(client);
            break;
          }
        }
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          if (isPost) {
            isPostData = true;
            continue;
          } else {
            // send http response
            if (isGet) {
              sendOkResponse(client);
            } else {
              client.println(F("HTTP/1.1 500 Invalid request"));
              client.println(F("Connection: close"));  // the connection will be closed after completion of the response
              client.println();
            }
            break;
          }
        }
        if (c == '\n') {
          // http starting a new line, evaluate current line
          currentLineIsBlank = true;
          Serial.println(inputLine);
         
// SET SINGLE PIXEL url should be GET /rgb/n/rrr,ggg,bbb
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /rgb/")) {
            int slash = inputLine.indexOf('/', 9 );
            ledix = inputLine.substring(9,slash).toInt();
            int urlend = inputLine.indexOf(' ', 9 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            int komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            redLevel = getParam.substring(0,komma1).toInt();
            greenLevel = getParam.substring(komma1+1,komma2).toInt();
            blueLevel = getParam.substring(komma2+1).toInt();
            stripe_setPixelColor(ledix, stripe_color(redLevel,greenLevel,blueLevel));
            stripe_show();
            isGet = true;
          }
          // SET PIXEL RANGE url should be GET /range/x,y/rrr,ggg,bbb
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /range/")) {
            int slash = inputLine.indexOf('/', 11 );
            int komma1 = inputLine.indexOf(',');
            int x = inputLine.substring(11, komma1).toInt();
            int y = inputLine.substring(komma1+1, slash).toInt();
            int urlend = inputLine.indexOf(' ', 11 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            redLevel = getParam.substring(0,komma1).toInt();
            greenLevel = getParam.substring(komma1+1,komma2).toInt();
            blueLevel = getParam.substring(komma2+1).toInt();
            for(int i=x; i<=y; i++) {
              stripe_setPixelColor(i, stripe_color(redLevel,greenLevel,blueLevel));
            }
            stripe_show();
            isGet = true;
          }
          // POST PIXEL DATA
          if (inputLine.length() > 3 && inputLine.substring(0,10) == F("POST /leds")) {
            isPost = true;
          }
          if (inputLine.length() > 3 && inputLine.substring(0,16) == F("Content-Length: ")) {
            postDataLength = inputLine.substring(16).toInt();
          }
          // SET ALL PIXELS OFF url should be GET /off
          if (inputLine.length() > 3 && inputLine.substring(0,8) == F("GET /off")) {
            reset();
            isGet = true;
          }
         
          // GET STATUS url should be GET /status
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /status")) {
            isGet = true;
          }
          // SET FIRE EFFECT
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /fire")) {
            fire = true;
            rainbow = false;
            stripe_setBrightness(128);
            isGet = true;
          }
          // SET RAINBOW EFFECT
          if (inputLine.length() > 3 && inputLine.substring(0,12) == F("GET /rainbow")) {
            rainbow = true;
            fire = false;
            stripe_setBrightness(128);
            isGet = true;
          }
          inputLine = "";
        }
        else if (c != '\r') {
          // add character to the current line
          currentLineIsBlank = false;
          inputLine += c;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println(F("client disconnected"));
  }
  if (fire) fireEffect();
  if (rainbow) rainbowCycle();
}

// Reset stripe, all LED off and no effects
void reset() {
  for(int i=0; i<stripe_numPixels(); i++) {
    stripe_setPixelColor(i, 0);
  }
  stripe_setBrightness(255);
  stripe_show();
  fire = false;
  rainbow = false;
}

// LED flicker fire effect
void fireEffect() {
  for(int x = 0; x <stripe_numPixels(); x++) {
    int flicker = random(0,55);
    int r1 = 226-flicker;
    int g1 = 121-flicker;
    int b1 = 35-flicker;
    if(g1<0) g1=0;
    if(r1<0) r1=0;
    if(b1<0) b1=0;
    stripe_setPixelColor(x,stripe_color(r1,g1, b1));
  }
  stripe_show();
  delay(random(10,113));
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle() {
  uint16_t i;

  if (rainbowColor++>255) rainbowColor=0;
  for(i=0; i< stripe_numPixels(); i++) {
    stripe_setPixelColor(i, Wheel(((i * 256 / stripe_numPixels()) + rainbowColor) & 255));
  }
  stripe_show();
  delay(20);
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return stripe_color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return stripe_color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return stripe_color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

int colorVal(char c) {
  int i = (c>='0' && c<='9') ? (c-'0') : (c - 'A' + 10);
  return i*i + i*2;
}

void sendOkResponse(WiFiClient client) {
  client.println(F("HTTP/1.1 200 OK"));
  client.println(F("Content-Type: text/html"));
  client.println(F("Connection: close"));  // the connection will be closed after completion of the response
  client.println();
  // standard response
  client.print(F("OK,"));
  client.print(stripe_numPixels());
  client.print(F(","));
  int oncount=0;
  for(int i=0; i<stripe_numPixels(); i++) {
    if (stripe_getPixelColor(i) != 0) oncount++;
  }
  client.println(oncount);
}



Mit der vstripe aus dem Originalfile zu kompilieren. Pin, SSID, KEY, nach Bedarf anpassen.

Gruß Steffen
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 07 September 2016, 08:44:27
Das ist ja cool! Wie hast Du das technisch gelöst? LEDs an 5 Volt und einen separaten 3,3V Regler für die ESP? Und der Ausgang des ESP direkt an die erste LED?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: exciter am 07 September 2016, 21:21:20
Habe das ganze noch am labornetzteil bei 3,4V Volt laufen. Ja Ausgang vom ESP direkt auf die erste LED.
Habe das Programm auch noch erweitert mit der Adafruit neo Matrix Bibliothek. Kann nun auf eine Matrix 5x29 ws2812b LEDs, Text aus Fhem heraus schicken, bzw. readings ausgeben.
Ist aber eher alles zusammengewürfelter Code, welcher noch stark verbesserungsbedürftig ist.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tiwo85 am 09 September 2016, 10:05:16
Hallo swhome,
Cooles Projekt. Ich habe mir gleich ein paar stripes bestellt.
Wie muss die Playfile aufgebaut sein?

Mfg

Gesendet von meinem D5803 mit Tapatalk

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 10 September 2016, 19:16:52
Hi tiwo, das Playfile besteht aus beliebig vielen Zeilen mit jeweils allen Farbwerten für die LEDs.

Die Farbwerte sind komprimiert, es gibt nur 16 Helligkeiten pro Kanal, kodiert als Hexadezimalzahl. 0 = aus, F = maximale Helligkeit. Die Farbe rot mit maximaler Helligkeit ist also f00, gelb ist ff0, weiss ist fff.

Nehmen wir an, Du hast 10 LEDs und willst ein laufendes Muster aus blau und weiss darstellen, dann sieht die Datei so aus:

fff00f000fff00f000fff00f000fff
000fff00f000fff00f000fff00f000
00f000fff00f000fff00f000fff00f

Zugegeben wären unter Zuhilfenahme aller druckbaren Zeichen mehr Farben darstellbar, da war ich wohl etwas faul ;-)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: juppzupp am 20 September 2016, 20:24:22
Spannendes Projekt! Gestern mal auf die Schnelle probiert, klappt einwandfrei.
Leicht erweiterbar.
Danke!

Edit : auf esp8266 mit 60 leds
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 21 September 2016, 10:01:13
Hallo allseits, vielen Dank für das feedback!

Ich habe eine neue Version des Moduls an den ersten Beitrag angehängt, die eine Farbwahl per Mausklick ermöglicht. Damit werden dann alle LED's mit der gleichen Farbe gesetzt. Es bleibt noch etwas hinter den Möglichkeiten zurück, aber ist sehr benutzerfreundlich. Bin dran noch mehr rauszuholen.

Viele Grüße
Stefan
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: juppzupp am 21 September 2016, 10:46:27
Hi,

es kommt natürlich immer darauf an was man damit vor hat.....
Ich hab beim "spielen" gestern schnell "hunger" nach mehr entwickelt.
Als Beispiel : 60 LEDs in der Küche, die Abends mit dem Sonnenuntergang anfangen hoch zu dimmen.
Wenn Abfall ansteht, 5 LEDs die blinken (blau, gelb, grau).
Könnte man mit dem playfile lösen - allerdings gibt es nur einen. Attribute umschreiben per notify, at, etc. wäre möglich.
Gefällt mir noch nicht so ganz, weil die last auf fhem liegt, und der ESP eh nix zu tun hat. Auch schnellere abfolgen könnten schwierig werden.
So hab ich ich dem ESP (quick and dirty) ne blink routing spendiert, die ich von fhem aufrufe.

    if($command eq "blink")
  {
    return "Set blink needs seven parameters: <first_led> <last_led> <red> <green> <blue> <ontime> <offtime>" if ( @a != 7 );
    my $first_led=$a[0];
    $first_led=($first_led=~ m/$reDOUBLE/) ? $1:undef;
    return "first_led value ".$a[0]." is not a valid number" if (!defined($first_led));

    my $last_led=$a[1];
    $last_led=($last_led=~ m/$reDOUBLE/) ? $1:undef;
    return "last_led value ".$a[1]." is not a valid number" if (!defined($last_led));

    my $red=$a[2];
    $red=($red=~ m/$reDOUBLE/) ? $1:undef;
    return "red value ".$a[2]." is not a valid number" if (!defined($red));

    my $green=$a[3];
    $green=($green=~ m/$reDOUBLE/) ? $1:undef;
    return "green value ".$a[3]." is not a valid number" if (!defined($green));

    my $blue=$a[4];
    $blue=($blue=~ m/$reDOUBLE/) ? $1:undef;
    return "blue value ".$a[4]." is not a valid number" if (!defined($blue));

    my $ontime=$a[5];
    $ontime=($ontime=~ m/$reDOUBLE/) ? $1:undef;
    return "ontime value ".$a[5]." is not a valid number" if (!defined($ontime));

    my $offtime=$a[6];
    $offtime=($offtime=~ m/$reDOUBLE/) ? $1:undef;
    return "offtime value ".$a[6]." is not a valid number" if (!defined($offtime));

    Log 4, "set command: " . $command ." desired:". $first_led . " to " . $last_led;
    $URL .= "/blink/" . $first_led . "," . $last_led . "/" . $red . "," . $green . "," . $blue . "," . $ontime . "," . $offtime;
    $rc = LEDStripe_request($hash,$URL);
  }


passend dazu einen aufruf der nur die loops beendet, damit ich nicht den ganzen stripe reseten muss.
  if($command eq "nofx")
  {
    $URL .= "/nofx";
    LEDStripe_request($hash,$URL);
  }


Beim dimmen hab ich aufgehört, da ich mich frage, ob es vielleicht besser wäre auf fastled.h statt neopixel.h zu setzen.
Vielleicht sind meine Ideen auch zu speziell um den weg ins modul oder den sketch zu finden.

Grüße !

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 21 September 2016, 11:16:34
Hi, das mit dem Hunger geht mir genauso :-)

Playfiles wechseln mache ich auch per Attributänderung. Was die Last angeht: klar die ESP hat nix zu tun aber die Leistungsfähigkeit der Platform meines fhem ist auch deutich höher als die der ESP. Und ich muss nicht jedesmal flashen wenn sich was an der Software ändert.

Ein Dimmen mit Zeitangabe so wie die Homematic-Dimmer es können steht auch auf meiner Roadmap. Das langsame Auffahren zb. am Abend mache ich allerdings wegen der Farbvielfalt als Playfile.

Deine Blinkroutine werde ich in die nächste Version aufnehmen. Danke!

Ausserdem gibts noch ein neues Feature im Modul:

Wer das LED Netzteil nicht nur im Standby lassen sondern gern richtig ausschalten will, kann einen zusätzlichen Schaltkanal mit dem Attribut power_switch deklarieren. Das Modul wird diesen Kanal dann einschalten bevor LEDs aktiviert werden und ihn beim Kommando off wieder ausschalten.

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: juppzupp am 21 September 2016, 12:04:37
;-)
Ich überschlage mich vor Ideen. Muss allerdings erstmal den nonsensfilfter anwenden...
Spiffs Filesystem auf den esp und dann den playfile local abspielen?
Wobei im Alltag die Frage ist, wie oft man schnelle Farbwechsel ala Rainbow braucht/ändert.
Vielleicht mehrere playfile Attribute so das man mit play "diman" oder play "dimaus" einfacher wählen kann?
Bzgl dimmen. Besteht bei dir auch die Idee auf fastled umzustellen?
Und kannst du deinen playfile fürs abendliche aufdimmen sharen?

Grüße!
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: exciter am 21 September 2016, 19:52:54
Habe nun noch die neomatrix Library eingebunden.
Macht schon Laune, nur leider zu wenig Zeit....
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 21 September 2016, 22:29:54
Cool! Das ist ein definitiv ein no-nonsense-Feature :-)
Code aufräumen und her damit
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: juppzupp am 22 September 2016, 16:49:35
kein neomatrix, aber der blinker & nofx :

#include <Adafruit_NeoPixel.h>
#include <ESP8266WiFi.h>

const char* ssid     = "XXX";
const char* password = "XXX";
WiFiServer server(80);
// Which pin on the Arduino is connected to the NeoPixels?
#define LEDPIN1           14
#define LEDPIN2           12

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS1     30
#define NUMPIXELS2     30
int xfrom;
int yto;
int myredLevel;
int mygreenLevel;
int myblueLevel;
int myOn;
int myOff;


void reset();
// control special effects
boolean fire=false;
boolean rainbow=false;
boolean blinker=false;
uint16_t rainbowColor=0;



// setup network and output pins
void setup() {
// Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  Serial.println(F("Booting"));

// Initialize all pixels to 'off'
stripe_setup();
  WiFi.mode(WIFI_STA);
Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
 
}

// request receive loop
void loop() {
// listen for incoming clients
  WiFiClient client = server.available();  // Check if a client has connected
  if (client) {
    Serial.println(F("new client"));
   
    String inputLine = "";
   // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    boolean isGet = false;
    boolean isPost = false;
    boolean isPostData = false;
    int postDataLength;
    int ledix = 0;
    int tupel = 0;
    int redLevel = 0;
    int greenLevel = 0;
    int blueLevel = 0;
   
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (isPostData && postDataLength > 0) {
          switch (tupel++) {
            case 0:
              redLevel = colorVal(c);
              break;
            case 1:
              greenLevel = colorVal(c);
              break;
            case 2:
              blueLevel = colorVal(c);
              tupel = 0;
              stripe_setPixelColor(ledix++, stripe_color(redLevel,greenLevel,blueLevel));
              break;
          }
          if (--postDataLength == 0) {
            stripe_show();
            sendOkResponse(client);
            break;
          }
        }
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          if (isPost) {
            isPostData = true;
            continue;
          } else {
            // send http response
            if (isGet) {
              sendOkResponse(client);
            } else {
              client.println(F("HTTP/1.1 500 Invalid request"));
              client.println(F("Connection: close"));  // the connection will be closed after completion of the response
              client.println();
            }
            break;
          }
        }
        if (c == '\n') {
          // http starting a new line, evaluate current line
          currentLineIsBlank = true;
          Serial.println(inputLine);
         
// SET SINGLE PIXEL url should be GET /rgb/n/rrr,ggg,bbb
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /rgb/")) {
            int slash = inputLine.indexOf('/', 9 );
            ledix = inputLine.substring(9,slash).toInt();
            int urlend = inputLine.indexOf(' ', 9 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            int komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            redLevel = getParam.substring(0,komma1).toInt();
            greenLevel = getParam.substring(komma1+1,komma2).toInt();
            blueLevel = getParam.substring(komma2+1).toInt();
            stripe_setPixelColor(ledix, stripe_color(redLevel,greenLevel,blueLevel));
            stripe_show();
            isGet = true;
          }
          // SET PIXEL RANGE url should be GET /range/x,y/rrr,ggg,bbb
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /range/")) {
            int slash = inputLine.indexOf('/', 11 );
            int komma1 = inputLine.indexOf(',');
            int x = inputLine.substring(11, komma1).toInt();
            int y = inputLine.substring(komma1+1, slash).toInt();
            int urlend = inputLine.indexOf(' ', 11 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            redLevel = getParam.substring(0,komma1).toInt();
            greenLevel = getParam.substring(komma1+1,komma2).toInt();
            blueLevel = getParam.substring(komma2+1).toInt();
            for(int i=x; i<=y; i++) {
              stripe_setPixelColor(i, stripe_color(redLevel,greenLevel,blueLevel));
            }
            stripe_show();
            isGet = true;
          }
          // POST PIXEL DATA
          if (inputLine.length() > 3 && inputLine.substring(0,10) == F("POST /leds")) {
            isPost = true;
          }
          if (inputLine.length() > 3 && inputLine.substring(0,16) == F("Content-Length: ")) {
            postDataLength = inputLine.substring(16).toInt();
          }
          // SET ALL PIXELS OFF url should be GET /off
          if (inputLine.length() > 3 && inputLine.substring(0,8) == F("GET /off")) {
            reset();
            isGet = true;
          }
         
          // GET STATUS url should be GET /status
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /status")) {
            isGet = true;
          }
          // SET FIRE EFFECT
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /fire")) {
            fire = true;
            rainbow = false;
            stripe_setBrightness(128);
            isGet = true;
          }
          // SET RAINBOW EFFECT
          if (inputLine.length() > 3 && inputLine.substring(0,12) == F("GET /rainbow")) {
            rainbow = true;
            fire = false;
            stripe_setBrightness(128);
            isGet = true;
          }
          // SET no_effects
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /nofx")) {
            rainbow = false;
            fire = false;
            blinker = false;
            isGet = true;
          }
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /blink/")) {
            int slash = inputLine.indexOf('/', 11 );
            int komma1 = inputLine.indexOf(',');
            xfrom = inputLine.substring(11, komma1).toInt();
            yto = inputLine.substring(komma1+1, slash).toInt();
            int urlend = inputLine.indexOf(' ', 11 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            int komma3 = getParam.indexOf(',',komma2+1);
            int komma4 = getParam.indexOf(',',komma3+1);
            myredLevel = getParam.substring(0,komma1).toInt();
            mygreenLevel = getParam.substring(komma1+1, komma2).toInt();
            myblueLevel = getParam.substring(komma2+1, komma3).toInt();
           
            myOn = getParam.substring(komma3+1, komma4).toInt();
            myOff = getParam.substring(komma4+1).toInt();

            blinker = true;
            rainbow = false;
            fire = false;
           
            isGet = true;
          }
          inputLine = "";
        }
        else if (c != '\r') {
          // add character to the current line
          currentLineIsBlank = false;
          inputLine += c;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println(F("client disconnected"));
  }
  if (fire) fireEffect();
  if (rainbow) rainbowCycle();
  if (blinker) blinkerEffect();
}

// Reset stripe, all LED off and no effects
void reset() {
  for(int i=0; i<stripe_numPixels(); i++) {
    stripe_setPixelColor(i, 0);
  }
  stripe_setBrightness(255);
  stripe_show();
  fire = false;
  rainbow = false;
  blinker = false;
}

// LED flicker fire effect
void fireEffect() {
  for(int x = 0; x <stripe_numPixels(); x++) {
    int flicker = random(0,55);
    int r1 = 226-flicker;
    int g1 = 121-flicker;
    int b1 = 35-flicker;
    if(g1<0) g1=0;
    if(r1<0) r1=0;
    if(b1<0) b1=0;
    stripe_setPixelColor(x,stripe_color(r1,g1, b1));
  }
  stripe_show();
  delay(random(10,113));
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle() {
  uint16_t i;

  if (rainbowColor++>255) rainbowColor=0;
  for(i=0; i< stripe_numPixels(); i++) {
    stripe_setPixelColor(i, Wheel(((i * 256 / stripe_numPixels()) + rainbowColor) & 255));
  }
  stripe_show();
  delay(20);
}

void blinkerEffect() {
for(int i=xfrom; i<=yto; i++) {
    stripe_setPixelColor(i, stripe_color(myredLevel,mygreenLevel,myblueLevel));
  }
  stripe_show();
delay(myOn);
for(int i=xfrom; i<= yto; i++) {
    stripe_setPixelColor(i, stripe_color(0,0,0));
  }
  stripe_show();
delay(myOff);
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return stripe_color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return stripe_color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return stripe_color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

int colorVal(char c) {
  int i = (c>='0' && c<='9') ? (c-'0') : (c - 'A' + 10);
  return i*i + i*2;
}

void sendOkResponse(WiFiClient client) {
  client.println(F("HTTP/1.1 200 OK"));
  client.println(F("Content-Type: text/html"));
  client.println(F("Connection: close"));  // the connection will be closed after completion of the response
  client.println();
  // standard response
  client.print(F("OK,"));
  client.print(stripe_numPixels());
  client.print(F(","));
  int oncount=0;
  for(int i=0; i<stripe_numPixels(); i++) {
    if (stripe_getPixelColor(i) != 0) oncount++;
  }
  client.println(oncount);
}
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: ArminK am 27 September 2016, 16:56:08
Hallo zusammen,

spiele auch schon länger mit Neopixels (allerdings die Ringe) und ESP-Ansteuerung herum. Gesteuert wird das ganze über ein Webinterface (also auch von fhem aus) bei dem man verschiedene Effekte (u.a. auch der Regenbogeneffekt), sowie Farbe/Helligkeit ändern kann. Ich habe mir aus Internet-Funden und Wifimanager für den ESP einen Sketch gebaut, mit dem es möglich ist die Wifi-Anbindung über einen im ESP integrierten Konfigurations-Webserver zu anzulegen (falls er sich nicht mit der zuletzt bekannten SSID verbinden kann wird der Konfigurationsmodus gestartet). Ich verwende das für solche "Blumenlampen", siehe Anhang (aus dem 3D-Drucker). Wenn es jemanden interessiert kann ich mal alles zusammen suchen, eventuell könnte man ja auch den Wifimanager noch in den Sketch aus diesem Fred integrieren, ich finde das sehr praktisch.
Grüße
Armin
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Edi77 am 14 Oktober 2016, 22:54:57
Schönes Projekt, gefällt mir, habs auch sofort nachgebaut und läuft.
Ich hätte da nur eine Frage, wie steuert man die Helligkeit der LEDs?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 15 Oktober 2016, 00:13:01
Du musst die Helligkeitswerte der drei Grundfarben gleichmäßig verkleinern, aus 256,256,0 für gelb wird für halbe Helligkeit 128,128,0 usw.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Edi77 am 16 Oktober 2016, 00:53:42
Hallo

DANKE klingt logisch, hatte das aber in anderen Projekten auch schon erlebt das es eine spezielle Helligkeits Variable gab.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: erpel am 21 Oktober 2016, 14:14:44
Hi swhome,

danke fuer das Projekt!

Ich habe es jetzt auch mal mit einem ESP12E in Verbindung mit einem 144er Neopixel ausprobiert und muss sagen: Es klappt super (auch mit OTA-Firmware-Updates)!

Koenntest Du bitte den Code fuer das FHEM-Modul sowie die beiden Firmwares (Arduino/ESP) auf GitHub hochladen?
Bzw. falls Du da kein Interesse daran hast, haettest Du was dagegen, wenn ich es hochladen wuerde?

Ich wuerde gerne ein bisschen mit dem Code rumspielen und da bietet sich ein entsprechendes Repository fuer an.
Auch kann man einfacher Verbesserungen von anderen einbauen (Stichwort: Forks und Pull Requests).
Und man kann dann das Modul runterladen ohne sich extra hier im Forum anmelden zu muessen...

Danke und Gruss,
Christian
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 24 Oktober 2016, 08:52:37
Freut mich dass es auch bei Dir funktioniert. Ich werde es hochladen.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 25 Oktober 2016, 19:57:24
So, nun gibts die neueste Version in Github: https://github.com/sw-home/FHEM-LEDStripe

Bitte mal checken obs funktioniert.

@juppzupp: Ist die Funktion von nofx nicht eigentlich schon mit off abgedeckt? Habe deine beiden Features aktuell noch nicht im Perl Modul und in den Arduino Versionen eingepflegt, das kommt noch.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhobby am 10 November 2016, 15:08:11
Hallo,

ich habe mal das ganze auch auf Basis eines ESP8266 nachgebaut. Leider funktioniert es bei mir noch nicht. Ich habe das Problem, den richtigen Pin für den LED Stripe anzugeben.
Im Programm wird ja der Pin 14 bzw. 12 angegeben. Ich vermute mal das es sich hierbei um die Angabe für den Arduino handelt.
Welcher Pin wird den für den ESP8266 hier angegeben?
Dann habe ich noch das Problem, dass der Aufruf strip_setup() das ganze zum Absturz bringt, keine Ausgabe auf der Konsole. Ohne diesen Aufruf kann ich zumindestens in der Konsole die Verbindung mit FHEM verfolgen. Kann mir jemand einen Tip geben?

mfg
Heinz-Rolf
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 11 November 2016, 07:45:23
Das müsste Juppzupp beantworten, ich hab selber leider noch keine ESP Version gebaut. Wär aber mal eine Aufgabe fürs Wochenende :-)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhobby am 11 November 2016, 11:50:41
Dann gebe ich die Frage doch mal direkt weiter an Juppzupp. Mittlerweile bin ich schon so weit, das ein Set im FHEM in dem IDE-Monitor protokolliert wird. Aber eine Ansteuerung der LED´s erfolgt leider nicht.
zB. Set LED_Stripe RGB FFFFFF :

GET /range/0,9/255,255,255 HTTP/1.1
TE: deflate,gzip;q=0.3
Keep-Alive: 300
Connection: Keep-Alive, TE
Host: 192.168.2.174
User-Agent: libwww-perl/6.08
client disconnected

Ich habe "#define LEDPIN1           14" angegeben und Data vom LED Stripe auf GPIO14 am ESP-Modul verbunden. Ist das so richtig?

Arduino-IDE Version 1.6.5
aktuelle Neopixel-Library
aktuelle ESP8266WiFi-Library
und mit vstripe kompiliert.

mfg
Heinz-Rolf
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhobby am 14 November 2016, 11:53:03
Hallo,

nach intensiver Fehlersuche funktioniert jetzt alles. Hatte leider doch eine alte Neopixel- Library.
Nach dem Austausch ist jetzt alles ok.

mfg
Heinz-Rolf
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: yamfhem am 28 November 2016, 08:16:53
Zitat von: ArminK am 27 September 2016, 16:56:08
Hallo zusammen,

.... Wenn es jemanden interessiert kann ich mal alles zusammen suchen, eventuell könnte man ja auch den Wifimanager noch in den Sketch aus diesem Fred integrieren, ich finde das sehr praktisch.
Grüße
Armin

Warum hat hier noch keiner Ja gesagt!?
Ja bitte, such mal alles zusammen.

Geuß yamfhem
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: LAN-Opfer am 05 Dezember 2016, 17:25:29
...ich habe das Ding auch mal mit einem Wemos D1 nachgebaut: leider bleibt bei mir das Playfile in der letzten Zeile stehen - ich hätte erwartet, dass das File endlos abgespielt wird. Habe ich den falschen Editor - muss da ein EOF stehen?

Uwe
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: LAN-Opfer am 07 Dezember 2016, 21:01:29
...ich habe jetzt andere Editoren getestet - leider ohne Ergebnis  :'(
Oder ist eine Endlosschleife gar nicht implementiert??

Uwe
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 13 Dezember 2016, 21:36:52
Hi, für die Enlosschleife muss ein Attribut repeat (oder so ähnlich) auf 1 gesetzt werden.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: speddy99 am 27 Dezember 2016, 09:16:31
Moin Moin,
und Danke für das nette Modul. Innerhalb 10 Minuten fertig..... neuer Rekord :-)

Habe soeben einen Wemos D1 mini damit befüllt und steuer nun erst mal  8 Led's.
Das packt der kleine Wemos noch, für mehr LED muss ich mir erst mal Gedanken über die Stromversorgung der LED Strip machen.
Wie habt ihr das angeklemmt?

Mit den 8 Led's werde ich mir erst mal einen kleinen Status Bilderrahmen bauen.

Anschließend möchte ich für's Heimkino länger LED Strip bauen, da kommen garantiert noch mal fragen :-)

lg Michael


Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Elektrofreak am 03 Januar 2017, 21:05:22
Hallo zusammen,

ich würde das Modul gerne zur Ansteuerung von einem Status-Display mit einem ESP8266 verwenden. Allerdings habe ich für diesen noch keine Firmware selber kompiliert.

Bis jetzt habe ich nur die ESPEasy-Firmware mit dem FHEM-Plugin verwendet. Gibt es neben der Ansteuerung der neopixel noch weitere funktionen, die ähnlich wie bei ESPEasy unterstützt werden? Wäre es ggf. möglich, den Code als ESPEasy-Plugin zu Verfügung zu stellen / um-zu-programmieren?

Ich freue mich schon auf die ersten Versuche mit den neopixel und FHEM  :)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 04 Januar 2017, 08:19:19
Zitat von: Elektrofreak am 03 Januar 2017, 21:05:22
Wäre es ggf. möglich, den Code als ESPEasy-Plugin zu Verfügung zu stellen / um-zu-programmieren?

Es gibt bereits ein NeoPixel Basic Plugin (https://github.com/ESP8266nu/ESPEasyPluginPlayground/blob/master/_P122_NeoPixel.ino), dass man recht einfach um Funktionen erweitern kann.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Elektrofreak am 05 Januar 2017, 20:46:38
Hallo.

Zitat von: dev0 am 04 Januar 2017, 08:19:19
Es gibt bereits ein NeoPixel Basic Plugin (https://github.com/ESP8266nu/ESPEasyPluginPlayground/blob/master/_P122_NeoPixel.ino), dass man recht einfach um Funktionen erweitern kann.

Ich habe gerade gesehen, dass das Plugin schon im Source-Code von der aktuellen Version R147_RC8 zu sein scheint. Ich finde es aber nirgends in der pre-compillierten Version im Web-Interface. Muss ich das selber mit der Lib kompillieren oder bin ich zu blöd, das Plugin zu finden?  :o

Danke für die Info!
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 05 Januar 2017, 21:31:21
Ja, selbst kompilieren: https://github.com/letscontrolit/ESPEasyPluginPlayground/blob/master/_P122_NeoPixel.ino
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Elektrofreak am 06 Januar 2017, 07:34:25
Zitat von: dev0 am 05 Januar 2017, 21:31:21
Ja, selbst kompilieren: https://github.com/letscontrolit/ESPEasyPluginPlayground/blob/master/_P122_NeoPixel.ino

Ok, vielen Dank. Werde ich mal ausprobieren. Trotzdem gefällt mir dein das Modul  :). Am liebsten hätte ich eine Kombination aus beiden bzw. eine Integration von deinem dem Modul in die ESPEasy-Firmware ;D
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 06 Januar 2017, 07:50:40
Zitat von: Elektrofreak am 06 Januar 2017, 07:34:25
Trotzdem gefällt mir dein Modul
Ich vermute, dass Du mich jetzt mit swhome verwechselst oder Du meinst tatsächslich das Lights Plugin, das mehr oder weniger nur ein PoC ist...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Elektrofreak am 09 Januar 2017, 11:08:33
So, ich habe jetzt ein wenig mit dem Modul und der Firmware gespielt. Funktioniert an sich ganz gut  :).

Ich habe nur ein Feature-Request:
Ich schalte den ESP und die LEDs bei Nicht-Gebrauch ab. Wenn ich nur die LEDs aber nicht den ESP abschalte, merkt er sich die Zustände der LEDs und stellt den Zustand alle LEDs beim nächsten Update von einer LEDs wieder her.

Nun wäre ein ähnliches Feature für das FHEM-Modul super, welches auch dann funktioniert, wenn ich den ESP komplett abschalte und erneut einschalte. Dazu müsste ein kleines Array intern gespeichert werden, welches den Zustand aller LEDs speichert und bei einem reconnect automatisch wiederherstellt. wäre das möglich?  ::)

BTW: Ich könnte mir gut vorstellen, dass die ESP-Firmware und das FHEM-Modul für viele Status-Display-Anhänger zum Must-Have wird  ;D

Edit:
Zitat von: dev0 am 05 Januar 2017, 21:31:21
Ja, selbst kompilieren: https://github.com/letscontrolit/ESPEasyPluginPlayground/blob/master/_P122_NeoPixel.ino

Das hat auf Anhieb leider nicht geklappt. Kompillieren und flashen funktioniert. Ich finde zwar das Plugin und kann es auch einrichten, den Befehl kann ich aber trotzdem nicht absenden (unknown command) und mir fehlt auch die einfache Integration in FHEM...  :'(
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 14 Januar 2017, 15:44:07
Das Feature ist eine gute Idee, mir missfällt auch dass man nach dem Ausschalten nicht wieder einfach den vorigen Zustand herstellen kann. Werde mich mal dran setzen. Würde auch gern die FHEM integrierte http Funktion mit non blocking iO einsetzen...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Wilm am 14 Januar 2017, 18:03:54
Hallo,

habe den Sketch erfolgreich auf meinen ESP8266 geladen und kann ihn auch per Curl und dem entsprechenden Aufruf steuern. Leider kann ich jedoch das FHEM Modul nicht laden, bekomme immer einen Fehler


2017.01.14 18:00:28 1: ledstripe
2017.01.14 18:00:29 1: PERL WARNING: Use of uninitialized value $r[0] in string eq at ./FHEM/98_update.pm line 308.
2017.01.14 18:00:29 1: PERL WARNING: Use of uninitialized value $r[0] in string ne at ./FHEM/98_update.pm line 318.
2017.01.14 18:00:29 1: nothing to do...


Was mache ich falsch?

Viele Grüße,
Wilm
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Papaloewe am 16 Januar 2017, 14:22:40
Hallo,

endlich bin ich am Wochenende dazu gekommen. Soweit funktioniert es auch auf Anhieb.
Dann habe ich mich mit den Playfiles befasst und wollte ein einzelnes Lauflich über 20 (2x10) LED's huschen lassen.

Soweit auch noch gut, aber wie mir scheint wird das Playfile immer Zeile für Zeile übertragen, richtig?

Sobald ich das Lauflicht etwas schneller haben möchte, wird es kritisch!
Aussetzer und mächtige Ruckler...

Lässt sich das auch vielleicht so ändern, dass das Playfile nur einmal und dann komplett zum ESP übertragen wird und dann nur noch "intern" aufgerufen wird?

Gruß Thomas

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: newjoist am 17 Januar 2017, 07:50:53
Ich betreibe einen WS2812B LED-Strip mit einem Arduino als Controller an einem Enigma2 Receiver. Gibt es da auch Möglichkeiten "von außen" die LEDs zu steuern?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Papaloewe am 17 Januar 2017, 16:32:46
Zitat von: Wilm am 14 Januar 2017, 18:03:54
Hallo,

habe den Sketch erfolgreich auf meinen ESP8266 geladen und kann ihn auch per Curl und dem entsprechenden Aufruf steuern. Leider kann ich jedoch das FHEM Modul nicht laden, bekomme immer einen Fehler


2017.01.14 18:00:28 1: ledstripe
2017.01.14 18:00:29 1: PERL WARNING: Use of uninitialized value $r[0] in string eq at ./FHEM/98_update.pm line 308.
2017.01.14 18:00:29 1: PERL WARNING: Use of uninitialized value $r[0] in string ne at ./FHEM/98_update.pm line 318.
2017.01.14 18:00:29 1: nothing to do...


Was mache ich falsch?

Viele Grüße,
Wilm

Komisch, ich habe dieselbe Meldung bei diesem und einem ganz anderen Modul:
https://forum.fhem.de/index.php/topic,64610.msg562734.html#msg562734 (https://forum.fhem.de/index.php/topic,64610.msg562734.html#msg562734)

Was haben denn die beiden gemeinsam?

Ich denke es liegt an dem Controlfile im Git.
Das DEL wird nicht (mehr) vom update unterstützt.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: bjbrill am 25 Januar 2017, 09:33:40
Herzlichen dank für dieses tolle Modul,
das eröffnet mir hunderte neue Beleuchtungsmöglichkeiten.
Zur Zeit baue ich einen ausgehöhlten Baumstamm,
der "Jetzt" von innen beleuchtet ist, sieht mit Fire & Rainbow schon super aus.
Mal sehen was für individuelle Lichtzehnarien ich noch hin bekomme.

Großes Lob und Riesen Dank Björn

Nachtrag: Am Wochenende ein NodeMCU mit 30 NeoPixel zu einer Aquarien Nachtbeleuchtung gelötet.
(Sonnen auf und Untergang inbegriffen), super!
Ein Dimmbefehl mit Transitzeiten wäre nicht schlecht, geht aber auch ohne ;-)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: ComputerZOO am 11 Februar 2017, 18:58:29
Nabend,
ich bekomme das Modul in FHEM nicht geladen. Wenn ich ein reload 98_LEDStripe in der CMD-Zeile von FHEM eingebe erscheint folgende Fehlermeldung:
Can't locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl ./FHEM ./FHEM/lib) at ./FHEM/98_LEDStripe.pm line 26.
BEGIN failed--compilation aborted at ./FHEM/98_LEDStripe.pm line 26.

Jemand eine Idee?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Papaloewe am 11 Februar 2017, 19:10:02
Wahrscheinlich musst du noch das Perl Modul "switch" installieren.

cpan -i switch

oder so... 8)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: ComputerZOO am 11 Februar 2017, 19:26:43
Das wäre ja zu einfach :-)
cpan -i switch
Reading '/home/pi/.cpan/Metadata'
  Database was generated on Sat, 11 Feb 2017 15:17:02 GMT
Warning: Cannot install switch, don't know what it is.
Try the command

    i /switch/

to find objects with matching identifiers.


EDIT: sudo apt-get install libswitch-perl hat geholfen 8-)
Titel: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 11 Februar 2017, 20:39:26
Hi,
Dann probier doch mal switch.pm zu installieren ;-)

sudo apt-get install libswitch-perl

Oder unter CPAN mit
cpan
am prompt cpan[1]> dann
install Switch
wenn es installiert ist dann ein
exit

Gruß Arnd


Raspi2 mit FHEM, CUL, MySensor, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: ComputerZOO am 11 Februar 2017, 21:00:33
Zitat von: RaspiLED am 11 Februar 2017, 20:39:26
Dann probier doch mal switch.pm zu installieren ;-)

sudo apt-get install libswitch-perl

Funktioniert mit dem Befehl (siehe Edit in meinem vorherigen Post).
Wenn mich in der nächsten Zeit mal die Langeweile überkommt, dann werde ich mal versuchen das ganze auf fastled umzubauen.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: olli001003 am 19 Februar 2017, 14:43:25
Zitat von: ComputerZOO am 11 Februar 2017, 21:00:33
Funktioniert mit dem Befehl (siehe Edit in meinem vorherigen Post).
Wenn mich in der nächsten Zeit mal die Langeweile überkommt, dann werde ich mal versuchen das ganze auf fastled umzubauen.

Ich hoffe Dich überkommt demnächst mal die Langeweile ;-)

------------------

Besten Dank an swhome für dieses Modul.
Läuft bei mir seit gestern problemlos an einem 5m Stripe (150 LEDs).


VG
Olli
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 19 Februar 2017, 21:29:37
Freut mich dass es so viele Anwendungsmöglichkeit für mein Modul gibt!

Ich habe angefangen die Anregungen von Elektrofreak umzusetzen, es gibt nun ein on / off Setting und einen neuen Set-Befehl play zum Starten der Animationen. Der on-Befehl versucht sich darin, den letzten Modus vor "off" wieder herzustellen, allerdings werden noch nicht alle LED-Zustände in einem Array gespeichert. Sorry dafür! Ich hab irgendwie zuviele Projekte und zu wenig Geduld mit perl...

@olli001003: Wäre fastled einfach ein Ersatz für die Neopixel-Library oder ersetzt das gleich die komplette Arduino/ESP-Programmierung?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: olli001003 am 20 Februar 2017, 14:50:17
Zitat von: swhome am 19 Februar 2017, 21:29:37

@olli001003: Wäre fastled einfach ein Ersatz für die Neopixel-Library oder ersetzt das gleich die komplette Arduino/ESP-Programmierung?

Wenn ich das richtig verstanden habe, ersetzt es die Neopixel-Library UND ist eine komplett andere Programmierung.

Ich bin noch sehr neu in dem Thema Arduino Programmierung...Von daher ist die oben stehende Aussage mit Vorsicht zu genießen!
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: heikoxxxx am 09 März 2017, 20:54:16
Wirklich ein tolles Modul, einfache Anbindung und funktioniert sofort. 
Toll wäre es wenn die Files noch flüssig laufen würden und man denn Rainbow bzgl der Geschwindigkeit steuern könnte.
Zudem wäre ein direkter Aufruf der Effect Files toll.

LG Heiko
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: roedert am 21 März 2017, 22:56:44
Hatte das Teil schon vor Monaten erfolgreich getestet, jetzt bin ich dabei das ganze auch mal "in schön" wohnzimmertauglich umzusetzen.
Ich nutze es bei mir als Statusanzeige für Fenster etc.
Dabei sind auch 2 "Balkenanzeigen" für den aktuellen Stromverbrauch mit je 20 LEDs. Dazu lasse ich in einer Schleife die Pixel einzeln einschalten (einzeln, da jede LED eine eigene Farbe bekommen soll - fliessend von grün bis rot), die restlichen LEDs schalte ich dann mit "range x y 0 0 0" aus.
Mir ist jedoch aufgefallen, dass die Schleife zum Einschalten der einzelnen Pixel sehr lange braucht,  pro LED ca 0,5 Sekunden. In dieser Zeit (also bis zu 10 Sekunden) ist FHEM "lahmgelegt". In dieser Zeit kann ich zB mit eienr Fernbedienung nix mehr schalten, da FHEM mit dem LEDstripe beschäftigt ist.
Hat wer ne Idee wie man das umgehen oder besser umsetzen könnte?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 22 März 2017, 13:49:19
Hi,

erstmal danke für das super Modul!
Das ist genau das wonach ich gesucht habe! :-) Einfacher und schneller kann man das fast nicht einrichten!

kleine feedbacks:
1. die "commandref" auf Seite 1 könnte noch aufgehübscht werden. gerade der "pixels" befehl. hab ewig nach dem richtigen Trennzwichen gesucht.
korrekt ist aber einfach alles hintereinandr weg schreiben. also 24stellig. muss man auch erstmal drauf kommen. :-)
2. Zwei / Drei Sätze zum installieren des ESP. z.B. das importieren der zweiten Datei im Arduino.

Das wars auch schon.
Danke nochmal für das Tolle Modul und den Sketch! :)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 22 März 2017, 15:58:29
Noch eine weitere Frage kam auf,

über welchen Port kommuniziert FHEM denn mit dem ESP?
würde das ganze auch mal von extern testen wollen.

Grüße
Frank

EDIT: Port 80. im Log gefunden in ner Fehlermeldung. vergiss die Frage. :-)

und btw: es muss nicht zwingend IP sein. FQDN geht auch für das device.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 23 März 2017, 09:27:58
Zitat von: roedert am 21 März 2017, 22:56:44
Mir ist jedoch aufgefallen, dass die Schleife zum Einschalten der einzelnen Pixel sehr lange braucht,  pro LED ca 0,5 Sekunden. In dieser Zeit (also bis zu 10 Sekunden) ist FHEM "lahmgelegt".

Das ist bei mir nicht so extrem, aber generell gibt es das Problem hier auch, zum Beispiel beim Übertragen von Pixeln für meine 350 LED's im Schlafzimmer. Die richtige Lösung wäre, die Übermittlung der Daten an die ESP asynchron zu machen. Das erfordert aber einige größere Umstellungen in Code, zu denen ich im Moment leider keine Zeit finde.

Die von dir genannten 0,5 Sekunden sind aber definitiv zu lang, da stimmt vielleicht was nicht in der ESP Programmierung. Bei mir dauert eine ganze Zeile vielleicht 200ms, allerdings Arduino mit wired ethernet.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: roedert am 23 März 2017, 09:44:41
Zitat von: swhome am 23 März 2017, 09:27:58
....allerdings Arduino mit wired ethernet.

Ist es bei mir auch - ein Arduino Uno mit Ethernet-Modul. FHEM läuft auf einem Intel i3 ... also auch ein ziemlich performantes Teil.
Habe mal ein Shellscript mit einer Schleife mit wget http://<ip>/rgb/<pixel>/<r>,<g>,<b> getestet ... die Geschwindigkeit ist ähnlich langsam (6,5 sec für 10 LEDs)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: higlhagl am 25 März 2017, 10:52:28
ich bekomme immer die meldung
Cannot load module LEDStripe
bitte um hilfe modul 98_LEDStipe ist im FHEM-Ordner

danke
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Enrico Raak am 25 März 2017, 13:48:44
@higkhagl:
Zitat von: RaspiLED am 11 Februar 2017, 20:39:26
Dann probier doch mal switch.pm zu installieren ;-)

sudo apt-get install libswitch-perl

Oder unter CPAN mit
cpan
am prompt cpan[1]> dann
install Switch
wenn es installiert ist dann ein
exit
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: higlhagl am 25 März 2017, 17:52:27
Danke hat geklappt Devise angelegt.
aber weiss nicht wie ich meinen wemos flashen kann,
vom pc oder vom raspberry ?
mit ein serial/usb Kabel oder direkt am usb-port , mit welcher Software dazu ?
dann noch welche File muss auf den wemos drauf

sorry sehr viele offenen punkte bei mir (Anfänger halt)

danke im voraus

ANDY
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 27 März 2017, 09:04:29
Zitat von: higlhagl am 25 März 2017, 17:52:27
aber weiss nicht wie ich meinen wemos flashen kann,
vom pc oder vom raspberry ?
mit ein serial/usb Kabel oder direkt am usb-port , mit welcher Software dazu ?
dann noch welche File muss auf den wemos drauf

in Stichworten:
- von Github die files holen. vstripe.ino und httpledstripe_esp.ino (im gleichen Ordner ablegen)
- Arduino IDE auf dem PC installieren
- mit der Arduino IDE die htp.....ino öffnen
- WLAN Daten anpassen
- flashen

/Frank
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 27 März 2017, 14:21:37
Ist es ein Fehler oder läuft hier nur bei mir was falsch:

bei jedem Update check gibt FHEM mir die ledstripe als veraltet an und will updaten.
im Log finde ich keinen Fehler beim Update.

Zitatfhem
nothing to do...

ledstripe
List of new / modified files since last update:
UPD FHEM/98_LEDStripe.pm

Log vom letzten Update (gerade vor paar Minuten:
Zitat2017.03.27 14:09:19 1: ledstripe
2017.03.27 14:09:24 1: UPD FHEM/98_LEDStripe.pm
2017.03.27 14:09:25 1: saving fhem.cfg

im Ordner ist die PM Datei mit aktuellem Datum:
Zitat-rw-r--r-- 1 fhem dialout  15300 Mär 27 14:09 98_LEDStripe.pm

liegt der immer wiederkehrende Update Vorgang an meinem System?
Oder ist hier was faul?
funktionieren tuts einwandfrei...

Grüße
Frank
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: higlhagl am 27 März 2017, 19:38:11
Danke Frank
habe die Files und das Programm inst. und angepasst
aber mit was und wie flashe ich den wemos habe folgende Hardware

USB zu TTL-Konverter-Modul mit eingebautem in CP2102
oder Ugreen 1m USB auf RS232 Seriell Adapter USB Seriell Konverter Kabel USB Seriell DB9 Stecker auf A Stecker mit PL2303 Chipsatz

Aufruf im Arduino ist Bootloader Brennen ?
Kannst du mir bitte eine kurze Skitze schreiben, im Netz habe ich nix gefunden

Vielen Dank
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: higlhagl am 28 März 2017, 19:43:46
Danke habe alles gelöst !
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 08 April 2017, 23:20:39
Hi,

LEDStripe will immer updaten, obwohl die Version identisch ist.

updatre check sagt jedes mal:
Zitat
ledstripe
List of new / modified files since last update:
UPD FHEM/98_LEDStripe.pm

New entries in the CHANGED file:
Feb 06, 2017
btw: last update war heute früh.
woran kann das liegen?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: higlhagl am 10 April 2017, 22:29:00
Hi
ich steuere die status-anzeigeled's mit DOIF, nacht schalte ich die anzeige aus
gibt es eine möglichkeit beim einschalten alle DOIF's anzuschmeissen dass
der status angezeigt wird. so habe ich erst die anzeige wenn ein ereigniss
eintritt
beispiel aus der cfg:([Kont_BalkW] eq "open") (set LED pixel 0 30 0 0) DOELSE (set LED pixel 0 0 30 0)
verwende auch : attr LED power_switch <Anzeige>
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 12 April 2017, 07:43:42
Moin,

Sollte über Befehle im DOIF machbar sein.
Set Doif Name DOIFAME:state.

Vorausgesetzt natürlich dass die DOIF weiterarbeiten und du die Abschaltung woanders machst.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Homer1978 am 13 April 2017, 16:58:09
Erst mal vielen Dank für dieses Modul und auch die Umsetzung auf ESP. Nun meine Frage, da ich keine Ahnung habe wie man das lösen könnte.
Ist es von der Programmierung schwer dem arduino oder ESP einen Eingang zu spendieren, der es ermöglicht den Stripe vor Ort einzuschalten. Da sind ja eigentlich jede Menge gpios frei und extra einen zweiten ESP oder Schalter hinzubekommen nur zum Einschalten wäre doch Verschwendung.
Ich Stelle mir das so vor das man einen gpio einstellen kann wo man einen Schalter oder Taster anschließt der entweder selbst oder an Fhem übermittelt das eine Farbe angemacht werden soll.
Irgendwer eine Idee dazu?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Torben80 am 16 April 2017, 23:55:07
Zitat von: Frank_Huber am 27 März 2017, 09:04:29
in Stichworten:
- von Github die files holen. vstripe.ino und httpledstripe_esp.ino (im gleichen Ordner ablegen)
- Arduino IDE auf dem PC installieren
- mit der Arduino IDE die htp.....ino öffnen
- WLAN Daten anpassen
- flashen

/Frank

Huhu, habe mir auch das WEMOS D1 Mini besorgt, und die o.g. Schritte vollzogen.

Das Flashen läuft "hoffe ich" einwandfrei, da ich keinerlei Fehler bekommen haben.
Aber wie steuere ich das Modul an? Mein DHCP zeigt  mir nichts an, dass er eine IP gerade vergeben hat und ich weiss nicht woher sich das Modul eine IP gezogen hat, wenn das überhaupt der fall ist.
Weiter weiss ich auch nicht wo das hier aus "roedert's" Post Antwort Nr. 2 stehen soll:
// Enter a MAC address and IP address for your controller below
// uncomment if using fixed IP:
//byte mac[] = { 0x90, 0x42, 0xDA, 0x0D, 0x5D, 0x99 };

// The IP address will be dependent on your local network
// uncomment if using fixed IP:
//IPAddress ip(10,222,11,42);


Fakt ist, ich habe das Modul WEMOS D1 Mini, kann es flashen, habe den 8'er LED-Streifen an Pin D5 was ja Arduino Port 14 ist dran.

UPDATE: Ich habe in der Arduino-IDE den serial-Monitor an und sehe, dass das Modul in "Connecting to Meine_eingetragene_SSID" hängt und nichts passiert, er läuft sich da wohl tot...

Hat jemand eine Idee?

FROHE OSTERN,
Torben
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 17 April 2017, 03:19:20
Hi,
Ist doch beschrieben, Du musst Deine WLAN Daten in der httpledstripe_esp.ino Datei eintragen, bevor Du diese kompilierst und auf den ESP Chip flasht.
(https://uploads.tapatalk-cdn.com/20170417/bc50cd61f044f3f4637d849764c16efe.jpg)
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Torben80 am 17 April 2017, 09:25:10
Das ist richtig, aber da muss ich ja nur ssid und password eintragen. Von ip steht da nichts. Das ist es ja was ich komisch finde.


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 17 April 2017, 09:56:37
IP kommt vom DHCP deines Netzwerks.

Gesendet von meinem JY-S3 mit Tapatalk

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Torben80 am 17 April 2017, 11:36:34
Moin Frank. Das habe ich mir schon gedacht, aber das möchte ich eigentlich nicht. Möchte bei solchen Komponenten lieber static IP.

Aber im Moment sieht es eher so aus als könne er sich nicht Connecten...


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 17 April 2017, 11:44:55
Lass ihn eine vom DHCP holen und vergib diese dann im DHCP fest als Reservierung. Das kann eigentlich jeder DHCP...

Wenn er nicht connected stimmt was mit den zugangsdaten nicht.

Gesendet von meinem JY-S3 mit Tapatalk

Titel: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 17 April 2017, 12:32:51
Hi,
Hast Du einen besonderen Namen (SSID mit Sonder- oder Leerzeichen oder zu lang)? Oder halt ein besonderes Passwort?
Teste doch mal mit einem einfachen GastWLAN ;-)
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Torben80 am 17 April 2017, 14:59:09
Update:
vielen Dank erstmal für die schnelle Hilfe!

Fehler Nr. 1 bei mir: Wer seine WLAN-SSID falsch schreibt, der  kommt nicht rein. Habe alles groß geschrieben <---- IDIOT
Fehler Nr. 2 habe in der Arduino IDE die ESP8266 Vers 2.2 genutzt, habe dann auf 2.3 geupdatet (im Boardmanager) danach lief alles.

Also zusammen gefasst für den der das als letztes ließt und das gleiche vor hat...

+ Arduino-IDE downloaden und installieren
  - Adafruit NeoPixel Library (Adafruit_NeoPixel-master.zip) von Github downloaden und in den Arduino / Libraries Ordner packen
  -unter DATEI  / VOREINSTELLUNGEN im Punkt "zusätzliche Boardverwalter-URL" folgende URL einfügen:
         "http://arduino.esp8266.com/stable/package_esp8266com_index.json"
  - danach in der IDE unter WERKZEUGE folgende Einstellungen vornehmen:
  - Board --> Boardverwalter --> ESP8266 Version 2.3 auswählen --> installieren
  +danach wieder auf:
  - Board "Wemos D1 R2 & mini"
  - CPU-Frequency "80MHz"
  - Flash-Size "4M (3MSpiffs)"
  - UploadSpeed "921600"
  - Port "wenn WEMOS Baustein angesteckt sollte hier ein Port auswählbar sein" (je nach USB Port  variiert er)
+danach
- von Github die files holen. (https://github.com/sw-home/FHEM-LEDStripe)
- vstripe.ino und httpledstripe_esp.ino (im gleichen Ordner ablegen)
- httpledstripe_esp.ino mit Arduino-IDE laden
- WLAN Daten und NeoPixel anpassen (siehe unten meine Enstellungen)
- flashen / hochladen


const char* ssid     = "MeineWLANssid";
const char* password = "ganzGeheim";
WiFiServer server(80);
// Which pin on the Arduino is connected to the NeoPixels?
#define LEDPIN1           14
#define LEDPIN2           12

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS1     8
#define NUMPIXELS2     0


Am besten einmal vom Strom trennen den WeMos und neu starten lassen. Jetzt sollte er schon eine IP bekommen haben.

danach die Datei 98_LEDStripe aus dem Github-Ordner in "/opt/fhem/FHEM" kopieren, die Dateiberechtigungen anpassen (sonst gibt es beim Update des Moduls evtl probleme) und versuchen sein "device" zu definieren.
Beispiel:
define LED_Rahmen LEDStripe 192.168.11.39
Bei wem JETZT die Fehlermeldung kommt, dass er das Modul LedStripe nicht laden konnte, der muss noch auf seinem Raspi libswitch-perl installieren...
sudo apt-get install libswitch-perl
Danach wieder versuchen das Device  zu definieren.

Sollte jetzt geklappt haben. Nachdem das Device nun angelegt ist und wir die NeoPixel angeschlossen haben am Device (ich habe nur einen 8'er LED-Streifen dran), kann man auf der Weboberfläche im "SET" befehl einfach mal "Rainbow" oder "fire" auswählen und FEUER! ääähhh SET klicken. Dann kommt etwas Fehenstaub und Magic und die LEDs sollten leuchten. Entschuldigt mein Humor aber ich war begeistert als das lief :-)

So, nun erstmal etwas damit spielen...
Ich hoffe ich konnte irgendjemandem mit dieser Zusammenfassung helfen.

Schönen OSTERMONTAG noch ;-)
Torben
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 17 April 2017, 15:16:13
Eines noch:
Die Berechtigung der 98_LEDStripe.pm prüfen / anpassen. Sonst hast evtl später Probleme das Modul zu updaten.

Gesendet von meinem JY-S3 mit Tapatalk

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: moppy am 08 Mai 2017, 18:44:06
Servus,

tolles Modul, hat mit eurer Beschreibung auf Anhieb funktioniert!
Wie stelle ich jetzt folgendes an: Immer wenn ich den NodeMCU vom Strom nehme und dann wieder mit Strom versorge, ist nur ein Pixel an, und zwar grün.

Ich hätte gerne nach jedem Stromausfall, dass alle Pixel weiß leuchten.

Jemand ne Idee?

Gruß, Manu
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tklein am 08 Mai 2017, 19:55:49
Hallo,

auch das ist mal wieder ein richtig gutes Modul. Vielen Dank dafür!!

Ein paar Fragen habe ich noch:

1) Kann ich auch einen Sonoff basic/dual etc. nutzen? Dann könnte ich zuvor das Netzteil via dem Relais mit Strom versorgen. Flashen kann man den ja mit Tasmota/ESP Easy etc.
2) Wie viele Leds können je Stripe max genutzt werden?
3) Wie ist die Darstellung bei Nutzung von 2 Stripes (NUMPIXELS1, NUMPIXELS2) gespiegelt, weitergeführt etc.
4) Ist eine Integration in ESP-Easy geplant, damit man evtl. die ESP Bridge nutzen könnte?
5) Ist eine Hilfe geplant? Bei mir bekomme ich auf der FHEM-Gui nichts angezeigt
6) Gibt es es eine Sammlung von Playfiles die eingelesen werden können? Sind die auf die jeweilige LED-Anzahl zugeschnitten?

Wäre klasse, wenn ich da Antworten drauf bekommen könnte.

Grüße
Thomas
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: oxident am 17 Mai 2017, 18:46:23
Sehr geniale Arbeit, vielen Dank an den Autor!

Ich habe den Arduino-Sketch so angepasst, dass er auch mit der FastLED-Bibliothek und APA102(C) Streifen zusammenarbeitet.
Das klappt auch soweit alles prima, es musste halt nur an mehreren Stellen leicht angepasst werden. Würde es gerne der Community zur Verfügung stellen, jedoch lieber in Absprache mit dem Modulautor ... damit hier kein Wildwuchs entsteht ;-)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 24 Mai 2017, 14:32:08
Zitat von: tklein am 08 Mai 2017, 19:55:49
1) Kann ich auch einen Sonoff basic/dual etc. nutzen? Dann könnte ich zuvor das Netzteil via dem Relais mit Strom versorgen. Flashen kann man den ja mit Tasmota/ESP Easy etc.
2) Wie viele Leds können je Stripe max genutzt werden?
3) Wie ist die Darstellung bei Nutzung von 2 Stripes (NUMPIXELS1, NUMPIXELS2) gespiegelt, weitergeführt etc.
4) Ist eine Integration in ESP-Easy geplant, damit man evtl. die ESP Bridge nutzen könnte?
5) Ist eine Hilfe geplant? Bei mir bekomme ich auf der FHEM-Gui nichts angezeigt
6) Gibt es es eine Sammlung von Playfiles die eingelesen werden können? Sind die auf die jeweilige LED-Anzahl zugeschnitten?

Hi Thomas
1) Sagt mir leider nix

2) Das hängt vom verfügbaren Speicher im Controller (ESP) ab, jedes Pixel verbraucht drei oder vier Bytes

3) Bei 2 Stripes hängt der Controller in der Mitte, d.h. beim zweiten Stripe ist die Richtung umgekehrt

4) Leider bin ich nicht so der Esp-Kenner

5) Es gibt eine Hilfe, sie wird aber nur in der Commandref angezeigt, nachdem das Modul über folgenden Befehl in der fhem Kommandozeile installiert wurde:
update all https://raw.githubusercontent.com/sw-home/FHEM-LEDStripe/master/controls_ledstripe.txt
Dieser Weg war bisher hier nicht dokumentiert, Sorry!

6) Das Playfile muss zur Pixelanzahl Deiner Installation passen

Zitat von: oxident am 17 Mai 2017, 18:46:23
Ich habe den Arduino-Sketch so angepasst, dass er auch mit der FastLED-Bibliothek und APA102(C) Streifen zusammenarbeitet.
Das klappt auch soweit alles prima, es musste halt nur an mehreren Stellen leicht angepasst werden. Würde es gerne der Community zur Verfügung stellen, jedoch lieber in Absprache mit dem Modulautor ... damit hier kein Wildwuchs entsteht ;-)

Super! das hätte ich sehr gerne.

Der richtige Weg wäre, das Repository in Deinem Github Account zu forken, deine Version dann dort einzuchecken, und mir dann einen Pull Request zu schicken. (Falls das nun Böhmische Dörfer waren: Ich schick Dir meine Mailadresse per PN, dann kannst es mir schicken und ich lade es hoch.

Viele Grüße und Danke für das viele Feedback
Stefan
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Frank_Huber am 26 Mai 2017, 12:35:20
Mahlzeit,

98_Ledstripe will noch immer bei jedem Update updaten.

Update check sagt:
Zitatfhem
nothing to do...

fhemrollo
nothing to do...

ledstripe
List of new / modified files since last update:
UPD FHEM/98_LEDStripe.pm

New entries in the CHANGED file:
May 24, 2017

Das Update heut früh sagte:
Zitat2017.05.26 09:22:42 1: ledstripe
2017.05.26 09:22:49 1: UPD FHEM/98_LEDStripe.pm
2017.05.26 09:22:49 1: saving fhem.cfg
2017.05.26 09:22:49 1: saving ./log/fhem.save

version sagt:
ZitatNo Id found for 98_LEDStripe.pm

und in der Konsole sehe ich:
Zitat-rw-r--r-- 1 fhem dialout  14800 Mai 26 09:22 98_LEDStripe.pm

scheint also alles zu passen, Warm will er aber dennoch jedes mal updaten?

Grüße
Frank
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tklein am 03 Juni 2017, 15:46:01
Hi Stefan,

Zitat
1) Sagt mir leider nix
--> eine Kombination von dem Sonoff mit dem Sketch wäre klasse: https://wiki.fhem.de/wiki/Sonoff
2) Das hängt vom verfügbaren Speicher im Controller (ESP) ab, jedes Pixel verbraucht drei oder vier Bytes
--> verstanden
3) Bei 2 Stripes hängt der Controller in der Mitte, d.h. beim zweiten Stripe ist die Richtung umgekehrt
--> okay
4) Leider bin ich nicht so der Esp-Kenner

5) Es gibt eine Hilfe, sie wird aber nur in der Commandref angezeigt, nachdem das Modul über folgenden Befehl in der fhem Kommandozeile installiert wurde:
Code: [Auswählen]

update all https://raw.githubusercontent.com/sw-home/FHEM-LEDStripe/master/controls_ledstripe.txt

Dieser Weg war bisher hier nicht dokumentiert, Sorry!
--> thx
6) Das Playfile muss zur Pixelanzahl Deiner Installation passen
--> hast du mal ein Beispiel wie so eine Datei ausschaut? Würde da ganz gerne etwas basteln


Bei meinem Stripe (https://de.aliexpress.com/item/individually-addressable-5m-waterproof-ip67-ip30-5050-rgb-30-60-led-m-12v-ws2811-ws2812-ws2812b/32778993095.html?spm=2114.13010608.0.0.Ih1l2Z) passen die RGB Werte nicht überein. Kann ich das softwaremäßig einstellen? Bei dem Grünwert (17FF0F) kommt ein kräftiges blau raus. Auch die anderen Effekte sehen bei meinem kleinen anderen 8 "Stripechen" anders aus

Kann ich bei dem RGBWW Stripe auch den Warmweisskanal ansprechen? https://de.aliexpress.com/item/Wholesale-4m-5m-SK6812-similar-ws2812b-RGBW-4-in-1-Waterproof-IP65-IP67-60-leds-pixles/32476317187.html?spm=2114.13010608.0.0.Ih1l2Z

EDIT: Bei mir sind grün und blau vertauscht. Wie kann es sein, dass wenn ich die URL http://IP/rainbow direkt aufrufe es viel länger dauert, bis der Wemos reagiert als wenn ich das via FHEM schalte? Da wird doch auch nur die URL aufgerufen, oder?

Muss ich bei diesem Playfile die LEDanzahl im Sketch von 150 ändern, oder sollte das so funktionieren?
fff00f000fff00f000fff00f000fff
000fff00f000fff00f000fff00f000
00f000fff00f000fff00f000fff00f
Sprich das nur die ersten etwas machen? --> bei mir passiert nichts.

Hier stehe ich auch noch auf dem Schlauch:
    attr <name> power_switch <on/off-channel>
        Control LED power on/off using s switch channel

Ist das ein GPIO beim Wemos mit einem etvl. daran angeschlossenem Relais?

Ist es normal, dass ich mit Range nur alle LEDs ansprechen kann? Sobald ich nur ein paar ansprechen möchte z. B. range 2 56 255 255 255 passiert auch nichts

EDIT2: Wenn ich #define NUMPIXELS1  5 vornehme, sind 15 ansteuerbar. Also immer um Faktor 3. Ist das normal?

Grüße und frohe Pfingsten
Thomas
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: DOM_jaCOBB am 16 Juli 2017, 13:19:17
Hallo,

ich finde das Thema auch sehr interessant.
Ich würde gerne für ein Uni-Projekt eine Beleuchtungssteuerung mithilfe eines ESP-Controllers umsetzen.
Welchen ESP würdet ihr mir denn da empfehlen?
Vielen Dank schon mal im Voraus.

Grüße,
Jakob
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 16 Juli 2017, 13:28:45
Zitat von: DOM_jaCOBB am 16 Juli 2017, 13:19:17
Welchen ESP würdet ihr mir denn da empfehlen?
Welche Anforderungen hast Du?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: DOM_jaCOBB am 16 Juli 2017, 13:52:42
Ich würde gerne die Beleuchtungsstärke und die Lichtfarbe (evtl. auch die Farbtemperatur) der WS2812b LEDs, die wir in verschiedenen Räumen installieren, über den Tag variieren können.

Grüße,
Jakob
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: heikoxxxx am 19 Juli 2017, 13:14:55
Also es läuft immernoch alles Perfekt. Nach meinem Umzug habe ich nun einen Stripe mit knapp 500 LEDs am laufen.

Benutzt Ihr für die Erstellung der Play Files ein Programm oder Tippt ihr das alles händisch im Editor? Bei 500 LEDs ist das ja doch sehr umfangreich.

Zudem wollte ich mal wissen ob neue Effekte in Planung sind, welche direkt am ESP aufrufbar sind, da die PLAY Files doch schon sehr ruckelig laufen und eigentlich nur für diverse Stimmungen brauchbar sind.

Wird es demnächst auch eine Dimm Funktion oder ähnliches geben? Die Funktionen des Wifilight Moduls sind halt schon echt toll und fehlen mir doch schon hin und wiedermal.

Danke für eure Antworten

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Papaloewe am 19 Juli 2017, 13:50:02
Schau mal hier entsteht gerade auch etwas:
https://forum.fhem.de/index.php/topic,73949.0.html (https://forum.fhem.de/index.php/topic,73949.0.html)

Da sind diverse Effekte schon integriert.  :)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: MattG am 10 August 2017, 21:51:38
Hi!

Danke für das Modul! Ich hab jetzt einen LED-Streifen zwischen Bett und Wand angebracht, den ich mit dem modul steuere. Als Controller dient mir ein ESP. Die Inbetriebnahme ging recht schnell dank eurer Vorarbeit. Ich hab nur eine Weile mit dem Pegelwandler verbracht, weil ich die vollen 5V auf den LEDs haben wollte.
Ein wenig konfigurieren und programmieren werde ich noch brauchen, damit alles wie geplant läuft (Ich hätte gerne für die LEDs ganz links und rechts eine Togglefunktion, damit ich für jede Seite ein getrenntes Leselicht bekomme. Da muss ich mich noch etwas in den Perlcode einlesen...

Gruß, Matthias
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: MattG am 15 August 2017, 15:57:39
Hi nochmal!

Inzwischen habe ich meine LED-Leiste fast genau so wie ich sie haben wollte. Dazu habe ich im wesentlichen zwei Änderungen vorgenommen:
- Jetzt sind im Perlcode die "SetExtensions" aktiv: Damit sind Funtionen wie "toggle", "on-for-timer" etc. zugänglich. Damit kann ich die Togglefunktion direkt aus einem Notify aufrufen und konnte die Lichtleiste auf eine Taste meiner Fernbedienung legen.
- Ich habe im Arduinocode eine neue Funktion namens "togglerange" eingeführt, die sich wie "range" verhält, aber zwischen An und Aus hin- und zurückschaltet. Damit habe ich jetzt eine einfache Togglefunktion auch für Teilabschnitte - eine andere Taste der Fernbedienung schaltet nur die LEDs auf einer Seite ein.
Falls jemand interessiert ist - ich habe in Github ein Fork angelegt und alles in den Branch "toggle" gepackt:
https://github.com/mattgol/FHEM-LEDStripe/tree/toggle (https://github.com/mattgol/FHEM-LEDStripe/tree/toggle)
(Nur der Arduinocode in httpledstripe_esp ist verändert).
Den commandref-Eintrag habe ich noch nicht angefasst - das kann ich noch nachholen, falls es jemand gerne hätte.

Viele Grüße,
Matthias

Noch ein Nachtrag:
Ich habe mir auch noch eine Option für ein Überblenden von Zuständen eingebaut: Statt eines harten Umschaltens wird jetzt über eine einstellbare Anzahl von Schritten interpoliert. So kann man sanft Ein- und Ausschalten oder zwischen Zuständen in Playfiles überblenden. Ich habe es mal auf Github in einen weiteren Branch geschoben - es ist aber recht frisch und noch nicht ausgiebig getestet.


Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: DOM_jaCOBB am 04 September 2017, 12:03:05
Hallo zusammen,
ich würde für mein Uni-Projekt auch gerne dieses Modul in der ESP8266-Variante für eine Beleuchtungssteuerung verwenden.
Ich müsste dabei allerdings ca. 2.400 WS2812B-LEDs verteilt auf 18 Streifen mit jeweils ca. 2,2 m Länge ansteuern (3,5–5,3 V DC Versorgungsspannung und Stromaufnahme max. 20 mA pro LED). Sind so viele LEDs mit einem ESP-Controller möglich und müsste ich sonst noch etwas beachten?

Vielen Dank schon mal im Voraus.
Grüße,
Jakob
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 04 September 2017, 14:57:46
Hi Jakob,
Gut das wäre also jetzt ein Crossposting ohne Referenz auf den RGBWW ESP,Controller Thread. [emoji107]
Ausserdem ignorierst Du das schon geschriebene!
Wir hatten Dir doch schon erklärt, das Du alle 5m Spannungsversorgung vorsehen sollst.
Dazu kommt noch, dass Du diesen Thread (und insbesondere den ersten Post) lesen solltest, statt einfach nur Antworten auf unvollständige Fragen zu erhoffen.

Hast Du Dir inzwischen angelesen wie die 2812 angesteuert werden? Was soll der ESP alles machen? Womit willst Du was genau steuern?

Zeig uns einfach mal, dass Du gerne studierst ;-) Dann gibt es auch Antworten, statt Ideen!

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 04 September 2017, 17:09:40
Tatsächlich ist die Frage ob der ESP genug freien Speicher hat um 2400 LED zu steuern. Dazu müssten etwa 10kB frei sein. Angesichts von insgesamt 96kB ist das nicht unmöglich aber ich weiss nicht wieviel davon schon belegt ist.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 04 September 2017, 18:06:21
Naja, er hat nur die Menge gesagt, nicht aber die notwendigen Muster. Da liesse sich sicherlich noch Speicher optimieren ;-)
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: DOM_jaCOBB am 05 September 2017, 13:47:41
Oh das mit dem Crossposting wusste ich nicht, tut mir leid. :/
Ich habe die Frage vielleicht etwas umständlich formuliert, swhome hat sie aber denke ich beantwortet. Vielen Dank. :)
Der Flash-Speicher des ESP8266-01S beträgt laut Hersteller 1 MB. Belegt ist davon bis jetzt noch nichts.
Das Projekt soll primär ein Lichtwecker werden und Sonnenauf- und -untergang simulieren, sprich ca. eine halbe Std. vor dem Aufwachen langsam die Helligkeit hochschrauben und sie vorm ins Bett gehen zur Unterstützung des Einschlafens wieder senken. Dabei sollen auch verschiedene Farbtöne und Farbtemperaturen zur Aktivierung und Ermüdung/Entspannung des Nutzers verwendet werden.
Das sollte mit diesem Modul ja gut machbar sein.

Grüße,
Jakob
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: accessburn am 05 September 2017, 14:54:11
Huhu,
hat jemand so eine /opt/fhem/ledwall.txt-Datei für mich?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Papaloewe am 05 September 2017, 15:24:06
Nur ein Hinweis auf dieses ESPEASY-Plugin mit dem bestehenden allgemeinen ESPEASY-FHEM-Modul hier:
https://forum.fhem.de/index.php/topic,73949.0.html (https://forum.fhem.de/index.php/topic,73949.0.html)

Der Entwickler hat eine ganze Reihe von Effekten bereits implementiert.
Zuletzt kam noch ein TV-Simulator hinzu.

Vielleicht könnt ihr ihn ja dazu ermuntern noch weitere Sachen, wie Sonnenaufgänge, etc. einzubauen,
oder auch ggf. selber "Hand anlegen" und erweitern...?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: PeterS am 15 Oktober 2017, 21:22:07
Hi

Geht der Nightrider-Modus nur in weiss oder können auch andere Farben mitgegeben werden ?
Beim Wechsel des Modus geht die brightness-Einstellung verloren und muss immer wieder frisch gesetzt werden !

Ansonsten cooles Modul ;-)

Gruss Peter
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: accessburn am 16 Oktober 2017, 16:33:56
Ich hab auch experimentiert, aber leider nur weiß geschafft.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: marco-f am 19 Oktober 2017, 18:58:13
Hi,

ich hatte jetzt schon länger vor mit diesem Modul in Verbindung mit einem Wemos D1 Mini eine Statusanzeige zu bauen und wollte das Thema heute mal angehen. Beim Einrichten der "httpledstripe_esp.ino" hab ich allerdings vergebens Optionen zur IP Vergabe gesucht. Übersehe ich was oder ist das wirklich nur auf DHCP-Betrieb ausgelegt!? Ich hab bei mir in meiner IP Vergabe eine Struktur und würde die gerne beibehalten, insbesondere es ja immer mehr IPs im Haushalt werden. Könnte man das evtl. noch nachrüsten?

MfG
Marco
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Akwak am 31 Oktober 2017, 06:41:33
Zitat von: marco-f am 19 Oktober 2017, 18:58:13
Ich hab bei mir in meiner IP Vergabe eine Struktur und würde die gerne beibehalten, insbesondere es ja immer mehr IPs im Haushalt werden.
Du kannst in den meisten Routern, inzwischen auch bei den Fritzboxen, den Geräten eine feste IP zuweisen lassen.
Diese Zuordnung ist nicht auf den DHCP Bereich eingeschränkt und kann (aus meiner Sicht sollte) ausserhalb des dynamischen Range liegen.
Damit hast Du Deine feste IP.
Gruss
Alfred
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: fuppking am 23 November 2017, 13:27:45
Hallo,

ich wollte mir grad den Scetch für den Arduino runterladen, aber igendwie finde ich den nicht. Kann mir da jemand Helfen bzw mir seinen Scetch zukommen lassen. Wäre echt nett -
Vielen Dank

fuppking
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 23 November 2017, 18:06:00
https://github.com/sw-home/FHEM-LEDStripe/archive/master.zip
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: rieders am 11 Dezember 2017, 20:53:55
Hallo

Ich habe vor einigen Tagen das Modul entdeckt.
In Verbindung mit einem nodemcu ist das eine feine Sache.
Jetzt habe ich eine Frage.
Gibt es eine Möglichkeit ein neuen Lichteffekt hinzu zu fügen?
Ich dachte da an mein Aquarium um dort die Sonnenaufgänge und Sonnenuntergänge zu simulieren.
Mondphasen wären auch schön.

Ich würde mich freuen wenn jemand erklären könnte was da geändert oder hinzugefügt werden muss.

Vielen Dank schon mal für die Hilfe.

Grüße André
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 11 Dezember 2017, 22:26:20
Hi André

Es gibt zwei Möglichkeiten: entweder den Effekt in der Arduino Umgebung programmieren und dann auch dem FHEM Modul bekannt machen (klingt so kompliziert wie es ist) oder ein sogenanntes Playfile erstellen. Im diesem File stehen die Lichtwerte des gesamten Streifens in jeweils einer Zeile, und diese Zeilen werden dann im Sekundentakt an den ESP übergeben. Hier ist dann eher die Kunst, die Daten des gewünschten Lichteffekts zusammenzustellen und in das richtige Format zu bringen.

Vielen Grüße
Stefan
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: rieders am 13 Dezember 2017, 06:53:28
Hallo


Vielen Dank für ihre Antwort.
Ich werde versuchen das Programm auf den nodemcu zu laden.
Es gibt ja die Möglichkeit 2 Stripes an zu sprechen.
Den Sinn habe ich bisher noch nicht entdeck da ja der Effekt immer auf beide Stripes ausgeführt wird.
Sinnvoller wäre es wenn sich jeder einzelne stripe editieren lässt.
Mit easyesp kann ich das nicht verknüpfen oder?
Ich wollte gleich noch die Temperatur und Relais drüber steuern.





Mit freundlichen Grüßen

André
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 10 Januar 2018, 21:35:25
Die 2 Streifen werden logisch zu einem zusammengesetzt. Der Anwendungsfall bei mir ist, dass die Steuerung aus technischen Gründen in der Mitte der Installation angebracht werden sollte.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: shamanix am 16 Januar 2018, 20:44:12
Zitat von: oxident am 17 Mai 2017, 18:46:23
Sehr geniale Arbeit, vielen Dank an den Autor!

Ich habe den Arduino-Sketch so angepasst, dass er auch mit der FastLED-Bibliothek und APA102(C) Streifen zusammenarbeitet.
Das klappt auch soweit alles prima, es musste halt nur an mehreren Stellen leicht angepasst werden. Würde es gerne der Community zur Verfügung stellen, jedoch lieber in Absprache mit dem Modulautor ... damit hier kein Wildwuchs entsteht ;-)

Hallo oxident,

wo kann ich denn deinen Sketch downloaden? da ich auch einige APA102 habe, hätte ich interesse an deiner Version.

Grüße
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: inesa394 am 25 Januar 2018, 20:58:04
Hallo

Wie verkabelt man das
So habe ich das bei mir
Data an D5
GND an GND
5V an 3V
new client
GET /rainbow HTTP/1.1
TE: deflate,gzip;q=0.3
Keep-Alive: 300
Connection: Keep-Alive, TE
Host: 192.168.178.50
User-Agent: libwww-perl/6.08
client disconnected
new client
GET /off HTTP/1.1
TE: deflate,gzip;q=0.3
Keep-Alive: 300
Connection: Keep-Alive, TE
Host: 192.168.178.50
User-Agent: libwww-perl/6.08
client disconnected
new client
GET /off HTTP/1.1
TE: deflate,gzip;q=0.3
Keep-Alive: 300
Connection: Keep-Alive, TE
Host: 192.168.178.50
User-Agent: libwww-perl/6.08
client disconnected
new client
GET /off HTTP/1.1
TE: deflate,gzip;q=0.3
Keep-Alive: 300
Connection: Keep-Alive, TE
Host: 192.168.178.50
User-Agent: libwww-perl/6.08
client disconnected
new client
GET /off HTTP/1.1
TE: deflate,gzip;q=0.3
Keep-Alive: 300
Connection: Keep-Alive, TE
Host: 192.168.178.50
User-Agent: libwww-perl/6.08
client disconnected



Internals:
   CFGFN     
   DEF        192.168.178.50
   NAME       LED_Schlafzimmerschrank
   NR         177
   STATE      on
   TYPE       LEDStripe
   mode       rgb
   remote_ip  192.168.178.50
   READINGS:
     2018-01-25 20:51:42   brightness      30
     2018-01-25 20:52:19   led_count       144
     2018-01-25 20:52:19   leds_on         144
     2018-01-25 20:52:19   rgb             FF9152
   powerMap:
   readingsDesc:
     pM_consumption:
       rtype      w
     pM_energy:
       rtype      whr
Attributes:
   playfile   /opt/fhem/ledwall.txt

Egal was ich versuche es passiert nichts   :-\

Ines

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 26 Januar 2018, 12:39:30
Zitat von: inesa394 am 25 Januar 2018, 20:58:04
5V an 3V
...
Egal was ich versuche es passiert nichts   :-\
Rein aus dem Bauch, da keine weiteren Details bekannt: Es wird auch nie wieder etwas passieren, da vmtl. der 3V3 Spannungsregeler durch ist...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: inesa394 am 26 Januar 2018, 16:57:35
Nein hatte das noch nicht verkabelt die Meldungen waren ohne LED.
Mit LED und an 5V hängt sich das Teil auf.
Kann mehr sehr gut im Serialmonitor sehen wüster Buchstabensalat rennt über den Bildschirm
es wird keine Verbindung aufgebaut zum WLAN.
Verbindung mit Fhem nicht  mehr möglich sobald
ich die LED anklemme, (30 LED) :-\
Verkabelt ist es so wie ich geschrieben
nur das ich es an 5V dran ist.
Vom Typ her sind es WS2812 5V diese hier
https://de.aliexpress.com/item/DC-5V-WS2812B-Led-Pixel-Strip-30-60-144LEDs-m-2811ic-Built-in-Individually-Address-Smart/32822719583.html?spm=a2g0s.9042311.0.0.imhRAr (https://de.aliexpress.com/item/DC-5V-WS2812B-Led-Pixel-Strip-30-60-144LEDs-m-2811ic-Built-in-Individually-Address-Smart/32822719583.html?spm=a2g0s.9042311.0.0.imhRAr)
Ines
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: dev0 am 27 Januar 2018, 08:13:05
ZitatMit LED und an 5V hängt sich das Teil auf.
Stromversorgung ist ausreichend dimensioniert? Du solltest aber besser einen neuen Thread aufmachnen, hier im Modul Thread ist Deine Hardwarebastellei eher off-topic. Zumindest verstehe ich den Thread Titel so.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: inesa394 am 27 Januar 2018, 14:57:36
Sind 50 LED und ist über USB mit einen 2A Netzteil ausgestattet.
Wenn über USB aber nur max 500mA kommen ist es wohl unterdimensioniert
und ich muß eine zweite Stromquelle anschließen.
Richtig?

Ines
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Bastel Bastel am 03 Februar 2018, 22:28:15
Moin, moin :)

Ich überlege grade mir 3 bis 4 Arduino Nano mit ENC28J16 Ethernet shilds anzuschaffen, hat da schon jemand Erfahrungen mit diesem Modul bezüglich empfohlener Pixelzahl und passender Ethernetlibrary?
Oder doch lieber gleich 2 Arduino Mega mit W5100?
Die Nano wären mir von der Baugröße her am liebsten :)

Gruß Karsten
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: AxelSchweiss am 04 Februar 2018, 13:46:26
Bei den ENC28J16 musst du auf die Größe der Library aufpassen.
Da bleibt beim Nano nicht mehr viel Platz im Speicher.

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 04 Februar 2018, 17:25:37
Hi,
warum Ethernet und nicht WLAN und damit der ESP8266 oder ESP32
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: MattG am 04 Februar 2018, 23:16:56
Zitat von: inesa394 am 27 Januar 2018, 14:57:36
Sind 50 LED und ist über USB mit einen 2A Netzteil ausgestattet.
Wenn über USB aber nur max 500mA kommen ist es wohl unterdimensioniert
und ich muß eine zweite Stromquelle anschließen.
Richtig?

Ines

Hi!

Die 3V zu 5V-Geschichte hat mich auch zwei Abende mit dem Oszilloskop gekostet. Ich habe die LED-Versorgung direkt an die 5V gehängt und nutze das Board von Adafruit, dass selbst die 3,3V aus den 5V erzeugt.  Damit man den Datenausgang aus dem ESP von den 3,3V auf den Eingangspegel der LEDs (5V) bekommt, nutze ich den Pegelwandler von Watterott. Zwei andere Varianten von Pegelwandler haben nicht funktioniert. Das Netzteil sollte tatsächlich auch 2A liefern - die 500 mA sind nur die ursprüngliche Spec. Die 2A sollten für ein paar LEDs oder für reduzierte Helligkeit reichen. Ich habe etwa 50 LEDs angeschlossen und verwende ein 4A-Netzteil, drehe aber nie mehr als die Hälfte auf. Ich habe mir extra den Arduinocode (siehe Link in meinem früheren Beitrag) angepasst damit das Modul sich die Helligkeit merkt und nicht irgendwann zu hell loslegt.

Viele Grüße,
Matthias
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Bastel Bastel am 05 Februar 2018, 10:50:47
Zitat von: RaspiLED am 04 Februar 2018, 17:25:37
Hi,
warum Ethernet und nicht WLAN und damit der ESP8266 oder ESP32
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...

Moin Arnd,
Ethernet um ein paar "Schreihälse" in meinem WLAN weniger zu haben und um auch bei Ausfall des AP noch zuverlässig schalten zu können. Ich hab da vor kurzem meine unangenehmen Erfahrungen mit den Sonoff Basic gemacht  :'(

Moin Axel,
kannst du noch ein anderes Shild für den Nano empfehlen wo ich die Standardlib des Sketches verwenden kann?

Gruß Karsten
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 05 Februar 2018, 19:20:26
Ws5100 oder ws5500 werden hier auch beim MapleCUL verwendet


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 06 Februar 2018, 00:53:01
Ich hab in meiner großen Installation mit 340 LEDs auch nen Mega mit ENC28J16, das geht entspannt.

Was mir aktuell ein wenig den Spaß verdirbt ist, dass alle paar Monate eine LED kaputt geht und dann alle dahinter liegenden LED verrückt spielen. Für den Austausch muss ich dann jedesmal die Lichtleisten aus der Decke nehmen weil sonst nicht genug Platz ist. Hattet ihr das auch schon mal?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Bastel Bastel am 14 Februar 2018, 00:56:54
Danke für eure Tips, dann werd ich mal mit der Verwirklichung beginnen und berichten. ;)

@swhome
Wie hast du die Streifen verbaut und nach welchen Längen speist du die Versorgungsspannung ein?
Nicht das die LEDs durch zu viel Wärme gekillt werden.
Und könnte man das Modul nicht so erweitern um in so einem Fall den ausgefallenen Pixel per Attribut zu excluden, als vorläufige Schönheitskorrektur?

Gruß Karsten
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 14 Februar 2018, 22:12:47
Hi Karsten, ich hab die LED auf ein Alu Profil aufgeklebt und die Stromversorgung an den entfernten Enden und einmal mittig angebracht - also nicht mehr als maximal 3 Meter zwischen LED und einer Einspeisung.

Mit Software kann ich das Problem nur sehr unbefriedigend lösen weil ja alle LED hinter der defekten mit ausfallen. Das Signal wird jeweils von einer LED zur nächsten weitergereicht.

Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: ckbln am 14 Februar 2018, 22:42:15
Hallo

beim Nachfolger WS2813 sollen die LED´s, hinter der ausgefallenen LED, weiter funktionieren.


Viele Grüße
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Bastel Bastel am 19 Februar 2018, 15:59:26
Moin swhome,

wie viele Pixel pro Meter?

Auf der Seite von Adafruit steht als Tip die Neopixelstreifen alle 1m neu einzuspeisen, da geht es aber hauptsächlich um eine ausreichende Stabilität der Spannung bezüglich der dargestellten Farben.

Für meine Installation plane ich jetzt auch mit 1m, nur zur Sicherheit.

Gruß Karsten
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: pula am 25 Februar 2018, 21:03:44
Hallo,

hab da mal eine ganz blöde Frage.
Derzeit setze ich einige 5050-Stripes (RGBW) als Deckenbeleuchtung ein - die Stripes sind in Alu-Profilen in den Deckenbalken bzw. im Rigips versenkt. Die Lichtstärke ist gerade ausreichend.
Gibt es bezüglich der Lichstärke Unterschiede zu WS2812b Stripes? Anders gefragt: Bin am Überlegen, umzurüsten. Wird das Licht schlechter?
Cheers,
Pula
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 26 Februar 2018, 07:58:09
Hi,
die neueren LEDs haben einen besseren Wirkungsgrad. Bei gleicher LED Dichte und  V/A Leistung sind die heller. Trotzdem ist dies im Einzelfall im direkten Vergleich zu analysieren ;-)

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: pula am 27 Februar 2018, 23:33:02
Hallo,

verstehe, danke für die Antwort.
Ich hab hier zum testen mal einen WS2812B-Streifen mit 60 LEDs/m liegen, der aber leider keine eigenen White-LEDs hat (im Gegensatz zu den 5050-RGBW Streifen, die ich verbaut habe).
Die Leuchtkraft ist dementsprechend schwach und meiner Meinung nach NICHT für eine Raumbeleuchtung geeignet. Werde den Streifen also "nur" als Ambilight am TV einsetzen.
Welche Alternativen mit individueller Adressierbarkeit und hoher Leuchtkraft im Weiss-Bereich (WW) bieten sich hier an? Stehe grad auf dem Schlauch, hab zwar ein wenig im Netz und bei ali recherchiert, aber so richtig schlau bin ich nicht geworden.
Setzt jemand adressierbare Streifen zur Raumbeleuchtung (und nicht nur für Akzente) ein? Wenn ja, welche?
Danke im voraus für zweckdienliche Hinweise!
Cheers,
Pula
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: higlhagl am 30 März 2018, 17:00:49
Hallo
ein paar Fragen.
gibt es beispiele für ledwall.txt,
kann man die File im Loop laufen lassen,
Wichtig ist für eine Blink Option für einzelne Leds ,
wie geht das
Danke
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: myit am 20 April 2018, 19:06:14
Hallo,

ich habe eine Frage zu der Ansteuerung. Ich habe testweise alles einmal aufgebaut und lasse es durch einen PIR auslösen, aber wenn ich jetzt zum Beispiel NeoPixelAll,118,238,0 sende, dann erhalte ich nur gefühlt jedes 3. bis 5. Mal die gewünschte Farbe.

Alle anderen Male sind es Regenbogenfarben oder auch schon mal durchgehend eine andere Farbe. Die Leitung vom ESP zum LED-Stripe ist ca 40cm lang, habe einen Elko verwendet und nen Widerstand für den Data-Pin.

Das Problem besteht aber auch, wenn ich anstatt der 50 Leds nur 5 anschließe

Woran kann das liegen?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: davipet am 01 Juli 2018, 08:30:55
Moin zusammen,

ich habe mal ein paar WS8212b Neopixel an einen NodeMCU1.0 gehängt und das Sketch vom GitHub aufgespielt.
Es lässt sich auch in FHEM finden und ich kann Farben und Effekte einstellen.

Was ich jedoch nicht hinbekommen haben ist der Power-Switch fürs Netzteil wie in Post #1 beschrieben.
Davon finde ich im Sketch auch nichts.

Und wenn ich einen Effekt, z.B. fire laufen habe. Und dann ein RGB-Command absetze blitzen die LEDS kurz in der gewünschten Farbe auf - und sofort geht der effekt weiter.
Es muss also vorher ein Off-command kommen, sonst klappt es nicht. Ist das so gewollt?

Danke!

David
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: plin am 25 August 2018, 15:47:17
Hi,

ich habe Probleme mit dem Playfile. Für meine 300 LEDs habe ich jetzt ein File mit 900 Zahlen von 0-9 erzeugt, davon insgesamt 30 Zeilen. Ich habe das Attribut playfile gesetzt. Wenn ich dann ein set RGBLED play absetze, sehe ich zwar im Log, dass die "play"-Routine aufgerufen wird, aber meine LEDs bleiben dunkel.

755755756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756756757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757757
758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758758759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759759800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800800
801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801801802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802802803803803803803803803803803803803803


Fehlt mir da noch irgendein Schritt?

VG,
plin

----

P.S. Zwei Effekte weiter: nachdem ich mir noch mal einen Regenbogen und die Sparks angeschaut habe, war ich optimistisch und siehe da, auch "play" funktioniert jetzt.

Bleibt die Frage: Unter welchen Bedingungen funktioniert "play"?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Laire am 16 September 2018, 19:03:28
Geht das auch mit einem WS2801 und einem Wemos D1 Mini
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 28 Oktober 2018, 08:20:07
Moin Laire,
Hab es gestern mit WS2812 und D1 Mini eingerichtet. Läuft problemlos. Meine aber auch im Thread gelesen zu haben, dass 2801er auch gehen.
@sw-Home: Danke für das klasse Modul. Hab gesehen, du hast dich auch schon mal mit Alexa Ansteuerung beschäftigt. Da du ja in deinem Modul Hex Werte nimmst, geht das nicht so einfach mit Alexa "Basic" skill, oder?
Also mit Custom dürfte es gehen klar, aber ich mag das Hotword nicht was man für custom braucht.
Kriegt man die rgb werte irgendwie in dec umgebogen, dass es auch einfacher mit Alexa geht?
EDIT: geht ja doch mit den Farben. Muss ich nur die Effekte noch basteln.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 28 Oktober 2018, 09:25:17
Jo für die Effekte hab ich bei Alexa auch noch keine Lösung. Das Modul hätte mal ne Überholung verdient, aber mein Fokus liegt gerade ganz woanders  ::)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 28 Oktober 2018, 10:42:42
Ich werde wohl einfach dummy Schalter anlegen wie Regenbogen an, Sterne an etc.
bisschen kompliziert aber für Frau dann zu bedienen.
Will bei dem Sketch mal in die Loop ein sleep einbauen, denke das halbiert etwa den Verbrauch vom Wemos.
Melde mich nochmal mit Ergebnissen.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 20 November 2018, 21:47:40
Moin. Ich hab noch folgendes Problem. Wenn ich einen Effekt an habe, und von dort direkt auf eine Farbe wie weiß oder grün wechseln will, so bleibt der Effekt an und überlagert die Farbe. Von Farbe zu Effekt geht es problemlos. Vielleicht müsste man den Sketch da leicht anpassen?!
Nutze einen ESP
Edit: habe einfach den Sketch angepasst. Am Anfang von /range rufe ich die reset() auf damit passt es.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: RaspiLED am 21 November 2018, 07:27:26
Hi,
wenn Deine virtuellen Schalter laufen, kannst Du die hier mal posten ;-)
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 21 November 2018, 08:16:58
Klar. Sind aber nix besonderes.
Damit sie einfach per Alexa (ohne Intend's) angesteuert werden können, gibt's nur on und off

Internals:
   DEF        ([?$SELF] eq "on") (set LED_wz rainbow ) DOELSEIF ([?$SELF] eq "off") (set LED_wz off) DOELSE ()
   MODEL      FHEM
   NAME       Regenbogen_wz
   NR         296
   NTFY_ORDER 50-Regenbogen_wz
   STATE      off
   TYPE       DOIF
   READINGS:
     2018-11-20 21:37:07   cmd             2
     2018-11-20 21:37:07   cmd_event       set_off_cmd_2
     2018-11-20 21:37:07   cmd_nr          2
     2018-11-20 19:06:23   mode            enabled
     2018-11-20 21:37:07   state           off
   Regex:
   attr:
     cmdState:
       0:
         on
       1:
         off
   condition:
     0          ::InternalDoIf($hash,'Regenbogen_wz','STATE') eq "on"
     1          ::InternalDoIf($hash,'Regenbogen_wz','STATE') eq "off"
   devices:
   do:
     0:
       0          set LED_wz rainbow
     1:
       0          set LED_wz off
     2:
       0         
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     0           Regenbogen_wz:STATE
     1           Regenbogen_wz:STATE
     all         Regenbogen_wz:STATE
   itimer:
   perlblock:
   uiState:
   uiTable:
Attributes:
   alexaName  Regenbogen
   cmdState   on|off
   genericDeviceType switch
   room       1_Wohnzimmer,alexa
   setList    on off
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Hannes1980 am 27 November 2018, 09:23:58
Hallo,

Ich habe mal einen Testaufbau mit einem ESP8266 mit einem Meter Led Stripes aufgebaut. Es geht auch problemlos mit FHEM zu steuern.
Mein Ziel ist es das Stiegenhaus indirekt zu beleuchten. Benötigt werden dafür in Summe 420 LED's.
Da der ESP8266 mit dem Speicher etwas begrenzt ist, wollte ich es mit einem ESP32 bauen.
Hat jemand von euch das Setup mit einem ESP32 am laufen?
Ich kann den ESP32 zwar flashen, aber er will einfach nicht booten.
Es wird wahrscheinlich am Inhalt der httpledstripe_esp.ino liegen.
Gegenüber dem ESP8266 habe ich nur folgende Zeile angepasst, was aber anscheinend zu wenig ist:

#include <WiFi.h>

Danke

Hannes
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 27 November 2018, 09:43:18
Mein ESP32 ist noch auf dem Weg von China hierher.
Wenn er da ist, kann ich mal schauen.
Aber ich denke vom Speicher her schafft es zb ein Wemos D1 Mini. Performance wird da schon eher ein Thema für ESP32 sein.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 27 November 2018, 14:35:03
Ich hab 330 LEDs mit einem Arduino Mega laufen, da sollte der normale ESP also dicke reichen.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: gloob am 27 November 2018, 14:36:44
Gibt es eigentlich eine Idee, wann das Modul per FHEM Update bereit gestellt wird?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 27 November 2018, 14:40:38
Hab ich nix dagegen, wenngleich es ja schon eher für "Bastler" ist und damit nicht für Jedermann/frau.
Wenn jemand Lust hat es zu maintainen, dann nur zu.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: gloob am 27 November 2018, 14:41:28
Zitat von: swhome am 27 November 2018, 14:40:38
Hab ich nix dagegen, wenngleich es ja schon eher für "Bastler" ist und damit nicht für Jedermann/frau.
Wenn jemand Lust hat es zu maintainen, dann nur zu.

Ich dachte du bist der Maintainer.  :o
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Hannes1980 am 27 November 2018, 14:49:18
Zitat von: swhome am 27 November 2018, 14:35:03
Ich hab 330 LEDs mit einem Arduino Mega laufen, da sollte der normale ESP also dicke reichen.

Hallo,

Danke für die Antwort. Dann werde ich mal meinen Testaufbau mit dem ESP8266 um ein paar LED's erweitern und schauen ob es läuft.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 27 November 2018, 14:52:34
Zitat von: gloob am 27 November 2018, 14:41:28
Ich dachte du bist der Maintainer.  :o
Nein, ich bin nur ein Entwickler der hier seinen Code reingestellt hat  :)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: sgaechter am 06 Dezember 2018, 10:19:30
Hallo zusammen.

Habe ebenfalls Freude an dem neuen RGB- Steuerungsmodul - Danke swhome für deine Arbeit.
Kämpfe zwar mit der Funktion "Play. Mein Playfile will sich nicht abspielen lassen.
Ich nutze für den Aufruf die FHEM Kommandozeile:
"set O_G2_KIZ2_LEDstrip play" - der Strip bleibt aber dunkel....

Mein Setup:
- Neopixel LED-Strip mit 60 Pixels
- WeMos D1 mini (ESP8266) mit entsprechendem Sketch aus dem Git Repo
- Fhem mit 98_LEDStripe.pm Version 0.2
- Playfile liegt in Fhem unter "/opt/fhem/FHEM" und hat die Rechte "rwxrwxrwx (oder besser 0777)"
Das File habe ich unten angehängt.
Ich stehe irgendwie auf dem Schlauch...
Kann mir jemand von euch weiterhelfen?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 06 Dezember 2018, 14:18:22
Geht denn wenigstens der erste Schritt?
Gibts irgendwelche Meldungen im fhem Logfile?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: sgaechter am 06 Dezember 2018, 14:37:19
Inzwischen habe ich herausgefunden, dass das Playfile funktioniert, wenn ich den Strip mit dem Effekt "Knightrider" starte und dann auf "play" umschalte, dass dann das Playfile einmal abgespielt wird (komischerweise funktioniert hier nur Knightrider...).
Im FHEM-Log sehe ich:

2018.12.06 10:17:33.060 1: Could not open file /opt/fhem/test.txt   
2018.12.06 10:27:10.534 1: RMDIR: ./restoreDir/save/2018-12-02
2018.12.06 10:27:48.014 1: Can't post to http://192.168.178.33/leds/ -- 500 read timeout
2018.12.06 14:14:18.911 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_LEDStripe.pm line 251.
2018.12.06 14:14:18.911 2: O_G1_WOZ_LEDstrip defined LEDStripe at 192.168.178.45:

ansonsten nichts auffälliges.
Ich schätze mal, es liegt am Arduino-Sketch. Werde mir den mal näher beäugen.

Feature Suggestion Zu dieser play- Funktion:
Wäre es nicht viel handlicher, dem Aufruf gleich das gewünschte Play File anzugeben im sinne von "set <DEVICE> play <playfile> (wahlweise mit pfad. Wenn dieser nicht angegeben wird, könnte ja das Reading "playfile" dafür "missbraucht" werden.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tklein am 18 Januar 2019, 20:11:57
Hallo zusammen,

ich verzweifel gerade daran mit Atom oder Arduino IDE die ESP8266 Version auf den Wemos zu flashen.

Bei Atom bekomme ich diese Meldung beim Kompilieren:

Processing d1_mini_lite (platform: espressif8266; board: d1_mini_lite; framework: arduino)

Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini_lite.html
PLATFORM: Espressif 8266 > WeMos D1 mini Lite
HARDWARE: ESP8266 80MHz 80KB RAM (1MB Flash)
Converting httpledstripe_esp_v1.ino

Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ESP8266WiFi> 1.0
|-- <Adafruit NeoPixel> 1.0.6
Compiling .pioenvs\d1_mini_lite\src\httpledstripe_esp_v1.ino.cpp.o
Compiling .pioenvs\d1_mini_lite\libf7b\ESP8266WiFi\ESP8266WiFiMulti.cpp.o
C:/Users/tklein/Documents/PlatformIO/Projects/ws8212_fhem/src/httpledstripe_esp_v1.ino: In function 'void setup()':
C:/Users/tklein/Documents/PlatformIO/Projects/ws8212_fhem/src/httpledstripe_esp_v1.ino:43:15: error: 'stripe_setup' was not declared in this scope
stripe_setup();
^
C:/Users/tklein/Documents/PlatformIO/Projects/ws8212_fhem/src/httpledstripe_esp_v1.ino: In function 'void loop()':
C:/Users/tklein/Documents/PlatformIO/Projects/ws8212_fhem/src/httpledstripe_esp_v1.ino:99:87: error: 'stripe_color' was not declared in this scope
stripe_setPixelColor(ledix++, stripe_color(redLevel,greenLevel,blueLevel));
^
C:/Users/tklein/Documents/PlatformIO/Projects/ws8212_fhem/src/httpledstripe_esp_v1.ino:99:88: error: 'stripe_setPixelColor' was not declared in this scop
e
stripe_setPixelColor(ledix++, stripe_color(redLevel,greenLevel,blueLevel));

...

C:/Users/tklein/Documents/PlatformIO/Projects/ws8212_fhem/src/httpledstripe_esp_v1.ino:256:14: error: a function-definition is not allowed here before '{
' token
void reset() {
^
C:/Users/tklein/Documents/PlatformIO/Projects/ws8212_fhem/src/httpledstripe_esp_v1.ino:342:1: error: expected '}' at end of input
}
^
*** [.pioenvs\d1_mini_lite\src\httpledstripe_esp_v1.ino.cpp.o] Error 1
[ERROR] Took 8.35 seconds


Hatte mal gelesen, dass das evtl. auf Sonderzeichen im Pfad hindeuten könnten. Dort sind aber keine.

So ist die identische Meldung bei Arduino IDE:

C:\Users\tklein\Documents\Arduino\FHEM-LEDStripe-master\FHEM-LEDStripe-master\Arduino\httpledstripe_esp_v1\httpledstripe_esp_v1.ino: In function 'void setup()':

httpledstripe_esp_v1:43: error: 'stripe_setup' was not declared in this scope

  stripe_setup();

               ^

C:\Users\tklein\Documents\Arduino\FHEM-LEDStripe-master\FHEM-LEDStripe-master\Arduino\httpledstripe_esp_v1\httpledstripe_esp_v1.ino: In function 'void loop()':

httpledstripe_esp_v1:91: error: 'colorVal' was not declared in this scope

               redLevel = colorVal(c);

                                    ^

httpledstripe_esp_v1:99: error: 'stripe_color' was not declared in this scope

               stripe_setPixelColor(ledix++, stripe_color(redLevel,greenLevel,blueLevel));

                                                                                       ^

httpledstripe_esp_v1:99: error: 'stripe_setPixelColor' was not declared in this scope

               stripe_setPixelColor(ledix++, stripe_color(redLevel,greenLevel,blueLevel));

                                                                                        ^

httpledstripe_esp_v1:103: error: 'stripe_show' was not declared in this scope


...


httpledstripe_esp_v1:252: error: 'blinkerEffect' was not declared in this scope

   if (blinker) blinkerEffect();

                              ^

httpledstripe_esp_v1:256: error: a function-definition is not allowed here before '{' token

void reset() {

              ^

vstripe:50: error: expected '}' at end of input

}

^

exit status 1
'stripe_setup' was not declared in this scope


Die *.ino Datei hat folgenden Inhalt:

#include <Adafruit_NeoPixel.h>
#include <ESP8266WiFi.h>

const char* ssid     = "xyz";
const char* password = "123456789..";
WiFiServer server(80);
// Which pin on the Arduino is connected to the NeoPixels?
#define LEDPIN1           4
#define LEDPIN2           0

// How many NeoPixels are attached to the Arduino?
//#define NUMPIXELS1     8
#define NUMPIXELS1     140
#define NUMPIXELS2     0
int xfrom;
int yto;
int myredLevel;
int mygreenLevel;
int myblueLevel;
int myOn;
int myOff;


void reset();
// control special effects
boolean fire=false;
boolean rainbow=false;
boolean blinker=false;
uint16_t rainbowColor=0;



// setup network and output pins
void setup() {
// Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  Serial.println(F("Booting"));

// Initialize all pixels to 'off'
stripe_setup();
  WiFi.mode(WIFI_STA);
Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();

}

// request receive loop
void loop() {
// listen for incoming clients
  WiFiClient client = server.available();  // Check if a client has connected
  if (client) {
    Serial.println(F("new client"));
   
    String inputLine = "";
   // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    boolean isGet = false;
    boolean isPost = false;
    boolean isPostData = false;
    int postDataLength;
    int ledix = 0;
    int tupel = 0;
    int redLevel = 0;
    int greenLevel = 0;
    int blueLevel = 0;
   
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (isPostData && postDataLength > 0) {
          switch (tupel++) {
            case 0:
              redLevel = colorVal(c);
              break;
            case 1:
              greenLevel = colorVal(c);
              break;
            case 2:
              blueLevel = colorVal(c);
              tupel = 0;
              stripe_setPixelColor(ledix++, stripe_color(redLevel,greenLevel,blueLevel));
              break;
          }
          if (--postDataLength == 0) {
            stripe_show();
            sendOkResponse(client);
            break;
          }
        }
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          if (isPost) {
            isPostData = true;
            continue;
          } else {
            // send http response
            if (isGet) {
              sendOkResponse(client);
            } else {
              client.println(F("HTTP/1.1 500 Invalid request"));
              client.println(F("Connection: close"));  // the connection will be closed after completion of the response
              client.println();
            }
            break;
          }
        }
        if (c == '\n') {
          // http starting a new line, evaluate current line
          currentLineIsBlank = true;
          Serial.println(inputLine);
         
// SET SINGLE PIXEL url should be GET /rgb/n/rrr,ggg,bbb
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /rgb/")) {
            int slash = inputLine.indexOf('/', 9 );
            ledix = inputLine.substring(9,slash).toInt();
            int urlend = inputLine.indexOf(' ', 9 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            int komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            redLevel = getParam.substring(0,komma1).toInt();
            greenLevel = getParam.substring(komma1+1,komma2).toInt();
            blueLevel = getParam.substring(komma2+1).toInt();
            stripe_setPixelColor(ledix, stripe_color(redLevel,greenLevel,blueLevel));
            stripe_show();
            isGet = true;
          }
          // SET PIXEL RANGE url should be GET /range/x,y/rrr,ggg,bbb
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /range/")) {
            int slash = inputLine.indexOf('/', 11 );
            int komma1 = inputLine.indexOf(',');
            int x = inputLine.substring(11, komma1).toInt();
            int y = inputLine.substring(komma1+1, slash).toInt();
            int urlend = inputLine.indexOf(' ', 11 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            redLevel = getParam.substring(0,komma1).toInt();
            greenLevel = getParam.substring(komma1+1,komma2).toInt();
            blueLevel = getParam.substring(komma2+1).toInt();
            for(int i=x; i<=y; i++) {
              stripe_setPixelColor(i, stripe_color(redLevel,greenLevel,blueLevel));
            }
            stripe_show();
            isGet = true;
          }
          // POST PIXEL DATA
          if (inputLine.length() > 3 && inputLine.substring(0,10) == F("POST /leds")) {
            isPost = true;
          }
          if (inputLine.length() > 3 && inputLine.substring(0,16) == F("Content-Length: ")) {
            postDataLength = inputLine.substring(16).toInt();
          }
          // SET ALL PIXELS OFF url should be GET /off
          if (inputLine.length() > 3 && inputLine.substring(0,8) == F("GET /off")) {
            reset();
            isGet = true;
          }
         
          // GET STATUS url should be GET /status
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /status")) {
            isGet = true;
          }
          // SET FIRE EFFECT
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /fire")) {
            fire = true;
            rainbow = false;
            stripe_setBrightness(128);
            isGet = true;

         // SET EFFECT 1
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /fx_1")) {
            fire = true;
            rainbow = false;
            stripe_setBrightness(50);
            isGet = true;
          }
          // SET RAINBOW EFFECT
          if (inputLine.length() > 3 && inputLine.substring(0,12) == F("GET /rainbow")) {
            rainbow = true;
            fire = false;
            stripe_setBrightness(128);
            isGet = true;
          }
          // SET no_effects
          if (inputLine.length() > 3 && inputLine.substring(0,9) == F("GET /nofx")) {
            rainbow = false;
            fire = false;
            blinker = false;
            isGet = true;
          }
          if (inputLine.length() > 3 && inputLine.substring(0,11) == F("GET /blink/")) {
            int slash = inputLine.indexOf('/', 11 );
            int komma1 = inputLine.indexOf(',');
            xfrom = inputLine.substring(11, komma1).toInt();
            yto = inputLine.substring(komma1+1, slash).toInt();
            int urlend = inputLine.indexOf(' ', 11 );
            String getParam = inputLine.substring(slash+1,urlend+1);
            komma1 = getParam.indexOf(',');
            int komma2 = getParam.indexOf(',',komma1+1);
            int komma3 = getParam.indexOf(',',komma2+1);
            int komma4 = getParam.indexOf(',',komma3+1);
            myredLevel = getParam.substring(0,komma1).toInt();
            mygreenLevel = getParam.substring(komma1+1, komma2).toInt();
            myblueLevel = getParam.substring(komma2+1, komma3).toInt();
           
            myOn = getParam.substring(komma3+1, komma4).toInt();
            myOff = getParam.substring(komma4+1).toInt();

            blinker = true;
            rainbow = false;
            fire = false;
           
            isGet = true;
          }
          inputLine = "";
        }
        else if (c != '\r') {
          // add character to the current line
          currentLineIsBlank = false;
          inputLine += c;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println(F("client disconnected"));
  }
  if (fire) fireEffect();
  if (rainbow) rainbowCycle();
  if (blinker) blinkerEffect();
}

// Reset stripe, all LED off and no effects
void reset() {
  for(int i=0; i<stripe_numPixels(); i++) {
    stripe_setPixelColor(i, 0);
  }
  stripe_setBrightness(255);
  stripe_show();
  fire = false;
  rainbow = false;
  blinker = false;
}

// LED flicker fire effect
void fireEffect() {
  for(int x = 0; x <stripe_numPixels(); x++) {
    int flicker = random(0,55);
    int r1 = 226-flicker;
    int g1 = 121-flicker;
    int b1 = 35-flicker;
    if(g1<0) g1=0;
    if(r1<0) r1=0;
    if(b1<0) b1=0;
    stripe_setPixelColor(x,stripe_color(r1,g1, b1));
  }
  stripe_show();
  delay(random(10,113));
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle() {
  uint16_t i;

  if (rainbowColor++>255) rainbowColor=0;
  for(i=0; i< stripe_numPixels(); i++) {
    stripe_setPixelColor(i, Wheel(((i * 256 / stripe_numPixels()) + rainbowColor) & 255));
  }
  stripe_show();
  delay(20);
}

void blinkerEffect() {
for(int i=xfrom; i<=yto; i++) {
    stripe_setPixelColor(i, stripe_color(myredLevel,mygreenLevel,myblueLevel));
  }
  stripe_show();
delay(myOn);
for(int i=xfrom; i<= yto; i++) {
    stripe_setPixelColor(i, stripe_color(0,0,0));
  }
  stripe_show();
delay(myOff);
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return stripe_color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return stripe_color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return stripe_color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

int colorVal(char c) {
  int i = (c>='0' && c<='9') ? (c-'0') : (c - 'A' + 10);
  return i*i + i*2;
}

void sendOkResponse(WiFiClient client) {
  client.println(F("HTTP/1.1 200 OK"));
  client.println(F("Content-Type: text/html"));
  client.println(F("Connection: close"));  // the connection will be closed after completion of the response
  client.println();
  // standard response
  client.print(F("OK,"));
  client.print(stripe_numPixels());
  client.print(F(","));
  int oncount=0;
  for(int i=0; i<stripe_numPixels(); i++) {
    if (stripe_getPixelColor(i) != 0) oncount++;
  }
  client.println(oncount);
}


Wo ist der Fehler? Kann mir da jemand bitte weiterhelfen?
Muss ich noch eine Library einbinden?


Viele Grüße
Thomas
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tklein am 18 Januar 2019, 20:53:16
das wird bestimmt etwas mit der Aussgae von exciter zu tun haben: "Mit der vstripe aus dem Originalfile zu kompilieren. Pin, SSID, KEY, nach Bedarf anpassen."
--Allerdings verstehe ich das nicht so richtig, was da gemacht werden muss.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 18 Januar 2019, 21:05:35
Ist lange her aber ich meine du musst noch eine Library einbinden. Hab's mit Arduino IDE geflasht.
Neopixel brauchst du noch.
Hast du auch die auf wemos angepasste ino genommen?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tklein am 18 Januar 2019, 21:22:55
so sehen meine libs aus. Die ESP Version habe ich nur angepasst (SSID,PW,PIN, LED Anzahl)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 18 Januar 2019, 22:34:43
Wo hast den Sketch denn her? Direkt aus Github per console gezogen?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tklein am 18 Januar 2019, 22:38:04
von Seite 2 dieses Post glaube mich noch dran zu erinnern. --> https://forum.fhem.de/index.php/topic,50174.15.html
Wo kann ich mir den sonst ziehen?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 18 Januar 2019, 23:30:25
https://github.com/sw-home/FHEM-LEDStripe
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tklein am 19 Januar 2019, 12:02:38
besten dank für deine infos!! jetzt hat es geklappt.
habe allerdings die ordnerstruktur ein bißchen modifiziert. evtl passen jetzt die pfade die zuvor nicht korrekt waren.
gibt es noch andere sketchs/module die per fhem ws2812b ansteuern können?
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: DazDavid am 21 Januar 2019, 11:55:45
Hallo,

erst einmal danke für das Modul.
Ich habe vor meine Treppenstufen zu beleuchten und bei 60LEDs/m werden es am Ende ca. 420 LEDs sein.
Ich habe mir dazu ein "Wemos D1 Mini kompatibles Board" mit 4MBit Speicher in der Bucht geholt.
Tendenziell sollte das von der Größe des Speichers kein Problem darstellen oder?
Brauche ich für das Wemos Board auch noch einen Level-Shifter für die Datenleitung oder ist dafür der Vorwiderstand von 470Ohm gedacht?

Gruß David
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 21 Januar 2019, 19:21:15
Also ich hab meine stripes direkt am wemos hängen.
Vom Speicher her sollte es gehen. Ich hab allerdings nur 120 am wemos hängen.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: e3xtreme am 14 Dezember 2019, 02:01:07
Hallo allerseits,

Hat das Ganze schon jemand mit SK6812 RGBW bzw RGBWW LEDs zum Laufen gebracht? Ich bin derzeit soweit dass die Programme laufen, aber nur die RGB Chips arbeiten nicht jedoch der weiße Chip, spiele nun schon paar Stunden aber weiß nicht so recht wie ich es einbauen soll.

Danke, LG



Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: daelch am 03 Juli 2020, 22:47:11
Kann ich auch einen Raspberry 4 mit diesem Modul einsetzen? Falls nicht: kann man mit einem ESP8266 rund 1150 LED sinnvoll steuern?

Vielen Dank und viele Grüße
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: swhome am 06 Juli 2020, 09:56:13
Im Prinzip schon, allerdings müsstest Du den Arduino-Teil des Moduls für Raspberry komplett neu aufsetzen. Mit einem ESP wäre es bestimmt weniger Aufwand. Ich erinnere mich dass man pro LED 4 Byte RAM benötigt, könnte klappen.
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tobi01001 am 06 Juli 2020, 11:59:09
Hi,

die Herausforderung bei 1150 LEDs liegt hier in der Performance.
RAM
Der RAM eines ESP sollte genügen. Ich habe meinen (überladenen) Code gerade mal mit 1150 LEDs übersetzt und lande bei 56% RAM - statisch.

EDIT: Gerade mal hochgeladen. Für 1150 LEDs habe ich (bei mir) offenbar zu viel dynamische Speichernutzung. Also mit meinem Sketch mit DMA Nutzung nicht out of the Box - sorry.
Aber: bis 600 sollte es gut funktionieren. Ohne "Knob-Control" bestimmt noch mehr - aber dazu müsste ich jetzt genauer nach dem Problem suchen...
/EDIT

Performance
Die Frage ist eher in Richtung Performance. Bei mir laufen aktuell maximal 300 LEDs und damit bekommen ich etwas mehr als 100 FPS.
Die WS2812 mit 800kHz brauchen ca. 30µs pro LED + ein 50µs am Ende vom Frame.

Deine 1150 LEDs brauchen dann 1150*30µs + vernachlässigbare 50 µs um ein Frame geschrieben zu haben. Das macht um die 35 Millisekunden bzw ca 29 frames per second die nur für das Schreiben der LED-Daten benötigt werden. Etwas Rechenzeit für WLAN, das berechnen der Frames und allgemeine Informationen benötigt man ja zusätzlich.

Interrupts
Die nächste Herausforderung dabei ist, dass meist mit BitBanging gearbeitet wird, d.h. die Daten werden über SW geschrieben und dabei sind Interrupts meist gesperrt (sonst kommt das Timing nicht hin).
Mit 35 ms ohne Interrupts steigt of das WiFi aus bzw wird unzuverlässig oder andersrum, haben viele Probleme mit flackernden LEDs. ;-)
Wenn man die LEDs nur an und aus und evtl ein wenig die Helligkeit / Farbe regeln möchte, klappt das bestimmt. Wenn man etwas flüssigere Übergänge oder gar Effekte laufen lassen möchte sind die 30 FPS zu wenig...

Strom
Die nächste Challenge ist der böse Strom. Ein Annahme mit 60mA pro Pixel (mit RGB ohne weiß, real aber um einiges weniger) macht 69 Ampere an Strom die man auf die LEDs bringen möchte - sofern RGB komplett hell sind. (der Nachteil wenn die nur mit 5V laufen). Da muss man relativ oft einspeisen und genügend Strom zur Verfügung stellen.
Meine Messungen landen bei 11 mA pro Farbe. Sind aber immernoch 35A bei voller Aussteuerung. Man kann natürlich den Strom zu Lasten der Helligkeit per SW drosseln.

Das bedeutet natürlich nicht, dass das alles unmöglich ist. Man muss sich nur bewusst sein, worauf man sich einlässt.

Performance und Interrupts:
Ich war mit dem BitBanging Ansatz nicht glücklich. Daher habe ich einen der verfügbaren DMA-Ansätze implementiert.
Damit befreit man den ESP davon 35 ms einen einzelnen Pin mit 800kHz zu toggeln. Aber man kann trotzdem nur alle 35 ms ein neues Frame schreiben, die FPS bleiben also LED-hardwarebedingt limitiert.

Die nächste Möglichkeit is Parallel Output:
Hier werden die 1150 in mehrere aufgeteilt. Die Berechnung kann weiterhin an einem LED-Array erfolgen. Das schreiben der Daten erfolgt parallel. Wenn man die LEDs also an 4 parallele PINs hängen würde, hätte man plötzlich die 4 fachen FPS, d.h in deinem Fall ungefähr 120 FPS was schon schön flüssig wäre...
Leider hat der ESP8266 lediglich pin 4 für DMA und soweit ich weiß funktioniert Parallel Output hier nicht. Mit einem ESP32 kann man das machen. Ich habe allerdings meinen Code noch nicht auf den ESP32 portiert und daher leider noch keine Erfahrung damit.

Zusammenfassung:
Es kommt drauf an was du erreichen willst - außer der Tatsache 1150 LEDs zu steuern. ;-)

Ich kann gerne mal ein kurzes Video mit (theoretischen) 1150 LEDs und ein paar Effekten machen, dann sieht man die Performance...

Ich habe (nicht mit deinem Code @swhome - aber mit deinem FHEM Modul als Basis) bei mir zu Hause 5 "Lampen" mit 50 - 300 LEDs am Laufen.
- im Flur eigentlich immer (sofern jemand zu Hause).
- im Wohnzimmer als Effekt / Ambientebeleuchtung wenn der TV läuft.
- im Kinderzimmer als Ambiente, Nachtlicht, zum Wecken und einschlafen und wecken mit Sonnenauf- /Untergang
- im Schlafzimmer als Leselicht

Alle lassen sich über FHEM (mit kleineren Einschränkungen da mir Modulentwicklung ein wenig schwer fällt) und über eine Webseite steuern. Im Kinderzimmer parallel noch über einen "Drehgeber mit Taster und 0.96 OLED".

Soll heißen: Es macht (zumindest mir) Spaß und lohnt sich ;-).

LG,
Tobias

P.S.: Erster Beitrag. Lese seit Jahren viel mit und lerne stetig. :-) Vielleicht kann ich so ja etwas beitragen und zurückgeben.
Und falls tatsächlich wer dran interessiert sein sollte: https://github.com/tobi01001/LED_Stripe_Dynamic_web_conf (https://github.com/tobi01001/LED_Stripe_Dynamic_web_conf)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: pula am 17 Juli 2020, 12:10:16
Hab das Ganze für eine nodemcu mit vscode kompiliert.
Dazu habe ich die inos in EIN cpp file zusammengeführt (anbei) und noch einen hostname eingebaut, mit dem das Ding sich beim DHCP-Server meldet. Ausserdem habe ich die ganzen declares am Anfang des files hinterlegt, damit der compiler zurechtkommt.
Die platformio.ini sieht so aus:
[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino


Vielleicht kanns mal jemand brauchen. (Ich bin kein C-Profi, sicher kann man das eleganter lösen, aber es scheint zu tun).
Cheers,
Pula
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: fabse am 22 August 2020, 15:26:25
Habe das auch angeschaut.

Das Modul 98_LEDStripe.pm hab ich erfolgreich reingeladen.
Die Neopixel habe ich aber mit Mega ESP am NodeMCU dran gemacht. Da scheint die Verbindung zwischen dem NodeMCU und dem LEDStripe Modul nicht zu funktionieren.... über die ESP Bridge kann ich die Neopixel ansteuern, also falsch angeschlossen ist es nicht.

Im Anhang habe ich ein Foto von dem Gerät eingefügt!
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: AET_FHEM am 23 Oktober 2020, 22:17:42
hey,

ich hab da auch gerade so ein Projekt!

Wie sieht den das aus mit fastLED --> das ist noch nicht integriert? Was muss ich den da anpassen?

Grüße
AET
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 30 Oktober 2020, 09:12:02
Moin zusammen,

ich hab mittlerweile auf tasmota mit ws2812fx gewechselt.
Läuft bei mir stabiler und hat ne Web-GUI. (bei dem sketch hier im Thread ging nach Zeit x immer das Licht aus).
Mit tasmota läuft es jetzt bombe.

https://github.com/a-roz/Tasmota/tree/ws2812fx

Gruß
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: eldrik am 31 Oktober 2020, 10:02:59
Zitat von: Maui am 30 Oktober 2020, 09:12:02
Moin zusammen,

ich hab mittlerweile auf tasmota mit ws2812fx gewechselt.
Läuft bei mir stabiler und hat ne Web-GUI. (bei dem sketch hier im Thread ging nach Zeit x immer das Licht aus).
Mit tasmota läuft es jetzt bombe.

https://github.com/a-roz/Tasmota/tree/ws2812fx

Gruß
Hi Maui,

du hast nicht zufällig lust die Definition und Ansteuerung die du aus FHEM heraus benutzt zu teilen? :)

Greetz
Eldrik
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Maui am 31 Oktober 2020, 11:33:17
Gibt es doch quasi schon in fhem. Also mqtt tasmota templates mit rgb.
Man könnte halt noch Scheme, Speed und Pixels dazu basteln. (Hab ich aber nicht, da ich Speed und Pixels nur 1x setze und das scheme bei mir immer gleich ist)
Titel: Antw:Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: tobi01001 am 11 November 2020, 19:44:21
Zitat von: AET_FHEM am 23 Oktober 2020, 22:17:42
hey,

ich hab da auch gerade so ein Projekt!

Wie sieht den das aus mit fastLED --> das ist noch nicht integriert? Was muss ich den da anpassen?

Grüße
AET

Ich habe ws2812fx library auf FastLED umgeschrieben. Basiert im Prinzip auf dem vom Threadersteller, gemischt mit WS2812fx, responsive Weboberfläche, Fhem modul und (wo gewünscht) Steuerung direkt am Gerät mittels Drehtaster und 0.96 Zoll OLED zur Anzeige...


https://forum.fhem.de/index.php/topic,50174.msg1070196.html#msg1070196 (https://forum.fhem.de/index.php/topic,50174.msg1070196.html#msg1070196)
ZitatIch habe (nicht mit deinem Code @swhome - aber mit deinem FHEM Modul als Basis) bei mir zu Hause 5 "Lampen" mit 50 - 300 LEDs am Laufen.
- im Flur eigentlich immer (sofern jemand zu Hause).
- im Wohnzimmer als Effekt / Ambientebeleuchtung wenn der TV läuft.
- im Kinderzimmer als Ambiente, Nachtlicht, zum Wecken und einschlafen und wecken mit Sonnenauf- /Untergang
- im Schlafzimmer als Leselicht

Alle lassen sich über FHEM (mit kleineren Einschränkungen da mir Modulentwicklung ein wenig schwer fällt) und über eine Webseite steuern. Im Kinderzimmer parallel noch über einen "Drehgeber mit Taster und 0.96 OLED".

Soll heißen: Es macht (zumindest mir) Spaß und lohnt sich ;-).

LG,
Tobias

P.S.: Erster Beitrag. Lese seit Jahren viel mit und lerne stetig. :-) Vielleicht kann ich so ja etwas beitragen und zurückgeben.
Und falls tatsächlich wer dran interessiert sein sollte: https://github.com/tobi01001/LED_Stripe_Dynamic_web_conf (https://github.com/tobi01001/LED_Stripe_Dynamic_web_conf)


Titel: Aw: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Jippy am 13 Mai 2023, 11:38:36
Moin,
ich versuche jetzt schon eine ganze Zeit das Modul auf meinem ESP 8266 Wemos D1 zum Laufen zu bekommen, schaffe es aber irgendwie nicht...
ESP 8266 ist im Arduino installiert und Wemos D1 ausgewählt (ich habe dort schon verschiedene versucht) und der Port ist auch ausgewählt.
Auch die beiden .ino-Dateien habe ich runtergeladen und die Daten dort drin angepasst.
Beim Hochladen bekomme ich aber immer den folgenden Fehler angezeigt...
A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet headerUngültige Bibliothek C:\Users\xxx\Documents\Arduino\libraries\FHEM-LEDStripe-master in keine Header-Dateien (.h) in C:\Users\xxx\Documents\Arduino\libraries\FHEM-LEDStripe-master gefunden gefunden
Kann mir jemand sagen was ich falsch mache und wie ich das beheben kann?
Titel: Aw: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Heatseeker am 27 Januar 2024, 16:34:06
Moin,

vermutlich etwas verspätet, aber ich bin selber erst über dieses interessante Projekt gestolpert, zumal ich gerade selbst noch zwei ESP8266 rumliegen habe...

Kann es sein, dass du die adafruit_neoPixel etc noch nicht installiert hast?

Ich komm aber auch nicht so ganz zurecht welche .ino ich nun brauche... Brauche ich wirklich beide?
Ich bekomme jedoch beim kompilieren auch immer Fehler, dass strip_setup() nicht deklariert wurde,...
Ist das normal, habt ihr das ignoriert?

Grüße
Heatseeker
Titel: Aw: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Adimarantis am 27 Januar 2024, 16:51:04
Passt jetzt zwar nicht ganz zum Thema FHEM, aber ich hätte da eine stand-alone Version im Einsatz die bei mir mit ESP8266 mini D1 läuft:
https://github.com/bublath/ESP8266_FastLED_Effects

Das Teil baut einen captive Access Point auf, damit man den WLAN Zugang konfigurieren kann (wahlweise auch über den Seriell Port direkt aus dem Arduino Studio) und dann hat man diverse schöne Effekte die man über eine Webseite steuern kann.
Wer es manuell will, kann einen Taster dranbauen und 16 presets per Knopfdruck durchcyclen.
Titel: Aw: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Heatseeker am 27 Januar 2024, 17:21:36
Zitat von: Adimarantis am 27 Januar 2024, 16:51:04Passt jetzt zwar nicht ganz zum Thema FHEM, aber ich hätte da eine stand-alone Version im Einsatz die bei mir mit ESP8266 mini D1 läuft:
https://github.com/bublath/ESP8266_FastLED_Effects

Das Teil baut einen captive Access Point auf, damit man den WLAN Zugang konfigurieren kann (wahlweise auch über den Seriell Port direkt aus dem Arduino Studio) und dann hat man diverse schöne Effekte die man über eine Webseite steuern kann.
Wer es manuell will, kann einen Taster dranbauen und 16 presets per Knopfdruck durchcyclen.

mmmh also ohne Anbindung an FHEM... das wäre schade...
Titel: Aw: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: Adimarantis am 27 Januar 2024, 19:53:38
Naja, das lässt sich schon auch irgendwie von FHEM aus steuern, wenn man will.
Alle settings werden in JSON geliefert, also bekommt man mit folgendem Modul
defmod LED HTTPMOD http://192.168.1.193/settings 360
attr LED extractAllJSON 1
schon mal alle Einstellungen die der LED controller kennt
Einstellungen ändern kann man dann mit HTTP posts z.B. mit
http://192.168.1.193/command?id=5schaltet man auf Programm 5 um - alle möglichen Einstellungen hat man durch das extractAllJSON automatisch vorliegen.
Das lässt sich sicher in HTTPMOD auch irgendwie abbilden.
Titel: Aw: Neues Modul zur Steuerung von WS2812b LED stripes
Beitrag von: satprofi am 03 Februar 2024, 15:21:16
hallo. habe mir auch so ein ding link (https://ledlumi-shop.de/Gledopto-WLED-Controller-Pro-Steuergeraet-Controller-Dimmer-GL-C-008WL) besorgt.
die stripes lassen sich alle regeln, nur die weissen leds auf gpio5 lassen sich nur dimmen, aber nicht ein aus schalten. was mache ich da falsch? weder die app noch webif habendazu anleitung.
hat wer sowas am laufen?