WLED ohne WLAN/WiFi

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 341

    #1

    WLED ohne WLAN/WiFi

    Hallo zusammen,

    ich habe eine Wallbox 11kW Air und ein dazugehöriges E-Auto. Beide sind in Loxone eingebunden.
    Gerne möchte ich den Ladestand des E-Autos mit einem Prozent-Balken eines Pixel-LED-Streifens anzeigen (WLED).

    Leider habe ich in der Garage kein WiFi Empfang (Edit: extrem schwachen/schlechten Empfang). Hat jemand eine gute Idee, wie ich das dennoch bewerkstelligen könnte? Am liebsten ohne das WLAN weiter zu treiben (Stromverbrauch)
    Vorhanden sind:
    • 2 freie Adern (2,5mm^2, Kabellänge ca. 15m) aus dem Schaltschrank.
    • Strom 230V
    • Loxone Nano IO Air (24V Strom-versorgt von Marantec Torantrieb, 1 Relay noch frei, 7 Digitaleingänge frei.)
    • Loxone Wallbox Air 11kW mit Modbus-Zähler
    • ggf. Zigbee-Empfang
    Möglichkeiten die ich bisher sehe:
    1. 2 Adern nutzen: ggf. mit custom ESP und Analog-In?
    2. Loxone IR Remote Air + WLED IR control
    3. Loxone RGBW Air + ESP32 mit Analog-Wandler + WLED
    4. Loxone Nano Motor Controller Air + ESP32 PWM Wandler? + WLED
    5. ESP32 mit WLED und besserer Antenne → Edit: Diesen Weg bin ich gegangen...
    6. Unifi WiFi Repeater in der Nähe + WLED controller
    7. Unifi PoE Switch + Access Point in der Nähe + WLED controller
    Ich bin gespannt, ob euch noch etwas besseres einfällt . Danke im Voraus!
    Zuletzt geändert von MarkusCosi; In den letzten 4 Wochen.
  • hakkun
    Smart Home'r
    • 16.07.2019
    • 40

    #2
    Cooles Projekt, hab ich auch so umgesetzt. Hab allerdings noch einen custom WLED Effekt dazu geschrieben, da mir der Standard Percentage Effect zu langweilig war. Wie gedenkst du den SoC abzufragen?

    Es gibt wled Controller mit Ethernet, falls du noch ne Möglichkeit hast, ein Netzwerkkabel zu ziehen.

    Ethernet WLED Addressable & PWM Output LED Strip Controller This advanced WLED-based light controller is designed for both addressable RGB LEDs (such as WS2812B, SK6812, UCS8904, etc.) and PWM analog LED strips.Featuring Ethernet connectivity, music-reactive lighting, and powerful ESP32 hardware, it delivers smooth performance, vivid effects, and reliable network integration.In addition, it is engineered with user-friendly hardware enhancements, including a replaceable 20A fuse, built-in logic level shifter, and USB-to-UART interface, making installation, maintenance, and firmware updates safer and easier. ⚙️ Key Features 🎵 Music Reactive Mode Built-in high-sensitivity microphone (or optional external audio input) lets your lights dance in sync with music, creating an immersive visual rhythm experience. 🌐 Ethernet + Wi-Fi Connectivity Supports both wired (Ethernet) and wireless (Wi-Fi 2.4 GHz) connections for fast, stable, and flexible control — ideal for both home and commercial environments. 💡 Dual Output Support Addressable LEDs: WS2812B, SK6812, UCS8904, SM16703, APA102, and more. PWM Analog LEDs: Supports 3-channel (RGB) or 5-channel (RGB+CCT) constant-voltage LED strips. ⚡ High-Performance ESP32 Processor Equipped with a dual-core 240 MHz ESP32 chip, ensuring smooth animations, responsive web control, and over-the-air (OTA) firmware updates. 🛡 Safety & Hardware Enhancements Replaceable 16A fuse protects your controller and LEDs from overcurrent Built-in logic level shifter ensures compatibility with 3.3V or 5V LED data signals USB-to-UART interface for easy firmware flashing and debugging 🧩 Multiple Control Options Built-in WLED Web Interface HTTP / MQTT / UDP integration Works seamlessly with Home Assistant, OpenHAB, and Node-RED 🎨 Rich Lighting Effects Includes over 100 built-in dynamic effects, with adjustable color, brightness, speed, and segment configuration. MCU ESP32 -WROOM-32E(8MB) Network Ethernet / Wi-Fi 2.4 GHz Supported LEDs Addressable & PWM analog strips PWM Channels 3 (RGB) / 5 (RGB+CCT) Addressable Output 800 LEDs / Channel (2 channels in total) Input Voltage DC 5 V – 24 V Music Input I2S PDM Digital Microphone Built in Interfaces DC power jack, terminal block, Ethernet port Firmware Native WLED (OTA upgrade supported) GPIO GPIO32 can connected to sensors or switches Ethernet:Microchip LAN8720A 10/100Mbps ChipsetSupport Ethernet connection to improve network stability and transmission speed Sounds ReactiveBuilt-in high-sensitivity I2S PDM digital microphone enables dynamic music-reactive lighting effects. Synchronize your addressable LED strips with audio for an immersive lighting experience. Built-in replaceable fuseReserved Input and Output(GPIO32) can be used to connect sensors or switches Strip types support: WS2812B WS2811 WS2813 WS2805 WS2815 SK6812 TM1814 APA102 WS2801 LDP8806 GS8208 GPIO: Button(GPIO0) PWM1(GPIO5) PWM2(GPIO16) PWM3(GPIO4) PWM4(GPIO12) PWM5(GPIO2) DAT1(GPIO33) DAT2(GPIO13) I2S_SDPIN(GPIO35 ) I2S_WSPIN(GPIO15 ) I2S_CKPIN(-1) ⚠️ The first rule of upgrading: If it ain't broke, don't fix it!In other words, ensure that there is a good reason to mess with a working installation (e.g., a need to use a new feature or address a found problem fixed in the current version). Custom General Version firmware The device WLED firmware uses DAT1 (GPIO33) as the DATA of the WS281X type light strip by default. If you have other types of light strips, please set it on the setting page according to your actual situation




    Kommentar

  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 341

    #3
    Hallo hakkun,

    nein, ein Ethernet-Kabel bekomme ich leider nicht mehr in die Garage. Jedenfalls nicht ohne aufwändiges Bohren.

    Ich habe jetzt mal einen ESP32 mit externer Antenne ausprobiert. Und tatsächlich habe ich doch noch -82dB Empfangsstärke in der Garage... Damit sollte das eigentlich gehen. Die cod.m Controller, die ich sonst gern nehme, haben leider nur eine on-board Antenne die nicht ausreicht..

    Nun habe ich überlegt den ESP32 mit Antenne den ich rumliegen habe selbst für WLED zu konfektionieren... Aber diese ganze Level-Shifter-Geschichte (link), und die eigentlich wünschenswerten Sicherungsmaßnahmen und zusätzlichen Komponenten (link) schrecken mich dann doch etwas ab.

    Also habe ich mich nach einem WLED-controller mit externer Antenne umgeschaut. Gefunden habe ich exakt Einen: https://quinled.info/quinled-dig-uno/. Dieser wird auch vom WLED-Entwickler wie es scheint empfohlen. Daher habe ich mir den mal bestellt und schaue dann mal weiter...

    Verlockend ist ja der viele Platz und der 24V / GND Output in der Loxone Wallbox drin (siehe hier)...
    Hat hier jemand schonmal etwas Ähnliches versucht und hat Tipps?

    Kommentar


    • MarkusCosi
      MarkusCosi kommentierte
      Kommentar bearbeiten
      …der 24V Ausgang gibt nur 100mA bzw max 2,4Watt… nagut, das wäre auch zu schön gewesen
  • Noschvie
    MS Profi
    • 24.09.2018
    • 606

    #4
    Wäre Powerline Adapter eine Option?

    Kommentar


    • MarkusCosi
      MarkusCosi kommentierte
      Kommentar bearbeiten
      Hi Noschvie! Powerline Adapter wäre wohl eine interessante Option, danke für den Tipp. Daran hatte ich tatsächlich noch nicht gedacht.. Allerdings ginge das ja auch wieder mit einem dauerhaften Stromverbrauch einher der vermutlich ähnlich zu einem Unifi Repeater wäre (max 11W, aper typisch sicher weniger?)... von daher hoffe ich jetzt erst einmal, dass es mit der externen Wifi-Antenne vom QuinLED Dig Uno, bzw. dem drauf geschnallten ESP32 Mini funktioniert... mal schauen, ich warte noch auf das Ding!
  • RiverRaid
    LoxBus Spammer
    • 25.08.2015
    • 337

    #5
    MarkusCosi

    QuinLED mit externer Antenne funktionieren ziemlich gut, die Verwende ich für die Weihnachtsbeleuchtung an Stellen, wo mein WLAN Signal auch sehr schlecht ist...
    Er sollte bald bei Dir ankommen, die Lieferung war bei mir immer innerhalb einer Woche da

    Kommentar

    • MarkusCosi
      LoxBus Spammer
      • 28.09.2023
      • 341

      #6
      ...na da bin ich gespannt...
      Weißt du zufällig wie und ob man einen AM2301A / DHT21-Sensor mit dem QuinLED Dig Uno betreiben kann? Es klingt so als ginge das (link). Aber diese WLED usermod Geschichte verstehe ich nicht. Zumal dort scheinbar zwei Versionen existieren?
      Gleiche Frage für einen externen Temperatur-Sensor (DS18B20). Ich habe den kleinen PCB-On-Chip Dallas Sensor nicht mitbestellt. Kann ich trotzdem so einen Sensor (am Kabel, sowas) einfach anschließen? Oder muss ich dafür auch die WLED firmware neu kompilieren?

      Gibt es irgendwo eine human-readable Anleitung zum Modifizieren eines WLED controllers? Die folgenden finde ich nicht sehr verständlich: https://github.com/wled/WLED/blob/ma...MPLE/readme.md / https://kno.wled.ge/advanced/compiling-wled/ :/...

      Kommentar


      • RiverRaid
        RiverRaid kommentierte
        Kommentar bearbeiten
        Nein, sorry, ich verwende wled bis jetzt nur "Out of the Box" ohne usermods oä
    • MarkusCosi
      LoxBus Spammer
      • 28.09.2023
      • 341

      #7
      kleines Update: nachdem ich stundenlang mit Visual Studio Code + PlatformIO + WLED gekämpft und verloren habe (LED output 1 war stets hard-locked auf einen LED strip typen, DHT Sensor wollte nicht funktionieren), so hat es nun am Ende doch geklappt mit dem großartigen Online-compiler (in Google Chrome): https://wled-compile.github.io/. Dort musste ich auf ein etwas älteres Release gehen damit die LEDs frei konfigurierbar im UI blieben (diesbezüglich gab es ab v0.15 eine grundsätzliche Änderung!).

      Folgende Settings funktionierten mit dem QuinLED-Dig-Uno Board (v3.5r3) + dem ESP32 von QuinLED:
      • WLED v0.14.2, esp32dev;
      • Usermods: DHT Mod (GPIO12, report °C, type 21, report to mqtt, 30sec after boot, 60sec interv), Internal-Temp, Temperature (60sec interval);
      • Settings: Enable MQTT; GPIO data pins: 16,3, relay pin: 15, button pin 0, IR pin: -1;
      Damit bekam ich ein custom WLED firmware .bin-file, welches über das online-Tool auch gleich auf den QuinLED ESP32 (angeschlossen per USB-C) zu flashen war. Per MQTT (einzustellen unter "Synch Tools" im WLED GUI nach dem Setup) bekomme ich so die CPU-Temp vom ESP32 (im GUI unter "user mods" noch aktivieren), die Temperatur (im GUI zu "user mods" noch den Pin auf 13 stellen) in der Installationsdose, sowie die Temperatur & Luftfeuchte vom DHT21 Sensor welchen ich außen an die Installationsdose montiert habe...

      Die Antenne werde ich bei Bedarf noch um einen "windsurfer reflector" erweitern / Verstärken. Hierzu gibt es im Internet Bauanleitungen, siehe hier: link1, link2.

      Den externen DHT21 Sensor (AM2301A / DHT21 von ASAIR) habe ich dafür an die GND, 3.3V, Q2 pins gesteckt, und den internen DS18B20-Sensor mit Kabel habe ich an die 3 pins auf dem Dig Uno Board angelötet + mit Heißkleber etwas befestigt...

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: IMG_0415.jpg Ansichten: 0 Größe: 2,48 MB ID: 472367
      Zuletzt geändert von MarkusCosi; In den letzten 4 Wochen.

      Kommentar


      • MarkusCosi
        MarkusCosi kommentierte
        Kommentar bearbeiten
        PS: WiFi Empfang funktioniert mit -81dB... müsste also gehen... wenn ich dann noch den Windsurfer-Reflektor dazu bastel sollte es noch unproblematische werden...
    • MarkusCosi
      LoxBus Spammer
      • 28.09.2023
      • 341

      #8
      ...funktioniert prima... -78dB Empfang...

      Folgende Effekte nutze ich, wobei ich die json-API benutze und den Befehl über einen Status-Baustein zusammensetzen (Formelbaustein gibt I4=(100-percent)/100*Len(Strip), da ich den Prozent-Balken von oben einspeise; Länge vom vertikalen Stripe 2m) und per virtuellem http-Ausgang an die IP des QuinLED Dig Uno zu senden (Post Befehl, nicht digital). Zuvor habe ich 2 Segmente in der WebUI angelegt (Segment 1: Start 0, Length 39; Segment 2: Start 39, Length 50).
      • breathing-like (Ladevorgang inaktiv): {"on":true,"seg":[{"id":0,"fx":2,"sx":100,"start":<I4>,"stop":39, "co l":[[0,255,255],[0,0,255]]}]}
      • beim Laden: {"on":true,"seg":[{"id":0,"fx":47,"ix":10,"rev":true,"start":<I4> , "stop":39,"col":[[0,255,255],[0,0,255]]}]}
      Für den gleichzeitig angeschlossenen horizontalen Garagensturz nutze ich
      • {"on":true,"seg":[{"id":1,"fx":60,"len":50,"ix":220,"sx":200,"col ":[[0,255,255],[0,0,0],[0,0,0]]}]}

      Kommentar

      • hakkun
        Smart Home'r
        • 16.07.2019
        • 40

        #9
        Servus MarkusCosi,

        ich nutze einen eigens programmierten Effekt. Dafür nutze ich die WLED Fork MoonModules, die zudem noch ein paar mehr Standardeffekt mitbringt. Hier gibt es die Möglichkeit Custom Effekte via Arti-FX zu erstellen (https://mm.kno.wled.ge/moonmodules/arti-fx/).

        Hier habe ich einen Effekt erstellt, der während des Ladevorgangs von 0 auf den aktuellen Ladezustand (in %) hochläuft und anschließend sanft ausdimmt. Sieht dann so aus - im Video am Beispiel 50%. Den SoC übergebe ich direkt als "ix":<v4> über den Statusbaustein.

        Das ganze ist anscheinend recht Speicherintensiv auf den ESP32, bin aktuell noch ein paar Performanceproblemen hinterher, im wesentlichen funktioniert das aber ganz gut.

        https://limewire.com/d/ZlMZL#hbj9BX93rd (Das Video stammt noch aus meiner Testumgebung, man darf leider kein mp4 hier hochladen.)

        Hier der JSON Header (bei MoonModules sinds ne Stange mehr Parameter)

        {"on":true,"bri":128,"transition":7,"mainseg":0 ,"s eg":[{"id":0,"start":0,"stop":24,"grp":1,"spc":0,"of ":0 ,"on":true,"frz":false,"bri":255,"cct":127,"set ":0 ,"n":"CarCharging","col":[[0,255,200,0],[0,0,0,0],[0,0,0,0]],"fx":187,"sx":128,"ix":<v1>,"pal":0,"c1":128," c2" :128,"c3":16,"sel":true,"rev":false,"mi":false,"o1 ":false,"o2":false,"o3":false,"si":0,"m12":0}, {"id ":1,"start":24,"stop":48,"grp":1,"spc":0,"of": 0,"o n":true,"frz":false,"bri":255,"cct":127,"set":0 ,"n ":"CarCharging","col":[[0,255,200,0],[0,0,0,0],[0,0,0,0]],"fx":187,"sx":128,"ix":<v4>,"pal":0,"c1":128," c2" :128,"c3":16,"sel":true,"rev":false,"mi":false,"o1 ":false,"o2":false,"o3":false,"si":0,"m12":0}, {"st op":0},{"stop":0},{"stop":0},{"stop":0},{"stop": 0} ,{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"s to p":0},{"stop":0},{"stop":0},{"stop":0},{"stop": 0}, {"stop":0},{"stop":0},{"stop":0},{"stop":0},{"s top ":0},{"stop":0},{"stop":0},{"stop":0},{"stop": 0},{ "stop":0},{"stop":0},{"stop":0},{"stop":0},{"s top" :0},{"stop":0},{"stop":0}],"ledmap":0}


        Mein Code sieht folgendermaßen aus:

        program CarCharging
        {
        rampTime = 100 // Zeit pro LED in ms
        holdTime = 2000 // Haltezeit am Ziel (ms)
        fadeTime = 2000 // Dauer Fade-Out in ms

        startMillis = millis()
        state = 0 // 0 = Ramp, 1 = Hold, 2 = Fade
        holdStart = 0
        fadeStart = 0

        activeLeds = 0
        targetLeds = 0
        brightness = 255

        function renderFrame() {
        targetLeds = map(intensitySlider, 0, 100, 0, ledCount)
        t = millis() - startMillis

        // Ramp
        if (state == 0) {
        activeLeds = floor(t / rampTime)
        if (activeLeds >= targetLeds) {
        activeLeds = targetLeds
        state = 1
        holdStart = millis()
        }
        }

        // Hold
        if (state == 1) {
        activeLeds = targetLeds
        brightness = 255
        if (millis() - holdStart > holdTime) {
        state = 2
        fadeStart = millis()
        }
        }

        // Fade manuell
        if (state == 2) {
        progress = (millis() - fadeStart) / fadeTime
        if (progress > 1) {
        progress = 1
        }
        brightness = 255 * (1 - progress) // linear abnehmend
        if (progress >= 1) {
        // Reset und neu starten
        state = 0
        startMillis = millis()
        activeLeds = 0
        brightness = 255
        }
        }
        }

        function renderLed(pixelIdx) {
        if (pixelIdx < activeLeds) {
        setPixelColor(pixelIdx, hsv(90, 255, brightness))
        fadeToBlackBy(20, ledCount)
        } else {
        setPixelColor(pixelIdx, hsv(0, 0, 0)) // aus
        }
        }
        }
        Zuletzt geändert von hakkun; In den letzten 3 Wochen.

        Kommentar


        • MarkusCosi
          MarkusCosi kommentierte
          Kommentar bearbeiten
          wahnsinn, das klingt ja echt kompliziert … aber gut zu wissen, dass es soetwas gibt und was man mit WLED so alles machen kann…

          Dann belasse ich es wohl mal bei meinem Effekt. Der ist deinem gar nicht mal unähnlich

        • Noschvie
          Noschvie kommentierte
          Kommentar bearbeiten
          Ist diese Komplexität von MoonModules wirklich notwendig?

        • hakkun
          hakkun kommentierte
          Kommentar bearbeiten
          @MarkusCosi

          Könntest du ein Video hochladen, damit man den Effekt in voller Schönheit sieht?

          @Noschvie
          Ich denke nicht, aber für mich wars die zugänglichste Lösung. Custom Effekte kann man auch direkt in WLED kompilieren (direkt auf dem Esp32) , dann ist man auch bei einer custom WLED SW. Das war mir aber zu kompliziert in der Implementierung
      • MarkusCosi
        LoxBus Spammer
        • 28.09.2023
        • 341

        #10
        anbei ein Video vom Effekt wie in Post #8 beschrieben... Der läuft im Video noch in die "falsche" Richtung (folgende flag fehlte noch: "rev":true).

        Kommentar


        • hakkun
          hakkun kommentierte
          Kommentar bearbeiten
          Gefällt mir auch gut!

        • challo
          challo kommentierte
          Kommentar bearbeiten
          wird hier auch der aktuelle Ladestand berücksichtigt oder läuft der Effekt einfach immer über den kompletten streifen?
      • MarkusCosi
        LoxBus Spammer
        • 28.09.2023
        • 341

        #11
        ...natürlich der aktuelle Ladestand ... Im Video z.B. ca. 61% (Profil geht bis zur Garagentor-Schiene)... so aktuell wie der eben in Loxone über die PSA API zur Verfügung steht... Das geschieht über den Status-Baustein-Parameter I4, welcher den Start (=100-%) der aktiven Pixel des Segments #0 angibt (das Segment geht von 0...39), der Rest bleibt dunkel. Der Stripe leuchtet also von Start=100-% (irgendwo oben am Streifen) bis zum unteren Ende (=Pixel 0), so dass am Ende der Streifen von unten =0% bis zum Ladestand (SoC) beleuchtet und animiert ist:
        • {"on":true,"seg":[{"id":0,"fx":47,"ix":10,"rev":true,"start":<I4> ,"stop":39,"col":[[0,255,255],[0,0,255]]}]}
        Bei dem Lades-Status bzw. SoC habe ich nach wie vor das Problem, dass der Zeitpunkt der Abfrage nicht wirklich gut steuerbar ist. Aber zumindest täglich und beim An- und Abstellen des Fahrzeugs wird dieser aktualisiert...

        PS: folgendes 2m-Profil habe ich eingesetzt: link. Stripes: WS2811, black PSB bright, DC12V, BTF-Lighting, RGB, 60 LEDs/m, IP65.
        Zuletzt geändert von MarkusCosi; In den letzten 2 Wochen.

        Kommentar

        • MarkusCosi
          LoxBus Spammer
          • 28.09.2023
          • 341

          #12
          ...Anzeige mit Prozent-Label (Folien-Klebebuchstaben / Plotter-Buchstaben; online bestellt)..
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 33C2ED5A-0DAE-4530-84ED-7645E84CD4C4.jpg
Ansichten: 0
Größe: 1,30 MB
ID: 473872

          Kommentar

          Lädt...