Zeilenumbruch in Benachrichtigung?

Hallo zusammen,

ich möchte mir als Status per Telegram über den Command “/Status”, Benachrichtigungen schicken lassen.

Das funktioniert auch soweit.
Ich möchte aber, dass jedes Gerät in einer extra Zeile steht.

Hier der Code:

action: notify.home
data:
  title: "*Statusupdate*"
  message: |-
    .
    *Folgende Fenster sind noch offen:* 
     {{ expand('binary_sensor.alle_fenster')
      | selectattr('state', 'eq', 'on') 
      | map(attribute='name') 
      | list 
      | join (', ')
      | replace('binary_sensor.fenster_kammer_contact', 'Kammer')
      | replace('binary_sensor.fenster_wohnzimmer_links_contact', 'Wohnzimmer')
      | replace('binary_sensor.fenster_wohnzimmer_rechts_contact', 'Wohnzimmer')
      | replace('binary_sensor.fenster_schlafzimmer_contact', 'Schlafzimmer')       
      | replace('binary_sensor.fenster_bad_contact', 'Bad')
      | replace('binary_sensor.fenster_kuche_contact', 'Küche')
      | replace('binary_sensor.fenster_buro_contact', 'Büro')
    }}
    .
    *Folgende Lampen sind  an:* 
     {{ expand('light.alle_lampen')
      | selectattr('state', 'eq', 'on') 
      | map(attribute='name') 
      | list 
      | join (', ')

    }}

Aktuell werden alle nacheinander geschrieben, was erstens nicht schön aussieht und zweitens unübersichtlich ist.
Die Punkte in den Leerzeilen hätte ich auch gern weg.

Screenshot 15.03.2025 um 15.07.03 PM

Kann mir jemand sagen, wie ich das schreiben muss?

Hi,
versuche mal einen Zeilenumbruch zu erzeugen…

Also anstelle von join(', ') einfach join('\n')
Und die Punkte hast du in den Code gesetzt…

Hey cool, probiere ich nachher gleich mal aus.

Ja, die Punkte habe ich gesetzt.
Aber an Stelle der Punkte soll eine Leerzeile erscheinen, so dass die Gliederung schöner aussieht.

Edit:
Der Zeilenumbruch funktioniert jetzt.
Hatte erst /n und nicht \n.
So sieht es schick aus.

Danke dir… :grin:

Wie bekomme ich es denn hin, dass vor den Zimmern auch noch die Temperaturen mit einer Nachkommastelle angezeigt werden?

Habe jetzt schon einiges versucht, aber nichts führte zum Erfolg. :sweat_smile::face_with_peeking_eye:

    *Temperaturen:* 
    {{ expand('sensor.temperaturen_alle')
      | map(attribute='name') | sort("name") | reverse
      | list 
      | join ('\n')
      | replace('Temp - Außen Büro Temperatur', 'Außen Büro')
      | replace('Temp - Außen Küche Temperatur', 'Außen Küche')
      | replace('Temp - Bad Temperatur', 'Bad')
      | replace('Temp - Büro Temperatur', 'Büro')
      | replace('Temp - Flur Temperatur', 'Flur')
      | replace('Temp - Kammer Temperatur', 'Kammer')
      | replace('Temp - Küche Temperatur', 'Küche')
      | replace('Temp - Schlafzimmer Temperatur', 'Schlafzimmer')
      | replace('Temp - Wohnzimmer Temperatur', 'Wohnzimmer')

    }}

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

ok,
versuche mal das:

*Temperaturen:*  
{{ expand('sensor.temperaturen_alle')
  | sort(attribute='name') | reverse
  | map(attribute='entity_id') 
  | map('regex_replace', '^sensor.temp_(.*)_temperatur$', '\\1') 
  | map('replace', '_', ' ') 
  | map('title') 
  | list 
  | zip(expand('sensor.temperaturen_alle') | map(attribute='state') | map('float') | map('round', 1))
  | map('join', ': ') 
  | join('\n')
}}

Hier wird nun auch der ‘state’ der Entität ausgelesen.

Danke dir.
Ich bekomme allerdings den Fehler:

Message malformed: template value should be a string for dictionary value @ data['actions'][0]['choose'][0]['sequence'][0]['data']

Hier der gaze Code:

action: notify.home
data:
  title: "*--Statusupdate--*"
  message: |-
    .
    *Folgende Fenster sind noch offen:* 
    {{ expand('binary_sensor.alle_fenster')
      | selectattr('state', 'eq', 'on') 
      | map(attribute='name') 
      | list 
      | join ('\n')
      | replace('Fenster - Kammer', 'Kammer')
      | replace('binary_sensor.fenster_wohnzimmer_links_contact', 'Wohnzimmer')
      | replace('binary_sensor.fenster_wohnzimmer_rechts_contact', 'Wohnzimmer')
      | replace('Fenster Schlafzimmer', 'Schlafzimmer')       
      | replace('binary_sensor.fenster_bad_contact', 'Bad')
      | replace('binary_sensor.fenster_kuche_contact', 'Küche')
      | replace('binary_sensor.fenster_buro_contact', 'Büro')
    }}

    *Folgende Lampen sind an:* 
    {{ expand('light.alle_lampen')
      | selectattr('state', 'eq', 'on') 
      | map(attribute='name') | sort("name") | reverse
      | list 
      | join ('\n')
      | replace('Licht - LED Bulb - Couch L', 'WZ Couch L')
      | replace('Licht - LED Bulb Couch R', 'WZ Couch R')
      | replace('R Ambi', 'WZ Ambi R')
      | replace('L Ambi', 'WZ Ambi L')
      | replace('Licht - LED Bulb Flur', 'FL LED Bulb')
      | replace('Licht - LED Bulb Leselicht', 'WZ Leselicht')
      | replace('Licht - LED Bulb Kammer', 'KA LED Bulb')
      | replace('Licht - LED Strip Trennwand Büro', 'BÜ Trennwand')

    }}

    *In folgenden Zimmern ist Bewegung:* 
    {{ expand('binary_sensor.bewegungsmelder_alle')
      | selectattr('state', 'eq', 'on') 
      | map(attribute='name') | sort("name") | reverse
      | list 
      | join ('\n')
      | replace('Bewegung - Küche PM', 'Küche')
      | replace('Bewegung - Büro', 'Büro')

    }}
    
    *Temperaturen:*  
    {{ expand('sensor.temperaturen_alle')
      | sort(attribute='name') | reverse
      | map(attribute='entity_id') 
      | map('regex_replace', '^sensor.temp_(.*)_temperatur$', '\\1') 
      | map('replace', '_', ' ') 
      | map('title') 
      | list 
      | zip(expand('sensor.temperaturen_alle') | map(attribute='state') | map('float') | map('round', 1))
      | map('join', ':') 
      | join('\n')
      
    }}

oh, ok …
versuche mal das hier:

*Temperaturen:*  
{% for sensor in expand('sensor.temperaturen_alle') | sort(attribute='name') | reverse %}
  {{ sensor.name | replace('Temp - ', '') | replace(' Temperatur', '') }}: {{ sensor.state | float | round(1) }}°C
{% endfor %}

Villeicht geht es so…
Ich bin da nicht so der Profi :slight_smile:

1 „Gefällt mir“

Hey cool, hat geklappt.

Habe es noch bissel angepasst.

    *Temperaturen:*  
    {% for sensor in expand('sensor.temperaturen_alle') | sort(attribute='name') %}
    {{ sensor.state | float | round(1) }}° - {{ sensor.name | replace('Temp - ', '') | replace(' Temperatur', '') }} 
    {% endfor %}

Noch eine Frage, wie bekomme ich die Leerzeilen dazwischen weg? :thinking:

Edit:

Hab es hinbekommen.
Jetzt sieht es richtig schick aus.
Vielen Dank nochmal :wink:

1 „Gefällt mir“