Compare commits

...

2 Commits

Author SHA1 Message Date
claus cd6643cd35 Fix Tesla smart charging hysteresis 2026-04-06 13:01:06 +02:00
claus 57531a5a23 Refine dashboards and vacation automations 2026-04-06 12:59:42 +02:00
6 changed files with 111 additions and 105 deletions
-3
View File
@@ -1,3 +0,0 @@
views: !include_dir_list dashboards/views
+55 -35
View File
@@ -15,65 +15,93 @@ sections:
entity: media_player.stue entity: media_player.stue
name: Sonos Stue name: Sonos Stue
- type: media-control
entity: media_player.alrum
name: Sonos Alrum
- type: media-control - type: media-control
entity: media_player.denon_avr_x2300w entity: media_player.denon_avr_x2300w
name: Denon AVR name: Denon AVR
- type: entities
title: Afspilningsinfo
entities:
- media_player.stue
- media_player.denon_avr_x2300w
# 💡 Lys (kompakt + alle lys)
# 💡 Lys
- type: grid - type: grid
columns: 3
square: false
cards: cards:
- type: heading - type: heading
heading: Lys heading: Lys
- type: light - type: tile
entity: light.stue entity: light.livingroom
name: Stue Lys name: Alle lys
icon: mdi:lightbulb-group
tap_action:
action: toggle
- type: light - type: tile
entity: light.stue_spot entity: light.raket
name: Spot name: Raket
tap_action:
action: toggle
- type: light - type: tile
entity: light.stue_lysekrone entity: light.spisebord
name: Lysekrone name: Spisebord
tap_action:
action: toggle
- type: light - type: tile
entity: light.stue_indirekte entity: light.syd
name: Indirekte name: Syd
tap_action:
action: toggle
- type: tile
entity: light.panton
name: Panton
tap_action:
action: toggle
- type: tile
entity: light.pendle
name: Pendle
tap_action:
action: toggle
# 🪟 Gardiner # 🪟 Gardiner (kompakt)
- type: grid - type: grid
columns: 3
square: false
cards: cards:
- type: heading - type: heading
heading: Gardiner heading: Gardiner
- type: cover - type: tile
entity: cover.alle_gardiner
name: Alle
icon: mdi:blinds
- type: tile
entity: cover.hojre entity: cover.hojre
name: Højre name: Højre
- type: cover - type: tile
entity: cover.midt entity: cover.midt
name: Midt name: Midt
- type: cover - type: tile
entity: cover.syd entity: cover.syd
name: Syd name: Syd
- type: cover - type: tile
entity: cover.venstre entity: cover.venstre
name: Venstre name: Venstre
- type: cover - type: tile
entity: cover.terrasse_dor entity: cover.terrasse_dor
name: Terrasse dør name: Terrasse
# 🌡️ Temperatur # 🌡️ Temperatur
@@ -83,13 +111,5 @@ sections:
heading: Temperatur heading: Temperatur
- type: tile - type: tile
entity: sensor.sovevaerelse_stue_temperatur entity: sensor.stue_motion_temperatur
name: Temperatur name: Temperatur
- type: tile
entity: sensor.sovevaerelse_stue_luftfugtighed
name: Luftfugtighed
- type: tile
entity: sensor.sovevaerelse_stue_carbon_dioxide
name: CO₂
+10 -17
View File
@@ -3,29 +3,26 @@
mode: restart mode: restart
trigger: trigger:
# Kør hvert 5. min (responsiv)
- platform: time_pattern - platform: time_pattern
minutes: "/5" minutes: "/5"
# Sikrer re-evaluering ved ny time
- platform: time_pattern - platform: time_pattern
minutes: "0" minutes: "0"
condition: condition:
# Deadline gyldig
- condition: template - condition: template
value_template: > value_template: >
{% set deadline = states('input_datetime.tesla_charge_deadline') %} {% set deadline = states('input_datetime.tesla_charge_deadline') %}
{{ deadline not in ['unknown','unavailable',''] and as_timestamp(deadline) > as_timestamp(now()) }} {{ deadline not in ['unknown','unavailable',''] and as_timestamp(deadline) > as_timestamp(now()) }}
# Kun når bilen er tilsluttet - condition: state
- condition: template entity_id: binary_sensor.tesla_connected
value_template: > state: "on"
{{ states('binary_sensor.tesla_connected') == 'on' }}
action: action:
- variables: - variables:
should_charge: "{{ states('binary_sensor.tesla_charge_now') == 'on' }}" should_charge: "{{ is_state('binary_sensor.tesla_charge_now','on') }}"
currently_charging: "{{ is_state('switch.home_charging', 'on') }}"
last_start: "{{ states('input_datetime.tesla_last_start') }}" last_start: "{{ states('input_datetime.tesla_last_start') }}"
last_start_ts: > last_start_ts: >
{% if last_start not in ['unknown','unavailable',''] %} {% if last_start not in ['unknown','unavailable',''] %}
@@ -38,18 +35,16 @@
- choose: - choose:
# ------------------------- # -------------------------
# START / CONTINUE CHARGING # START CHARGING
# ------------------------- # -------------------------
- conditions: - conditions:
- condition: template - condition: template
value_template: "{{ should_charge }}" value_template: "{{ should_charge }}"
sequence: sequence:
# Hvis ikke allerede i gang → registrer start - if:
- condition: template - condition: template
value_template: > value_template: "{{ not currently_charging }}"
{{ states('switch.home_charging') != 'on' }} then:
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
target: target:
entity_id: input_datetime.tesla_last_start entity_id: input_datetime.tesla_last_start
@@ -65,9 +60,7 @@
# ------------------------- # -------------------------
- conditions: - conditions:
- condition: template - condition: template
value_template: > value_template: "{{ currently_charging and not should_charge and runtime > 3600 }}"
{{ not should_charge and runtime > 3600 }}
sequence: sequence:
- service: switch.turn_off - service: switch.turn_off
target: target:
+3 -2
View File
@@ -1,4 +1,4 @@
alias: Vacation Mode - Stop ved slutdato - alias: Vacation Mode - Stop ved slutdato
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: "/1" minutes: "/1"
@@ -23,4 +23,5 @@ action:
- service: media_player.media_stop - service: media_player.media_stop
target: target:
entity_id: media_player.kokken entity_id:
- media_player.kokken
@@ -1,4 +1,4 @@
alias: Vacation Mode - Manuel stop - alias: Vacation Mode - Manuel stop
trigger: trigger:
- platform: state - platform: state
entity_id: input_boolean.vacation_mode entity_id: input_boolean.vacation_mode
@@ -7,9 +7,10 @@ trigger:
action: action:
- service: input_boolean.turn_off - service: input_boolean.turn_off
target: target:
entity_id: input_boolean.presence_simulation entity_id:
- input_boolean.presence_simulation
- service: media_player.media_stop - service: media_player.media_stop
target: target:
entity_id: media_player.kokken entity_id:
- media_player.kokken
-6
View File
@@ -1,11 +1,5 @@
# ui-lovelace.yaml # ui-lovelace.yaml
# 1. Resources til custom cards
resources:
- url: /hacsfiles/lovelace-xiaomi-vacuum-map-card/xiaomi-vacuum-map-card.js
type: module
- url: /hacsfiles/button-card/button-card.js
type: module
# 2. Selve views # 2. Selve views