Ich möchte mehrere Wetterdaten auf einer LED Matrix anzeigen.
Das Ganze soll als Lauftext über WLED laufen.
Soweit funktioniert auch alles.
In der Configuration.yaml habe ich diesen Eintrag gemacht:
rest_command:
wled_text:
url: http://10.0.0.155/json/state
method: POST
payload: '{"seg": [{"col": {{color}}, "n": "{{text}}"}]}'
In der Automation werden dann die Wetterdaten an WLED geschickt:
sequence:
- device_id: ca012a4a7db12ed01c68f90427d8024f
domain: select
entity_id: 7448845df35fface6b9f27ed1a2150b5
type: select_option
option: Scrolling Text
- data:
text: . Temp. {{ states("sensor.gw1100a_outdoor_temperature") }}`C
color:
- 0000FF
- 0
- 0
alias: TMP
enabled: true
action: rest_command.wled_text
Soweit so gut, aber es gibt folgendes Problem:
Die Textlänge ist begrenzt und wenn man die Werte in verschiedenen Farben darstellen will, muss man den Datablock mit den entsprechenden Werten erneut schicken.
Und da fängt das Problem an.
Ich hätte gerne, dass WLED den ersten Block durchscrollt, dann den zweiten usw.
Leider macht das WLED aber nicht. Es führt die Automation in einem Zug aus und somit scrollt nur der letzte Datablock auf der Matrix.
Man könnte zwar zwischen den Blöcken einfach eine gewisse Zeit warten, aber das ist eher eine unschöne Lösung da die Zeiten nie exakt ident sind und somit nicht sauber durchgescrollt wird.
sequence:
- device_id: ca012a4a7db12ed01c68f90427d8024f
domain: select
entity_id: 7448845df35fface6b9f27ed1a2150b5
type: select_option
option: Scrolling Text
- data:
text: . Temp. {{ states("sensor.gw1100a_outdoor_temperature") }}`C
color:
- 0000FF
- 0
- 0
alias: TMP
enabled: true
action: rest_command.wled_text
- delay:
hours: 0
minutes: 0
seconds: 15
milliseconds: 0
- data:
text: . Wind {{ states("sensor.gw1100a_wind_speed") }}km/h
color:
- 00FFFF
- 0
- 0
alias: WIND
enabled: true
action: rest_command.wled_text
Hat Jemand von Euch hier zufällig schon Erfahrungswerte gesammelt?
NormBot
2. September 2025 um 19:49
2
Hallo zurück, leider kann ich Dir bei deiner Lösung nicht helfen, aber ich besitze auch eine Matrix mit 21 x 21 LEDs …
ich würde gern verstehen, wie du den Text in die Scrolling Text Option bringst…
wie ich das in WLED mache in dem ich das Segment benenne ist mir bekannt, aber wie bekomme ich einen Text in Home Assistant an das Display gesendet ?
WO WIE muss ich diesen Teil deiner Sequenz einfügen ?
mach ich das in einer Scene oder einem Script ?
Wäre nett wenn du mir ein Beispiel schicken könntest wie dies anzuwenden ist
Danke im voraus
Entschuldige die späte Antwort!
Ich hoffe, die YAML hilft Dir weiter.
alias: WLED Fenster
description: ""
triggers:
- trigger: time_pattern
minutes: "0"
- trigger: time_pattern
minutes: "10"
- trigger: time_pattern
minutes: "20"
- trigger: time_pattern
minutes: "30"
- trigger: time_pattern
minutes: "40"
- trigger: time_pattern
minutes: "50"
conditions:
- condition: device
type: is_on
device_id: <DEVICE_ID_WLED>
entity_id: <ENTITY_ID_WLED_LIGHT>
domain: light
actions:
- if:
- condition: state
entity_id: sensor.moon_phase
state: new_moon
then:
- device_id: <DEVICE_ID_WLED>
domain: select
entity_id: <ENTITY_ID_WLED_SELECT>
type: select_option
option: MOON 1 NEW
- action: input_text.set_value
target:
entity_id: input_text.mondphase
data:
value: Neumond
- delay:
seconds: 20
- device_id: <DEVICE_ID_WLED>
domain: select
entity_id: <ENTITY_ID_WLED_SELECT>
type: select_option
option: Scrolling Text blau
- action: rest_command.wled_text
data:
text: Mondphase ... {{ states("input_text.mondphase") }}
color:
- 0000FF
- 0
- 0
- if:
- condition: state
entity_id: sensor.moon_phase
state: waning_crescent
then:
- device_id: <DEVICE_ID_WLED>
domain: select
entity_id: <ENTITY_ID_WLED_SELECT>
type: select_option
option: MOON 8 wan C
- action: input_text.set_value
target:
entity_id: input_text.mondphase
data:
value: Abnehmender Sichelmond
- delay:
seconds: 20
- device_id: <DEVICE_ID_WLED>
domain: select
entity_id: <ENTITY_ID_WLED_SELECT>
type: select_option
option: Scrolling Text orange
- action: rest_command.wled_text
data:
text: Mondphase ... {{ states("input_text.mondphase") }}
color:
- FFA000 # <- korrigierter Farbwert
- 0
- 0
# (… vollständige Mond- und Wetterblöcke unverändert,
# nur IDs & Alias oben ersetzt …)
- action: homeassistant.update_entity
data:
entity_id:
- sensor.openweathermap_weather_code
# (… Wetter-Mapping-Abschnitte unverändert …)
- device_id: <DEVICE_ID_WLED>
domain: select
entity_id: <ENTITY_ID_WLED_SELECT>
type: select_option
option: Scrolling Text
- action: rest_command.wled_text
data:
text: aktuelle Wetterdaten ...
color:
- FFFFFF
- 0
- 0
- delay:
seconds: 15
- action: rest_command.wled_text
data:
text: >
. Temp. {{ states("sensor.gw1100a_outdoor_temperature") }}°C |
Wind {{ states("sensor.windrichtung") }} {{ states("sensor.gw1100a_wind_speed") }} km/h |
Spitzen {{ states("sensor.gw1100a_wind_gust") }} km/h .
color:
- FFFFFF
- 0
- 0
- choose:
- conditions:
- condition: and
conditions:
- condition: device
device_id: <DEVICE_ID_COVER>
entity_id: <ENTITY_ID_COVER>
domain: cover
type: is_position
below: 80
- condition: not
conditions:
- condition: device
type: is_off
device_id: <DEVICE_ID_WLED>
entity_id: <ENTITY_ID_WLED_LIGHT>
domain: light
sequence:
- type: turn_off
device_id: <DEVICE_ID_SWITCH>
entity_id: <ENTITY_ID_SWITCH>
domain: switch
mode: single
NormBot
13. November 2025 um 15:06
4
Danke Dir für die Antwort, hab das mit dem Rest API und der Selektion dann noch rausgefunden wie ich verschiedene Bereiche als Scrolling Text ansteuern kann
Magst du deine Lösung mit uns teilen?
in der configuration.yaml
rest_command: !include rest_command.yaml
Inhalt der rest_command.yaml
#######################################################
# #
# WLED MATRIX FILES #
# #
#######################################################
wled_text1:
url: http://192.168.0.186/json/state
method: POST
payload: '{"seg":[{"n": "{{text}}","id":0}]}'
wled_text2:
url: http://192.168.0.186/json/state
method: POST
payload: '{"seg":[{"n": "{{text}}","id":1}]}'
wled_text3:
url: http://192.168.0.186/json/state
method: POST
payload: '{"seg":[{"n": "{{text}}","id":2}]}'
du legst für jeden Bereich eine eigene ID an, und einen Eigenen Namen (Wled_textX)
dann kannst du über HA drauf zugreifen als wled_text1 usw.
Eine Automatisierung kannst du z.b. über Yaml so anlegen, danach schau Sie dir im Visual an, musst natürlich den Trigger ändern auf ein bei Dir bestehendes Gerät
in meinem Fall kommt hier die " Willkommen zuhause" Nachricht einige Sekunden nachdem mein Handy im WLAN ist
Auszug zum Ansteuern:
action: rest_command.wled_text3
data:
text: Willkommen zuhause
ganzes Beispiel mit Umschaltung auf den passenden Kanal in WLED (sollte angelegt ein ein Scrolling Text)
alias: Willkommen zuhause Nachricht
description: ""
triggers:
- trigger: state
entity_id:
- device_tracker.s23_ultra_von_normen
to: home
from: null
conditions:
- condition: state
entity_id: input_boolean.matrix_25x25_ein_aus
state: "on"
actions:
- delay:
hours: 0
minutes: 0
seconds: 15
milliseconds: 0
enabled: true
- device_id: 0465a34906650e51bf1f30fe800661e7
domain: select
entity_id: 70f80bbb95a6dae8075064c20ed4ea1c
type: select_option
option: Uhr Datum Info
- action: light.turn_on
metadata: {}
data:
brightness_pct: 40
rgb_color:
- 0
- 0
- 255
target:
entity_id:
- light.matrix_25x25_segment_2
- device_id: 0465a34906650e51bf1f30fe800661e7
domain: number
entity_id: 92eb1d2a2c961f80b07bf122295a8322
type: set_value
value: 200
- action: rest_command.wled_text3
data:
text: Willkommen zuhause
- delay:
hours: 0
minutes: 0
seconds: 20
milliseconds: 0
enabled: true
- action: automation.trigger
metadata: {}
data:
skip_condition: true
target:
entity_id: automation.temperatur_anderung
mode: single