Dashboard views reorganized, mealie/roborock automations, indkorsel snapshots, wavin/sonoff docs, varme/sikkerhed updates

This commit is contained in:
2026-05-16 07:28:28 +02:00
parent bd134bafef
commit f2ac6064b5
214 changed files with 1812 additions and 675 deletions
+24
View File
@@ -1,3 +1,27 @@
- id: badevaerelse_startup_sluk
alias: Badeværelse lys sluk ved HA opstart
description: >
Slukker badeværelsets lys ved genstart hvis bevægelsessensoren er inaktiv.
Sikrer mod lys der sidder tændt efter strømudfald eller HA-genstart.
mode: single
trigger:
- platform: homeassistant
event: start
action:
- delay:
seconds: 30
- condition: state
entity_id: binary_sensor.badevaerelse_bevaegelse
state: "off"
- service: light.turn_off
target:
area_id: badevaerelse
- service: input_boolean.turn_off
target:
entity_id: input_boolean.badevaerelse_manuel_tilstand
- id: badevaerelse_motion_lys
alias: Badeværelse lys via bevægelse
mode: restart
+24 -5
View File
@@ -24,7 +24,8 @@
{% set t = now().strftime('%H%M') | int %}
{% if 600 <= t < 1600 %}morgen
{% elif 1600 <= t < 1900 %}eftermiddag
{% elif 1900 <= t %}aften
{% elif 1900 <= t < 2100 %}aften_lys
{% elif 2100 <= t %}aften
{% else %}nat{% endif %}
timeout_min: >
{% set t = now().strftime('%H%M') | int %}
@@ -32,7 +33,9 @@
{{ states('input_number.stue_timeout_morgen') | int }}
{% elif 1600 <= t < 1900 %}
{{ states('input_number.stue_timeout_eftermiddag') | int }}
{% elif 1900 <= t %}
{% elif 1900 <= t < 2100 %}
{{ states('input_number.stue_timeout_aften') | int }}
{% elif 2100 <= t %}
{{ states('input_number.stue_timeout_aften') | int }}
{% else %}
{{ states('input_number.stue_timeout_nat') | int }}
@@ -50,6 +53,15 @@
{{ states('sensor.stue_belysningsstyrke') | int < lux_limit }}
sequence:
- choose:
# Gæster: altid Annes favorit uanset tidspunkt
- conditions:
- condition: state
entity_id: input_boolean.gaester
state: "on"
sequence:
- service: scene.turn_on
target:
entity_id: scene.stue_annes_favorit
- conditions:
- condition: template
value_template: "{{ dagperiode == 'morgen' }}"
@@ -64,6 +76,13 @@
- service: scene.turn_on
target:
entity_id: scene.stue_annes_favorit
- conditions:
- condition: template
value_template: "{{ dagperiode == 'aften_lys' }}"
sequence:
- service: scene.turn_on
target:
entity_id: scene.stue_annes_favorit
default:
- service: scene.turn_on
target:
@@ -76,7 +95,7 @@
id: motion_off
- condition: template
value_template: >
{{ dagperiode != 'aften' or
{{ dagperiode not in ('aften','aften_lys') or
is_state('media_player.samsung_s95ca_55_3', 'off') }}
sequence:
- delay:
@@ -86,7 +105,7 @@
state: "off"
- condition: template
value_template: >
{{ dagperiode != 'aften' or
{{ dagperiode not in ('aften','aften_lys') or
is_state('media_player.samsung_s95ca_55_3', 'off') }}
- service: light.turn_off
target:
@@ -97,7 +116,7 @@
- condition: trigger
id: tv_off
- condition: template
value_template: "{{ dagperiode == 'aften' }}"
value_template: "{{ dagperiode in ('aften','aften_lys') }}"
sequence:
- delay:
minutes: "{{ timeout_min }}"
+11 -10
View File
@@ -1,13 +1,3 @@
- id: mealie_update_mealplan
alias: "Mealie opdater madplan"
trigger:
- platform: homeassistant
event: start
- platform: time_pattern
minutes: "/30"
action:
- service: shell_command.mealie_update
- id: mealie_generate_bilka_checklist_wednesday
alias: "Mealie indkøbsliste - onsdag morgen"
trigger:
@@ -19,3 +9,14 @@
- wed
action:
- service: script.mealie_shopping_refresh
- id: mealie_update_mealplan
alias: "Mealie opdater madplan"
trigger:
- platform: homeassistant
event: start
- platform: time_pattern
minutes: "/30"
action:
- service: shell_command.mealie_update
+7 -10
View File
@@ -88,13 +88,13 @@
target:
entity_id: button.roborock_s8_pro_ultra_kokken_bryggers
- delay: "00:00:20"
- wait_template: "{{ is_state('vacuum.roborock_s8_pro_ultra', 'cleaning') }}"
timeout: "00:02:00"
- choose:
- conditions:
- condition: state
entity_id: vacuum.roborock_s8_pro_ultra
state: "cleaning"
- condition: template
value_template: "{{ wait.completed }}"
sequence:
- service: input_number.increment
target:
@@ -109,17 +109,14 @@
}} min.
- conditions:
- condition: not
conditions:
- condition: state
entity_id: vacuum.roborock_s8_pro_ultra
state: "cleaning"
- condition: template
value_template: "{{ not wait.completed }}"
sequence:
- service: notify.mobile_app_claus_iphone_15pro
data:
title: "⚠️ Roborock start fejlede"
message: >
Startkommando sendt, men den begyndte ikke at køre.
Startkommando sendt, men den begyndte ikke at køre inden for 2 min.
State: {{ states('vacuum.roborock_s8_pro_ultra') }}.
Status: {{ state_attr('vacuum.roborock_s8_pro_ultra', 'status') | default('ukendt', true) }}.
Error: {{ state_attr('vacuum.roborock_s8_pro_ultra', 'error') | default('ingen', true) }}.
@@ -0,0 +1,26 @@
- alias: 'Snapshot ved person i indkorsel'
description: >
Gemmer et tidsstemplet snapshot + opdaterer latest.jpg + regenererer HTML-galleri,
hver gang binary_sensor.indkoersel_person skifter til 'on'.
trigger:
- platform: state
entity_id: binary_sensor.indkoersel_person
to: 'on'
condition: []
action:
- variables:
ts: "{{ now().strftime('%Y-%m-%d_%H-%M-%S') }}"
# Gem tidsstemplet kopi
- action: camera.snapshot
data:
entity_id: camera.indkoersel_sub
filename: "/config/www/snapshots/indkorsel/{{ ts }}.jpg"
# Overskriv latest.jpg (bruges af local_file-kamera i dashboardet)
- action: camera.snapshot
data:
entity_id: camera.indkoersel_sub
filename: "/config/www/snapshots/indkorsel/latest.jpg"
# Regenerer HTML-galleriet
- action: shell_command.indkorsel_generate_gallery
mode: queued
max: 5
+1 -1
View File
@@ -9,7 +9,7 @@
id: varme_vindue_trigger
description: "Kalder varme_recalculate når et vindue eller terrassedøren skifter tilstand"
mode: queued
max: 3
max: 10
trigger:
- platform: state
entity_id:
+3
View File
@@ -0,0 +1,3 @@
gaester:
name: "Gæster hjemme"
icon: mdi:account-group
+1 -1
View File
@@ -4,7 +4,7 @@ shelly_bagdor_event_cnt:
max: 99999
step: 1
mode: box
initial: -1
initial: 67
shelly_fordor_event_cnt:
name: Shelly fordoer event count
+4 -4
View File
@@ -23,7 +23,7 @@ varme_komfort_sovevaerelse:
max: 28
step: 0.5
unit_of_measurement: "°C"
initial: 18
initial: 20
icon: mdi:thermometer
varme_komfort_kontor:
@@ -32,7 +32,7 @@ varme_komfort_kontor:
max: 28
step: 0.5
unit_of_measurement: "°C"
initial: 19
initial: 20
icon: mdi:thermometer
varme_komfort_gang:
@@ -41,7 +41,7 @@ varme_komfort_gang:
max: 28
step: 0.5
unit_of_measurement: "°C"
initial: 19
initial: 20
icon: mdi:thermometer
varme_komfort_forgang:
@@ -68,7 +68,7 @@ varme_komfort_badevarelse:
max: 28
step: 0.5
unit_of_measurement: "°C"
initial: 20
initial: 24.5
icon: mdi:thermometer
varme_komfort_stue:
+2 -2
View File
@@ -4,5 +4,5 @@ mealie_shopping_refresh:
- service: shell_command.mealie_shopping_merge
- service: notify.mobile_app_claus_iphone_15pro
data:
title: "Bilka ToGo liste opdateret"
message: "Mealie-indkøb (fredag til torsdag) er flettet med Keep-basislisten."
title: "Indkøbsliste opdateret i Mealie"
message: "Indkøbslisten 'Bilka ToGo' er opdateret med opskrifter fra fredag til torsdag."
+4
View File
@@ -15,6 +15,10 @@ overvaagning:
device_id: cf4f218aae515c84aea9f37f190dcfd5
enabled: true
action: camera.snapshot
- action: homeassistant.update_entity
data:
entity_id: camera.indkorsel_snapshot
enabled: true
- delay:
hours: 0
minutes: 0
+13
View File
@@ -0,0 +1,13 @@
##################################################
# Glidende gennemsnit af anbefalet fjernvarme-ventilposition
# Beregner mean over de seneste 21 dage, så anbefalingen
# bevæger sig sæsonmæssigt (uger) i stedet for dagligt.
##################################################
- platform: statistics
name: "Fjernvarme ventil 3 ugers gennemsnit"
entity_id: sensor.fjernvarme_ventil_anbefalet
state_characteristic: mean
sampling_size: 2000
max_age:
days: 21
+1
View File
@@ -0,0 +1 @@
indkorsel_generate_gallery: "python3 /config/python_scripts/generate_indkorsel_gallery.py"