Compare commits
17 Commits
ca599eab7a
...
main
Author | SHA1 | Date | |
---|---|---|---|
a947806618 | |||
439ead1047 | |||
20c86831f1 | |||
61b018270b | |||
911477d381 | |||
1ee475ee4a | |||
cae28341fe | |||
17cfa429ea | |||
791d7d504f | |||
631cdae751 | |||
06321730e0 | |||
5ac8ceacfe | |||
4981cbfa2e | |||
e5ddf02c34 | |||
ebf11021e2 | |||
72ce055810 | |||
8461f43bca |
@@ -1 +1 @@
|
|||||||
2025.5.0
|
2025.9.0
|
496
automations.yaml
496
automations.yaml
@@ -38,7 +38,7 @@
|
|||||||
input:
|
input:
|
||||||
person_entity: person.marcus_scholz
|
person_entity: person.marcus_scholz
|
||||||
zone_entity: zone.home
|
zone_entity: zone.home
|
||||||
notify_device: 6adad2de67b26c864cfcb1a91bd12e48
|
notify_device: 773450cae5e93524731940ad081846d9
|
||||||
- id: '1623526683767'
|
- id: '1623526683767'
|
||||||
alias: Licht bei Sonnenaufgang ausschalten
|
alias: Licht bei Sonnenaufgang ausschalten
|
||||||
description: ''
|
description: ''
|
||||||
@@ -69,9 +69,11 @@
|
|||||||
alias: Gute Nacht!
|
alias: Gute Nacht!
|
||||||
description: Schalte alles (außer Schlafzimmer) aus, sobald das Schlaftracking startet.
|
description: Schalte alles (außer Schlafzimmer) aus, sobald das Schlaftracking startet.
|
||||||
triggers:
|
triggers:
|
||||||
- entity_id: input_text.sleep_as_android
|
- trigger: state
|
||||||
to: sleep_tracking_started
|
entity_id:
|
||||||
trigger: state
|
- event.sleep_as_android_schlaf_tracking
|
||||||
|
attribute: event_type
|
||||||
|
to: started
|
||||||
conditions: []
|
conditions: []
|
||||||
actions:
|
actions:
|
||||||
- target:
|
- target:
|
||||||
@@ -89,22 +91,61 @@
|
|||||||
- data:
|
- data:
|
||||||
message: Gute Nacht!
|
message: Gute Nacht!
|
||||||
action: notify.mobile_app_le2123
|
action: notify.mobile_app_le2123
|
||||||
|
- data:
|
||||||
|
media:
|
||||||
|
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
||||||
|
media_content_type: provider
|
||||||
|
metadata:
|
||||||
|
title: Gute Nacht, schlaf gut.
|
||||||
|
thumbnail: https://brands.home-assistant.io/_/tts/logo.png
|
||||||
|
media_class: app
|
||||||
|
children_media_class:
|
||||||
|
navigateIds:
|
||||||
|
- {}
|
||||||
|
- media_content_type: app
|
||||||
|
media_content_id: media-source://tts
|
||||||
|
- media_content_type: provider
|
||||||
|
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
||||||
|
action: media_player.play_media
|
||||||
|
enabled: true
|
||||||
|
target:
|
||||||
|
entity_id: media_player.home_assistant_voice_09c0e7_media_player
|
||||||
|
- data:
|
||||||
|
media:
|
||||||
|
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
||||||
|
media_content_type: provider
|
||||||
|
metadata:
|
||||||
|
title: Gute Nacht, schlaf gut.
|
||||||
|
thumbnail: https://brands.home-assistant.io/_/tts/logo.png
|
||||||
|
media_class: app
|
||||||
|
children_media_class:
|
||||||
|
navigateIds:
|
||||||
|
- {}
|
||||||
|
- media_content_type: app
|
||||||
|
media_content_id: media-source://tts
|
||||||
|
- media_content_type: provider
|
||||||
|
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
||||||
|
action: media_player.play_media
|
||||||
|
enabled: true
|
||||||
|
target:
|
||||||
|
entity_id: media_player.m5stack_atom_echo
|
||||||
- target:
|
- target:
|
||||||
entity_id: media_player.raspiaudio_muse_luxe
|
entity_id: media_player.raspiaudio_muse_luxe
|
||||||
data:
|
data:
|
||||||
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
media:
|
||||||
media_content_type: provider
|
|
||||||
metadata:
|
|
||||||
title: Gute Nacht, schlaf gut.
|
|
||||||
thumbnail: https://brands.home-assistant.io/_/tts/logo.png
|
|
||||||
media_class: app
|
|
||||||
children_media_class:
|
|
||||||
navigateIds:
|
|
||||||
- {}
|
|
||||||
- media_content_type: app
|
|
||||||
media_content_id: media-source://tts
|
|
||||||
- media_content_type: provider
|
|
||||||
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
||||||
|
media_content_type: provider
|
||||||
|
metadata:
|
||||||
|
title: Gute Nacht, schlaf gut.
|
||||||
|
thumbnail: https://brands.home-assistant.io/_/tts/logo.png
|
||||||
|
media_class: app
|
||||||
|
children_media_class:
|
||||||
|
navigateIds:
|
||||||
|
- {}
|
||||||
|
- media_content_type: app
|
||||||
|
media_content_id: media-source://tts
|
||||||
|
- media_content_type: provider
|
||||||
|
media_content_id: media-source://tts/tts.piper?message=Gute+Nacht%2C+schlaf+gut.
|
||||||
action: media_player.play_media
|
action: media_player.play_media
|
||||||
enabled: true
|
enabled: true
|
||||||
- target:
|
- target:
|
||||||
@@ -125,28 +166,45 @@
|
|||||||
- id: '1623868115464'
|
- id: '1623868115464'
|
||||||
alias: 420!
|
alias: 420!
|
||||||
description: ''
|
description: ''
|
||||||
trigger:
|
triggers:
|
||||||
- platform: time
|
- at: '16:20'
|
||||||
at: '16:20'
|
trigger: time
|
||||||
condition: []
|
conditions: []
|
||||||
action:
|
actions:
|
||||||
- service: notify.mobile_app_le2123
|
- action: notify.mobile_app_apollo
|
||||||
data:
|
data:
|
||||||
|
message: Lodere es, Lustknabe.
|
||||||
|
title: 420!
|
||||||
|
- data:
|
||||||
title: 420!
|
title: 420!
|
||||||
message: Lodere es, Lustknabe.
|
message: Lodere es, Lustknabe.
|
||||||
- service: tts.speak
|
action: notify.mobile_app_le2123
|
||||||
data:
|
- data:
|
||||||
cache: true
|
cache: true
|
||||||
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
||||||
message: 4 20 lodere es, Lustknabe
|
message: 4 20 lodere es, Lustknabe
|
||||||
target:
|
target:
|
||||||
entity_id: tts.piper
|
entity_id: tts.piper
|
||||||
- service: mqtt.publish
|
action: tts.speak
|
||||||
data:
|
- data:
|
||||||
|
cache: true
|
||||||
|
media_player_entity_id: media_player.home_assistant_voice_09c0e7_media_player
|
||||||
|
message: 4 20 lodere es, Lustknabe
|
||||||
|
target:
|
||||||
|
entity_id: tts.piper
|
||||||
|
action: tts.speak
|
||||||
|
- data:
|
||||||
qos: 0
|
qos: 0
|
||||||
retain: false
|
retain: false
|
||||||
topic: awtrix_b8658c/notify
|
topic: awtrix_kitchen/notify
|
||||||
payload: '{"text": "420, lodere es, Lustknabe!"}'
|
payload: '{"text": "420, lodere es, Lustknabe!"}'
|
||||||
|
action: mqtt.publish
|
||||||
|
- data:
|
||||||
|
qos: 0
|
||||||
|
retain: false
|
||||||
|
topic: awtrix_desk/notify
|
||||||
|
payload: '{"text": "420, lodere es, Lustknabe!"}'
|
||||||
|
action: mqtt.publish
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1623911524804'
|
- id: '1623911524804'
|
||||||
alias: TV Anti-Reflexion (undo)
|
alias: TV Anti-Reflexion (undo)
|
||||||
@@ -174,10 +232,11 @@
|
|||||||
alias: Licht im Schlafzimmer zur Schlafenszeit einschalten
|
alias: Licht im Schlafzimmer zur Schlafenszeit einschalten
|
||||||
description: Bei Beginn der empfohlenen Schlafenszeit.
|
description: Bei Beginn der empfohlenen Schlafenszeit.
|
||||||
triggers:
|
triggers:
|
||||||
- entity_id: input_text.sleep_as_android
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- event.sleep_as_android_benutzerbenachrichtigung
|
||||||
|
attribute: event_type
|
||||||
to: time_to_bed_alarm_alert
|
to: time_to_bed_alarm_alert
|
||||||
for: 00:05:00
|
|
||||||
trigger: state
|
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
@@ -194,50 +253,69 @@
|
|||||||
target:
|
target:
|
||||||
entity_id: tts.piper
|
entity_id: tts.piper
|
||||||
action: tts.speak
|
action: tts.speak
|
||||||
enabled: false
|
enabled: true
|
||||||
|
- data:
|
||||||
|
cache: true
|
||||||
|
media_player_entity_id: media_player.home_assistant_voice_09c0e7_media_player_2
|
||||||
|
message: Ab ins Bett, Schlafenszeit.
|
||||||
|
target:
|
||||||
|
entity_id: tts.piper
|
||||||
|
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
|
||||||
|
action: tts.speak
|
||||||
|
enabled: true
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1623954512941'
|
- id: '1623954512941'
|
||||||
alias: Licht im Schlafzimmer zum Aufwachen einschalten
|
alias: Licht im Schlafzimmer zum Aufwachen einschalten
|
||||||
description: Nach der Alarmquittierung
|
description: Nach der Alarmquittierung
|
||||||
trigger:
|
triggers:
|
||||||
- platform: state
|
- trigger: state
|
||||||
entity_id: input_text.sleep_as_android
|
entity_id:
|
||||||
to: alarm_alert_start
|
- event.sleep_as_android_schlaf_tracking
|
||||||
condition:
|
attribute: event_type
|
||||||
|
to: stopped
|
||||||
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
state: home
|
state: home
|
||||||
action:
|
actions:
|
||||||
- delay:
|
- delay:
|
||||||
hours: 0
|
hours: 0
|
||||||
minutes: 0
|
minutes: 1
|
||||||
seconds: 30
|
seconds: 0
|
||||||
milliseconds: 0
|
milliseconds: 0
|
||||||
- service: light.turn_on
|
- target:
|
||||||
target:
|
|
||||||
device_id: 68868390eda35e969ec60a13020f2407
|
device_id: 68868390eda35e969ec60a13020f2407
|
||||||
data: {}
|
data: {}
|
||||||
|
action: light.turn_on
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1624820688449'
|
- id: '1624820688449'
|
||||||
alias: 'Anruf: Beim Klingeln grün blinken'
|
alias: 'Anruf: Beim Klingeln grün blinken'
|
||||||
description: ''
|
description: ''
|
||||||
trigger:
|
triggers:
|
||||||
- platform: state
|
- entity_id: sensor.fritz_box_7490_call_monitor_dem_commander1024_seine_cloud
|
||||||
entity_id: sensor.fritz_box_7490_call_monitor_dem_commander1024_seine_cloud
|
|
||||||
to: ringing
|
to: ringing
|
||||||
- platform: state
|
trigger: state
|
||||||
entity_id: sensor.le2123_phone_state
|
- entity_id:
|
||||||
|
- sensor.le2123_phone_state_2
|
||||||
to: ringing
|
to: ringing
|
||||||
- platform: state
|
trigger: state
|
||||||
to: ringing
|
- to: ringing
|
||||||
entity_id: sensor.moto_g_100_phone_state
|
entity_id:
|
||||||
condition:
|
- sensor.xt2125_4_phone_state
|
||||||
|
trigger: state
|
||||||
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
state: home
|
state: home
|
||||||
action:
|
actions:
|
||||||
- service: light.turn_on
|
- data:
|
||||||
data:
|
|
||||||
rgb_color:
|
rgb_color:
|
||||||
- 9
|
- 9
|
||||||
- 255
|
- 255
|
||||||
@@ -246,8 +324,8 @@
|
|||||||
entity_id:
|
entity_id:
|
||||||
- light.awtrix_desk_indicator_1
|
- light.awtrix_desk_indicator_1
|
||||||
- light.awtrix_kitchen_indicator_1
|
- light.awtrix_kitchen_indicator_1
|
||||||
- service: scene.create
|
action: light.turn_on
|
||||||
data:
|
- data:
|
||||||
scene_id: wled_last_state
|
scene_id: wled_last_state
|
||||||
snapshot_entities:
|
snapshot_entities:
|
||||||
- light.kuche
|
- light.kuche
|
||||||
@@ -256,51 +334,53 @@
|
|||||||
- select.kuche_color_palette
|
- select.kuche_color_palette
|
||||||
- select.wohnzimmer_vorne_color_palette
|
- select.wohnzimmer_vorne_color_palette
|
||||||
- select.wohnzimmer_hinten_color_palette
|
- select.wohnzimmer_hinten_color_palette
|
||||||
- service: scene.turn_on
|
action: scene.create
|
||||||
target:
|
- target:
|
||||||
entity_id: scene.grun_blinken
|
entity_id: scene.grun_blinken
|
||||||
data: {}
|
data: {}
|
||||||
|
action: scene.turn_on
|
||||||
- delay:
|
- delay:
|
||||||
hours: 0
|
hours: 0
|
||||||
minutes: 0
|
minutes: 0
|
||||||
seconds: 5
|
seconds: 5
|
||||||
milliseconds: 0
|
milliseconds: 0
|
||||||
- service: scene.turn_on
|
- target:
|
||||||
target:
|
|
||||||
entity_id: scene.wled_last_state
|
entity_id: scene.wled_last_state
|
||||||
data: {}
|
data: {}
|
||||||
|
action: scene.turn_on
|
||||||
- delay:
|
- delay:
|
||||||
hours: 0
|
hours: 0
|
||||||
minutes: 0
|
minutes: 0
|
||||||
seconds: 15
|
seconds: 15
|
||||||
milliseconds: 0
|
milliseconds: 0
|
||||||
- service: light.turn_off
|
- data: {}
|
||||||
data: {}
|
|
||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id:
|
||||||
- light.awtrix_desk_indicator_1
|
- light.awtrix_desk_indicator_1
|
||||||
- light.awtrix_kitchen_indicator_1
|
- light.awtrix_kitchen_indicator_1
|
||||||
|
action: light.turn_off
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1625481640348'
|
- id: '1625481640348'
|
||||||
alias: 'Anruf: Beim Telefonieren Musik pausieren'
|
alias: 'Anruf: Beim Telefonieren Musik pausieren'
|
||||||
description: ''
|
description: ''
|
||||||
trigger:
|
triggers:
|
||||||
- platform: state
|
- entity_id: sensor.fritz_box_7490_call_monitor_telefonbuch
|
||||||
entity_id: sensor.fritz_box_7490_call_monitor_telefonbuch
|
|
||||||
to: talking
|
to: talking
|
||||||
- platform: state
|
trigger: state
|
||||||
entity_id: sensor.le2123_phone_state
|
- entity_id:
|
||||||
|
- sensor.le2123_phone_state_2
|
||||||
to: talking
|
to: talking
|
||||||
- platform: state
|
trigger: state
|
||||||
entity_id: sensor.moto_g_100_phone_state
|
- entity_id:
|
||||||
|
- sensor.xt2125_4_phone_state
|
||||||
to: talking
|
to: talking
|
||||||
condition:
|
trigger: state
|
||||||
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
state: home
|
state: home
|
||||||
action:
|
actions:
|
||||||
- service: scene.create
|
- data:
|
||||||
data:
|
|
||||||
scene_id: media_last_state
|
scene_id: media_last_state
|
||||||
snapshot_entities:
|
snapshot_entities:
|
||||||
- media_player.wohnzimmer_main
|
- media_player.wohnzimmer_main
|
||||||
@@ -308,24 +388,27 @@
|
|||||||
- media_player.ccze
|
- media_player.ccze
|
||||||
- media_player.spotify_marcus_scholz
|
- media_player.spotify_marcus_scholz
|
||||||
- media_player.xboxonex
|
- media_player.xboxonex
|
||||||
- service: media_player.media_pause
|
action: scene.create
|
||||||
target:
|
- target:
|
||||||
area_id:
|
area_id:
|
||||||
- schlafzimmer
|
- schlafzimmer
|
||||||
- wohnzimmer
|
- wohnzimmer
|
||||||
|
action: media_player.media_pause
|
||||||
|
data: {}
|
||||||
- wait_for_trigger:
|
- wait_for_trigger:
|
||||||
- platform: state
|
- entity_id: sensor.j9110_phone_state
|
||||||
entity_id: sensor.j9110_phone_state
|
|
||||||
to: idle
|
to: idle
|
||||||
from: talking
|
from: talking
|
||||||
- platform: state
|
trigger: state
|
||||||
entity_id: sensor.fritz_box_7490_call_monitor_telefonbuch
|
- entity_id: sensor.fritz_box_7490_call_monitor_telefonbuch
|
||||||
to: idle
|
to: idle
|
||||||
from: talking
|
from: talking
|
||||||
- service: scene.turn_on
|
trigger: state
|
||||||
target:
|
- target:
|
||||||
entity_id:
|
entity_id:
|
||||||
- scene.media_last_state
|
- scene.media_last_state
|
||||||
|
action: scene.turn_on
|
||||||
|
data: {}
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1628972104416'
|
- id: '1628972104416'
|
||||||
alias: Raumduft nach einer Stunde wieder ausschalten
|
alias: Raumduft nach einer Stunde wieder ausschalten
|
||||||
@@ -351,25 +434,27 @@
|
|||||||
- id: '1628972885682'
|
- id: '1628972885682'
|
||||||
alias: Raumduft zum Aufstehen einschalten
|
alias: Raumduft zum Aufstehen einschalten
|
||||||
description: ''
|
description: ''
|
||||||
trigger:
|
triggers:
|
||||||
- platform: state
|
- trigger: state
|
||||||
entity_id: input_text.sleep_as_android
|
entity_id:
|
||||||
to: sleep_tracking_stopped
|
- event.sleep_as_android_schlaf_tracking
|
||||||
condition:
|
attribute: event_type
|
||||||
|
to: stopped
|
||||||
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
state: home
|
state: home
|
||||||
action:
|
actions:
|
||||||
- type: turn_on
|
- type: turn_on
|
||||||
device_id: 5a08ac4c3b3893b540a9934fa92dccfa
|
device_id: 5a08ac4c3b3893b540a9934fa92dccfa
|
||||||
entity_id: switch.flur_raumduft
|
entity_id: switch.flur_raumduft
|
||||||
domain: switch
|
domain: switch
|
||||||
- service: light.turn_on
|
- data: {}
|
||||||
data: {}
|
|
||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id:
|
||||||
- light.awtrix_desk_matrix
|
- light.awtrix_528bd4_matrix
|
||||||
- light.awtrix_kitchen_matrix
|
- light.awtrix_b8658c_matrix
|
||||||
|
action: light.turn_on
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1630914505161'
|
- id: '1630914505161'
|
||||||
alias: Beim Verlassen der Wohnung alles abschalten
|
alias: Beim Verlassen der Wohnung alles abschalten
|
||||||
@@ -458,26 +543,23 @@
|
|||||||
- id: '1675778284738'
|
- id: '1675778284738'
|
||||||
alias: Stündliche Zeitansage
|
alias: Stündliche Zeitansage
|
||||||
description: ''
|
description: ''
|
||||||
trigger:
|
triggers:
|
||||||
- platform: time_pattern
|
- minutes: '0'
|
||||||
minutes: '0'
|
|
||||||
seconds: '0'
|
seconds: '0'
|
||||||
hours: '*'
|
hours: '*'
|
||||||
condition:
|
trigger: time_pattern
|
||||||
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
state: home
|
state: home
|
||||||
- condition: or
|
- condition: or
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_text.sleep_as_android
|
entity_id: event.sleep_as_android_schlaf_tracking
|
||||||
state: sleep_tracking_stopped
|
attribute: event_type
|
||||||
- condition: state
|
state: stopped
|
||||||
entity_id: input_text.sleep_as_android
|
actions:
|
||||||
state: alarm_alert_dismiss
|
- data:
|
||||||
action:
|
|
||||||
- service: tts.speak
|
|
||||||
data:
|
|
||||||
cache: true
|
cache: true
|
||||||
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
||||||
message: '{{message}}
|
message: '{{message}}
|
||||||
@@ -486,14 +568,35 @@
|
|||||||
target:
|
target:
|
||||||
entity_id: tts.piper
|
entity_id: tts.piper
|
||||||
enabled: true
|
enabled: true
|
||||||
- service: mqtt.publish
|
action: tts.speak
|
||||||
data:
|
- 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
|
||||||
|
- data:
|
||||||
topic: awtrix_desk/notify
|
topic: awtrix_desk/notify
|
||||||
payload: '{"text": "{{message}}", "icon": "clockcolor", "duration": 16}'
|
payload: '{"text": "{{message}}", "icon": "clockcolor", "duration": 16}'
|
||||||
- service: mqtt.publish
|
action: mqtt.publish
|
||||||
data:
|
- data:
|
||||||
topic: awtrix_kitchen/notify
|
topic: awtrix_kitchen/notify
|
||||||
payload: '{"text": "{{message}}", "icon": "clockcolor", "duration": 16}'
|
payload: '{"text": "{{message}}", "icon": "clockcolor", "duration": 16}'
|
||||||
|
action: mqtt.publish
|
||||||
variables:
|
variables:
|
||||||
message: '{% set t = now().hour %} {% set m = ''Morgen'' if t < 12 else ''Nachmittag''
|
message: '{% set t = now().hour %} {% set m = ''Morgen'' if t < 12 else ''Nachmittag''
|
||||||
if t < 18 else ''Abend'' %} Guten {{m}} Marcus. Draußen sind es {{states(''sensor.aussentemperatur'')}}
|
if t < 18 else ''Abend'' %} Guten {{m}} Marcus. Draußen sind es {{states(''sensor.aussentemperatur'')}}
|
||||||
@@ -517,16 +620,16 @@
|
|||||||
alias: Fenster schließen, wenn es warm wird
|
alias: Fenster schließen, wenn es warm wird
|
||||||
description: Tagsüber im Sommer, wenn die Außentemperatur sich der Innentemperatur
|
description: Tagsüber im Sommer, wenn die Außentemperatur sich der Innentemperatur
|
||||||
annähert.
|
annähert.
|
||||||
trigger:
|
triggers:
|
||||||
- platform: numeric_state
|
- entity_id:
|
||||||
entity_id:
|
|
||||||
- sensor.aussentemperatur
|
- sensor.aussentemperatur
|
||||||
above: sensor.wohnungstemperatur
|
above: sensor.wohnungstemperatur
|
||||||
for:
|
for:
|
||||||
hours: 0
|
hours: 0
|
||||||
minutes: 5
|
minutes: 5
|
||||||
seconds: 0
|
seconds: 0
|
||||||
condition:
|
trigger: numeric_state
|
||||||
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
state: home
|
state: home
|
||||||
@@ -536,16 +639,15 @@
|
|||||||
- condition: sun
|
- condition: sun
|
||||||
after: sunrise
|
after: sunrise
|
||||||
before: sunset
|
before: sunset
|
||||||
action:
|
actions:
|
||||||
- service: notify.mobile_app_le2123
|
- data:
|
||||||
data:
|
|
||||||
title: Schlaues lüften
|
title: Schlaues lüften
|
||||||
message: '{{message}}
|
message: '{{message}}
|
||||||
|
|
||||||
'
|
'
|
||||||
enabled: true
|
enabled: true
|
||||||
- service: tts.speak
|
action: notify.mobile_app_le2123
|
||||||
data:
|
- data:
|
||||||
cache: true
|
cache: true
|
||||||
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
||||||
message: '{{message}}
|
message: '{{message}}
|
||||||
@@ -553,6 +655,7 @@
|
|||||||
'
|
'
|
||||||
target:
|
target:
|
||||||
entity_id: tts.piper
|
entity_id: tts.piper
|
||||||
|
action: tts.speak
|
||||||
variables:
|
variables:
|
||||||
message: 'Die Außentemperatur ist mit {{states(''sensor.aussentemperatur'')}}
|
message: 'Die Außentemperatur ist mit {{states(''sensor.aussentemperatur'')}}
|
||||||
° Celsius {{((states(''sensor.aussentemperatur'')|float)-(states(''sensor.wohnungstemperatur'')|float))
|
° Celsius {{((states(''sensor.aussentemperatur'')|float)-(states(''sensor.wohnungstemperatur'')|float))
|
||||||
@@ -564,40 +667,37 @@
|
|||||||
- id: '1686327239749'
|
- id: '1686327239749'
|
||||||
alias: Fenster öffnen wenn es kühler wird
|
alias: Fenster öffnen wenn es kühler wird
|
||||||
description: Im Sommer, wenn die Außentemperatur sich der Innentemperatur annähert.
|
description: Im Sommer, wenn die Außentemperatur sich der Innentemperatur annähert.
|
||||||
trigger:
|
triggers:
|
||||||
- platform: numeric_state
|
- entity_id:
|
||||||
entity_id:
|
|
||||||
- sensor.aussentemperatur
|
- sensor.aussentemperatur
|
||||||
for:
|
for:
|
||||||
hours: 0
|
hours: 0
|
||||||
minutes: 5
|
minutes: 5
|
||||||
seconds: 0
|
seconds: 0
|
||||||
below: sensor.wohnungstemperatur
|
below: sensor.wohnungstemperatur
|
||||||
condition:
|
trigger: numeric_state
|
||||||
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: person.marcus_scholz
|
entity_id: person.marcus_scholz
|
||||||
state: home
|
state: home
|
||||||
- condition: or
|
- condition: or
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_text.sleep_as_android
|
entity_id: event.sleep_as_android_schlaf_tracking
|
||||||
state: sleep_tracking_stopped
|
state: sleep_tracking_stopped
|
||||||
- condition: state
|
attribute: event_type
|
||||||
entity_id: input_text.sleep_as_android
|
|
||||||
state: alarm_alert_dismiss
|
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: sensor.season
|
entity_id: sensor.season
|
||||||
state: summer
|
state: summer
|
||||||
action:
|
actions:
|
||||||
- service: notify.mobile_app_le2123
|
- data:
|
||||||
data:
|
|
||||||
title: Schlaues lüften
|
title: Schlaues lüften
|
||||||
message: '{{message}}
|
message: '{{message}}
|
||||||
|
|
||||||
'
|
'
|
||||||
enabled: true
|
enabled: true
|
||||||
- service: tts.speak
|
action: notify.mobile_app_le2123
|
||||||
data:
|
- data:
|
||||||
cache: true
|
cache: true
|
||||||
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
media_player_entity_id: media_player.raspiaudio_muse_luxe
|
||||||
message: '{{message}}
|
message: '{{message}}
|
||||||
@@ -605,6 +705,7 @@
|
|||||||
'
|
'
|
||||||
target:
|
target:
|
||||||
entity_id: tts.piper
|
entity_id: tts.piper
|
||||||
|
action: tts.speak
|
||||||
mode: single
|
mode: single
|
||||||
variables:
|
variables:
|
||||||
message: 'Die Außentemperatur ist mit {{states(''sensor.aussentemperatur'')}}
|
message: 'Die Außentemperatur ist mit {{states(''sensor.aussentemperatur'')}}
|
||||||
@@ -672,14 +773,13 @@
|
|||||||
- id: '1698954553138'
|
- id: '1698954553138'
|
||||||
alias: 'Awtrix: Jahresfortschirtt'
|
alias: 'Awtrix: Jahresfortschirtt'
|
||||||
description: Jahresfortschritt in %
|
description: Jahresfortschritt in %
|
||||||
trigger:
|
triggers:
|
||||||
- platform: time_pattern
|
- hours: '*'
|
||||||
hours: '*'
|
|
||||||
minutes: 0
|
minutes: 0
|
||||||
condition: []
|
trigger: time_pattern
|
||||||
action:
|
conditions: []
|
||||||
- service: mqtt.publish
|
actions:
|
||||||
data:
|
- data:
|
||||||
payload: '{# Get current timestamp #} {%- set now = now() -%} {# Start of current
|
payload: '{# Get current timestamp #} {%- set now = now() -%} {# Start of current
|
||||||
year #} {%- set startOfYear = now.replace(year=now.year, month=1, day=1, hour=0,
|
year #} {%- set startOfYear = now.replace(year=now.year, month=1, day=1, hour=0,
|
||||||
minute=0, second=0, microsecond=0) -%} {# Determine end of current year #}
|
minute=0, second=0, microsecond=0) -%} {# Determine end of current year #}
|
||||||
@@ -689,9 +789,24 @@
|
|||||||
= as_timestamp(now) - as_timestamp(startOfYear) -%} {%- set progress = ( current
|
= as_timestamp(now) - as_timestamp(startOfYear) -%} {%- set progress = ( current
|
||||||
/ total * 100 ) | round(0, "floor", 0) -%} {# Output #} { "text": "{{ progress
|
/ total * 100 ) | round(0, "floor", 0) -%} {# Output #} { "text": "{{ progress
|
||||||
}} %", "icon": "y2023"}'
|
}} %", "icon": "y2023"}'
|
||||||
topic: awtrix_b8658c/custom/yearprogress
|
topic: awtrix_desk/custom/yearprogress
|
||||||
qos: 0
|
qos: 0
|
||||||
retain: false
|
retain: false
|
||||||
|
action: mqtt.publish
|
||||||
|
- data:
|
||||||
|
payload: '{# Get current timestamp #} {%- set now = now() -%} {# Start of current
|
||||||
|
year #} {%- set startOfYear = now.replace(year=now.year, month=1, day=1, hour=0,
|
||||||
|
minute=0, second=0, microsecond=0) -%} {# Determine end of current year #}
|
||||||
|
{%- set endOfYear = startOfYear.replace(month=12, day=31, hour=23, minute=59,
|
||||||
|
second=59, microsecond=999999) -%} {# Calculate progress #} {%- set total
|
||||||
|
= as_timestamp(endOfYear) - as_timestamp(startOfYear) -%} {%- set current
|
||||||
|
= as_timestamp(now) - as_timestamp(startOfYear) -%} {%- set progress = ( current
|
||||||
|
/ total * 100 ) | round(0, "floor", 0) -%} {# Output #} { "text": "{{ progress
|
||||||
|
}} %", "icon": "y2023"}'
|
||||||
|
topic: awtrix_kitchen/custom/yearprogress
|
||||||
|
qos: 0
|
||||||
|
retain: false
|
||||||
|
action: mqtt.publish
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1699955800413'
|
- id: '1699955800413'
|
||||||
alias: 'Awtrix: Laufender Spotify Song'
|
alias: 'Awtrix: Laufender Spotify Song'
|
||||||
@@ -731,19 +846,19 @@
|
|||||||
- id: '1699969052661'
|
- id: '1699969052661'
|
||||||
alias: 'Awtrix: Matrix einschalten'
|
alias: 'Awtrix: Matrix einschalten'
|
||||||
description: ''
|
description: ''
|
||||||
trigger:
|
triggers:
|
||||||
- platform: state
|
- entity_id: person.marcus_scholz
|
||||||
entity_id: person.marcus_scholz
|
|
||||||
to: home
|
to: home
|
||||||
from: not_home
|
from: not_home
|
||||||
condition: []
|
trigger: state
|
||||||
action:
|
conditions: []
|
||||||
- service: light.turn_on
|
actions:
|
||||||
data: {}
|
- data: {}
|
||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id:
|
||||||
- light.awtrix_desk_matrix
|
- light.awtrix_b8658c_matrix
|
||||||
- light.awtrix_kitchen_matrix
|
- light.awtrix_528bd4_matrix
|
||||||
|
action: light.turn_on
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1700482951854'
|
- id: '1700482951854'
|
||||||
alias: Licht bei Sonnenuntergang einschalten (XMas)
|
alias: Licht bei Sonnenuntergang einschalten (XMas)
|
||||||
@@ -810,44 +925,42 @@
|
|||||||
controller_device: f3b032ad1f3ccc658a7d4588cc0e5c0c
|
controller_device: f3b032ad1f3ccc658a7d4588cc0e5c0c
|
||||||
helper_last_controller_event: input_text.styrbar_wohnzimmer_moodlight_letztes_event
|
helper_last_controller_event: input_text.styrbar_wohnzimmer_moodlight_letztes_event
|
||||||
action_button_up_short:
|
action_button_up_short:
|
||||||
- service: light.turn_on
|
- data: {}
|
||||||
data: {}
|
|
||||||
target:
|
target:
|
||||||
device_id:
|
device_id:
|
||||||
- 4edd9b9df7d1f6f2fe7dcc2e5c0eb968
|
- 4edd9b9df7d1f6f2fe7dcc2e5c0eb968
|
||||||
- 6dcbd87b459412144bddc42af3ae8b83
|
- 6dcbd87b459412144bddc42af3ae8b83
|
||||||
|
action: light.turn_on
|
||||||
action_button_down_short:
|
action_button_down_short:
|
||||||
- service: light.turn_off
|
- data: {}
|
||||||
data: {}
|
|
||||||
target:
|
target:
|
||||||
device_id:
|
device_id:
|
||||||
- 6dcbd87b459412144bddc42af3ae8b83
|
- 6dcbd87b459412144bddc42af3ae8b83
|
||||||
- 4edd9b9df7d1f6f2fe7dcc2e5c0eb968
|
- 4edd9b9df7d1f6f2fe7dcc2e5c0eb968
|
||||||
|
action: light.turn_off
|
||||||
action_button_left_short:
|
action_button_left_short:
|
||||||
- service: script.wled_random_effect
|
- data: {}
|
||||||
data: {}
|
action: script.wled_random_effect
|
||||||
action_button_right_short:
|
action_button_right_short:
|
||||||
- service: script.wled_random_palette
|
- data: {}
|
||||||
data: {}
|
action: script.wled_random_palette
|
||||||
action_button_up_long:
|
action_button_up_long:
|
||||||
- service: light.turn_on
|
- action: script.moodlight_orange_plasma
|
||||||
metadata: {}
|
data: {}
|
||||||
data:
|
action_button_down_long:
|
||||||
brightness_pct: 10
|
- action: script.moodlight_neutral
|
||||||
target:
|
data: {}
|
||||||
entity_id: light.wohnzimmer_moodlight
|
|
||||||
action_button_down_long: []
|
|
||||||
action_button_down_double:
|
action_button_down_double:
|
||||||
- service: light.turn_off
|
- target:
|
||||||
target:
|
|
||||||
device_id: 9f42805af5b7e423023595390342b9ac
|
device_id: 9f42805af5b7e423023595390342b9ac
|
||||||
data: {}
|
data: {}
|
||||||
|
action: light.turn_off
|
||||||
action_button_up_double:
|
action_button_up_double:
|
||||||
- service: light.turn_on
|
- metadata: {}
|
||||||
metadata: {}
|
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
device_id: 9f42805af5b7e423023595390342b9ac
|
device_id: 9f42805af5b7e423023595390342b9ac
|
||||||
|
action: light.turn_on
|
||||||
button_up_double_press: true
|
button_up_double_press: true
|
||||||
button_down_double_press: true
|
button_down_double_press: true
|
||||||
- id: '1702588441751'
|
- id: '1702588441751'
|
||||||
@@ -870,41 +983,41 @@
|
|||||||
input:
|
input:
|
||||||
remote: bd97db2ae9b0104d50dc6a343315608b
|
remote: bd97db2ae9b0104d50dc6a343315608b
|
||||||
double_dot_single_press:
|
double_dot_single_press:
|
||||||
- service: light.turn_off
|
- target:
|
||||||
target:
|
|
||||||
device_id:
|
device_id:
|
||||||
- 68868390eda35e969ec60a13020f2407
|
- 68868390eda35e969ec60a13020f2407
|
||||||
data: {}
|
data: {}
|
||||||
|
action: light.turn_off
|
||||||
double_dot_double_press:
|
double_dot_double_press:
|
||||||
- service: light.turn_off
|
- metadata: {}
|
||||||
metadata: {}
|
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
device_id: 3c86ddd39979139f29645308815c0271
|
device_id: 3c86ddd39979139f29645308815c0271
|
||||||
|
action: light.turn_off
|
||||||
single_dot_single_press:
|
single_dot_single_press:
|
||||||
- service: light.turn_on
|
- metadata: {}
|
||||||
metadata: {}
|
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
device_id: 68868390eda35e969ec60a13020f2407
|
device_id: 68868390eda35e969ec60a13020f2407
|
||||||
|
action: light.turn_on
|
||||||
single_dot_double_press:
|
single_dot_double_press:
|
||||||
- service: light.turn_on
|
- metadata: {}
|
||||||
metadata: {}
|
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
device_id: 3c86ddd39979139f29645308815c0271
|
device_id: 3c86ddd39979139f29645308815c0271
|
||||||
|
action: light.turn_on
|
||||||
double_dot_long_press:
|
double_dot_long_press:
|
||||||
- service: switch.turn_off
|
- metadata: {}
|
||||||
metadata: {}
|
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
device_id: b7c1c80b21406c5608e38aa0c7e7e439
|
device_id: b7c1c80b21406c5608e38aa0c7e7e439
|
||||||
|
action: switch.turn_off
|
||||||
single_dot_long_press:
|
single_dot_long_press:
|
||||||
- service: switch.turn_on
|
- metadata: {}
|
||||||
metadata: {}
|
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
device_id: b7c1c80b21406c5608e38aa0c7e7e439
|
device_id: b7c1c80b21406c5608e38aa0c7e7e439
|
||||||
|
action: switch.turn_on
|
||||||
- id: '1705488817426'
|
- id: '1705488817426'
|
||||||
alias: Let's Encrypt
|
alias: Let's Encrypt
|
||||||
description: Zertifikat prüfen und verlängern via Addon
|
description: Zertifikat prüfen und verlängern via Addon
|
||||||
@@ -1134,3 +1247,34 @@
|
|||||||
target:
|
target:
|
||||||
entity_id: input_boolean.waschetrockner_aktiv
|
entity_id: input_boolean.waschetrockner_aktiv
|
||||||
mode: single
|
mode: single
|
||||||
|
- id: '1756756139646'
|
||||||
|
alias: Türklingel
|
||||||
|
description: Benachrichtigung über Wohnungs- oder Haustürklingeln
|
||||||
|
triggers:
|
||||||
|
- trigger: mqtt
|
||||||
|
topic: gdoor/bus_rx
|
||||||
|
actions:
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ trigger.payload_json.action == ''BUTTON_RING'' and trigger.payload_json.parameters
|
||||||
|
== ''0560'' }}'
|
||||||
|
sequence:
|
||||||
|
- data:
|
||||||
|
data:
|
||||||
|
push:
|
||||||
|
interruption-level: time-sensitive
|
||||||
|
message: Türklingel (außen)
|
||||||
|
action: notify.alle_mobilen_gerate
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ trigger.payload_json.action == ''BUTTON_FLOOR'' and trigger.payload_json.parameters
|
||||||
|
== ''FF6F'' and trigger.payload_json.busdata == ''0110139A59A6FF6FA1CC''}}'
|
||||||
|
sequence:
|
||||||
|
- data:
|
||||||
|
data:
|
||||||
|
push:
|
||||||
|
interruption-level: time-sensitive
|
||||||
|
message: Türklingel (innen)
|
||||||
|
action: notify.alle_mobilen_gerate
|
||||||
|
mode: single
|
||||||
|
@@ -1,7 +0,0 @@
|
|||||||
- sensor:
|
|
||||||
# Raspberry Pi CPU temp
|
|
||||||
name: "CPU Temp"
|
|
||||||
unique_id: '4144237916258'
|
|
||||||
command: "cat /sys/class/thermal/thermal_zone0/temp"
|
|
||||||
unit_of_measurement: "°C"
|
|
||||||
value_template: "{{ value | multiply(0.001) | round(1) }}"
|
|
@@ -11,15 +11,13 @@ http:
|
|||||||
tts:
|
tts:
|
||||||
- platform: picotts_remote
|
- platform: picotts_remote
|
||||||
language: "de-DE"
|
language: "de-DE"
|
||||||
- platform: google_translate
|
|
||||||
language: "de"
|
|
||||||
|
|
||||||
# Include modules
|
# Include modules
|
||||||
group: !include groups.yaml
|
group: !include groups.yaml
|
||||||
automation: !include automations.yaml
|
automation: !include automations.yaml
|
||||||
automation webhooks: !include automations_webhooks.yaml
|
|
||||||
script: !include scripts.yaml
|
script: !include scripts.yaml
|
||||||
scene: !include scenes.yaml
|
scene: !include scenes.yaml
|
||||||
|
notify: !include notify.yaml
|
||||||
|
|
||||||
# Enable additional integrations
|
# Enable additional integrations
|
||||||
# Enable 'wake_on_lan' intrgration
|
# Enable 'wake_on_lan' intrgration
|
||||||
@@ -31,11 +29,11 @@ homeassistant:
|
|||||||
|
|
||||||
# Additional sensors
|
# Additional sensors
|
||||||
sensor: !include sensors.yaml
|
sensor: !include sensors.yaml
|
||||||
command_line: !include commandline.yaml
|
|
||||||
utility_meter: !include utility_meters.yaml
|
utility_meter: !include utility_meters.yaml
|
||||||
|
|
||||||
# MQTT sensors
|
# MQTT sensors
|
||||||
mqtt: !include mqtt.yaml
|
mqtt: !include mqtt.yaml
|
||||||
|
mqtt_statestream: !include mqtt_statestream.yaml
|
||||||
|
|
||||||
# Template sensors
|
# Template sensors
|
||||||
template: !include template.yaml
|
template: !include template.yaml
|
||||||
@@ -73,4 +71,3 @@ generic_hygrostat:
|
|||||||
away_humidity: 60
|
away_humidity: 60
|
||||||
away_fixed: true
|
away_fixed: true
|
||||||
sensor_stale_duration: 00:15:00
|
sensor_stale_duration: 00:15:00
|
||||||
|
|
||||||
|
@@ -4,12 +4,18 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from lhpapi import HochwasserPortalAPI, LHPError
|
from lhpapi import HochwasserPortalAPI, LHPError, get_all_stations
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigFlow
|
from homeassistant.config_entries import ConfigFlow
|
||||||
from homeassistant.data_entry_flow import FlowResult
|
from homeassistant.data_entry_flow import FlowResult
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
from homeassistant.helpers.selector import (
|
||||||
|
SelectOptionDict,
|
||||||
|
SelectSelector,
|
||||||
|
SelectSelectorConfig,
|
||||||
|
SelectSelectorMode,
|
||||||
|
)
|
||||||
|
|
||||||
from .const import CONF_ADD_UNAVAILABLE, CONF_PEGEL_IDENTIFIER, DOMAIN, LOGGER
|
from .const import CONF_ADD_UNAVAILABLE, CONF_PEGEL_IDENTIFIER, DOMAIN, LOGGER
|
||||||
|
|
||||||
@@ -50,12 +56,29 @@ class HochwasserPortalConfigFlow(ConfigFlow, domain=DOMAIN):
|
|||||||
|
|
||||||
return self.async_create_entry(title=f"{api.name}", data=user_input)
|
return self.async_create_entry(title=f"{api.name}", data=user_input)
|
||||||
|
|
||||||
|
stations_dict = await self.hass.async_add_executor_job(get_all_stations)
|
||||||
|
LOGGER.debug(
|
||||||
|
"%i stations found on Github",
|
||||||
|
len(stations_dict),
|
||||||
|
)
|
||||||
|
stations = [SelectOptionDict(value="---", label="")]
|
||||||
|
stations.extend(
|
||||||
|
SelectOptionDict(value=k, label=f"{v} ({k})")
|
||||||
|
for k, v in stations_dict.items()
|
||||||
|
)
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="user",
|
step_id="user",
|
||||||
errors=errors,
|
errors=errors,
|
||||||
data_schema=vol.Schema(
|
data_schema=vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Required(CONF_PEGEL_IDENTIFIER): cv.string,
|
vol.Required(CONF_PEGEL_IDENTIFIER): SelectSelector(
|
||||||
|
SelectSelectorConfig(
|
||||||
|
options=stations,
|
||||||
|
mode=SelectSelectorMode.DROPDOWN,
|
||||||
|
sort=True,
|
||||||
|
custom_value=True,
|
||||||
|
)
|
||||||
|
),
|
||||||
vol.Required(CONF_ADD_UNAVAILABLE, default=False): cv.boolean,
|
vol.Required(CONF_ADD_UNAVAILABLE, default=False): cv.boolean,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
@@ -9,6 +9,6 @@
|
|||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"issue_tracker": "https://github.com/stephan192/hochwasserportal/issues",
|
"issue_tracker": "https://github.com/stephan192/hochwasserportal/issues",
|
||||||
"loggers": ["hochwasserportal"],
|
"loggers": ["hochwasserportal"],
|
||||||
"requirements": ["lhpapi==1.0.3"],
|
"requirements": ["lhpapi==1.0.5"],
|
||||||
"version": "1.0.1"
|
"version": "1.0.3"
|
||||||
}
|
}
|
@@ -41,7 +41,7 @@ ota:
|
|||||||
wifi:
|
wifi:
|
||||||
ssid: "Voltage-legacy"
|
ssid: "Voltage-legacy"
|
||||||
password: !secret voltage_legacy_psk
|
password: !secret voltage_legacy_psk
|
||||||
use_address: ${name}.home
|
use_address: atorch-dc-load.home
|
||||||
power_save_mode: high
|
power_save_mode: high
|
||||||
fast_connect: on
|
fast_connect: on
|
||||||
|
|
||||||
|
@@ -49,7 +49,7 @@ i2c:
|
|||||||
scl: 7
|
scl: 7
|
||||||
scan: true
|
scan: true
|
||||||
|
|
||||||
# DHT22 sensor
|
# Temp/humidity sensors
|
||||||
sensor:
|
sensor:
|
||||||
- platform: dht
|
- platform: dht
|
||||||
model: dht22
|
model: dht22
|
||||||
|
@@ -197,12 +197,14 @@ sensor:
|
|||||||
text_sensor:
|
text_sensor:
|
||||||
- platform: homeassistant
|
- platform: homeassistant
|
||||||
name: "Sun Rising ESP"
|
name: "Sun Rising ESP"
|
||||||
|
#entity_id: sensor.sun_next_rising
|
||||||
entity_id: sensor.sun_rising_template
|
entity_id: sensor.sun_rising_template
|
||||||
id: sun_rising
|
id: sun_rising
|
||||||
internal: true
|
internal: true
|
||||||
|
|
||||||
- platform: homeassistant
|
- platform: homeassistant
|
||||||
name: "Sun Setting ESP"
|
name: "Sun Setting ESP"
|
||||||
|
#entity_id: sensor.sun_next_setting
|
||||||
entity_id: sensor.sun_setting_template
|
entity_id: sensor.sun_setting_template
|
||||||
id: sun_setting
|
id: sun_setting
|
||||||
internal: true
|
internal: true
|
||||||
|
31
esphome/home-assistant-voice-09c0e7.yaml
Normal file
31
esphome/home-assistant-voice-09c0e7.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
substitutions:
|
||||||
|
name: home-assistant-voice-09c0e7
|
||||||
|
friendly_name: Home Assistant Voice 09c0e7
|
||||||
|
packages:
|
||||||
|
Nabu Casa.Home Assistant Voice PE: github://esphome/home-assistant-voice-pe/home-assistant-voice.yaml
|
||||||
|
esphome:
|
||||||
|
name: ${name}
|
||||||
|
name_add_mac_suffix: false
|
||||||
|
friendly_name: ${friendly_name}
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: "Voltage-legacy"
|
||||||
|
password: !secret voltage_legacy_psk
|
||||||
|
#use_address: ${name}.home
|
||||||
|
#power_save_mode: high
|
||||||
|
#fast_connect: on
|
||||||
|
|
||||||
|
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||||
|
ap:
|
||||||
|
ssid: "HA Voice Fallback Hotspot"
|
||||||
|
password: !secret fallback_psk
|
||||||
|
|
||||||
|
# Enable Home Assistant API
|
||||||
|
api:
|
||||||
|
encryption:
|
||||||
|
key: !secret apikey
|
||||||
|
|
||||||
|
ota:
|
||||||
|
platform: esphome
|
||||||
|
password: !secret ota
|
||||||
|
|
114
esphome/kamera-balkon.yaml
Normal file
114
esphome/kamera-balkon.yaml
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
substitutions:
|
||||||
|
name: kamera-balkon
|
||||||
|
friendly_name: Kamera Balkon
|
||||||
|
|
||||||
|
esphome:
|
||||||
|
name: ${name}
|
||||||
|
friendly_name: ${friendly_name}
|
||||||
|
name_add_mac_suffix: false
|
||||||
|
project:
|
||||||
|
name: sensor.camera
|
||||||
|
version: "1.0"
|
||||||
|
min_version: 2022.1.0
|
||||||
|
|
||||||
|
esp32:
|
||||||
|
board: esp32cam
|
||||||
|
framework:
|
||||||
|
type: arduino
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: "Voltage-legacy"
|
||||||
|
password: !secret voltage_legacy_psk
|
||||||
|
# use_address: cam-balcony.home
|
||||||
|
power_save_mode: high
|
||||||
|
fast_connect: on
|
||||||
|
|
||||||
|
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||||
|
ap:
|
||||||
|
ssid: "Cam Balkon Fallback Hotspot"
|
||||||
|
password: !secret fallback_psk
|
||||||
|
|
||||||
|
captive_portal:
|
||||||
|
|
||||||
|
# Enable logging
|
||||||
|
logger:
|
||||||
|
|
||||||
|
# Enable Home Assistant API
|
||||||
|
api:
|
||||||
|
encryption:
|
||||||
|
key: !secret apikey
|
||||||
|
|
||||||
|
ota:
|
||||||
|
platform: esphome
|
||||||
|
password: !secret ota
|
||||||
|
|
||||||
|
# Initialize I²C
|
||||||
|
i2c:
|
||||||
|
- id: bus_a
|
||||||
|
sda: GPIO13
|
||||||
|
scl: GPIO14
|
||||||
|
scan: true
|
||||||
|
- id: bus_c
|
||||||
|
sda: GPIO26
|
||||||
|
scl: GPIO27
|
||||||
|
|
||||||
|
# Camera
|
||||||
|
esp32_camera:
|
||||||
|
name: ${friendly_name}
|
||||||
|
external_clock:
|
||||||
|
pin: GPIO0
|
||||||
|
frequency: 20MHz
|
||||||
|
i2c_id:
|
||||||
|
bus_c
|
||||||
|
data_pins: [GPIO5, GPIO18, GPIO19, GPIO21, GPIO36, GPIO39, GPIO34, GPIO35]
|
||||||
|
vsync_pin: GPIO25
|
||||||
|
href_pin: GPIO23
|
||||||
|
pixel_clock_pin: GPIO22
|
||||||
|
power_down_pin: GPIO32
|
||||||
|
resolution: SVGA
|
||||||
|
max_framerate: 24 fps
|
||||||
|
idle_framerate: 0.2 fps
|
||||||
|
jpeg_quality: 30
|
||||||
|
agc_mode: auto
|
||||||
|
agc_gain_ceiling: 4x
|
||||||
|
wb_mode: auto
|
||||||
|
vertical_flip: true
|
||||||
|
horizontal_mirror: true
|
||||||
|
|
||||||
|
esp32_camera_web_server:
|
||||||
|
- port: 8080
|
||||||
|
mode: stream
|
||||||
|
- port: 8081
|
||||||
|
mode: snapshot
|
||||||
|
|
||||||
|
# Temp/humidity sensors
|
||||||
|
sensor:
|
||||||
|
- platform: wifi_signal
|
||||||
|
name: "WiFi Signalstärke"
|
||||||
|
update_interval: 60s
|
||||||
|
- platform: sht3xd
|
||||||
|
i2c_id:
|
||||||
|
bus_a
|
||||||
|
temperature:
|
||||||
|
name: "Balkon Temperatur"
|
||||||
|
filters:
|
||||||
|
- offset: -4.4
|
||||||
|
humidity:
|
||||||
|
name: "Balkon Luftfeuchtigkeit"
|
||||||
|
address: 0x44
|
||||||
|
heater_enabled: True
|
||||||
|
update_interval: 60s
|
||||||
|
|
||||||
|
# Flash LED
|
||||||
|
output:
|
||||||
|
- platform: ledc
|
||||||
|
pin: GPIO4
|
||||||
|
id: flash
|
||||||
|
channel: 2
|
||||||
|
|
||||||
|
# Define RGB mode for LED
|
||||||
|
light:
|
||||||
|
- platform: monochromatic
|
||||||
|
id: flashlight
|
||||||
|
name: "Blitzlicht"
|
||||||
|
output: flash
|
@@ -19,7 +19,7 @@ esp32:
|
|||||||
wifi:
|
wifi:
|
||||||
ssid: "Voltage-legacy"
|
ssid: "Voltage-legacy"
|
||||||
password: !secret voltage_legacy_psk
|
password: !secret voltage_legacy_psk
|
||||||
use_address: ${name}.home
|
use_address: cam-livingroom.home
|
||||||
power_save_mode: high
|
power_save_mode: high
|
||||||
fast_connect: on
|
fast_connect: on
|
||||||
|
|
||||||
@@ -60,9 +60,23 @@ esp32_camera:
|
|||||||
max_framerate: 24 fps
|
max_framerate: 24 fps
|
||||||
idle_framerate: 0.2 fps
|
idle_framerate: 0.2 fps
|
||||||
jpeg_quality: 30
|
jpeg_quality: 30
|
||||||
|
agc_mode: auto
|
||||||
|
agc_gain_ceiling: 4x
|
||||||
|
wb_mode: auto
|
||||||
vertical_flip: true
|
vertical_flip: true
|
||||||
horizontal_mirror: true
|
horizontal_mirror: true
|
||||||
|
|
||||||
|
esp32_camera_web_server:
|
||||||
|
- port: 8080
|
||||||
|
mode: stream
|
||||||
|
- port: 8081
|
||||||
|
mode: snapshot
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: wifi_signal
|
||||||
|
name: "WiFi Signalstärke"
|
||||||
|
update_interval: 60s
|
||||||
|
|
||||||
# Flash LED
|
# Flash LED
|
||||||
output:
|
output:
|
||||||
- platform: ledc
|
- platform: ledc
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
# Source: https://github.com/esphome/wake-word-voice-assistants/blob/main/m5stack-atom-echo/m5stack-atom-echo.yaml
|
||||||
|
|
||||||
substitutions:
|
substitutions:
|
||||||
name: m5stack-atom-echo
|
name: m5stack-atom-echo
|
||||||
friendly_name: M5Stack Atom Echo
|
friendly_name: M5Stack Atom Echo
|
||||||
@@ -13,8 +15,6 @@ esp32:
|
|||||||
board: m5stack-atom
|
board: m5stack-atom
|
||||||
framework:
|
framework:
|
||||||
type: esp-idf
|
type: esp-idf
|
||||||
version: 4.4.8
|
|
||||||
platform_version: 5.4.0
|
|
||||||
|
|
||||||
# Enable Home Assistant API
|
# Enable Home Assistant API
|
||||||
api:
|
api:
|
||||||
@@ -78,6 +78,7 @@ media_player:
|
|||||||
format: WAV
|
format: WAV
|
||||||
codec_support_enabled: false
|
codec_support_enabled: false
|
||||||
buffer_size: 6000
|
buffer_size: 6000
|
||||||
|
volume_min: 0.4
|
||||||
files:
|
files:
|
||||||
- id: timer_finished_wave_file
|
- id: timer_finished_wave_file
|
||||||
file: https://github.com/esphome/wake-word-voice-assistants/raw/main/sounds/timer_finished.wav
|
file: https://github.com/esphome/wake-word-voice-assistants/raw/main/sounds/timer_finished.wav
|
||||||
@@ -211,7 +212,6 @@ light:
|
|||||||
chipset: SK6812
|
chipset: SK6812
|
||||||
num_leds: 1
|
num_leds: 1
|
||||||
rgb_order: grb
|
rgb_order: grb
|
||||||
rmt_channel: 0
|
|
||||||
effects:
|
effects:
|
||||||
- pulse:
|
- pulse:
|
||||||
name: "Slow Pulse"
|
name: "Slow Pulse"
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
# Source: https://github.com/RASPIAUDIO/esphomeLuxe/blob/main/luxe_microWW.yaml
|
||||||
|
|
||||||
substitutions:
|
substitutions:
|
||||||
name: "raspiaudio-muse-luxe"
|
name: "raspiaudio-muse-luxe"
|
||||||
friendly_name: "RaspiAudio Muse Luxe"
|
friendly_name: "RaspiAudio Muse Luxe"
|
||||||
@@ -71,7 +73,7 @@ micro_wake_word:
|
|||||||
# - model: alexa
|
# - model: alexa
|
||||||
# vad:
|
# vad:
|
||||||
microphone: luxe_mic
|
microphone: luxe_mic
|
||||||
on_wake_word_detected:
|
on_wake_word_detected:
|
||||||
- voice_assistant.start:
|
- voice_assistant.start:
|
||||||
wake_word: !lambda return wake_word;
|
wake_word: !lambda return wake_word;
|
||||||
|
|
||||||
@@ -111,13 +113,44 @@ output:
|
|||||||
globals:
|
globals:
|
||||||
- id: Vol
|
- id: Vol
|
||||||
type: float
|
type: float
|
||||||
initial_value: '0.6'
|
initial_value: '0.6'
|
||||||
- id: phase
|
- id: phase
|
||||||
type: int
|
type: int
|
||||||
initial_value: '0'
|
initial_value: '0'
|
||||||
- id: mute
|
- id: mute
|
||||||
type: bool
|
type: bool
|
||||||
initial_value: 'false'
|
initial_value: 'false'
|
||||||
|
- id: muteH
|
||||||
|
type: bool
|
||||||
|
initial_value: 'false'
|
||||||
|
|
||||||
|
interval:
|
||||||
|
- interval: 0.1sec
|
||||||
|
then:
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
- speaker.is_stopped:
|
||||||
|
then:
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
- not:
|
||||||
|
- lambda: 'return(id(muteH));'
|
||||||
|
then:
|
||||||
|
- output.turn_on: dac_mute
|
||||||
|
- lambda: id(muteH) = true;
|
||||||
|
- logger.log: "====> hardware mute"
|
||||||
|
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
- speaker.is_playing:
|
||||||
|
then:
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
- lambda: 'return(id(muteH));'
|
||||||
|
then:
|
||||||
|
- output.turn_off: dac_mute
|
||||||
|
- lambda: id(muteH) = false;
|
||||||
|
- logger.log: "====> hardware unmute"
|
||||||
|
|
||||||
sensor:
|
sensor:
|
||||||
- platform: adc
|
- platform: adc
|
||||||
@@ -189,13 +222,13 @@ binary_sensor:
|
|||||||
pullup: true
|
pullup: true
|
||||||
name: Volume Up
|
name: Volume Up
|
||||||
on_click:
|
on_click:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(Vol) += 0.05;
|
id(Vol) += 0.05;
|
||||||
if(id(Vol) > 1) id(Vol) = 1;
|
if(id(Vol) > 1) id(Vol) = 1;
|
||||||
- media_player.volume_set:
|
- media_player.volume_set:
|
||||||
id: luxe_media_player
|
id: luxe_media_player
|
||||||
volume: !lambda return id(Vol);
|
volume: !lambda return id(Vol);
|
||||||
|
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
pin:
|
pin:
|
||||||
number: GPIO32
|
number: GPIO32
|
||||||
@@ -205,13 +238,13 @@ binary_sensor:
|
|||||||
pullup: true
|
pullup: true
|
||||||
name: Volume Down
|
name: Volume Down
|
||||||
on_click:
|
on_click:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(Vol) -= 0.05;
|
id(Vol) -= 0.05;
|
||||||
if(id(Vol) < 0) id(Vol) = 0;
|
if(id(Vol) < 0) id(Vol) = 0;
|
||||||
- media_player.volume_set:
|
- media_player.volume_set:
|
||||||
id: luxe_media_player
|
id: luxe_media_player
|
||||||
volume: !lambda return id(Vol);
|
volume: !lambda return id(Vol);
|
||||||
|
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
pin:
|
pin:
|
||||||
number: GPIO12
|
number: GPIO12
|
||||||
@@ -220,16 +253,16 @@ binary_sensor:
|
|||||||
input: true
|
input: true
|
||||||
pullup: true
|
pullup: true
|
||||||
name: Mute
|
name: Mute
|
||||||
on_click:
|
on_click:
|
||||||
- if:
|
- if:
|
||||||
condition:
|
condition:
|
||||||
- lambda: 'return(id(mute));'
|
- lambda: 'return(id(mute));'
|
||||||
then:
|
then:
|
||||||
- script.execute: mute_off
|
- script.execute: mute_off
|
||||||
- lambda: id(mute) = false;
|
- lambda: id(mute) = false;
|
||||||
else:
|
else:
|
||||||
- script.execute: mute_on
|
- script.execute: mute_on
|
||||||
- lambda: id(mute) = true;
|
- lambda: id(mute) = true;
|
||||||
on_double_click:
|
on_double_click:
|
||||||
- if:
|
- if:
|
||||||
condition:
|
condition:
|
||||||
@@ -269,9 +302,9 @@ microphone:
|
|||||||
sample_rate: 16000
|
sample_rate: 16000
|
||||||
i2s_din_pin: GPIO35
|
i2s_din_pin: GPIO35
|
||||||
bits_per_sample: 16bit
|
bits_per_sample: 16bit
|
||||||
channel: left
|
channel: stereo
|
||||||
adc_type: external
|
adc_type: external
|
||||||
|
|
||||||
speaker:
|
speaker:
|
||||||
- platform: i2s_audio
|
- platform: i2s_audio
|
||||||
id: luxe_speaker
|
id: luxe_speaker
|
||||||
@@ -280,8 +313,8 @@ speaker:
|
|||||||
sample_rate: 48000
|
sample_rate: 48000
|
||||||
bits_per_sample: 16bit
|
bits_per_sample: 16bit
|
||||||
channel: stereo
|
channel: stereo
|
||||||
buffer_duration: 100ms
|
buffer_duration: 100ms
|
||||||
|
|
||||||
media_player:
|
media_player:
|
||||||
- platform: speaker
|
- platform: speaker
|
||||||
name: None
|
name: None
|
||||||
@@ -292,37 +325,36 @@ media_player:
|
|||||||
speaker: luxe_speaker
|
speaker: luxe_speaker
|
||||||
format: FLAC
|
format: FLAC
|
||||||
sample_rate: 48000
|
sample_rate: 48000
|
||||||
num_channels: 2
|
num_channels: 2
|
||||||
files:
|
files:
|
||||||
- id: little_sound
|
- id: little_sound
|
||||||
file: https://github.com/esphome/home-assistant-voice-pe/raw/dev/sounds/timer_finished.flac
|
file: https://github.com/esphome/home-assistant-voice-pe/raw/dev/sounds/timer_finished.flac
|
||||||
on_announcement:
|
on_announcement:
|
||||||
- micro_wake_word.stop:
|
- micro_wake_word.stop:
|
||||||
- if:
|
- if:
|
||||||
condition:
|
condition:
|
||||||
lambda: 'return(id(phase) != 2);'
|
lambda: 'return(id(phase) != 2);'
|
||||||
then:
|
then:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
if(id(phase) == 1) id(phase) = 2;
|
if(id(phase) == 1) id(phase) = 2;
|
||||||
- script.execute: mute_off
|
- script.execute: mute_off
|
||||||
- script.execute: update_led
|
- script.execute: update_led
|
||||||
|
|
||||||
on_idle:
|
on_idle:
|
||||||
- wait_until:
|
- wait_until:
|
||||||
and:
|
and:
|
||||||
- not:
|
- not:
|
||||||
media_player.is_announcing:
|
media_player.is_announcing:
|
||||||
- not:
|
- not:
|
||||||
voice_assistant.is_running:
|
voice_assistant.is_running:
|
||||||
- if:
|
- if:
|
||||||
condition:
|
condition:
|
||||||
lambda: 'return((id(phase) == 4) || (id(phase) == 2));'
|
lambda: 'return((id(phase) == 4) || (id(phase) == 2));'
|
||||||
then:
|
then:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(phase) = 1;
|
id(phase) = 1;
|
||||||
- micro_wake_word.start:
|
- micro_wake_word.start:
|
||||||
- script.execute: update_led
|
- script.execute: update_led
|
||||||
|
|
||||||
|
|
||||||
voice_assistant:
|
voice_assistant:
|
||||||
id: va
|
id: va
|
||||||
@@ -334,10 +366,10 @@ voice_assistant:
|
|||||||
volume_multiplier: 2.0
|
volume_multiplier: 2.0
|
||||||
|
|
||||||
on_listening:
|
on_listening:
|
||||||
- logger.log: "listening 3 => phase"
|
- logger.log: "listening 3 => phase"
|
||||||
- micro_wake_word.stop:
|
- micro_wake_word.stop:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(phase) = 3;
|
id(phase) = 3;
|
||||||
- script.execute: update_led
|
- script.execute: update_led
|
||||||
|
|
||||||
on_stt_end:
|
on_stt_end:
|
||||||
@@ -351,53 +383,53 @@ voice_assistant:
|
|||||||
|
|
||||||
|
|
||||||
on_tts_start:
|
on_tts_start:
|
||||||
- logger.log: "answering 4 => phase"
|
- logger.log: "answering 4 => phase"
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(phase) = 4;
|
id(phase) = 4;
|
||||||
- script.execute: update_led
|
- script.execute: update_led
|
||||||
|
|
||||||
on_error:
|
on_error:
|
||||||
- logger.log: "ERROR!!!!!!!!!!!!!!!!"
|
- logger.log: "ERROR!!!!!!!!!!!!!!!!"
|
||||||
- light.turn_on:
|
- light.turn_on:
|
||||||
id: top_led
|
id: top_led
|
||||||
blue: 0%
|
blue: 0%
|
||||||
red: 100%
|
red: 100%
|
||||||
green: 0%
|
green: 0%
|
||||||
effect: pulse
|
effect: pulse
|
||||||
- delay: 3s
|
- delay: 3s
|
||||||
- lambda: id(phase) = 1;
|
- lambda: id(phase) = 1;
|
||||||
- script.execute: update_led
|
- script.execute: update_led
|
||||||
|
|
||||||
|
|
||||||
#########
|
#########
|
||||||
# Scripts
|
# Scripts
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- id: update_led
|
- id: update_led
|
||||||
then:
|
then:
|
||||||
- logger.log: "==>>>update_led"
|
- logger.log: "==>>>update_led"
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
if(id(phase) == 0)id(start).execute();
|
if(id(phase) == 0)id(start).execute();
|
||||||
if(id(phase) == 1)id(waiting).execute();
|
if(id(phase) == 1)id(waiting).execute();
|
||||||
if(id(phase) == 2)id(external_player).execute();
|
if(id(phase) == 2)id(external_player).execute();
|
||||||
if(id(phase) == 3)id(listening).execute();
|
if(id(phase) == 3)id(listening).execute();
|
||||||
if(id(phase) == 4)id(answering).execute();
|
if(id(phase) == 4)id(answering).execute();
|
||||||
|
|
||||||
- id: start
|
- id: start
|
||||||
then:
|
then:
|
||||||
- light.turn_on:
|
- light.turn_on:
|
||||||
id: top_led
|
id: top_led
|
||||||
effect: slow_pulse
|
effect: slow_pulse
|
||||||
red: 80%
|
red: 80%
|
||||||
green: 0%
|
green: 0%
|
||||||
blue: 80%
|
blue: 80%
|
||||||
- delay: 5sec
|
- delay: 5sec
|
||||||
- lambda: id(my_es8388).setup();
|
- lambda: id(my_es8388).setup();
|
||||||
- output.turn_off: dac_mute
|
- output.turn_off: dac_mute
|
||||||
- lambda: id(phase) = 1;
|
- lambda: id(phase) = 1;
|
||||||
- media_player.speaker.play_on_device_media_file:
|
- media_player.speaker.play_on_device_media_file:
|
||||||
media_file: little_sound
|
media_file: little_sound
|
||||||
announcement: true
|
announcement: true
|
||||||
- script.execute: update_led
|
- script.execute: update_led
|
||||||
|
|
||||||
- id: waiting
|
- id: waiting
|
||||||
@@ -409,8 +441,8 @@ script:
|
|||||||
green: 0%
|
green: 0%
|
||||||
blue: 100%
|
blue: 100%
|
||||||
brightness: 100%
|
brightness: 100%
|
||||||
- voice_assistant.stop:
|
- voice_assistant.stop:
|
||||||
- micro_wake_word.start:
|
- micro_wake_word.start:
|
||||||
|
|
||||||
|
|
||||||
- id: listening
|
- id: listening
|
||||||
@@ -420,8 +452,8 @@ script:
|
|||||||
effect: pulse
|
effect: pulse
|
||||||
red: 0%
|
red: 0%
|
||||||
green: 100%
|
green: 100%
|
||||||
blue: 0%
|
blue: 0%
|
||||||
brightness: 100%
|
brightness: 100%
|
||||||
|
|
||||||
- id: answering
|
- id: answering
|
||||||
then:
|
then:
|
||||||
@@ -430,8 +462,8 @@ script:
|
|||||||
effect: none
|
effect: none
|
||||||
red: 100%
|
red: 100%
|
||||||
green: 100%
|
green: 100%
|
||||||
blue: 0%
|
blue: 0%
|
||||||
brightness: 100%
|
brightness: 100%
|
||||||
|
|
||||||
- id: external_player
|
- id: external_player
|
||||||
then:
|
then:
|
||||||
@@ -440,7 +472,7 @@ script:
|
|||||||
effect: none
|
effect: none
|
||||||
red: 80%
|
red: 80%
|
||||||
green: 40%
|
green: 40%
|
||||||
blue: 0%
|
blue: 0%
|
||||||
|
|
||||||
- id: mute_on
|
- id: mute_on
|
||||||
then:
|
then:
|
||||||
|
BIN
image/681fb9bf3fd83a14a1ec95b48169723c/256x256
Normal file
BIN
image/681fb9bf3fd83a14a1ec95b48169723c/256x256
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
154
mqtt.yaml
154
mqtt.yaml
@@ -81,3 +81,157 @@
|
|||||||
model: Vauno-EN8822C
|
model: Vauno-EN8822C
|
||||||
manufacturer: rtl_433
|
manufacturer: rtl_433
|
||||||
|
|
||||||
|
- device_class: humidity
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
value_template: '{{ value|float }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Nexus-TH/1/238/humidity
|
||||||
|
unique_id: Nexus-TH-1-238-H
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Nexus-TH-1-238
|
||||||
|
model: Nexus-TH
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Nexus-TH-1-238
|
||||||
|
name: Humidity
|
||||||
|
|
||||||
|
- device_class: humidity
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
value_template: '{{ value|float }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Nexus-TH/1/238/humidity
|
||||||
|
unique_id: Nexus-TH-1-238-H
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Nexus-TH-1-238
|
||||||
|
model: Nexus-TH
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Nexus-TH-1-238
|
||||||
|
name: Humidity
|
||||||
|
|
||||||
|
# Cotech-367959
|
||||||
|
|
||||||
|
- device_class: battery
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
value_template: '{{ ((float(value) * 99)|round(0)) + 1 }}'
|
||||||
|
state_class: measurement
|
||||||
|
entity_category: diagnostic
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/battery_ok
|
||||||
|
unique_id: Cotech-367959-130-B
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Battery
|
||||||
|
|
||||||
|
- device_class: temperature
|
||||||
|
unit_of_measurement: °F
|
||||||
|
value_template: '{{ value|float|round(1) }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/temperature_F
|
||||||
|
unique_id: Cotech-367959-130-F
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Temperature
|
||||||
|
|
||||||
|
- device_class: humidity
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
value_template: '{{ value|float }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/humidity
|
||||||
|
unique_id: Cotech-367959-130-H
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Humidity
|
||||||
|
|
||||||
|
- device_class: precipitation
|
||||||
|
unit_of_measurement: mm
|
||||||
|
value_template: '{{ value|float|round(2) }}'
|
||||||
|
state_class: total_increasing
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/rain_mm
|
||||||
|
unique_id: Cotech-367959-130-RT
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Rain Total
|
||||||
|
|
||||||
|
- unit_of_measurement: °
|
||||||
|
value_template: '{{ value|float }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/wind_dir_deg
|
||||||
|
unique_id: Cotech-367959-130-WD
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Wind Direction
|
||||||
|
|
||||||
|
- device_class: wind_speed
|
||||||
|
unit_of_measurement: km/h
|
||||||
|
value_template: '{{ (float(value|float) * 3.6) | round(2) }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/wind_avg_m_s
|
||||||
|
unique_id: Cotech-367959-130-WS
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Wind Average
|
||||||
|
|
||||||
|
- device_class: wind_speed
|
||||||
|
unit_of_measurement: km/h
|
||||||
|
value_template: '{{ (float(value|float) * 3.6) | round(2) }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/wind_max_m_s
|
||||||
|
unique_id: Cotech-367959-130-GS
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Wind max
|
||||||
|
|
||||||
|
- device_class: illuminance
|
||||||
|
unit_of_measurement: lx
|
||||||
|
value_template: '{{ value|int }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/light_lux
|
||||||
|
unique_id: Cotech-367959-130-lux
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: Outside Luminance
|
||||||
|
|
||||||
|
- unit_of_measurement: UV Index
|
||||||
|
value_template: '{{ value|float|round(1) }}'
|
||||||
|
state_class: measurement
|
||||||
|
state_topic: rtl_433/sdr/devices/Cotech-367959/130/uv
|
||||||
|
unique_id: Cotech-367959-130-uv
|
||||||
|
device:
|
||||||
|
identifiers:
|
||||||
|
- Cotech-367959-130
|
||||||
|
model: Cotech-367959
|
||||||
|
manufacturer: rtl_433
|
||||||
|
name: Cotech-367959-130
|
||||||
|
name: UV Index
|
||||||
|
8
mqtt_statestream.yaml
Normal file
8
mqtt_statestream.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
base_topic: homeassistant
|
||||||
|
publish_attributes: true
|
||||||
|
publish_timestamps: true
|
||||||
|
# include:
|
||||||
|
# entities:
|
||||||
|
# - sensor.Netzleistung
|
||||||
|
|
||||||
|
|
8
notify.yaml
Normal file
8
notify.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#All Mobile Phones
|
||||||
|
- platform: group
|
||||||
|
name: "Alle mobilen Geräte"
|
||||||
|
services:
|
||||||
|
- service: mobile_app_le2123
|
||||||
|
- service: mobile_app_apollo
|
||||||
|
- service: mobile_app_xt2125_4
|
||||||
|
|
@@ -29,6 +29,7 @@
|
|||||||
- sensor.*_wi_fi_signal
|
- sensor.*_wi_fi_signal
|
||||||
- sensor.*_wifi_strenght
|
- sensor.*_wifi_strenght
|
||||||
- sensor.*_uptime
|
- sensor.*_uptime
|
||||||
|
- sensor.sun*
|
||||||
entities:
|
entities:
|
||||||
- sun.sun # Don't record sun data
|
- sun.sun # Don't record sun data
|
||||||
- sensor.fritzbox_device_uptime
|
- sensor.fritzbox_device_uptime
|
||||||
|
@@ -61,7 +61,8 @@
|
|||||||
{% set kaffeemaschine = states('sensor.kaffeemaschine_leistung_2') | float %}
|
{% set kaffeemaschine = states('sensor.kaffeemaschine_leistung_2') | float %}
|
||||||
{% set waeschetrockner = states('sensor.waschetrockner_leistung') | float %}
|
{% set waeschetrockner = states('sensor.waschetrockner_leistung') | float %}
|
||||||
{% set waschmaschine = states('sensor.waschmaschine_leistung') | float %}
|
{% set waschmaschine = states('sensor.waschmaschine_leistung') | float %}
|
||||||
{{ (total + solar - raumduft - keller - musik - bett - heimkino_sz - deko - schreibtisch - serverraum - heimkino_wz - spieleschrank - kuehlschrank - kaffeemaschine - waeschetrockner - waschmaschine) | round(1) }}
|
{% set arcade = states('sensor.arcade_automat_leistung') | float %}
|
||||||
|
{{ (total + solar - raumduft - keller - musik - bett - heimkino_sz - deko - schreibtisch - serverraum - heimkino_wz - spieleschrank - kuehlschrank - kaffeemaschine - waeschetrockner - waschmaschine - arcade) | round(1) }}
|
||||||
device_class: power
|
device_class: power
|
||||||
state_class: measurement
|
state_class: measurement
|
||||||
attributes:
|
attributes:
|
||||||
|
Reference in New Issue
Block a user