Vanding: forsiderække med sidst vandet, smart-knap, liter og tid pr. bed; kapillær default 6

This commit is contained in:
2026-06-20 18:38:06 +02:00
parent 94d94a7d40
commit 9c5da39bf5
7 changed files with 264 additions and 2 deletions
+55
View File
@@ -130,9 +130,64 @@
action:
# Åbn kun hovedhanen i 15 min fylder kapillærkassernes flydventiler.
# LinkTap lukker selv efter varigheden (instant mode).
- service: select.select_option
target:
entity_id: select.vanding_liter
data:
option: kapillaer
- service: linktap.start_watering
target:
entity_id: valve.hovedhane_linktap
data:
seconds: 900
# --- Forside: sidst vandet & liter-måler pr. zone ---
- alias: 'Vanding opdater sidst vandet'
description: 'Sætter tidsstempel når en zone eller hovedhanen begynder at vande'
mode: queued
trigger:
- platform: state
entity_id:
- switch.hojbed_1
- switch.hojbed_2
- switch.hojbed_3
- switch.drivhus_drypvanding
to: 'on'
- platform: state
entity_id: binary_sensor.hovedhane_linktap_is_watering
to: 'on'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.vanding_sidst_vandet
data:
datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
- alias: 'Vanding vælg liter-tarif efter aktiv zone'
description: 'Skifter utility_meter-tarif så liter bogføres på det rette bed'
mode: queued
trigger:
- platform: state
entity_id: switch.hojbed_2 # Højbed 1 Ærter
to: 'on'
id: hb1
- platform: state
entity_id: switch.hojbed_1 # Højbed 2 Kartofler
to: 'on'
id: hb2
- platform: state
entity_id: switch.drivhus_drypvanding # Højbed 3 Rabarber
to: 'on'
id: hb3
- platform: state
entity_id: switch.hojbed_3 # Drivhus
to: 'on'
id: drivhus
action:
- service: select.select_option
target:
entity_id: select.vanding_liter
data:
option: "{{ trigger.id }}"
+6
View File
@@ -26,3 +26,9 @@ vanding_sikkerhedsstop_nat:
has_time: true
initial: "23:59:00"
icon: mdi:alarm-off
vanding_sidst_vandet:
name: Vanding sidst vandet
has_date: true
has_time: true
icon: mdi:sprinkler-variant
+1 -1
View File
@@ -41,7 +41,7 @@ vanding_kapillaer_antal:
min: 0
max: 10
step: 1
initial: 3
initial: 6
icon: mdi:counter
# Fugtigheds-mål per højbed (%)
+9
View File
@@ -29,3 +29,12 @@
type: time
start: "{{ today_at() }}"
end: "{{ now() }}"
# Samlet tid hovedhanen (LinkTap) har vandet i dag dækker både zoner og
# kapillærkasser, da alt vand passerer hovedhanen.
- platform: history_stats
name: vanding_hovedhane_i_dag
entity_id: binary_sensor.hovedhane_linktap_is_watering
state: "on"
type: time
start: "{{ today_at() }}"
end: "{{ now() }}"
+75
View File
@@ -0,0 +1,75 @@
# Vanding afledte sensorer til forside-rækken
# Kompakt "sidst vandet" (samme stil som støvsugerens "Sidst kørt")
- trigger:
- platform: homeassistant
event: start
- platform: state
entity_id: input_datetime.vanding_sidst_vandet
- platform: time_pattern
hours: "/1"
sensor:
- name: "Vanding sidst vandet compact"
unique_id: vanding_sidst_vandet_compact
icon: mdi:sprinkler-variant
state: >
{% set raw = states('input_datetime.vanding_sidst_vandet') %}
{% if raw in ['unknown', 'unavailable', '', none] %}
Aldrig
{% else %}
{% set dt = as_local(as_datetime(raw)) %}
{% if dt is none %}
Ukendt
{% elif dt.date() == now().date() %}
i dag {{ dt.strftime('%H:%M') }}
{% elif dt.date() == (now() - timedelta(days=1)).date() %}
i går {{ dt.strftime('%H:%M') }}
{% else %}
{% set weekdays = ['man', 'tir', 'ons', 'tor', 'fre', 'lør', 'søn'] %}
{{ weekdays[dt.weekday()] }} {{ dt.strftime('%d/%m %H:%M') }}
{% endif %}
{% endif %}
# Kumuleret vandingstid og liter i dag
- sensor:
# Samlet vandingstid i dag (minutter) = hovedhanens vandetid
- name: "Vanding tid i dag total"
unique_id: vanding_tid_i_dag_total
unit_of_measurement: "min"
icon: mdi:timer-sand
state: >
{{ (states('sensor.vanding_hovedhane_i_dag') | float(0) * 60) | round(0) }}
# Kapillærkasser i dag (minutter) = hovedhane minus de fire zoner
- name: "Vanding kapillaer tid i dag"
unique_id: vanding_kapillaer_tid_i_dag
unit_of_measurement: "min"
icon: mdi:cup-water
state: >
{% set hovedhane = states('sensor.vanding_hovedhane_i_dag') | float(0) %}
{% set zoner = (states('sensor.vanding_hojbed_1_i_dag') | float(0))
+ (states('sensor.vanding_hojbed_2_i_dag') | float(0))
+ (states('sensor.vanding_hojbed_3_i_dag') | float(0))
+ (states('sensor.vanding_drivhus_i_dag') | float(0)) %}
{% set cap = [hovedhane - zoner, 0] | max %}
{{ (cap * 60) | round(0) }}
# Samlet liter i dag = summen af tarif-tællerne
- name: "Vanding liter i dag total"
unique_id: vanding_liter_i_dag_total
unit_of_measurement: "L"
device_class: water
state_class: total
icon: mdi:water
state: >
{% set ns = namespace(t=0) %}
{% set kilder = [
'sensor.vanding_liter_hb1',
'sensor.vanding_liter_hb2',
'sensor.vanding_liter_hb3',
'sensor.vanding_liter_drivhus',
'sensor.vanding_liter_kapillaer'] %}
{% for s in kilder %}
{% set ns.t = ns.t + (states(s) | float(0)) %}
{% endfor %}
{{ ns.t | round(1) }}