Varme: gør morgen/aften-tider konfigurerbare via input_datetime
- Ny input_datetime/varme.yaml med varme_morgen_tid og varme_aften_tid - Automations trigger nu på input_datetime-entiteterne i stedet for hardkodede tider - Script beregner nat dynamisk ud fra de to tider (string-sammenligning) - View: tilføj morgen/aften-tider til tabellen + manuel Genberegn-knap
This commit is contained in:
@@ -1,414 +0,0 @@
|
|||||||
title: Varme
|
|
||||||
path: varme
|
|
||||||
icon: mdi:radiator
|
|
||||||
type: sections
|
|
||||||
|
|
||||||
max_columns: 2
|
|
||||||
|
|
||||||
sections:
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Andreas
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.sovevaerelse_stue_temperatur
|
|
||||||
name: Netatmo
|
|
||||||
- entity: sensor.hue_motion_sensor_2_temperature_2
|
|
||||||
name: Hue
|
|
||||||
- entity: climate.andreas
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Roth aktuelt
|
|
||||||
- entity: climate.andreas
|
|
||||||
attribute: temperature
|
|
||||||
name: Roth mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Daniel
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.sovevaerelse_daniel_temperatur
|
|
||||||
name: Netatmo
|
|
||||||
- entity: sensor.hue_motion_sensor_2_temperature
|
|
||||||
name: Hue
|
|
||||||
- entity: climate.daniel
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Roth aktuelt
|
|
||||||
- entity: climate.daniel
|
|
||||||
attribute: temperature
|
|
||||||
name: Roth mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Sovevaerelse
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.sovevaerelse_temperatur
|
|
||||||
name: Netatmo
|
|
||||||
- entity: sensor.hue_motion_sensor_1_temperature_2
|
|
||||||
name: Hue sovevaerelse
|
|
||||||
- entity: sensor.hue_motion_sensor_1_temperature
|
|
||||||
name: Skab Claus
|
|
||||||
- entity: sensor.temperature
|
|
||||||
name: Skab Anne
|
|
||||||
- entity: climate.sovev_prelse
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Roth aktuelt
|
|
||||||
- entity: climate.sovev_prelse
|
|
||||||
attribute: temperature
|
|
||||||
name: Roth mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Kontor
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.kontor_motion_temperatur
|
|
||||||
name: Hue
|
|
||||||
- entity: climate.kontor
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Roth aktuelt
|
|
||||||
- entity: climate.kontor
|
|
||||||
attribute: temperature
|
|
||||||
name: Roth mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Gang
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.gang_sensor_temperature
|
|
||||||
name: Hue
|
|
||||||
- entity: climate.fordelingsgang
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Roth aktuelt
|
|
||||||
- entity: climate.fordelingsgang
|
|
||||||
attribute: temperature
|
|
||||||
name: Roth mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Badeværelse
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.bad_motion_sensor_temperature
|
|
||||||
name: Hue
|
|
||||||
- entity: climate.badevarelse
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Ally aktuelt
|
|
||||||
- entity: climate.badevarelse
|
|
||||||
attribute: temperature
|
|
||||||
name: Ally mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Stue
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.stue_motion_temperatur
|
|
||||||
name: Hue
|
|
||||||
- entity: climate.stue
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Ally aktuelt
|
|
||||||
- entity: climate.stue
|
|
||||||
attribute: temperature
|
|
||||||
name: Ally mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Forgang
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: sensor.forgang_sensor_temperature
|
|
||||||
name: Hue
|
|
||||||
- entity: climate.forgang
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Roth aktuelt
|
|
||||||
- entity: climate.forgang
|
|
||||||
attribute: temperature
|
|
||||||
name: Roth mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: custom:apexcharts-card
|
|
||||||
graph_span: 24h
|
|
||||||
header:
|
|
||||||
show: true
|
|
||||||
title: Lille bad
|
|
||||||
show_states: true
|
|
||||||
colorize_states: true
|
|
||||||
now:
|
|
||||||
show: true
|
|
||||||
label: Nu
|
|
||||||
apex_config:
|
|
||||||
chart:
|
|
||||||
height: 240
|
|
||||||
grid:
|
|
||||||
strokeDashArray: 2
|
|
||||||
xaxis:
|
|
||||||
type: datetime
|
|
||||||
labels:
|
|
||||||
datetimeFormatter:
|
|
||||||
hour: HH:mm
|
|
||||||
yaxis:
|
|
||||||
decimalsInFloat: 1
|
|
||||||
tickAmount: 6
|
|
||||||
series:
|
|
||||||
- entity: climate.lille_bad
|
|
||||||
attribute: current_temperature
|
|
||||||
name: Roth aktuelt
|
|
||||||
- entity: climate.lille_bad
|
|
||||||
attribute: temperature
|
|
||||||
name: Roth mål
|
|
||||||
stroke_width: 1
|
|
||||||
curve: stepline
|
|
||||||
color: "#ff8800"
|
|
||||||
|
|
||||||
# Indstillinger: Komforttemperaturer og sænkninger
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: entities
|
|
||||||
title: Komforttemperaturer
|
|
||||||
entities:
|
|
||||||
- entity: input_number.varme_komfort_andreas
|
|
||||||
- entity: input_number.varme_komfort_daniel
|
|
||||||
- entity: input_number.varme_komfort_sovevaerelse
|
|
||||||
- entity: input_number.varme_komfort_kontor
|
|
||||||
- entity: input_number.varme_komfort_gang
|
|
||||||
- entity: input_number.varme_komfort_forgang
|
|
||||||
- entity: input_number.varme_komfort_lille_bad
|
|
||||||
- entity: input_number.varme_komfort_badevarelse
|
|
||||||
- entity: input_number.varme_komfort_stue
|
|
||||||
|
|
||||||
- type: entities
|
|
||||||
title: Sænkninger og ferie
|
|
||||||
entities:
|
|
||||||
- entity: input_number.varme_nat_saenkning
|
|
||||||
- entity: input_number.varme_vaek_saenkning
|
|
||||||
- entity: input_number.varme_ferie_temp
|
|
||||||
- entity: input_datetime.vacation_end
|
|
||||||
name: Hjemkomst (ferie slutter)
|
|
||||||
|
|
||||||
# Ventilposition
|
|
||||||
- type: grid
|
|
||||||
cards:
|
|
||||||
- type: gauge
|
|
||||||
entity: sensor.fjernvarme_ventil_anbefalet
|
|
||||||
name: Anbefalet ventilposition (1–5)
|
|
||||||
min: 1
|
|
||||||
max: 5
|
|
||||||
needle: true
|
|
||||||
segments:
|
|
||||||
- from: 1
|
|
||||||
color: "#44aa44" # grøn: lukket/sommer
|
|
||||||
- from: 2
|
|
||||||
color: "#aaaa00" # gul: mildt
|
|
||||||
- from: 3
|
|
||||||
color: "#dd8800" # orange: køligt
|
|
||||||
- from: 4
|
|
||||||
color: "#cc4400" # rød-orange: koldt
|
|
||||||
- from: 4.5
|
|
||||||
color: "#aa0000" # rød: frost
|
|
||||||
|
|
||||||
- type: markdown
|
|
||||||
content: |-
|
|
||||||
**{{ state_attr('sensor.fjernvarme_ventil_anbefalet', 'anbefaling') }}**
|
|
||||||
|
|
||||||
Udetemperatur: {{ state_attr('sensor.fjernvarme_ventil_anbefalet', 'udetemperatur') }}°C
|
|
||||||
|
|
||||||
Gælder for begge manuelle hoveddrejehaner:
|
|
||||||
- Roth-fordeler (sauna)
|
|
||||||
- Fjernvarme indstikning (bryggers)
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
##################################################
|
##################################################
|
||||||
# Varme: Triggers der kalder script.varme_recalculate
|
# Varme: Triggers der kalder script.varme_recalculate
|
||||||
# Scenarierne der kræver genberegning:
|
# Scenarierne der kræver genberegning:
|
||||||
# - Morgen (06:30) - nat slut → komforttemp
|
# - Morgen (input_datetime.varme_morgen_tid) - nat slut → komforttemp
|
||||||
# - Aften (22:00) - nat start → natsænkning
|
# - Aften (input_datetime.varme_aften_tid) - nat start → natsænkning
|
||||||
# - Tilstedeværelse - hjemme/væk skifter
|
# - Tilstedeværelse - hjemme/væk skifter
|
||||||
# - Ferietilstand - ferie til/fra
|
# - Ferietilstand - ferie til/fra
|
||||||
# - HA genstart - genopret korrekt temp
|
# - HA genstart - genopret korrekt temp
|
||||||
@@ -10,19 +10,19 @@
|
|||||||
|
|
||||||
- alias: "Varme - Genberegn: Morgen"
|
- alias: "Varme - Genberegn: Morgen"
|
||||||
id: varme_recalc_morgen
|
id: varme_recalc_morgen
|
||||||
description: "Slutter natsænkning kl. 06:00 - sætter komforttemperaturer"
|
description: "Slutter natsænkning - tidspunkt styret af input_datetime.varme_morgen_tid"
|
||||||
trigger:
|
trigger:
|
||||||
- platform: time
|
- platform: time
|
||||||
at: "06:00:00"
|
at: input_datetime.varme_morgen_tid
|
||||||
action:
|
action:
|
||||||
- service: script.varme_recalculate
|
- service: script.varme_recalculate
|
||||||
|
|
||||||
- alias: "Varme - Genberegn: Nat"
|
- alias: "Varme - Genberegn: Nat"
|
||||||
id: varme_recalc_nat
|
id: varme_recalc_nat
|
||||||
description: "Starter natsænkning kl. 22:00"
|
description: "Starter natsænkning - tidspunkt styret af input_datetime.varme_aften_tid"
|
||||||
trigger:
|
trigger:
|
||||||
- platform: time
|
- platform: time
|
||||||
at: "22:00:00"
|
at: input_datetime.varme_aften_tid
|
||||||
action:
|
action:
|
||||||
- service: script.varme_recalculate
|
- service: script.varme_recalculate
|
||||||
|
|
||||||
@@ -61,10 +61,10 @@
|
|||||||
id: varme_ferie_forvarm
|
id: varme_ferie_forvarm
|
||||||
description: >
|
description: >
|
||||||
Slår vacation_mode fra 2 dage inden vacation_end så huset er
|
Slår vacation_mode fra 2 dage inden vacation_end så huset er
|
||||||
varmt ved hjemkomst. Kører dagligt kl. 06:00.
|
varmt ved hjemkomst. Kører dagligt ved morgen-tidspunktet.
|
||||||
trigger:
|
trigger:
|
||||||
- platform: time
|
- platform: time
|
||||||
at: "06:00:00"
|
at: input_datetime.varme_morgen_tid
|
||||||
condition:
|
condition:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.vacation_mode
|
entity_id: input_boolean.vacation_mode
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
varme_morgen_tid:
|
||||||
|
name: Varme - Morgen (nat slut)
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
icon: mdi:weather-sunny
|
||||||
|
|
||||||
|
varme_aften_tid:
|
||||||
|
name: Varme - Aften (nat start)
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
icon: mdi:weather-night
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
# Logik pr. rum:
|
# Logik pr. rum:
|
||||||
# - Vindue åbent → skip (håndteres af vinduer.yaml)
|
# - Vindue åbent → skip (håndteres af vinduer.yaml)
|
||||||
# - Ferie → varme_ferie_temp (frostbeskyttelse)
|
# - Ferie → varme_ferie_temp (frostbeskyttelse)
|
||||||
# - Nat (22–06:30) → komfort - varme_nat_saenkning
|
# - Nat (aften_tid–morgen_tid) → komfort - varme_nat_saenkning
|
||||||
# - Ingen hjemme → komfort - varme_vaek_saenkning
|
# - Ingen hjemme → komfort - varme_vaek_saenkning
|
||||||
# - Ellers → rum-komforttemperatur
|
# - Ellers → rum-komforttemperatur
|
||||||
##################################################
|
##################################################
|
||||||
@@ -19,7 +19,11 @@ varme_recalculate:
|
|||||||
sequence:
|
sequence:
|
||||||
- variables:
|
- variables:
|
||||||
vacation: "{{ is_state('input_boolean.vacation_mode', 'on') }}"
|
vacation: "{{ is_state('input_boolean.vacation_mode', 'on') }}"
|
||||||
night: "{{ now().hour >= 22 or now().hour < 7 }}"
|
night: >
|
||||||
|
{% set m = states('input_datetime.varme_morgen_tid') %}
|
||||||
|
{% set a = states('input_datetime.varme_aften_tid') %}
|
||||||
|
{% set t = now().strftime('%H:%M:%S') %}
|
||||||
|
{{ t >= a or t < m }}
|
||||||
home: "{{ is_state('binary_sensor.family_presence', 'on') }}"
|
home: "{{ is_state('binary_sensor.family_presence', 'on') }}"
|
||||||
nat_sænk: "{{ states('input_number.varme_nat_saenkning') | float(3) }}"
|
nat_sænk: "{{ states('input_number.varme_nat_saenkning') | float(3) }}"
|
||||||
vaek_sænk: "{{ states('input_number.varme_vaek_saenkning') | float(3) }}"
|
vaek_sænk: "{{ states('input_number.varme_vaek_saenkning') | float(3) }}"
|
||||||
|
|||||||
Reference in New Issue
Block a user