2. Wort von einem Staates in yaml Script verwenden

Hi,

Ich möchte das 2. Wort eines States auslesen:
Leerung: Restabfall in 8 tagen

So das nur Restabfall übrig bleibt.

Geht das in Yaml-Code?

LG, Mitch

Du kannst den Text splitten:
states(‘sensor.xyz’).split(’ ')[1]
Die Bedingung fürs splitten ist das Leerzeichen und dann wird der 2. Abschnitt ausgegeben

Darf ich fragen, ob es dazu auch technische Referenzen mit Beispielen gibt?

Seitdem ich vom ioBroker gewechselt bin, ist das mein größtes Problem. Und irgendwie kommt mir das Kit dem Split bekannt vor.

Ist das Yaml, oder wird zu den ganzen Variablen Aktivitäten eine andere Sprache genutz

auch interessant auf der Seite

Hat mir mir leider nicht funktioniert. Das ist mein Yaml-Code:

data:
  title: Mülltonne(n) rausstellen!
  message: states(‘sensor.nachste_abholung’).split(’ ')[1]
action: telegram_bot.send_message

Leider gibt es nichts aus. Im State steht folgendes:
Leerung: Restabfall Morgen

Er soll am Ende des Tages das in der Form ausgeben:
Mülltonne(n) rausstellen!
Liebe Familie XXX, morgen wird der Restabfall abgeholt!

In deinem Code waren auch falsche , und nicht ' oder " als String-Begrenzungszeichen angegeben!

data:
  title: Mülltonne(n) rausstellen!
  message: Liebe Familie XXX, morgen wird der {{ states('sensor.sensor.nachste_abholung').split(' ')[1]}} abgeholt!
action: telegram_bot.send_message
1 „Gefällt mir“

Vielen Dank, jetzt funktioniert es. Ich habe nur 1x den “sensor.” entfernt.

Jetzt ist mir aber noch aufgefallen, dass an der betreffenden 2. Position entweder Restabfall, Bioabfall oder DSD steht. DSD ist da für meine Familie das Problem, weil denen das nix sagt. Kann ich auch irgendwie eine Erkennung einbauen, dass er bei DSD das durch das Wort Gelbe Tonne ersetzt? Das kennen Sie und wissen dann auch was zu tun ist.

Das ich das ganze nur an einen Telegram Bot sende ist nur zu Testzwecken. Ich möchte ihnen dann per Alexa Media Player TTS eine Nachricht an die betreffenden Alexas senden. Da weiss ich aber wie das geht.

Eventuell so?

data:
  title: Mülltonne(n) rausstellen!
  message:  >
    {% set s = states('sensor.nachste_abholung').split(' ')[1] %}
    Liebe Familie XXX, morgen wird der {{ iif((s == 'DSD'),'DEIN_TEXT',s) }} abgeholt!
action: telegram_bot.send_message

Jupp, im Beispiel oben war ein sensor. zu viel drin, sorry!

1 „Gefällt mir“

Erstmal vielen Dank für die Hilfe. Ich bin am Ziel. Ich habe mir oben die Links von justone angesehen, aber damit schaffe ich es nicht, mir die Schreibweise selber mal zu erschliessen.

Deshalb eine Frage an Dich: Nutzt du irgendwelche Referenzen, wo am besten noch Praxisbeispiel enthalten sind? Das wäre cool, oder hast du mittlerweile so eine Code-Schnipsel Grundlage, dass du einfach deine eigenen Automatisierungen als Referenz nutzt?

Ich benutze die Entwicklertools und das Internet :wink: