Hallo Zusammen,
ich habe mir ein neues Projekt “ausgedacht” und bin gerade bei der Lösungsfindung. Vielleicht könnt ihr mir helfen.
Idee:
Im Vorgarten steht eine Figur und diese möchte ich mit RGB-LED’s beleuchten. Ich würde gerne die Farbe der LED’s über die Aussentemperatur bestimmen. Z.B.:
unter 5° blau
5-12° cyan
12-21° grün
21-24° orange
über 24° rot
Die Aussentemperatur ist im HA vorhanden. Die Frage die sich mir stellt ist: Wie steuere ich die LED’s? Da fällt mir als erstes WLED ein. Damit kann man zwar coole Muster machen, aber was temperaturabhängiges habe ich noch nicht gefunden. Oder habe ich da was übersehen?
Vielleicht hat ja jemand eine Idee für mich. Ich bin da völlig offen was LED’s und Ansteuerung an geht. Ich habe auch schon an eine autarke Steuerung über einen ESP nachgedacht. Aber ich würde das gerne von HA aus steuern wollen. Damit ich einfach ein anderes Beleuchtungsprogramm, bei besonderen Gelegenheiten (z.B. Party), laufen lassen kann.
Du bist also quasi auf der Suche nach den richtige LEDs?
Die Automation willst du ja in HA umsetzen (das sollte kein Problem darstellen). WLED wäre eine Möglichkeit, alternativ gibt es auch einen shelly RGBW2 oder andere Zigbee fähige LED Stripes oder Leuchten.
x1marc
27. März 2025 um 11:19
3
Ich mache genau sowas über ESP Home einem ESP 32 Super mini und einen WS2812b LED Streifen inkl. Automation in HA.
Funktioniert super
alias: Temperatur LED Indikator
description: LED-Farbe basierend auf Außentemperatur (korrigierte Version)
triggers:
- trigger: state
entity_id:
- sensor.thermometer_drausen_temperature
actions:
- choose:
- conditions:
- condition: template
value_template: >-
{{ (states('sensor.thermometer_drausen_temperature') |
replace(',', '.') | float) >= 20 }}
sequence:
- target:
entity_id: light.statusanzeige_light_4
data:
rgb_color:
- 255
- 0
- 0
brightness_pct: 30
action: light.turn_on
- conditions:
- condition: template
value_template: >-
{{ (states('sensor.thermometer_drausen_temperature') |
replace(',', '.') | float) >= 10 }}
- condition: template
value_template: >-
{{ (states('sensor.thermometer_drausen_temperature') |
replace(',', '.') | float) < 20 }}
sequence:
- target:
entity_id: light.statusanzeige_light_4
data:
rgb_color:
- 255
- 165
- 0
brightness_pct: 30
action: light.turn_on
- conditions:
- condition: template
value_template: >-
{{ (states('sensor.thermometer_drausen_temperature') |
replace(',', '.') | float) >= 0 }}
- condition: template
value_template: >-
{{ (states('sensor.thermometer_drausen_temperature') |
replace(',', '.') | float) < 10 }}
sequence:
- target:
entity_id: light.statusanzeige_light_4
data:
rgb_color:
- 0
- 0
- 255
brightness_pct: 30
action: light.turn_on
- conditions:
- condition: template
value_template: >-
{{ (states('sensor.thermometer_drausen_temperature') |
replace(',', '.') | float) < 0 }}
sequence:
- target:
entity_id: light.statusanzeige_light_4
data:
rgb_color:
- 185
- 185
- 249
brightness_pct: 30
action: light.turn_on
mode: single
Genau, das Shelly Modul hatte ich völlig bei meinen Überlegungen vergessen. Das muss ich mir mal genauer anschauen. Zigbee habe ich nicht. Danke für den Denkanstoß.
Das sieht schon mal ganz nett aus. Kleines Luxus-Problem: Ich kann die tollen Effekte von WLED nicht nutzen. Zur Not wird das mein Einstieg. Vielen Dank dafür.
Nur kurz zum Verständnis: statusanzeige_light_4
so hast du dein ESP-Modul benannt, oder?
x1marc
27. März 2025 um 12:16
6
Das ist bei mir ein ws2815b Streifen mit 4 Led’s.
Led 1= Türe aufgeschlossen grün / abgeschlossen rot
Led 2= noch nicht verwendet
Led 3= noch nicht verwendet
Led 4= Temperatur außen
ESP Home code kann ich heute abend reinstellen wenn benötigt.
Gerne. Dann kann ich was lernen.
x1marc
28. März 2025 um 12:31
8
esphome:
name: statusanzeige
friendly_name: Statusanzeige
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key:
ota:
- platform: esphome
password:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
reboot_timeout: 5min
fast_connect: true
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Statusanzeige Fallback Hotspot"
password: "QZw3eFBEesUR"
web_server:
port: 80
version: 3
local: true
# auth:
# username: !secret web_server_username
# password: !secret web_server_password
captive_portal:
# IP Infos
text_sensor:
- platform: wifi_info
ip_address:
name: ESP IP Address
ssid:
name: ESP Connected SSID
bssid:
name: ESP Connected BSSID
mac_address:
name: ESP Mac Wifi Address
scan_results:
name: ESP Latest Scan Results
dns_address:
name: ESP DNS Address
#Restart Knopf
button:
- platform: restart
name: "Neustart"
#Status
binary_sensor:
- platform: status
name: "Verbunden?"
sensor:
#Wlan Empfang dB
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
#Wlan Empfang %
- platform: copy # Reports the WiFi signal strength in %
source_id: wifi_signal_db
name: "WiFi Signal %"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "% Signal "
entity_category: "diagnostic"
device_class: ""
#Betriebszeit
- platform: uptime
type: seconds
name: Uptime Sensor
light:
- platform: neopixelbus
type: GRB
variant: WS2812
id: light1
pin: GPIO2
num_leds: 8
name: "Statusanzeige"
internal: true
default_transition_length: 0.5s
effects:
- random:
name: Zufällige Farbe 3sec
transition_length: 1s
update_interval: 3s
- strobe:
- pulse:
- pulse:
name: "Fast Pulse"
transition_length: 0.5s
update_interval: 0.5s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Slow Pulse"
transition_length: 500ms
update_interval: 2s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Asymmetrical Pulse"
transition_length:
on_length: 1s
off_length: 500ms
update_interval: 1.5s
- platform: partition
name: "Light 1"
segments:
# Use first 5 LEDs from the light with ID light1
- id: light1
from: 0
to: 1
default_transition_length: 0.5s
effects:
- random:
name: Zufällige Farbe 3sec
transition_length: 1s
update_interval: 3s
- pulse:
- pulse:
name: "Fast Pulse"
transition_length: 0.5s
update_interval: 0.5s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Slow Pulse"
transition_length: 500ms
update_interval: 2s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Asymmetrical Pulse"
transition_length:
on_length: 1s
off_length: 500ms
update_interval: 1.5s
- platform: partition
name: "Light 2"
segments:
# Use LEDs 6-10 from the light with ID light1
- id: light1
from: 2
to: 3
default_transition_length: 0.5s
effects:
- random:
name: Zufällige Farbe 3sec
transition_length: 1s
update_interval: 3s
- strobe:
- pulse:
- pulse:
name: "Fast Pulse"
transition_length: 0.5s
update_interval: 0.5s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Slow Pulse"
transition_length: 500ms
update_interval: 2s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Asymmetrical Pulse"
transition_length:
on_length: 1s
off_length: 500ms
update_interval: 1.5s
- platform: partition
name: "Light 3"
segments:
# Use LEDs 6-10 from the light with ID light1
- id: light1
from: 4
to: 5
default_transition_length: 0.5s
effects:
- random:
name: Zufällige Farbe 3sec
transition_length: 1s
update_interval: 3s
- strobe:
- pulse:
- pulse:
name: "Fast Pulse"
transition_length: 0.5s
update_interval: 0.5s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Slow Pulse"
transition_length: 500ms
update_interval: 2s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Asymmetrical Pulse"
transition_length:
on_length: 1s
off_length: 500ms
update_interval: 1.5s
- platform: partition
name: "Light 4"
segments:
# Use LEDs 6-10 from the light with ID light1
- id: light1
from: 6
to: 7
default_transition_length: 0.5s
effects:
- random:
name: Zufällige Farbe 3sec
transition_length: 1s
update_interval: 3s
- strobe:
- pulse:
- pulse:
name: "Fast Pulse"
transition_length: 0.5s
update_interval: 0.5s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Slow Pulse"
transition_length: 500ms
update_interval: 2s
min_brightness: 0%
max_brightness: 80%
- pulse:
name: "Asymmetrical Pulse"
transition_length:
on_length: 1s
off_length: 500ms
update_interval: 1.5s
1 „Gefällt mir“