LED Stripes mit ESPhome

dazu gibt es sicher hier schon ein paar Themen, zB dieser

bei mir funktioniert dieses setup perfekt mit WLED inkl. unterschiedlicher Effekte

jetzt möchte ich zusätzlich einen Temperatur-Messer hier einbauen, siehe hier

das geht mit WLED aber nicht so einfach sondern wohl nur mit ESPHome und da funktioniert leider nichts von beiden Optionen:

dies wäre fastled

light:
  - platform: fastled_clockless
    chipset: WS2812
    pin: GPIO16
    num_leds: 145
    rgb_order: GRB
    name: "Sauna_LED"

und dies neopixel

light:
  - platform: neopixelbus
    type: GRB
    variant: WS2812
    pin: GPIO16
    num_leds: 145
    name: "Sauna_LED"
    id: sauna_led
    default_transition_length: 2s

wie könnte ich denn den LED Stripe & den Temp.-Messer in ein Teil unterbringen?

auf einem ESP32 mit

- platform: esp32_rmt_led_strip

für den LED.Streifen.

Willst du die Temperatur in Würfel oder Scheiben schneiden? Und wie fein?
SCNR

Als Thermometer kannst du die üblichen Verdächtigen unter ESPHome verwenden.

  • DS18B20
  • DHT 10/20
  • BME irgendwas
    usw.

Thermometer läuft bereits alleine am ESP32 mit einem DS18B20

und da soll jetzt noch der LED Strip mit dran.

Frage:

was hätte ich theoretisch beim Basteln geschrottet, wenn ich DATA und GND vertauscht hätte?

heute morgen ging noch alles und jetzt binkt das WLED und der ESP32 schaltet nur noch die ersten 2 LEDS ein.

Da ist jedes Teil ein Ausfallkandidat, wahrscheinlich ist aber das Bauteil, bei dem die Leitungen vertauscht wurden, also in diesem Falle wohl die LEDs

es ist immer der worst-case, den kompletten Stripe in der Sauna auszutauschen ist natürlich sehrviel mehr Arbeit als nur den ESP32.

Kann auch nur der GPIO defekt sein?

Wie ich sagte, ist jedes Teil in so einem Fall der Ausfallkandidat.

Den GPIO kannst du ja, je nach Einbausituation, schnell testen.

Es könnte auch sein, daß nur die dritte LED defekt ist. Dann müsstest du im Fall der Fälle nur die ersten drei überbrücken, indem du die Datenleitung an die vierte anschließt.

erscheint mir recht unwahrscheinlich, wie gesagt habe ich da zuerst ein

WLED dran gehabt und das steuert aktuell ALLE LEDs an verhält sich aber völlig konfus, soll heissen die LEDS blinken und wechseln wahllos die Farbe

und aktuell habe ich einen ESP32 mit ESPHome dran (wegen dem zusätzlichen Thermometer) und da leuchten nur die 2 ersten LEDS.

Es sind zwei unterschiedliche ESPs (mal mit WLED und mal mit ESPHome).

Werde wohl mal einen neuen LED Stripe bestellen, kann man immer mal gebrauchen.

ich habe einen neuen LED Stripe bestellt, kommen wir mal zurück zur eigentlichen Frage:

Wie bekomme ich die LED Steuerung und einen Themperatur Sensor (DS18B20) auf einen ESP?

beides einzeln funktioniert aber wenn ich es in einen ESP packe, spinnt die LED Steuerung.

Ein anderer Ansatz könnte ein modifiziertes WLED sein. Da kommen die Themeraturwerte dann per MQTT rein.

Hat das schonmal jemand gemacht?

Warum kannst du beides nicht an den ESP basteln? Sollte doch locker funktionieren.

Wo liegt der Fehler bzw. was funktioniert nicht? Kommt ein Fehler in ESPHome?

wenn ich auf den ESP-WROOM-32U

WLED flasche, läuft alles wie es soll (mit 145 LEDs)

wenn ich auf den ESP nur den Temperatur-Sensor flasche mit

code:
# 1-Wire Bus definieren
one_wire:
  - platform: gpio
    pin: GPIO14

# Example configuration entries
sensor:
  # only one device
  - platform: dallas_temp
    name: SaunaTemp
    update_interval: 120s

funktioniert es.

Wenn ich auf den ESP die ESPHome Version der LED Ansteuerung flashe mit dem code aus dem 1. Beitrag werden die Farben falsch geschaltet, bei orange kommt nur rot und bei lila werden abwechselnd grüne und hellbaue LEDs geschaltet, alles irgendwie durcheinander und wenn es mal richtig ist dann springt nach ca 10min. alles auf rot und wenn der Stripe ausgeschaltet wurde leuchtet trotzdem immer noch die letzte LED.

und mit der neopixel-Version gehen auch keine Effekte (was jetzt in der Sauna nicht so wichtig ist weil man da eh kein wildes Geflacker braucht.

Im Moment muss ich erstmal davon ausgehen, daß der Stripe defekt ist durch meinen Fehler (siehe oben)

Falls möglich, bau das ganze mal um. Den DS18B20 auf GPIO4 und probier diesen Code:


one_wire:
  - platform: gpio
    pin: GPIO4   

sensor:
  - platform: dallas_temp
    name: "Sauna Temperatur"
    id: sauna_temp
    update_interval: 120s
    accuracy_decimals: 1



light:
  - platform: neopixelbus
    type: GRB
    variant: WS2812
    pin: GPIO16
    num_leds: 145
    name: "Sauna LED"
    id: sauna_led
    method: esp32_rmt
    default_transition_length: 2s

Vielleicht klappt the Methode

ok, werde ich testen und womit ich mich immer etwas schwer tue ist die Identifikation des ESP

da steht bei mir aktuell bei diesem Projekt:

esp32:
  board: esp32dev
  framework:
    type: arduino

aber vielleicht ist das nicht richtig?

auf dem Chip lese ich wie gesagt ESP-WROOM-32U und auf der Rückseite: ESP32_Devkitc_v4

Könnte aber trotzdem gehen.

Hast du ein Bild oder Link davon?

Sowas kann man vorbeugen, den Data-Pin zwischen ESP und LES puffern und den Puffer beim ESp unterbringen :grin:

also tatsächlich war da sogar ein 470 Ohm Widerstand noch in der DATA Leitung, wenn Du das gemeint hattest.

im Keller brauche ich was mit einer externen Antenne damit da WLAN ankommt ….

Du hast da diese Zeile im code neu eingefügt:

method: esp32_rmt

und das verursacht beim Kompilieren diese Fehlermeldung:

/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/rmt.h:18:2: warning: #warning “The legacy RMT driver is deprecated, please use driver/rmt_tx.h and/or driver/rmt_rx.h” [-Wcpp] 18 | #warning “The legacy RMT driver is deprecated, please use driver/rmt_tx.h and/or driver/rmt_rx.h”

Kompielierung läuft aber bis zu Ende durch ….

ansonsten hast Du den GPIO für den Temp-Sensor von 14 auf 4 geändert.

EDIT:

ich habe diesen ESP nochmals als new device angesprochen und dann kommt da:

esp32:
  board: az-delivery-devkit-v4
  framework:
    type: esp-idf

wobei es jetzt nicht von AZ-Delivery stammt sondern ein AliExpress clone ist.

aber der framework typ ist ein anderer?

und mit diesem framework typ wiederum geht Neopixelbus nicht …

stecke gerade in einer Sackgasse ….

Die esp32-rmt-Meldung bedeutet nur, dass es langfristig dafür neue Header gibt, aber der alte noch geht.

Ging denn damit deine LED und der DS18B20?

Wenn ich mit ESPHome einen neuen Chip flashe, verlasse ich mich auf das, was der Builder selbst erzeugt. Den Header mit allen nötigen Chipinformationen solltest du so lassen, wie er ist und die Änderungen und eigene Programme erst hinter “captive_portal:” einfügen. Davor alles so lassen, wie es ist.

Und bei den Abschnitten für die einzelnen Komponenten solltest du dich an das halten, was in der Doku zu ESPHome steht und lediglich die Daten an deine Gegebenheiten anpassen, also Pin, Anzahl der LEDs, Chipset der LED-Stripes usw.

Gleiches gilt für die Temperatursensoren. Auch dafür ist die Doku eine erste, gut funktionierende Anlaufstelle.

Der Anschluss der externen Antenne ist in den meisten Fällen nicht aktiviert. Dazu musst du zuerst die Brücke in Form eines kleinen SMD-Widerstandes umlöten.
Wie das geht, ist zumindest bei Amazon in den Bildern vieler Angebote halbwegs brauchbar beschrieben. Wie das direkt beim Chinesen ist… keine Ahnung.

das wäre aber blöd, habe explizit ein Angebot mit ext. WLAN Antenne gekauft, da müsste man davon ausgehen, daß die dann auch aktiviert ist …

kann ich das irgendwo checken, zB anhand der WLAN-Signal-Stärke?

EDIT:

also ohne angeschlossene ext. WLAN Antenne kann sich das Teil garnicht mit der FritzBox verbinden, also gehe ich mal davon aus, das nur diese Antenne funktioniert zumal das Ding auch gar keine onboard WLAN-Antenne hat (siehe Foto oben)

Meistens ist auch bei diesen Angeboten die interne Antenne aktiviert, weil die einfach off the shelf funktioniert.
Wenn das bei einem Angebot nicht eindeutig erkennbar ist, kauft man es eben nicht und sucht nach einem, wo es dabei steht oder wo man zumindest erkennen kann, wie man die externe Antenne aktiviert. Daß es bei den allerwenigsten Angeboten eine ausreichende Anleitung gibt, ist ja nichts neues, also muss man sich halt auf die Artikelbeschreibung verlassen können.

Prüfen kann man das einfach mit einer Lupe. Irgendwo in der Nähe des Antennenanschlusses sind meistens drei Lötpunkte. Von denen führen Leiterbahnen zum Chip (meistens der “mittlere”), einer zur internen und einer zur Externen Antenne. Und meistens ist die Brücke zwischen dem Anschluss zum Chip und dem zur internen Antenne eingelötet.

Bei deinem Bild sehe ich allerdings nicht mal eine interne Antenne (Mach doch mal Bilder von der Ober- und Unterseite, die da etwas mehr erkennen lassen). Eventuell hast du da Glück, daß es die gar nicht gibt und du nichts umlöten musst.
Bei den Boards, die ich mit externer Antenne gekauft habe und auch bei den meisten Angeboten, die ich mir angesehen habe, war die Brücke aber immer auf der internen Antenne.