Scrolling Text auf WLED Matrix über Automation

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?

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 :slight_smile:

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

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 :slight_smile:

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 :slight_smile:

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