Initial draft for calendar on eopaperframe by qwen3.6-30b

This commit is contained in:
2026-07-10 15:16:38 +02:00
parent e4a4aacc63
commit 2879dbeaa0
5 changed files with 866 additions and 252 deletions
+132 -67
View File
@@ -139,6 +139,10 @@
trigger: time
conditions: []
actions:
- action: notify.mobile_app_apollo
data:
message: Lodere es, Lustknabe.
title: 420!
- data:
title: 420!
message: Lodere es, Lustknabe.
@@ -179,10 +183,6 @@
topic: awtrix_desk/notify
payload: '{"text": "420, lodere es, Lustknabe!"}'
action: mqtt.publish
- action: notify.mobile_app_apollo
data:
message: Lodere es, Lustknabe.
title: 420!
mode: single
- id: '1623911524804'
alias: TV Anti-Reflexion (undo)
@@ -227,28 +227,28 @@
action: light.turn_on
- data:
cache: true
media_player_entity_id: media_player.home_assistant_voice_0a7c6b_media_player
media_player_entity_id: media_player.home_assistant_voice_0a7c6b
message: Ab ins Bett, Schlafenszeit.
target:
entity_id: tts.piper
enabled: true
action: tts.speak
enabled: true
- data:
cache: true
media_player_entity_id: media_player.home_assistant_voice_09c0e7_media_player
media_player_entity_id: media_player.home_assistant_voice_09c0e7_media_player_2
message: Ab ins Bett, Schlafenszeit.
target:
entity_id: tts.piper
enabled: true
action: tts.speak
enabled: true
- data:
cache: true
media_player_entity_id: media_player.m5stack_atom_echo
message: Ab ins Bett, Schlafenszeit.
target:
entity_id: tts.piper
enabled: true
action: tts.speak
enabled: true
mode: single
- id: '1623954512941'
alias: Licht im Schlafzimmer zum Aufwachen einschalten
@@ -278,10 +278,8 @@
alias: 'Anruf: Beim Klingeln grün blinken'
description: ''
triggers:
- entity_id:
- sensor.fritz_box_7690_anrufmonitor_dem_commander1024_seine_cloud
to:
- ringing
- entity_id: sensor.fritz_box_7490_call_monitor_dem_commander1024_seine_cloud
to: ringing
trigger: state
- entity_id:
- sensor.le2123_phone_state_2
@@ -303,8 +301,8 @@
- 0
target:
entity_id:
- light.awtrix_b8658c_indicator_1
- light.awtrix_528bd4_indicator_1
- light.awtrix_desk_indicator_1
- light.awtrix_kitchen_indicator_1
action: light.turn_on
- data:
scene_id: wled_last_state
@@ -337,18 +335,16 @@
- data: {}
target:
entity_id:
- light.awtrix_b8658c_indicator_1
- light.awtrix_528bd4_indicator_1
- light.awtrix_desk_indicator_1
- light.awtrix_kitchen_indicator_1
action: light.turn_off
mode: single
- id: '1625481640348'
alias: 'Anruf: Beim Telefonieren Musik pausieren'
description: ''
triggers:
- entity_id:
- sensor.fritz_box_7690_anrufmonitor_dem_commander1024_seine_cloud
to:
- talking
- entity_id: sensor.fritz_box_7490_call_monitor_telefonbuch
to: talking
trigger: state
- entity_id:
- sensor.le2123_phone_state_2
@@ -366,8 +362,9 @@
- data:
scene_id: media_last_state
snapshot_entities:
- media_player.wohnzimmer
- media_player.wohnzimmer_main
- media_player.lg_webos_smart_tv
- media_player.ccze
- media_player.spotify_marcus_scholz
- media_player.xboxonex
action: scene.create
@@ -388,7 +385,7 @@
trigger: state
- target:
entity_id:
- scene.wled_last_state
- scene.media_last_state
action: scene.turn_on
data: {}
mode: single
@@ -618,33 +615,12 @@
action: notify.mobile_app_le2123
- data:
cache: true
media_player_entity_id: media_player.home_assistant_voice_0a7c6b_media_player
media_player_entity_id: media_player.raspiaudio_muse_luxe
message: '{{message}}
'
target:
entity_id: tts.piper
enabled: true
action: tts.speak
- data:
cache: true
media_player_entity_id: media_player.home_assistant_voice_09c0e7_media_player
message: '{{message}}
'
target:
entity_id: tts.piper
enabled: true
action: tts.speak
- data:
cache: true
media_player_entity_id: media_player.m5stack_atom_echo
message: '{{message}}
'
target:
entity_id: tts.piper
enabled: true
action: tts.speak
variables:
message: 'Die Außentemperatur ist mit {{states(''sensor.aussentemperatur'')}}
@@ -689,33 +665,12 @@
action: notify.mobile_app_le2123
- data:
cache: true
media_player_entity_id: media_player.home_assistant_voice_0a7c6b_media_player
media_player_entity_id: media_player.raspiaudio_muse_luxe
message: '{{message}}
'
target:
entity_id: tts.piper
enabled: true
action: tts.speak
- data:
cache: true
media_player_entity_id: media_player.home_assistant_voice_09c0e7_media_player
message: '{{message}}
'
target:
entity_id: tts.piper
enabled: true
action: tts.speak
- data:
cache: true
media_player_entity_id: media_player.m5stack_atom_echo
message: '{{message}}
'
target:
entity_id: tts.piper
enabled: true
action: tts.speak
mode: single
variables:
@@ -1438,3 +1393,113 @@
device_id: 6d1be741876624a70ab5b01b54c6fd6f
entity_id: 621e4377a089b7f5d92c7c9f2cc171a1
domain: switch
- id: '1773000000001'
alias: epaperframe - Kalender Events laden
description: Ruft alle Events von calendar.privat und calendar.tkrz_kalender für heute und morgen ab und schreibt sie in input_text-Helfer.
triggers:
# Täglich um 00:01 neu holen
- trigger: time
at: '00:01:00'
id: daily
actions:
# ── Events für heute (00:00 bis 23:59) holen ──
- action: calendar.get_events
target:
entity_id:
- calendar.privat
- calendar.tkrz_kalender
data:
start_date_time: "{{ now().replace(hour=0, minute=0, second=0) }}"
end_date_time: "{{ (now().replace(hour=0, minute=0, second=0) + timedelta(days=1)) }}"
response_variable: today_evts
# ── Events für morgen (00:00 bis 23:59) holen ──
- action: calendar.get_events
target:
entity_id:
- calendar.privat
- calendar.tkrz_kalender
data:
start_date_time: "{{ (now() + timedelta(days=1)).replace(hour=0, minute=0, second=0) }}"
end_date_time: "{{ (now() + timedelta(days=1)).replace(hour=0, minute=0, second=0) + timedelta(days=1) }}"
response_variable: tomorrow_evts
# ── Helper: Events als kompakte Liste formatieren ──
# Privat heute
- set_var:
name: fmt_today_privat
value: >-
{%- set evts = today_evts['calendar.privat']['events'] if 'calendar.privat' in today_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# Arbeit heute
- set_var:
name: fmt_today_arbeit
value: >-
{%- set evts = today_evts['calendar.tkrz_kalender']['events'] if 'calendar.tkrz_kalender' in today_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# Privat morgen
- set_var:
name: fmt_tomorrow_privat
value: >-
{%- set evts = tomorrow_evts['calendar.privat']['events'] if 'calendar.privat' in tomorrow_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# Arbeit morgen
- set_var:
name: fmt_tomorrow_arbeit
value: >-
{%- set evts = tomorrow_evts['calendar.tkrz_kalender']['events'] if 'calendar.tkrz_kalender' in tomorrow_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# ── input_text Helfer schreiben ──
- action: input_text.set_value
target:
entity_id: input_text.kalender_heute_privat
data:
value: "{{ fmt_today_privat }}"
- action: input_text.set_value
target:
entity_id: input_text.kalender_heute_arbeit
data:
value: "{{ fmt_today_arbeit }}"
- action: input_text.set_value
target:
entity_id: input_text.kalender_morgen_privat
data:
value: "{{ fmt_tomorrow_privat }}"
- action: input_text.set_value
target:
entity_id: input_text.kalender_morgen_arbeit
data:
value: "{{ fmt_tomorrow_arbeit }}"