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": {
|
||||
"name": "home-assistant",
|
||||
"type": "home-automation"
|
||||
},
|
||||
"database": {
|
||||
"type": "postgresql",
|
||||
"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"
|
||||
"mcpServers": {
|
||||
"postgres": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-postgres"],
|
||||
"env": {
|
||||
"POSTGRES_CONNECTION_STRING": "postgresql://hass:FTXZ9r8iw0fTT655Q6tePTzp@synology.cobe.space:5433/hass"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
478
automations.yaml
478
automations.yaml
@@ -23,6 +23,7 @@
|
||||
entity_id:
|
||||
- media_player.kuche
|
||||
- media_player.gallerie
|
||||
- media_player.buedzemmer
|
||||
data:
|
||||
announce: true
|
||||
media_content_id: media-source://media_source/local/hass_media/doorbell.wav
|
||||
@@ -58,28 +59,6 @@
|
||||
target:
|
||||
entity_id: input_boolean.videophone_anzeigen
|
||||
- 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
|
||||
metadata: {}
|
||||
data:
|
||||
@@ -188,6 +167,14 @@
|
||||
- input_boolean.einschlaffmodus
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- input_boolean.schlaffmodus
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
- trigger: time
|
||||
at: '19:00:00'
|
||||
id: KidsRoom
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.rolladenautomatik
|
||||
@@ -196,30 +183,52 @@
|
||||
entity_id: input_boolean.rolladen_automatisch_offnen_schliessen
|
||||
state: 'on'
|
||||
actions:
|
||||
- action: automation.turn_off
|
||||
metadata: {}
|
||||
data:
|
||||
stop_actions: true
|
||||
target:
|
||||
entity_id: automation.automatik_fur_einzelne_rolladen_blockieren
|
||||
- action: cover.close_cover
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
floor_id:
|
||||
- obergeschoss_2
|
||||
- obergeschoss_1
|
||||
- erdgeschoss
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: 45
|
||||
milliseconds: 0
|
||||
- action: automation.turn_on
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: automation.automatik_fur_einzelne_rolladen_blockieren
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- KidsRoom
|
||||
then:
|
||||
- action: cover.close_cover
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
area_id: emil
|
||||
else:
|
||||
- delay:
|
||||
minutes: '{{ range(0, 10) | random }}'
|
||||
- action: automation.turn_off
|
||||
metadata: {}
|
||||
data:
|
||||
stop_actions: true
|
||||
target:
|
||||
entity_id: automation.automatik_fur_einzelne_rolladen_blockieren
|
||||
- action: cover.close_cover
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
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
|
||||
- id: '1743363549729'
|
||||
alias: Rolladen automatisch öffnen
|
||||
@@ -289,16 +298,38 @@
|
||||
- input_boolean.einschlaffmodus
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- input_boolean.schlaffmodus
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
id: Sleepmode
|
||||
conditions: []
|
||||
actions:
|
||||
- action: light.turn_on
|
||||
metadata: {}
|
||||
data:
|
||||
brightness: 1
|
||||
target:
|
||||
entity_id:
|
||||
- light.lda_og1_th_01
|
||||
- light.lda_eg_th_01
|
||||
- if:
|
||||
- condition: trigger
|
||||
id:
|
||||
- Sleepmode
|
||||
then:
|
||||
- action: light.turn_on
|
||||
metadata: {}
|
||||
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
|
||||
- id: '1743363942165'
|
||||
alias: Nachtsbeleuchtung ausschalten
|
||||
@@ -865,7 +896,7 @@
|
||||
- action: cover.set_cover_position
|
||||
metadata: {}
|
||||
data:
|
||||
position: 20
|
||||
position: 10
|
||||
target:
|
||||
entity_id:
|
||||
- cover.r_og1_sz1_01
|
||||
@@ -1149,10 +1180,14 @@
|
||||
description: ''
|
||||
triggers:
|
||||
- trigger: time
|
||||
at: '23:00:00'
|
||||
at: 02:00:00
|
||||
id: Daily
|
||||
conditions: []
|
||||
actions:
|
||||
- type: turn_on
|
||||
device_id: 5f704f24d996f22b6a82273e2ee88242
|
||||
entity_id: e79374aabc0af81724658bc488007630
|
||||
domain: switch
|
||||
- device_id: 5f704f24d996f22b6a82273e2ee88242
|
||||
domain: button
|
||||
entity_id: 2929dbf56880c02b94587e368d0b9b4f
|
||||
@@ -1191,49 +1226,6 @@
|
||||
title: COBE Haus
|
||||
message: Stroum as erem do.
|
||||
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'
|
||||
alias: Alarmkontakte für Schlaffzimmerfenster auschalten.
|
||||
description: ''
|
||||
@@ -1383,7 +1375,7 @@
|
||||
- action: cover.set_cover_position
|
||||
metadata: {}
|
||||
data:
|
||||
position: 20
|
||||
position: 50
|
||||
target:
|
||||
entity_id: cover.r_eg_wc_01
|
||||
- if:
|
||||
@@ -1476,15 +1468,285 @@
|
||||
entity_id: person.conny_eller
|
||||
zone: zone.home
|
||||
actions:
|
||||
- action: notify.mobile_app_iphone
|
||||
- action: script.cobe_haus_benachrichtigung
|
||||
metadata: {}
|
||||
data:
|
||||
message: Et as keen méi Dohem. Soll ech d'Alarmanlag uschalten?
|
||||
title: COBE Haus
|
||||
data:
|
||||
actions:
|
||||
- action: TURN_ON_ALARM
|
||||
title: Alarm uschalten
|
||||
- action: NEE
|
||||
title: Nee
|
||||
message: Alarmanlag uschalten! Dass kee méi Dohem!
|
||||
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.
|
||||
default_config:
|
||||
|
||||
@@ -27,7 +26,25 @@ recorder:
|
||||
frontend:
|
||||
themes: !include_dir_merge_named themes
|
||||
|
||||
# Include packages
|
||||
homeassistant:
|
||||
packages: !include_dir_named packages
|
||||
|
||||
template: !include template/binary_sensor.yaml
|
||||
automation: !include automations.yaml
|
||||
script: !include scripts.yaml
|
||||
scene: !include scenes.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'
|
||||
state_address: '2/5/5'
|
||||
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:
|
||||
sequence:
|
||||
- action: notify.mobile_app_iphone
|
||||
- action: notify.mobile_app_kn0x_tech_iphone
|
||||
metadata: {}
|
||||
data:
|
||||
message: '{{ message }}'
|
||||
@@ -10,11 +10,6 @@ cobe_haus_benachrichtigung:
|
||||
data:
|
||||
message: '{{ message }}'
|
||||
title: '{{ title }}'
|
||||
- action: notify.mobile_app_sm_f711b
|
||||
metadata: {}
|
||||
data:
|
||||
message: '{{ message }}'
|
||||
title: '{{ title }}'
|
||||
fields:
|
||||
title:
|
||||
selector:
|
||||
@@ -32,7 +27,7 @@ cobe_haus_benachrichtigung:
|
||||
description: ''
|
||||
cobe_haus_benachrichtigung_mit_bild:
|
||||
sequence:
|
||||
- action: notify.mobile_app_iphone
|
||||
- action: notify.mobile_app_kn0x_tech_iphone
|
||||
metadata: {}
|
||||
data:
|
||||
message: '{{ message }}'
|
||||
@@ -46,13 +41,6 @@ cobe_haus_benachrichtigung_mit_bild:
|
||||
title: '{{ title }}'
|
||||
data:
|
||||
image: '{ image }'
|
||||
- action: notify.mobile_app_sm_f711b
|
||||
metadata: {}
|
||||
data:
|
||||
message: '{{ message }}'
|
||||
title: '{{ title }}'
|
||||
data:
|
||||
image: '{ image }'
|
||||
fields:
|
||||
title:
|
||||
selector:
|
||||
@@ -74,3 +62,134 @@ cobe_haus_benachrichtigung_mit_bild:
|
||||
required: true
|
||||
alias: COBE Haus Benachrichtigung mit Bild
|
||||
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