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
|
||||
# Scenarierne der kræver genberegning:
|
||||
# - Morgen (06:30) - nat slut → komforttemp
|
||||
# - Aften (22:00) - nat start → natsænkning
|
||||
# - Morgen (input_datetime.varme_morgen_tid) - nat slut → komforttemp
|
||||
# - Aften (input_datetime.varme_aften_tid) - nat start → natsænkning
|
||||
# - Tilstedeværelse - hjemme/væk skifter
|
||||
# - Ferietilstand - ferie til/fra
|
||||
# - HA genstart - genopret korrekt temp
|
||||
@@ -10,19 +10,19 @@
|
||||
|
||||
- alias: "Varme - Genberegn: 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:
|
||||
- platform: time
|
||||
at: "06:00:00"
|
||||
at: input_datetime.varme_morgen_tid
|
||||
action:
|
||||
- service: script.varme_recalculate
|
||||
|
||||
- alias: "Varme - Genberegn: 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:
|
||||
- platform: time
|
||||
at: "22:00:00"
|
||||
at: input_datetime.varme_aften_tid
|
||||
action:
|
||||
- service: script.varme_recalculate
|
||||
|
||||
@@ -61,10 +61,10 @@
|
||||
id: varme_ferie_forvarm
|
||||
description: >
|
||||
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:
|
||||
- platform: time
|
||||
at: "06:00:00"
|
||||
at: input_datetime.varme_morgen_tid
|
||||
condition:
|
||||
- condition: state
|
||||
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:
|
||||
# - Vindue åbent → skip (håndteres af vinduer.yaml)
|
||||
# - 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
|
||||
# - Ellers → rum-komforttemperatur
|
||||
##################################################
|
||||
@@ -19,7 +19,11 @@ varme_recalculate:
|
||||
sequence:
|
||||
- variables:
|
||||
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') }}"
|
||||
nat_sænk: "{{ states('input_number.varme_nat_saenkning') | float(3) }}"
|
||||
vaek_sænk: "{{ states('input_number.varme_vaek_saenkning') | float(3) }}"
|
||||
|
||||
Reference in New Issue
Block a user