Enhance automations and configuration with new features and improvements
- Added new media player entity for doorbell notifications in automations.yaml. - Refactored automation sequences to include conditional actions based on triggers for sleep mode and KidsRoom. - Updated light and cover actions to improve functionality and responsiveness. - Introduced new scripts for critical notifications and smart shading management in scripts.yaml. - Added new KNX sensors for temperature, wind speed, and illuminance in sensor.yaml. - Created new packages for mobile dashboard and PV to DHW management to streamline automation processes.
This commit is contained in:
@@ -1,23 +1,11 @@
|
|||||||
{
|
{
|
||||||
"project": {
|
"mcpServers": {
|
||||||
"name": "home-assistant",
|
"postgres": {
|
||||||
"type": "home-automation"
|
"command": "npx",
|
||||||
},
|
"args": ["-y", "@modelcontextprotocol/server-postgres"],
|
||||||
"database": {
|
"env": {
|
||||||
"type": "postgresql",
|
"POSTGRES_CONNECTION_STRING": "postgresql://hass:FTXZ9r8iw0fTT655Q6tePTzp@synology.cobe.space:5433/hass"
|
||||||
"connection_string": "!secret psql_string",
|
}
|
||||||
"retry_wait": 15
|
}
|
||||||
},
|
|
||||||
"configuration": {
|
|
||||||
"main_config": "configuration.yaml",
|
|
||||||
"secrets": "secrets.yaml",
|
|
||||||
"automations": "automations.yaml",
|
|
||||||
"scripts": "scripts.yaml"
|
|
||||||
},
|
|
||||||
"directories": {
|
|
||||||
"custom_components": "custom_components",
|
|
||||||
"blueprints": "blueprints",
|
|
||||||
"tts": "tts",
|
|
||||||
"knx": "knx"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
478
automations.yaml
478
automations.yaml
@@ -23,6 +23,7 @@
|
|||||||
entity_id:
|
entity_id:
|
||||||
- media_player.kuche
|
- media_player.kuche
|
||||||
- media_player.gallerie
|
- media_player.gallerie
|
||||||
|
- media_player.buedzemmer
|
||||||
data:
|
data:
|
||||||
announce: true
|
announce: true
|
||||||
media_content_id: media-source://media_source/local/hass_media/doorbell.wav
|
media_content_id: media-source://media_source/local/hass_media/doorbell.wav
|
||||||
@@ -58,28 +59,6 @@
|
|||||||
target:
|
target:
|
||||||
entity_id: input_boolean.videophone_anzeigen
|
entity_id: input_boolean.videophone_anzeigen
|
||||||
- sequence:
|
- sequence:
|
||||||
- action: llmvision.image_analyzer
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
include_filename: false
|
|
||||||
max_tokens: 150
|
|
||||||
temperature: 0.2
|
|
||||||
provider: 01JS9H5VFVF5YSYCFB9YW4G0TN
|
|
||||||
image_entity:
|
|
||||||
- camera.haustur
|
|
||||||
model: gemma3:12b
|
|
||||||
target_width: 1025
|
|
||||||
message: 'Beschreibe kurz und knapp das Bild meiner Haustürkamera auf Deutsch.
|
|
||||||
Wieviele Person siehst du?
|
|
||||||
|
|
||||||
|
|
||||||
Ignoriere das weiße Haus im Hintergrund. Konzentriere die Beschreibung
|
|
||||||
auf Personen, Fahrzeuge oder sonstige Auffälligkeiten.
|
|
||||||
|
|
||||||
|
|
||||||
Antworte bloß mit der Beschreibung und sonst nichts.'
|
|
||||||
expose_images: false
|
|
||||||
response_variable: doorbell
|
|
||||||
- action: script.cobe_haus_benachrichtigung
|
- action: script.cobe_haus_benachrichtigung
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data:
|
data:
|
||||||
@@ -188,6 +167,14 @@
|
|||||||
- input_boolean.einschlaffmodus
|
- input_boolean.einschlaffmodus
|
||||||
from: 'off'
|
from: 'off'
|
||||||
to: 'on'
|
to: 'on'
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- input_boolean.schlaffmodus
|
||||||
|
from: 'off'
|
||||||
|
to: 'on'
|
||||||
|
- trigger: time
|
||||||
|
at: '19:00:00'
|
||||||
|
id: KidsRoom
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.rolladenautomatik
|
entity_id: input_boolean.rolladenautomatik
|
||||||
@@ -196,30 +183,52 @@
|
|||||||
entity_id: input_boolean.rolladen_automatisch_offnen_schliessen
|
entity_id: input_boolean.rolladen_automatisch_offnen_schliessen
|
||||||
state: 'on'
|
state: 'on'
|
||||||
actions:
|
actions:
|
||||||
- action: automation.turn_off
|
- if:
|
||||||
metadata: {}
|
- condition: trigger
|
||||||
data:
|
id:
|
||||||
stop_actions: true
|
- KidsRoom
|
||||||
target:
|
then:
|
||||||
entity_id: automation.automatik_fur_einzelne_rolladen_blockieren
|
- action: cover.close_cover
|
||||||
- action: cover.close_cover
|
metadata: {}
|
||||||
metadata: {}
|
data: {}
|
||||||
data: {}
|
target:
|
||||||
target:
|
area_id: emil
|
||||||
floor_id:
|
else:
|
||||||
- obergeschoss_2
|
- delay:
|
||||||
- obergeschoss_1
|
minutes: '{{ range(0, 10) | random }}'
|
||||||
- erdgeschoss
|
- action: automation.turn_off
|
||||||
- delay:
|
metadata: {}
|
||||||
hours: 0
|
data:
|
||||||
minutes: 0
|
stop_actions: true
|
||||||
seconds: 45
|
target:
|
||||||
milliseconds: 0
|
entity_id: automation.automatik_fur_einzelne_rolladen_blockieren
|
||||||
- action: automation.turn_on
|
- action: cover.close_cover
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: automation.automatik_fur_einzelne_rolladen_blockieren
|
floor_id:
|
||||||
|
- erdgeschoss
|
||||||
|
entity_id: cover.r_og2_bz_01
|
||||||
|
area_id:
|
||||||
|
- badezimmer
|
||||||
|
- gallerie
|
||||||
|
- millie
|
||||||
|
- action: cover.set_cover_position
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
position: 10
|
||||||
|
target:
|
||||||
|
entity_id: cover.r_og2_sz_01
|
||||||
|
- delay:
|
||||||
|
hours: 0
|
||||||
|
minutes: 0
|
||||||
|
seconds: 45
|
||||||
|
milliseconds: 0
|
||||||
|
- action: automation.turn_on
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: automation.automatik_fur_einzelne_rolladen_blockieren
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1743363549729'
|
- id: '1743363549729'
|
||||||
alias: Rolladen automatisch öffnen
|
alias: Rolladen automatisch öffnen
|
||||||
@@ -289,16 +298,38 @@
|
|||||||
- input_boolean.einschlaffmodus
|
- input_boolean.einschlaffmodus
|
||||||
from: 'off'
|
from: 'off'
|
||||||
to: 'on'
|
to: 'on'
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- input_boolean.schlaffmodus
|
||||||
|
from: 'off'
|
||||||
|
to: 'on'
|
||||||
|
id: Sleepmode
|
||||||
conditions: []
|
conditions: []
|
||||||
actions:
|
actions:
|
||||||
- action: light.turn_on
|
- if:
|
||||||
metadata: {}
|
- condition: trigger
|
||||||
data:
|
id:
|
||||||
brightness: 1
|
- Sleepmode
|
||||||
target:
|
then:
|
||||||
entity_id:
|
- action: light.turn_on
|
||||||
- light.lda_og1_th_01
|
metadata: {}
|
||||||
- light.lda_eg_th_01
|
data:
|
||||||
|
brightness: 1
|
||||||
|
target:
|
||||||
|
entity_id:
|
||||||
|
- light.lda_og1_th_01
|
||||||
|
- light.lda_eg_th_01
|
||||||
|
else:
|
||||||
|
- delay:
|
||||||
|
minutes: '{{ range(0, 10) | random }}'
|
||||||
|
- action: light.turn_on
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
brightness: 1
|
||||||
|
target:
|
||||||
|
entity_id:
|
||||||
|
- light.lda_og1_th_01
|
||||||
|
- light.lda_eg_th_01
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1743363942165'
|
- id: '1743363942165'
|
||||||
alias: Nachtsbeleuchtung ausschalten
|
alias: Nachtsbeleuchtung ausschalten
|
||||||
@@ -865,7 +896,7 @@
|
|||||||
- action: cover.set_cover_position
|
- action: cover.set_cover_position
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data:
|
data:
|
||||||
position: 20
|
position: 10
|
||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id:
|
||||||
- cover.r_og1_sz1_01
|
- cover.r_og1_sz1_01
|
||||||
@@ -1149,10 +1180,14 @@
|
|||||||
description: ''
|
description: ''
|
||||||
triggers:
|
triggers:
|
||||||
- trigger: time
|
- trigger: time
|
||||||
at: '23:00:00'
|
at: 02:00:00
|
||||||
id: Daily
|
id: Daily
|
||||||
conditions: []
|
conditions: []
|
||||||
actions:
|
actions:
|
||||||
|
- type: turn_on
|
||||||
|
device_id: 5f704f24d996f22b6a82273e2ee88242
|
||||||
|
entity_id: e79374aabc0af81724658bc488007630
|
||||||
|
domain: switch
|
||||||
- device_id: 5f704f24d996f22b6a82273e2ee88242
|
- device_id: 5f704f24d996f22b6a82273e2ee88242
|
||||||
domain: button
|
domain: button
|
||||||
entity_id: 2929dbf56880c02b94587e368d0b9b4f
|
entity_id: 2929dbf56880c02b94587e368d0b9b4f
|
||||||
@@ -1191,49 +1226,6 @@
|
|||||||
title: COBE Haus
|
title: COBE Haus
|
||||||
message: Stroum as erem do.
|
message: Stroum as erem do.
|
||||||
mode: single
|
mode: single
|
||||||
- id: '1746189714262'
|
|
||||||
alias: Solarenergie im Boiler speichern
|
|
||||||
description: ''
|
|
||||||
triggers:
|
|
||||||
- trigger: time_pattern
|
|
||||||
hours: '16'
|
|
||||||
conditions:
|
|
||||||
- condition: numeric_state
|
|
||||||
entity_id: sensor.power_produced
|
|
||||||
above: 6
|
|
||||||
- condition: numeric_state
|
|
||||||
entity_id: sensor.sh15t_battery_level_soc
|
|
||||||
above: 95
|
|
||||||
- condition: numeric_state
|
|
||||||
entity_id: sensor.sh15t_daily_feed_in_energy_pv
|
|
||||||
above: 50
|
|
||||||
actions:
|
|
||||||
- action: number.set_value
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
value: '60'
|
|
||||||
target:
|
|
||||||
entity_id: number.boiler_dhw_comfort_switch_off
|
|
||||||
enabled: false
|
|
||||||
- action: switch.turn_on
|
|
||||||
metadata: {}
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id: switch.thermostat_dhw_charge
|
|
||||||
- delay:
|
|
||||||
hours: 1
|
|
||||||
minutes: 30
|
|
||||||
seconds: 0
|
|
||||||
milliseconds: 0
|
|
||||||
enabled: false
|
|
||||||
- action: number.set_value
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
value: '55'
|
|
||||||
target:
|
|
||||||
entity_id: number.boiler_dhw_comfort_switch_off
|
|
||||||
enabled: false
|
|
||||||
mode: single
|
|
||||||
- id: '1746191829471'
|
- id: '1746191829471'
|
||||||
alias: Alarmkontakte für Schlaffzimmerfenster auschalten.
|
alias: Alarmkontakte für Schlaffzimmerfenster auschalten.
|
||||||
description: ''
|
description: ''
|
||||||
@@ -1383,7 +1375,7 @@
|
|||||||
- action: cover.set_cover_position
|
- action: cover.set_cover_position
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data:
|
data:
|
||||||
position: 20
|
position: 50
|
||||||
target:
|
target:
|
||||||
entity_id: cover.r_eg_wc_01
|
entity_id: cover.r_eg_wc_01
|
||||||
- if:
|
- if:
|
||||||
@@ -1476,15 +1468,285 @@
|
|||||||
entity_id: person.conny_eller
|
entity_id: person.conny_eller
|
||||||
zone: zone.home
|
zone: zone.home
|
||||||
actions:
|
actions:
|
||||||
- action: notify.mobile_app_iphone
|
- action: script.cobe_haus_benachrichtigung
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data:
|
data:
|
||||||
message: Et as keen méi Dohem. Soll ech d'Alarmanlag uschalten?
|
|
||||||
title: COBE Haus
|
title: COBE Haus
|
||||||
data:
|
message: Alarmanlag uschalten! Dass kee méi Dohem!
|
||||||
actions:
|
|
||||||
- action: TURN_ON_ALARM
|
|
||||||
title: Alarm uschalten
|
|
||||||
- action: NEE
|
|
||||||
title: Nee
|
|
||||||
mode: single
|
mode: single
|
||||||
|
- id: '1749672504492'
|
||||||
|
alias: DHW PV Boost Einschalten
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- binary_sensor.dhw_pv_boost_active
|
||||||
|
from: 'off'
|
||||||
|
to: 'on'
|
||||||
|
for:
|
||||||
|
hours: 0
|
||||||
|
minutes: 5
|
||||||
|
seconds: 0
|
||||||
|
conditions:
|
||||||
|
- condition: time
|
||||||
|
after: input_datetime.dhw_pv_boost_start
|
||||||
|
before: input_datetime.dhw_pv_boost_end
|
||||||
|
actions:
|
||||||
|
- action: number.set_value
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
value: '{{ states(''input_number.dhw_pv_boost_temp'') }}'
|
||||||
|
target:
|
||||||
|
entity_id: number.boiler_dhw_comfort_switch_off
|
||||||
|
- action: select.select_option
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
option: high comfort
|
||||||
|
target:
|
||||||
|
entity_id: select.boiler_dhw_comfort_mode
|
||||||
|
- action: script.cobe_haus_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: 'DHW PV-Boost started - Excess: {{ states(''sensor.sh15t_total_export_active_power'')
|
||||||
|
}}kW'
|
||||||
|
title: COBE Haus - DHW PV-Boost
|
||||||
|
mode: single
|
||||||
|
- id: '1749676379350'
|
||||||
|
alias: DHW PV Boost Ausschalten
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- binary_sensor.dhw_pv_boost_active
|
||||||
|
from: 'on'
|
||||||
|
to: 'off'
|
||||||
|
for:
|
||||||
|
hours: 0
|
||||||
|
minutes: 2
|
||||||
|
seconds: 0
|
||||||
|
- trigger: time
|
||||||
|
at: input_datetime.dhw_pv_boost_end
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: number.set_value
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
value: '55'
|
||||||
|
target:
|
||||||
|
entity_id: number.boiler_dhw_comfort_switch_off
|
||||||
|
- action: select.select_option
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
option: eco
|
||||||
|
target:
|
||||||
|
entity_id: select.boiler_dhw_comfort_mode
|
||||||
|
- action: script.cobe_haus_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: DHW PV-Boost stopped - Temperature reached or excess too low
|
||||||
|
title: COBE Haus - DHW PV-Boost
|
||||||
|
mode: single
|
||||||
|
- id: '1751218659966'
|
||||||
|
alias: Whirlpool Bubbels
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- switch.whirlpool_bubbles
|
||||||
|
to: 'on'
|
||||||
|
from: 'off'
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- delay:
|
||||||
|
hours: 0
|
||||||
|
minutes: 5
|
||||||
|
seconds: 0
|
||||||
|
milliseconds: 0
|
||||||
|
- action: switch.turn_off
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: switch.whirlpool_bubbles
|
||||||
|
mode: single
|
||||||
|
- id: '1751218899702'
|
||||||
|
alias: Daily Whirlpool Filter
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- trigger: time
|
||||||
|
at: '10:00:00'
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: switch.turn_on
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: switch.whirlpool_filter
|
||||||
|
mode: single
|
||||||
|
- id: '1752422245913'
|
||||||
|
alias: 'Verfügbarkeit: Whirlpool'
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- switch.whirlpool_power
|
||||||
|
to: unavailable
|
||||||
|
for:
|
||||||
|
hours: 0
|
||||||
|
minutes: 2
|
||||||
|
seconds: 0
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: notify.persistent_notification
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus
|
||||||
|
message: Den Whirlpool as net méi mam WIFI verbonnen!
|
||||||
|
- action: script.cobe_haus_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus
|
||||||
|
message: Den Whirlpool as net méi mam WIFI verbonnen!
|
||||||
|
mode: single
|
||||||
|
- id: '1752422417712'
|
||||||
|
alias: 'Verfügbarkeit: Risco Alarmanlage'
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- alarm_control_panel.cobe_haus
|
||||||
|
to: unavailable
|
||||||
|
for:
|
||||||
|
hours: 0
|
||||||
|
minutes: 2
|
||||||
|
seconds: 0
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: notify.persistent_notification
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus
|
||||||
|
message: Alarmanlage as net méi am Réseaux!
|
||||||
|
- action: script.cobe_haus_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus
|
||||||
|
message: Alarmanlage as net méi am Réseaux!
|
||||||
|
mode: single
|
||||||
|
- id: '1752422778376'
|
||||||
|
alias: 'Risco: Alarm partiel aktivéiert'
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- device_id: c13e5c5e52223e7a41d3521847c3617f
|
||||||
|
domain: alarm_control_panel
|
||||||
|
entity_id: 103f47ec3898b4bb5fe3b5b286702cd5
|
||||||
|
type: armed_home
|
||||||
|
trigger: device
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: script.cobe_haus_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus
|
||||||
|
message: Alarm ass partiel aktivéiert ginn!
|
||||||
|
mode: single
|
||||||
|
- id: '1752422849449'
|
||||||
|
alias: 'Risco: Alarm komplet aktivéiert'
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- device_id: c13e5c5e52223e7a41d3521847c3617f
|
||||||
|
domain: alarm_control_panel
|
||||||
|
entity_id: 103f47ec3898b4bb5fe3b5b286702cd5
|
||||||
|
type: armed_away
|
||||||
|
trigger: device
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: script.cobe_haus_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus
|
||||||
|
message: Alarm ass komplett aktivéiert ginn!
|
||||||
|
mode: single
|
||||||
|
- id: '1752427491606'
|
||||||
|
alias: 'Risco: Alarm ausgeschalt'
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- device_id: c13e5c5e52223e7a41d3521847c3617f
|
||||||
|
domain: alarm_control_panel
|
||||||
|
entity_id: 103f47ec3898b4bb5fe3b5b286702cd5
|
||||||
|
type: disarmed
|
||||||
|
trigger: device
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: script.cobe_haus_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus
|
||||||
|
message: Alarm ass ausgeschalt ginn!
|
||||||
|
mode: single
|
||||||
|
- id: '1752427548457'
|
||||||
|
alias: 'Risco: Alarm ausgeléist'
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- device_id: c13e5c5e52223e7a41d3521847c3617f
|
||||||
|
domain: alarm_control_panel
|
||||||
|
entity_id: 103f47ec3898b4bb5fe3b5b286702cd5
|
||||||
|
type: triggered
|
||||||
|
trigger: device
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- action: script.cobe_haus_kritische_benachrichtigung
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
title: COBE Haus - KRITISCH
|
||||||
|
message: Alarm as ausgeléist ginn !
|
||||||
|
mode: single
|
||||||
|
- id: '1752434002996'
|
||||||
|
alias: Präsenzmelder EG
|
||||||
|
description: ''
|
||||||
|
triggers:
|
||||||
|
- type: motion
|
||||||
|
device_id: ac370a9cf543af6e5b816c4d10262f97
|
||||||
|
entity_id: 05b598d9e6cde098fa14f7e649aaedfb
|
||||||
|
domain: binary_sensor
|
||||||
|
trigger: device
|
||||||
|
- type: motion
|
||||||
|
device_id: 549bb15726fa895ba2718d54686c07db
|
||||||
|
entity_id: 159cce7929f5ca8e5dc7c0bd53c08243
|
||||||
|
domain: binary_sensor
|
||||||
|
trigger: device
|
||||||
|
- type: motion
|
||||||
|
device_id: 5db3893e695787194f6d5de306aff1af
|
||||||
|
entity_id: 46877909625b770266b2139340c111fb
|
||||||
|
domain: binary_sensor
|
||||||
|
trigger: device
|
||||||
|
conditions:
|
||||||
|
- condition: state
|
||||||
|
entity_id: input_boolean.schlaffmodus
|
||||||
|
state: 'on'
|
||||||
|
- condition: device
|
||||||
|
type: is_off
|
||||||
|
device_id: 7caf75b15749aa7520a3b2aaf2177831
|
||||||
|
entity_id: 505957aeb57b58199dd30b203061e78b
|
||||||
|
domain: remote
|
||||||
|
- condition: numeric_state
|
||||||
|
entity_id: light.lda_eg_ku_01
|
||||||
|
attribute: brightness
|
||||||
|
below: 10
|
||||||
|
actions:
|
||||||
|
- action: light.turn_on
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
brightness_pct: 2
|
||||||
|
target:
|
||||||
|
entity_id: light.lda_eg_ku_01
|
||||||
|
- delay:
|
||||||
|
hours: 0
|
||||||
|
minutes: 0
|
||||||
|
seconds: 30
|
||||||
|
milliseconds: 0
|
||||||
|
- action: light.turn_off
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: light.lda_eg_ku_01
|
||||||
|
mode: restart
|
||||||
|
|||||||
0
beschattung_skript.yaml
Normal file
0
beschattung_skript.yaml
Normal file
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
# Loads default set of integrations. Do not remove.
|
# Loads default set of integrations. Do not remove.
|
||||||
default_config:
|
default_config:
|
||||||
|
|
||||||
@@ -27,7 +26,25 @@ recorder:
|
|||||||
frontend:
|
frontend:
|
||||||
themes: !include_dir_merge_named themes
|
themes: !include_dir_merge_named themes
|
||||||
|
|
||||||
|
# Include packages
|
||||||
|
homeassistant:
|
||||||
|
packages: !include_dir_named packages
|
||||||
|
|
||||||
|
template: !include template/binary_sensor.yaml
|
||||||
automation: !include automations.yaml
|
automation: !include automations.yaml
|
||||||
script: !include scripts.yaml
|
script: !include scripts.yaml
|
||||||
scene: !include scenes.yaml
|
scene: !include scenes.yaml
|
||||||
knx: !include knx/knx.yaml
|
knx: !include knx/knx.yaml
|
||||||
|
|
||||||
|
# Storage for Bubble Card Modules
|
||||||
|
template:
|
||||||
|
- trigger:
|
||||||
|
- trigger: event
|
||||||
|
event_type: bubble_card_update_modules
|
||||||
|
sensor:
|
||||||
|
- name: "Bubble Card Modules"
|
||||||
|
state: "saved"
|
||||||
|
icon: "mdi:puzzle"
|
||||||
|
attributes:
|
||||||
|
modules: "{{ trigger.event.data.modules }}"
|
||||||
|
last_updated: "{{ trigger.event.data.last_updated }}"
|
||||||
@@ -11,3 +11,26 @@
|
|||||||
- name: 'SE_EG_WC_Proximity'
|
- name: 'SE_EG_WC_Proximity'
|
||||||
state_address: '2/5/5'
|
state_address: '2/5/5'
|
||||||
type: pulse
|
type: pulse
|
||||||
|
|
||||||
|
- name: 'SE_AU_GT_Temp'
|
||||||
|
state_address: '5/5/1'
|
||||||
|
type: temperature
|
||||||
|
|
||||||
|
- name: 'SE_AU_GT_Wind'
|
||||||
|
state_address: '5/5/2'
|
||||||
|
type: wind_speed_ms
|
||||||
|
|
||||||
|
- name: 'SE_AU_GT_Lux East'
|
||||||
|
state_address: '5/5/3'
|
||||||
|
type: illuminance
|
||||||
|
device_class: illuminance
|
||||||
|
|
||||||
|
- name: 'SE_AU_GT_Lux South'
|
||||||
|
state_address: '5/5/4'
|
||||||
|
type: illuminance
|
||||||
|
device_class: illuminance
|
||||||
|
|
||||||
|
- name: 'SE_AU_GT_Lux West'
|
||||||
|
state_address: '5/5/5'
|
||||||
|
type: illuminance
|
||||||
|
device_class: illuminance
|
||||||
36
packages/mobile_dashboard.yaml
Normal file
36
packages/mobile_dashboard.yaml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
template:
|
||||||
|
- sensor:
|
||||||
|
- name: "Mobile Dashboard Weather"
|
||||||
|
state: >
|
||||||
|
{% set condition = states('weather.forecast_home') | title %}
|
||||||
|
{% set temp = states('sensor.se_au_gt_temp') | float %}
|
||||||
|
{% set wind = states('sensor.se_au_gt_wind') | float %}
|
||||||
|
{% set condition_icon = {
|
||||||
|
'Sunny': '☀️',
|
||||||
|
'Partlycloudy': '⛅',
|
||||||
|
'Cloudy': '☁️',
|
||||||
|
'Rainy': '🌧️',
|
||||||
|
'Snowy': '❄️',
|
||||||
|
'Windy': '💨',
|
||||||
|
'Fog': '🌫️'
|
||||||
|
}.get(condition, '🌤️') %}
|
||||||
|
{{ condition_icon }} {{ condition }} - 🌡️ {{ temp | round(1) }}°C - 💨 {{ wind | round(1) }} m/s
|
||||||
|
icon: >
|
||||||
|
{% set condition = states('weather.forecast_home') %}
|
||||||
|
{% if condition == 'sunny' %}
|
||||||
|
mdi:weather-sunny
|
||||||
|
{% elif condition == 'partlycloudy' %}
|
||||||
|
mdi:weather-partly-cloudy
|
||||||
|
{% elif condition == 'cloudy' %}
|
||||||
|
mdi:weather-cloudy
|
||||||
|
{% elif condition == 'rainy' %}
|
||||||
|
mdi:weather-rainy
|
||||||
|
{% elif condition == 'snowy' %}
|
||||||
|
mdi:weather-snowy
|
||||||
|
{% elif condition == 'windy' %}
|
||||||
|
mdi:weather-windy
|
||||||
|
{% elif condition == 'fog' %}
|
||||||
|
mdi:weather-fog
|
||||||
|
{% else %}
|
||||||
|
mdi:weather-cloudy
|
||||||
|
{% endif %}
|
||||||
135
packages/pv_to_dhw.yaml
Normal file
135
packages/pv_to_dhw.yaml
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
# ems-esp
|
||||||
|
|
||||||
|
# Aktuelle Warmwassertemperatur: sensor.boiler_dhw_current_intern_temperature
|
||||||
|
# Soll Warmwassertemperatur: sensor.boiler_dhw_set_temperature
|
||||||
|
# Soll Warmwassertemperatur: (einstellen) number.boiler_dhw_comfort_switch_off
|
||||||
|
# DHW Heizen aktiv: binary_sensor.boiler_dhw_charging
|
||||||
|
|
||||||
|
# sh15t
|
||||||
|
|
||||||
|
# MPPT Total Power: sensor.sh15t_mppt_total_power
|
||||||
|
# Total Export Active Power: sensor.sh15t_total_export_active_power
|
||||||
|
|
||||||
|
|
||||||
|
template:
|
||||||
|
- sensor:
|
||||||
|
- name: "DHW Boost available"
|
||||||
|
state: >
|
||||||
|
{% set dhw_temp = states('sensor.boiler_dhw_current_intern_temperature') | float %}
|
||||||
|
{% set dhw_setpoint = states('sensor.boiler_dhw_set_temperature') | float %}
|
||||||
|
{% set temp_diff = dhw_setpoint - dhw_temp %}
|
||||||
|
{{ temp_diff > 5 }}
|
||||||
|
|
||||||
|
- name: "DHW Boost Demand"
|
||||||
|
state: >
|
||||||
|
{% set excess = states('sensor.sh15t_total_export_active_power') | float %}
|
||||||
|
{% set dhw_available = states('sensor.dhw_boost_available') %}
|
||||||
|
{% set wp_power = states('input_number.dhw_pv_min_excess') | float %}
|
||||||
|
{{ excess > wp_power and dhw_available }}
|
||||||
|
|
||||||
|
- binary_sensor:
|
||||||
|
- name: "DHW PV Boost active"
|
||||||
|
state: >
|
||||||
|
{{ states('input_boolean.dhw_pv_boost_enabled') == 'on' and
|
||||||
|
states('sensor.dhw_boost_demand') }}
|
||||||
|
|
||||||
|
input_boolean:
|
||||||
|
dhw_pv_boost_enabled:
|
||||||
|
name: "DHW PV Boost enabled"
|
||||||
|
icon: mdi:water-boiler-auto
|
||||||
|
initial: false
|
||||||
|
|
||||||
|
input_number:
|
||||||
|
dhw_pv_boost_temp:
|
||||||
|
name: "DHW PV Boost Setpoint temperature"
|
||||||
|
min: 45
|
||||||
|
max: 65
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: "°C"
|
||||||
|
initial: 60
|
||||||
|
|
||||||
|
dhw_pv_min_excess:
|
||||||
|
name: "Minimal PV Excess for DHW"
|
||||||
|
min: 1
|
||||||
|
max: 5
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: "kW"
|
||||||
|
initial: 2
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
dhw_pv_boost_start:
|
||||||
|
name: "PV-Boost Earliest Start Time"
|
||||||
|
has_time: true
|
||||||
|
initial: "10:00:00"
|
||||||
|
|
||||||
|
dhw_pv_boost_end:
|
||||||
|
name: "PV-Boost Latest End Time"
|
||||||
|
has_time: true
|
||||||
|
initial: "17:00:00"
|
||||||
|
|
||||||
|
# automation:
|
||||||
|
# - id: 'dhw_pv_boost_start'
|
||||||
|
# alias: "DHW PV-Boost Start"
|
||||||
|
# trigger:
|
||||||
|
# - platform: numeric_state
|
||||||
|
# entity_id: sensor.sh15t_total_export_active_power
|
||||||
|
# above: input_number.dhw_pv_min_excess
|
||||||
|
# for:
|
||||||
|
# minutes: 5
|
||||||
|
# condition:
|
||||||
|
# - condition: state
|
||||||
|
# entity_id: input_boolean.dhw_pv_boost_enabled
|
||||||
|
# state: 'on'
|
||||||
|
# - condition: time
|
||||||
|
# after: input_datetime.dhw_pv_boost_start
|
||||||
|
# before: input_datetime.dhw_pv_boost_end
|
||||||
|
# - condition: numeric_state
|
||||||
|
# entity_id: sensor.boiler_dhw_current_intern_temperature
|
||||||
|
# below: input_number.dhw_pv_boost_temp
|
||||||
|
# - condition: state
|
||||||
|
# entity_id: binary_sensor.boiler_dhw_charging
|
||||||
|
# state: 'off'
|
||||||
|
# action:
|
||||||
|
# - service: number.set_value
|
||||||
|
# target:
|
||||||
|
# entity_id: number.boiler_dhw_set_temperature
|
||||||
|
# data:
|
||||||
|
# value: "{{ states('input_number.dhw_pv_boost_temp') }}"
|
||||||
|
# - service: switch.turn_on
|
||||||
|
# target:
|
||||||
|
# entity_id: switch.boiler_dhw_comfort
|
||||||
|
# - service: script.cobe_haus_benachrichtigung
|
||||||
|
# data:
|
||||||
|
# message: "DHW PV-Boost started - Excess: {{ states('sensor.sh15t_total_export_active_power') }}kW"
|
||||||
|
# title: "COBE Haus - DHW PV-Boost"
|
||||||
|
|
||||||
|
# - id: 'dhw_pv_boost_stop'
|
||||||
|
# alias: "DHW PV-Boost Stop"
|
||||||
|
# trigger:
|
||||||
|
# - platform: numeric_state
|
||||||
|
# entity_id: sensor.sh15t_total_export_active_power
|
||||||
|
# below: 1.0
|
||||||
|
# for:
|
||||||
|
# minutes: 10
|
||||||
|
# - platform: numeric_state
|
||||||
|
# entity_id: sensor.boiler_dhw_current_intern_temperature
|
||||||
|
# above: input_number.dhw_pv_boost_temp
|
||||||
|
# - platform: time
|
||||||
|
# at: input_datetime.dhw_pv_boost_end
|
||||||
|
# condition:
|
||||||
|
# - condition: state
|
||||||
|
# entity_id: binary_sensor.dhw_pv_boost_aktiv
|
||||||
|
# state: 'on'
|
||||||
|
# action:
|
||||||
|
# - service: number.set_value
|
||||||
|
# target:
|
||||||
|
# entity_id: number.boiler_dhw_set_temperature
|
||||||
|
# data:
|
||||||
|
# value: 50
|
||||||
|
# - service: switch.turn_off
|
||||||
|
# target:
|
||||||
|
# entity_id: switch.boiler_dhw_comfort
|
||||||
|
# - service: script.cobe_haus_benachrichtigung
|
||||||
|
# data:
|
||||||
|
# message: "DHW PV-Boost stopped - Temperature reached or excess too low"
|
||||||
|
# title: "COBE Haus - DHW PV-Boost"
|
||||||
147
scripts.yaml
147
scripts.yaml
@@ -1,6 +1,6 @@
|
|||||||
cobe_haus_benachrichtigung:
|
cobe_haus_benachrichtigung:
|
||||||
sequence:
|
sequence:
|
||||||
- action: notify.mobile_app_iphone
|
- action: notify.mobile_app_kn0x_tech_iphone
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data:
|
data:
|
||||||
message: '{{ message }}'
|
message: '{{ message }}'
|
||||||
@@ -10,11 +10,6 @@ cobe_haus_benachrichtigung:
|
|||||||
data:
|
data:
|
||||||
message: '{{ message }}'
|
message: '{{ message }}'
|
||||||
title: '{{ title }}'
|
title: '{{ title }}'
|
||||||
- action: notify.mobile_app_sm_f711b
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
message: '{{ message }}'
|
|
||||||
title: '{{ title }}'
|
|
||||||
fields:
|
fields:
|
||||||
title:
|
title:
|
||||||
selector:
|
selector:
|
||||||
@@ -32,7 +27,7 @@ cobe_haus_benachrichtigung:
|
|||||||
description: ''
|
description: ''
|
||||||
cobe_haus_benachrichtigung_mit_bild:
|
cobe_haus_benachrichtigung_mit_bild:
|
||||||
sequence:
|
sequence:
|
||||||
- action: notify.mobile_app_iphone
|
- action: notify.mobile_app_kn0x_tech_iphone
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data:
|
data:
|
||||||
message: '{{ message }}'
|
message: '{{ message }}'
|
||||||
@@ -46,13 +41,6 @@ cobe_haus_benachrichtigung_mit_bild:
|
|||||||
title: '{{ title }}'
|
title: '{{ title }}'
|
||||||
data:
|
data:
|
||||||
image: '{ image }'
|
image: '{ image }'
|
||||||
- action: notify.mobile_app_sm_f711b
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
message: '{{ message }}'
|
|
||||||
title: '{{ title }}'
|
|
||||||
data:
|
|
||||||
image: '{ image }'
|
|
||||||
fields:
|
fields:
|
||||||
title:
|
title:
|
||||||
selector:
|
selector:
|
||||||
@@ -74,3 +62,134 @@ cobe_haus_benachrichtigung_mit_bild:
|
|||||||
required: true
|
required: true
|
||||||
alias: COBE Haus Benachrichtigung mit Bild
|
alias: COBE Haus Benachrichtigung mit Bild
|
||||||
description: ''
|
description: ''
|
||||||
|
smarte_beschattung:
|
||||||
|
sequence: []
|
||||||
|
fields:
|
||||||
|
cover_entity:
|
||||||
|
description: Entity ID des Rollladens
|
||||||
|
example: cover.wohnzimmer_rolladen
|
||||||
|
required: true
|
||||||
|
selector:
|
||||||
|
entity:
|
||||||
|
domain: cover
|
||||||
|
window_azimuth_start:
|
||||||
|
description: Start-Azimut des Fensters (Grad)
|
||||||
|
example: 135
|
||||||
|
required: true
|
||||||
|
default: 90
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 360
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °
|
||||||
|
window_azimuth_end:
|
||||||
|
description: End-Azimut des Fensters (Grad)
|
||||||
|
example: 225
|
||||||
|
required: true
|
||||||
|
default: 270
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 360
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °
|
||||||
|
min_elevation:
|
||||||
|
description: Minimale Sonnenhöhe für Beschattung
|
||||||
|
example: 15
|
||||||
|
default: 10
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 90
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °
|
||||||
|
max_elevation:
|
||||||
|
description: Maximale Sonnenhöhe für stärkste Beschattung
|
||||||
|
example: 60
|
||||||
|
default: 50
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 90
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °
|
||||||
|
max_closed_position:
|
||||||
|
description: Maximal geschlossene Position (0=ganz zu, 100=ganz auf)
|
||||||
|
example: 20
|
||||||
|
default: 15
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
fully_open_position:
|
||||||
|
description: Vollständig geöffnete Position
|
||||||
|
example: 100
|
||||||
|
default: 100
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
block_entity:
|
||||||
|
description: Block-Entity (wenn aktiviert, wird Rolladen nicht bewegt)
|
||||||
|
example: input_boolean.wohnzimmer_rolladen_block
|
||||||
|
required: false
|
||||||
|
selector:
|
||||||
|
entity:
|
||||||
|
domain:
|
||||||
|
- input_boolean
|
||||||
|
- binary_sensor
|
||||||
|
- switch
|
||||||
|
enable_logging:
|
||||||
|
description: Debug-Logging aktivieren
|
||||||
|
default: false
|
||||||
|
selector:
|
||||||
|
boolean:
|
||||||
|
alias: Smarte Beschattung
|
||||||
|
description: ''
|
||||||
|
cobe_haus_kritische_benachrichtigung:
|
||||||
|
sequence:
|
||||||
|
- action: notify.mobile_app_kn0x_tech_iphone
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: '{{ message }}'
|
||||||
|
title: '{{ title }}'
|
||||||
|
data:
|
||||||
|
push:
|
||||||
|
interruption-level: critical
|
||||||
|
sound:
|
||||||
|
name: default
|
||||||
|
critical: 1
|
||||||
|
volume: 1
|
||||||
|
- action: notify.mobile_app_iphone_von_conny
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
message: '{{ message }}'
|
||||||
|
title: '{{ title }}'
|
||||||
|
data:
|
||||||
|
push:
|
||||||
|
interruption-level: critical
|
||||||
|
sound:
|
||||||
|
name: default
|
||||||
|
critical: 1
|
||||||
|
volume: 1
|
||||||
|
fields:
|
||||||
|
title:
|
||||||
|
selector:
|
||||||
|
text:
|
||||||
|
name: Titel
|
||||||
|
description: Titel der kritischen Benachrichtigung
|
||||||
|
default: COBE Haus - KRITISCH
|
||||||
|
message:
|
||||||
|
selector:
|
||||||
|
text:
|
||||||
|
name: Nachricht
|
||||||
|
description: Kritische Nachricht
|
||||||
|
required: true
|
||||||
|
alias: COBE Haus Kritische Benachrichtigung
|
||||||
|
description: Sendet kritische Benachrichtigungen die auch im Do Not Disturb Modus
|
||||||
|
angezeigt werden
|
||||||
|
|||||||
0
template/binary_sensor.yaml
Normal file
0
template/binary_sensor.yaml
Normal file
Reference in New Issue
Block a user