LinkTap hovedhane: omdøb entities, dashboard-kort og automatik (åbn før zoner, luk efter, periodisk kapillærvanding)
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
||||
2026.5.4
|
||||
2026.6.3
|
||||
+1
-3
@@ -80,9 +80,7 @@ frontend:
|
||||
# Integrations
|
||||
##################################################
|
||||
|
||||
duckdns:
|
||||
domain: !secret duckdns_domain
|
||||
access_token: !secret duckdns_access_token
|
||||
# duckdns: fjernet fra YAML i 2026.6 - konfigurer via UI (Settings > Integrations > DuckDNS)
|
||||
|
||||
sonoff:
|
||||
username: !secret sonoff_username
|
||||
|
||||
@@ -7,7 +7,93 @@ max_columns: 2
|
||||
|
||||
sections:
|
||||
|
||||
# 💧 Jordfugt – målere
|
||||
# Hovedhane (LinkTap) – central afspærring før zonerne
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Hovedhane (LinkTap)
|
||||
icon: mdi:water-pump
|
||||
|
||||
- type: tile
|
||||
entity: valve.hovedhane_linktap
|
||||
name: Hovedhane
|
||||
icon: mdi:water
|
||||
features:
|
||||
- type: valve-open-close
|
||||
|
||||
- type: tile
|
||||
entity: binary_sensor.hovedhane_linktap_is_watering
|
||||
name: Vander nu
|
||||
icon: mdi:sprinkler
|
||||
|
||||
- type: tile
|
||||
entity: sensor.hovedhane_linktap_plan_mode_string
|
||||
name: Vandingsplan
|
||||
|
||||
- type: tile
|
||||
entity: sensor.hovedhane_linktap_remain_duration
|
||||
name: Tilbageværende
|
||||
|
||||
- type: tile
|
||||
entity: sensor.hovedhane_linktap_battery
|
||||
name: Batteri
|
||||
|
||||
- type: tile
|
||||
entity: sensor.hovedhane_linktap_signal
|
||||
name: Signal
|
||||
|
||||
- type: entities
|
||||
title: Manuel kørsel
|
||||
entities:
|
||||
- entity: number.hovedhane_linktap_watering_duration
|
||||
name: Varighed (min)
|
||||
- entity: number.hovedhane_linktap_watering_volume
|
||||
name: Volumengrænse (0 = fra)
|
||||
- entity: switch.hovedhane_linktap
|
||||
name: Tænd/sluk vand
|
||||
|
||||
# Hovedhane – flow & status
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Hovedhane – flow & status
|
||||
icon: mdi:gauge
|
||||
|
||||
- type: tile
|
||||
entity: sensor.hovedhane_linktap_speed
|
||||
name: Flowhastighed
|
||||
|
||||
- type: tile
|
||||
entity: sensor.hovedhane_linktap_volume
|
||||
name: Volumen denne kørsel
|
||||
|
||||
- type: tile
|
||||
entity: sensor.hovedhane_linktap_total_duration
|
||||
name: Samlet varighed
|
||||
|
||||
- type: glance
|
||||
title: Alarmer & tilstand
|
||||
show_state: true
|
||||
columns: 3
|
||||
entities:
|
||||
- entity: binary_sensor.hovedhane_linktap_is_linked
|
||||
name: Forbundet
|
||||
- entity: binary_sensor.hovedhane_linktap_is_paused
|
||||
name: Sat på pause
|
||||
- entity: binary_sensor.hovedhane_linktap_is_manual_mode
|
||||
name: Manuel
|
||||
- entity: binary_sensor.hovedhane_linktap_is_leaking
|
||||
name: Lækage
|
||||
- entity: binary_sensor.hovedhane_linktap_is_clogged
|
||||
name: Tilstoppet
|
||||
- entity: binary_sensor.hovedhane_linktap_is_cutoff
|
||||
name: Vandstop-fejl
|
||||
- entity: binary_sensor.hovedhane_linktap_is_broken
|
||||
name: Defekt
|
||||
- entity: binary_sensor.hovedhane_linktap_is_fall
|
||||
name: Faldet
|
||||
|
||||
# �💧 Jordfugt – målere
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
|
||||
@@ -5,5 +5,5 @@ panel: true
|
||||
|
||||
cards:
|
||||
- type: iframe
|
||||
url: /local/snapshots/indkorsel_loader.html?v=20260612061319
|
||||
url: /local/snapshots/indkorsel_loader.html?v=20260618215329
|
||||
aspect_ratio: 100%
|
||||
|
||||
@@ -46,3 +46,16 @@
|
||||
|
||||
## Gitea External HTTPS Access
|
||||
- [x] **gitea.anneclaus.dk via NPM** — CNAME oprettet hos One.com, NPM proxy host med Let's Encrypt + Force SSL, `.env.infrastructure` opdateret, container genstartet. HTTPS 200 OK (20. maj 2026).
|
||||
|
||||
|
||||
## Hemmeligheder i 1Password (Mulighed A)
|
||||
**Baggrund:** `secrets.yaml` indeholder brugernavne, tokens m.m. i fritekst. Home Assistant kræver plaintext på disk ved indlæsning, men kilden kan flyttes til 1Password så hemmeligheder fjernes fra git-historik.
|
||||
|
||||
**Mulighed A — Generér `secrets.yaml` fra 1Password ved deploy:**
|
||||
1. Log selv ind i 1Password CLI: `op signin` (gøres manuelt — ingen master-password deles)
|
||||
2. Opret `secrets.yaml.tpl` med `op://`-referencer i stedet for værdier, fx `tesla_token: "op://HomeAssistant/Tesla/credential"`
|
||||
3. Generér den rigtige fil ved deploy: `op inject -i secrets.yaml.tpl -o secrets.yaml`
|
||||
4. Tilføj `secrets.yaml` til `.gitignore` og commit kun `secrets.yaml.tpl` (med `op://`-referencer, ingen rigtige værdier)
|
||||
5. Evt. lille deploy-script der kører `op inject` automatisk
|
||||
|
||||
**Reel gevinst:** Fjerner hemmeligheder fra git, ikke fra disken (HA kræver plaintext på disk uanset).
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
event_cnt={{ new_cnt }} (old={{ old_cnt }})
|
||||
battery={{ trigger.payload_json.battery | default('?') }}%
|
||||
entity_id: input_number.shelly_bagdor_event_cnt
|
||||
# Stop hvis: foerste sync efter restart (old=-1) eller samme cnt (periodisk wake-up)
|
||||
# Stop kun hvis samme counter som sidst (duplikat/periodisk wake-up)
|
||||
- condition: template
|
||||
value_template: "{{ old_cnt >= 0 and new_cnt != old_cnt }}"
|
||||
value_template: "{{ new_cnt != old_cnt }}"
|
||||
# Bloker ringeklokke om natten (22-06)
|
||||
- condition: time
|
||||
after: '06:00:00'
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
event_cnt={{ new_cnt }} (old={{ old_cnt }})
|
||||
battery={{ trigger.payload_json.battery | default('?') }}%
|
||||
entity_id: input_number.shelly_fordor_event_cnt
|
||||
# Stop hvis: foerste sync efter restart (old=-1) eller samme cnt (periodisk wake-up)
|
||||
# Stop kun hvis samme counter som sidst (duplikat/periodisk wake-up)
|
||||
- condition: template
|
||||
value_template: "{{ old_cnt >= 0 and new_cnt != old_cnt }}"
|
||||
value_template: "{{ new_cnt != old_cnt }}"
|
||||
# Bloker ringeklokke om natten (22-06)
|
||||
- condition: time
|
||||
after: '06:00:00'
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
- switch.hojbed_1
|
||||
- switch.hojbed_2
|
||||
- switch.drivhus_drypvanding
|
||||
- service: switch.turn_off
|
||||
data:
|
||||
entity_id: switch.hovedhane_linktap
|
||||
|
||||
- alias: 'Vanding sikkerhedsstop nat kl. 23'
|
||||
trigger:
|
||||
@@ -41,4 +44,88 @@
|
||||
- switch.hojbed_1
|
||||
- switch.hojbed_2
|
||||
- switch.drivhus_drypvanding
|
||||
- service: switch.turn_off
|
||||
data:
|
||||
entity_id: switch.hovedhane_linktap
|
||||
|
||||
# --- Hovedhane (LinkTap) – central afspærring før zonerne ---
|
||||
|
||||
- alias: 'Hovedhane åbn når en zone starter'
|
||||
mode: queued
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- switch.hojbed_1
|
||||
- switch.hojbed_2
|
||||
- switch.hojbed_3
|
||||
- switch.drivhus_drypvanding
|
||||
to: 'on'
|
||||
action:
|
||||
# Åbn hovedhanen med lang sikkerhedsvarighed (120 min = maks) så LinkTap
|
||||
# ikke selv lukker midt i en vanding. Lukkes eksplicit når alle zoner er
|
||||
# slukket (eller af sikkerhedsstop-automationerne).
|
||||
- service: linktap.start_watering
|
||||
target:
|
||||
entity_id: valve.hovedhane_linktap
|
||||
data:
|
||||
seconds: 7200
|
||||
|
||||
- alias: 'Hovedhane luk når alle zoner er slukket'
|
||||
mode: queued
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- switch.hojbed_1
|
||||
- switch.hojbed_2
|
||||
- switch.hojbed_3
|
||||
- switch.drivhus_drypvanding
|
||||
to: 'off'
|
||||
for: '00:00:25'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id:
|
||||
- switch.hojbed_1
|
||||
- switch.hojbed_2
|
||||
- switch.hojbed_3
|
||||
- switch.drivhus_drypvanding
|
||||
state: 'off'
|
||||
action:
|
||||
- service: switch.turn_off
|
||||
data:
|
||||
entity_id: switch.hovedhane_linktap
|
||||
|
||||
- alias: 'Hovedhane kapillærkasser periodisk vanding'
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: time
|
||||
at: '12:00:00'
|
||||
condition:
|
||||
# Kør kun tirsdag og fredag
|
||||
- condition: time
|
||||
weekday:
|
||||
- tue
|
||||
- fri
|
||||
# Spring over ved regn eller aktiv regn-forsinkelse
|
||||
- condition: state
|
||||
entity_id: binary_sensor.annes_vanding_rainsensor
|
||||
state: 'off'
|
||||
- condition: numeric_state
|
||||
entity_id: number.annes_vanding_rain_delay
|
||||
below: 1
|
||||
# Kør kun hvis ingen zonevanding er i gang
|
||||
- condition: state
|
||||
entity_id:
|
||||
- switch.hojbed_1
|
||||
- switch.hojbed_2
|
||||
- switch.hojbed_3
|
||||
- switch.drivhus_drypvanding
|
||||
state: 'off'
|
||||
action:
|
||||
# Åbn kun hovedhanen i 15 min – fylder kapillærkassernes flydventiler.
|
||||
# LinkTap lukker selv efter varigheden (instant mode).
|
||||
- service: linktap.start_watering
|
||||
target:
|
||||
entity_id: valve.hovedhane_linktap
|
||||
data:
|
||||
seconds: 900
|
||||
|
||||
|
||||
@@ -1,9 +1 @@
|
||||
- platform: command_line
|
||||
name: Zigbee USB dongle tilsluttet
|
||||
unique_id: zigbee_usb_dongle_connected
|
||||
device_class: connectivity
|
||||
command: >-
|
||||
[ -c /dev/ttyUSB0 ] && echo ON || echo OFF
|
||||
payload_on: "ON"
|
||||
payload_off: "OFF"
|
||||
scan_interval: 60
|
||||
## Migreret til include/command_line/infrastructure.yaml (2026.6 - platform: command_line fjernet fra binary_sensor)
|
||||
@@ -1,22 +1 @@
|
||||
## Set the dates in ~/.homeassistant/include/automations/countdown.yaml
|
||||
|
||||
|
||||
- platform: template
|
||||
sensors:
|
||||
dage_til_jul:
|
||||
friendly_name: "Dage til jul"
|
||||
# unit_of_measurement: "dage"
|
||||
value_template: >-
|
||||
{{ states('sensor.nedtaelling_juleaften') }}
|
||||
|
||||
dage_til_nytaar:
|
||||
friendly_name: "Dage til nytår"
|
||||
# unit_of_measurement: "dage"
|
||||
value_template: >-
|
||||
{{ states('sensor.nedtaelling_nytaar') }}
|
||||
|
||||
dage_til_ferie:
|
||||
friendly_name: "Dage til ferie"
|
||||
# unit_of_measurement: "dage"
|
||||
value_template: >-
|
||||
{{ states('sensor.nedtaelling_ferie') }}
|
||||
## Migreret til include/templates/countdowns.yaml (2026.6 - platform: template fjernet)
|
||||
|
||||
@@ -1,21 +1 @@
|
||||
- platform: template
|
||||
sensors:
|
||||
dishwasher_remaining_minutes:
|
||||
friendly_name: "Opvask tid tilbage"
|
||||
unit_of_measurement: "min"
|
||||
value_template: >
|
||||
{% set val = states('sensor.dishwasher_remaining_time_2') %}
|
||||
|
||||
{% if val in ['unknown','unavailable',''] %}
|
||||
0
|
||||
|
||||
{% elif ':' in val %}
|
||||
{% set parts = val.split(':') %}
|
||||
{{ (parts[0] | int * 60) + (parts[1] | int) }}
|
||||
|
||||
{% elif 'min' in val %}
|
||||
{{ val.replace('min','') | int }}
|
||||
|
||||
{% else %}
|
||||
{{ val | int(0) }}
|
||||
{% endif %}
|
||||
## Migreret til include/templates/dishwasher.yaml (2026.6 - platform: template fjernet)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
## Sensorer allerede i include/templates/legacy_sensors.yaml - ingen duplikering
|
||||
@@ -28,6 +28,8 @@ duckdns_domain: "anneclaus"
|
||||
duckdns_access_token: "91a5b5a9-7aaf-4135-b13c-a672c0000a7d"
|
||||
# https://www.splitbrain.org/blog/2017-08/10-homeassistant_duckdns_letsencrypt
|
||||
|
||||
tesla_username: claus.dethlefsen@gmail.com
|
||||
tesla_password: frup-REY3jut
|
||||
|
||||
# ########################################
|
||||
synology_url: 10.0.0.142:5000
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"count": 7, "items": [{"date": "2026-06-16", "recipe": {"name": "Hotdogs", "slug": "hotdogs"}}, {"date": "2026-06-14", "recipe": {"name": "Koteletter i fad", "slug": "koteletter-i-fad"}}, {"date": "2026-06-13", "recipe": {"name": "Ribeye og kartofler og salat", "slug": ""}}, {"date": "2026-06-12", "recipe": {"name": "Pasta aglio e olio \u2013 pasta med hvidl\u00f8g og olie", "slug": "pasta-aglio-e-olio-pasta-med-hvidlog-og-olie"}}, {"date": "2026-06-17", "recipe": {"name": "Rester fra mandag (One pot pasta)", "slug": ""}}, {"date": "2026-06-16", "recipe": {"name": "Rester fra s\u00f8ndag (Indisk curry)", "slug": ""}}, {"date": "2026-06-15", "recipe": {"name": "One Pot Pasta med K\u00f8dsovs", "slug": "one-pot-pasta-med-kodsovs"}}]}
|
||||
{"count": 8, "items": [{"date": "2026-06-19", "recipe": {"name": "Okse tacos", "slug": "okse-tacos"}}, {"date": "2026-06-20", "recipe": {"name": "Bagte s\u00f8de kartofler med fyld", "slug": "bagte-sode-kartofler-med-fyld"}}, {"date": "2026-06-20", "recipe": {"name": "Engelsk b\u00f8f ", "slug": ""}}, {"date": "2026-06-18", "recipe": {"name": "M\u00f8rbradb\u00f8ffer med bl\u00f8de l\u00f8g og fl\u00f8desauce", "slug": "morbradboffer-med-blode-log-og-flodesauce"}}, {"date": "2026-06-24", "recipe": {"name": "Rester fra mandag (Tortellini i fad)", "slug": ""}}, {"date": "2026-06-23", "recipe": {"name": "Rester fra s\u00f8ndag (Kylling med cornflakes)", "slug": ""}}, {"date": "2026-06-22", "recipe": {"name": "Tortellini i fad", "slug": "tortellini-i-fad"}}, {"date": "2026-06-21", "recipe": {"name": "Kylling med cornflakes", "slug": "kylling-med-cornflakes"}}]}
|
||||
Reference in New Issue
Block a user