From ab76023b12563c120e77f033bbacd8614d4086f5 Mon Sep 17 00:00:00 2001 From: Claus Dethlefsen Date: Tue, 21 Apr 2026 19:31:56 +0200 Subject: [PATCH] Add infrastructure stack and planning updates --- .env.infrastructure.example | 19 + .gitignore | 1 + Readme.md | 41 ++ configuration.yaml | 2 + docker-compose.infrastructure.yml | 72 +++ .../infrastructure_cutover_checklist.md | 41 ++ dokumenter/oensker.md | 108 ++++ dokumenter/vandingssystem.md | 338 ++++++++++++ .../vandingssystem_alternativ_rainbird.md | 509 ++++++++++++++++++ dokumenter/vandingssystem_beslutningsnotat.md | 248 +++++++++ .../vandingssystem_rainbird_indkoebsliste.md | 262 +++++++++ .../automations/infrastructure_alerts.yaml | 53 ++ include/command_line/infrastructure.yaml | 11 + include/mqtt.yaml | 12 + include/sensors/shelly_buttons.yaml | 15 +- 15 files changed, 1718 insertions(+), 14 deletions(-) create mode 100644 .env.infrastructure.example create mode 100644 docker-compose.infrastructure.yml create mode 100644 dokumenter/infrastructure_cutover_checklist.md create mode 100644 dokumenter/oensker.md create mode 100644 dokumenter/vandingssystem.md create mode 100644 dokumenter/vandingssystem_alternativ_rainbird.md create mode 100644 dokumenter/vandingssystem_beslutningsnotat.md create mode 100644 dokumenter/vandingssystem_rainbird_indkoebsliste.md create mode 100644 include/automations/infrastructure_alerts.yaml create mode 100644 include/command_line/infrastructure.yaml create mode 100644 include/mqtt.yaml diff --git a/.env.infrastructure.example b/.env.infrastructure.example new file mode 100644 index 0000000..a07886d --- /dev/null +++ b/.env.infrastructure.example @@ -0,0 +1,19 @@ +DOCKER_ROOT=/volume1/docker +GITEA_IMAGE_TAG=latest +GITEA_DB_IMAGE_TAG=17 +GITEA_DB_DATA_PATH=/volume1/docker/gitea/db +GITEA_DATA_PATH=/volume1/docker/gitea/data +GITEA_CUSTOM_PATH=/data/gitea + +GITEA_DB_NAME=gitea +GITEA_DB_USER=change_me +GITEA_DB_PASSWORD=change_me + +PUID=1038 +PGID=100 + +GITEA_HTTP_PORT=12080 +GITEA_SSH_PORT=12022 +GITEA_DOMAIN=dethlefsen +GITEA_ROOT_URL=http://dethlefsen:12080/ +GITEA_SSH_DOMAIN=dethlefsen \ No newline at end of file diff --git a/.gitignore b/.gitignore index 06c5301..725df64 100755 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ secrets.yaml known_devices.yaml configuration_full.yaml configuration_minimal.yaml +.env.infrastructure # --- Whitelist core files --- !*.yaml diff --git a/Readme.md b/Readme.md index 44ce24c..ac4cfca 100755 --- a/Readme.md +++ b/Readme.md @@ -86,6 +86,47 @@ Synology. https://thomes.blog/2020/12/09/how-to-gitea-on-synology/ +## Synology infrastructure stack + +Hvis Synology genstarter, er det let at ende med at Mosquitto, Gitea DB og Gitea ikke kommer op i korrekt rækkefølge. + +Denne repo indeholder derfor også en compose-baseret variant i [docker-compose.infrastructure.yml](docker-compose.infrastructure.yml) med: + +* `restart: unless-stopped` på Mosquitto, Gitea DB og Gitea +* healthchecks på alle tre services +* `depends_on` så Gitea først starter når databasen er healthy +* Gitea-vaerdier justeret til at spejle den nuvaerende interne `app.ini`-opsaetning + +Brug den sammen med en lokal `.env.infrastructure` baseret på [.env.infrastructure.example](.env.infrastructure.example). + +Det giver en mere robust opstart end manuelt oprettede containere i Synology UI, især efter NAS-reboot. + +### Sikker migration fra Synology UI til compose + +Hvis du vil flytte Mosquitto, Gitea DB og Gitea fra Synology UI til compose uden datatab, saa goer det i denne raekkefoelge: + +1. Bekraeft at paths i `.env.infrastructure` matcher de eksisterende mounts i Synology UI. +2. Tag backup af mindst disse mapper: `/volume1/docker/gitea/data`, `/volume1/docker/gitea/db` og Mosquitto `config`, `data`, `log`. +3. Eksporter eller tag screenshots af nuvaerende container-indstillinger i Synology UI, saa porte, mounts og miljoevariabler kan sammenlignes bagefter. +4. Stop foerst `gitea`, derefter `gitea-db` og til sidst `mosquitto` i Synology UI. +5. Lad containerne blive liggende i UI i foerste omgang, men undgaa at starte dem igen under testen. +6. Kør compose-stakken med samme data-mounts, saa de nye containere genbruger eksisterende data i stedet for at initialisere nyt dataindhold. +7. Start foerst `gitea-db` og vent til den er healthy. +8. Start derefter `gitea` og kontroller at login, repositories og push virker som foer. +9. Start `mosquitto` og kontroller at Home Assistant reconnecter, og at dørklokker eller andre MQTT-afhaengige funktioner virker igen. +10. Naar alt virker stabilt, kan de gamle UI-oprettede containere slettes eller deaktiveres permanent. + +Praktisk testsekvens efter migration: + +* Aabn Gitea og bekraeft at repos og historik er intakte. +* Test et `git pull` og et lille `git push` mod Gitea. +* Bekraeft at Home Assistant kan ramme MQTT igen. +* Ring paa en doerklokke eller test en anden MQTT-trigger. + +Vigtig regel: genbrug eksisterende data-paths under hele migrationen. Den stoerste risiko er ikke compose-filen, men at man ved en fejl starter en ny tom database eller en ny tom Gitea-data-mappe. + +En kort cutover-version findes i [dokumenter/infrastructure_cutover_checklist.md](dokumenter/infrastructure_cutover_checklist.md). + ## use git version control on the local gitea client https://community.home-assistant.io/t/sharing-your-configuration-on-github/195144 diff --git a/configuration.yaml b/configuration.yaml index ac7af04..119075a 100755 --- a/configuration.yaml +++ b/configuration.yaml @@ -110,6 +110,7 @@ cover: template: !include_dir_merge_list include/templates/ group: !include_dir_merge_named include/groups/ +mqtt: !include include/mqtt.yaml sensor: !include_dir_merge_list include/sensors/ automation: !include_dir_merge_list include/automations/ binary_sensor: !include_dir_merge_list include/binary_sensors/ @@ -119,6 +120,7 @@ input_number: !include_dir_merge_named include/input/number/ input_select: !include_dir_merge_named include/input/select/ input_boolean: !include_dir_merge_named include/input/boolean/ input_text: !include_dir_merge_named include/input/text/ +command_line: !include_dir_merge_list include/command_line/ light: !include_dir_merge_list include/lights/ panel_iframe: !include_dir_merge_named include/panels/ script: !include_dir_merge_named include/scripts/ diff --git a/docker-compose.infrastructure.yml b/docker-compose.infrastructure.yml new file mode 100644 index 0000000..3a5de1d --- /dev/null +++ b/docker-compose.infrastructure.yml @@ -0,0 +1,72 @@ +## Denne stack er justeret mod den nuvaerende Synology Gitea-DB opsaetning. +## Hvis den eksisterende Gitea-container bruger andre porte eller paths, skal de tilpasses i .env.infrastructure. + +services: + mosquitto: + container_name: mosquitto + image: eclipse-mosquitto:2 + restart: unless-stopped + ports: + - "1883:1883" + - "9001:9001" + volumes: + - ${DOCKER_ROOT:-/volume1/docker}/mosquitto/config:/mosquitto/config + - ${DOCKER_ROOT:-/volume1/docker}/mosquitto/data:/mosquitto/data + - ${DOCKER_ROOT:-/volume1/docker}/mosquitto/log:/mosquitto/log + healthcheck: + test: ["CMD-SHELL", "mosquitto_sub -h 127.0.0.1 -p 1883 -t '$$SYS/broker/version' -C 1 -W 3 >/dev/null 2>&1 || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 20s + + gitea-db: + container_name: gitea-db + image: postgres:${GITEA_DB_IMAGE_TAG:-17} + restart: unless-stopped + environment: + POSTGRES_DB: ${GITEA_DB_NAME:-gitea} + POSTGRES_USER: ${GITEA_DB_USER:-giteauser} + POSTGRES_PASSWORD: ${GITEA_DB_PASSWORD} + volumes: + - ${GITEA_DB_DATA_PATH:-/volume1/docker/gitea/db}:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${GITEA_DB_USER:-giteauser} -d ${GITEA_DB_NAME:-gitea}"] + interval: 15s + timeout: 5s + retries: 10 + start_period: 20s + + gitea: + container_name: gitea + image: gitea/gitea:${GITEA_IMAGE_TAG:-latest} + restart: unless-stopped + depends_on: + gitea-db: + condition: service_healthy + environment: + USER: git + GITEA_CUSTOM: ${GITEA_CUSTOM_PATH:-/data/gitea} + USER_UID: ${PUID:-1038} + USER_GID: ${PGID:-100} + GITEA__database__DB_TYPE: postgres + GITEA__database__HOST: gitea-db:5432 + GITEA__database__NAME: ${GITEA_DB_NAME:-gitea} + GITEA__database__USER: ${GITEA_DB_USER:-giteauser} + GITEA__database__PASSWD: ${GITEA_DB_PASSWORD} + GITEA__server__DOMAIN: ${GITEA_DOMAIN:-dethlefsen} + GITEA__server__ROOT_URL: ${GITEA_ROOT_URL:-http://dethlefsen:12080/} + GITEA__server__SSH_DOMAIN: ${GITEA_SSH_DOMAIN:-dethlefsen} + GITEA__server__SSH_PORT: ${GITEA_SSH_PORT:-12022} + ports: + - "${GITEA_HTTP_PORT:-12080}:3000" + - "${GITEA_SSH_PORT:-12022}:22" + volumes: + - ${GITEA_DATA_PATH:-/volume1/docker/gitea/data}:/data + - /etc/localtime:/etc/localtime:ro + healthcheck: + test: ["CMD-SHELL", "wget -q --spider http://127.0.0.1:3000/ || exit 1"] + interval: 30s + timeout: 10s + retries: 10 + start_period: 40s \ No newline at end of file diff --git a/dokumenter/infrastructure_cutover_checklist.md b/dokumenter/infrastructure_cutover_checklist.md new file mode 100644 index 0000000..5edee42 --- /dev/null +++ b/dokumenter/infrastructure_cutover_checklist.md @@ -0,0 +1,41 @@ +# Cutover-checkliste + +Brug denne ved skift fra Synology UI-containere til compose for `mosquitto`, `gitea-db` og `gitea`. + +## Foer cutover + +1. Bekraeft at [/.env.infrastructure](/Volumes/homeassistant/.env.infrastructure) matcher de nuvaerende mounts, porte og credentials. +2. Tag backup af: + `/volume1/docker/gitea/data` + `/volume1/docker/gitea/db` + `/volume1/docker/mosquitto/config` + `/volume1/docker/mosquitto/data` + `/volume1/docker/mosquitto/log` +3. Bekraeft at gamle UI-containere stadig koerer normalt inden du stopper noget. + +## Stop gammel stack + +1. Stop `gitea` i Synology UI. +2. Stop `gitea-db` i Synology UI. +3. Stop `mosquitto` i Synology UI. +4. Lad containerne blive liggende i UI, men start dem ikke igen under testen. + +## Start compose-stack + +1. Kør `docker compose --env-file .env.infrastructure -f docker-compose.infrastructure.yml up -d gitea-db`. +2. Vent til `gitea-db` er healthy. +3. Kør `docker compose --env-file .env.infrastructure -f docker-compose.infrastructure.yml up -d gitea mosquitto`. + +## Verificer + +1. Aabn Gitea og bekraeft at login virker. +2. Bekraeft at repositories og historik er intakte. +3. Test et `git pull` og et lille `git push`. +4. Bekraeft at Home Assistant reconnecter til MQTT. +5. Test en MQTT-afhaengig funktion, fx en doerklokke. + +## Hvis noget er galt + +1. Stop compose-containere. +2. Start de gamle UI-containere igen i modsat raekkefoelge: `mosquitto`, `gitea-db`, `gitea`. +3. Fejlsoeg foerst derefter. Den store risiko er forkert mount eller forkert credential, ikke selve compose-formatet. diff --git a/dokumenter/oensker.md b/dokumenter/oensker.md new file mode 100644 index 0000000..792c94b --- /dev/null +++ b/dokumenter/oensker.md @@ -0,0 +1,108 @@ +# Ønskeliste – Nyt udstyr til Home Assistant + +*Sidst opdateret: april 2026* + +--- + +## Høj prioritet + +### Zigbee Smart Plugs (med energimåling) + +| Antal | Beskrivelse | Anvendelse | Status | +|---|---|---|---| +| ~8-10 | Zigbee smart plugs med energimåling (fx Nous A1Z, IKEA TRETAKT, Innr SP 242) | Sonos-styring, mesh-udvidelse, strømmåling | ⬜ Ønsket | + +**Eksisterende:** 4× Nous A1Z Smart Plug (Zigbee 3.0) + 2× Hue On/Off Plug (udetræer) + +**Formål 1 – Mesh-udvidelse:** +- Zigbee-plugs fungerer som routere og forstærker mesh-netværket +- Mål: dækning helt ud til postkasse, garage og drivhus +- Placér plugs strategisk som "stepping stones" fra huset og ud +- Sonoff-enhederne (WiFi) hjælper ikke på Zigbee-mesh – erstat evt. med Zigbee-plugs over tid + +**Formål 2 – Sonos genstart-automation:** +- 8 Sonos-højttalere tilsluttes Zigbee smart plugs +- Køkken og soveværelse kræver sandsynligvis indbygget mini-relæ i stikkontakt i stedet for smart plug +- Muliggør automatisk power-cycle i korrekt rækkefølge (sluk alle → vent → tænd én ad gangen) +- Løser det kendte problem med Sonos der "hænger" og kræver strømgenstart +- Automation: script der slukker alle plugs, venter 10 sek, tænder dem sekventielt med delay + +**Formål 3 – Energimåling:** +- Spor strømforbrug på individuelle enheder +- Nous A1Z understøtter energimåling – køb samme model for ensartethed + +--- + +### Zigbee Termostater – 2× Danfoss Ally TRV + +| Antal | Rum | Beskrivelse | Status | +|---|---|---|---| +| 1 | Stue | Danfoss Ally TRV (Zigbee) | ⬜ Ønsket | +| 1 | Badeværelse | Danfoss Ally TRV (Zigbee) | ⬜ Ønsket | + +**Bekræftet ventiltype:** Danfoss RA (snap-on clips) – Ally passer direkte med medfølgende RA-adapter. + +**Bemærkninger:** +- Eksisterende klimastyring: kontor, soveværelse, Andreas, Daniel, lille bad (gulvvarme) +- Stue: har i dag en eQ-3 Bluetooth-termostat som IKKE virker med HA (kræver PIN, forsøgt med M5Stack proxy uden held) – erstattes af Ally +- Badeværelse: har i dag en manuel Danfoss RA 2000 – erstattes af Ally +- Begge ventiler er bekræftet Danfoss RA snap-on – Ally passer direkte +- Badeværelse: snæver plads mod væg, men Ally (Ø52 mm) er kun 2 mm bredere end nuværende (Ø50 mm) – passer fint da den ikke skal drejes +- Rigeligt plads opad (længde ~97 mm vs. nuværende ~65 mm er OK) +- Kan integreres med eksisterende vindues-sensorer til automatisk lukning ved åbent vindue + +--- + +### Zigbee relæmoduler – 4× Sonoff ZBMINI-L2 + +| Antal | Rum | Beskrivelse | Status | +|---|---|---|---| +| 1 | Bryggers | Sonoff ZBMINI-L2 (on/off, ingen nulleder krævet) | ⬜ Ønsket | +| 1 | Lille badeværelse | Sonoff ZBMINI-L2 (on/off, ingen nulleder krævet) | ⬜ Ønsket | +| 1 | Køkken | Sonoff ZBMINI-L2 eller tilsvarende mini-relæ til Sonos-stikkontakt | ⬜ Ønsket | +| 1 | Soveværelse | Sonoff ZBMINI-L2 eller tilsvarende mini-relæ til Sonos-stikkontakt | ⬜ Ønsket | + +**Bemærkninger:** +- Monteres bag eksisterende kontakt – lampen bliver smart via Zigbee, kontakten virker stadig fysisk +- Bryggers: 1× LED-loftlampe – simpel on/off +- Lille bad: G9 halogen – on/off (overvej at skifte G9 halogen til G9 LED for energibesparelse) +- Køkken + soveværelse: relevant hvis Sonos-højttalerne ikke har fysisk plads til smart plug +- De viste LK FUGA-kombinationer i bryggers og lille bad ser ikke ud som oplagte steder uden først at åbne og kontrollere pladsen +- Køb kun relæ til indbygning efter kontrol af dåsedybde, ledningsmængde og om nulleder er til stede +- Kræver plads i dåse/stikkontakt og bør kun laves, hvis installationen er egnet og lovlig at udføre +- Ca. 80-100 kr/stk + +--- + +## Normal prioritet + +### Idéer til fremtidige udvidelser + +| Enhed | Beskrivelse | Bemærkninger | +|---|---|---| +| Zigbee vandlækagesensor | Vandskadedetektion | Under opvaskemaskine, vaskemaskine, badeværelse | +| Zigbee vibrationssensor | Registrér vaskemaskine-status | Ligesom opvaskemaskinen, men for vaskemaskinen | +| Smart dørklokke | Video-dørklokke | Integreres med HA notifikationer | +| Zigbee knapmodul | Fysisk betjening | Erstat eksisterende Hue-switches med Zigbee2MQTT-kompatible | +| Relæ i stikkontakt til spejllys | Smart styring af `light.spejl1` + `light.spejl2` via eksisterende manuel stikkontakt | Familien bruger den manuelle kontakt i dag, så løsningen skal bevare fysisk betjening | + +--- + +## Lav prioritet / Nice-to-have + +| Enhed | Beskrivelse | Bemærkninger | +|---|---|---| +| Køkken: 11× Hue GU10 White Ambiance | Smart spots til køkken (4+7 grupper) | Bekræftet GU10-fatning. Kræver bypass af eksisterende dimmer. Ca. 2.200 kr | +| Postkasse-sensorer | 2× Aqara kontaktsensor + 1× Aqara vibrationssensor | Vippelåg, brevsprække, tømmeluge – metal-kasse dæmper Zigbee, kræver nærliggende router | +| Luftkvalitetssensor | VOC / PM2.5 | Udvidelse af eksisterende CO₂-måling | +| Energimåler (CT-clamp) | Realtids strømmåling pr. kredsløb | Supplement til Eloverblik | + +--- + +## Indkøbt ✅ + +*Flyt enheder hertil når de er købt og installeret.* + +| Dato | Enhed | Antal | Bemærkninger | +|---|---|---|---| +| — | — | — | — | diff --git a/dokumenter/vandingssystem.md b/dokumenter/vandingssystem.md new file mode 100644 index 0000000..a99ad0b --- /dev/null +++ b/dokumenter/vandingssystem.md @@ -0,0 +1,338 @@ +# Automatisk Vandingssystem – Projektplan + +*Oprettet: april 2026* + +--- + +## Oversigt + +Automatisk vanding af 3 højbede + drivhus med 3 kapillærkasser. Vandhane på nordsiden af huset, PE-rør i rende over græsplænen til højbede/drivhus. Systemet skal kunne passe sig selv i op til 3 uger (ferie) inkl. automatisk gødningstilførsel. + +--- + +## Systemdiagram + +``` + Hus (nordside) + ═══[Vandhane]════════════════════════ + │ + ├── Y-splitter ──→ Manuel slange (bypass) + │ + ├── Hovedventil (24V AC magnetventil, NC) + │ + ├── Dosatron D25RE2 ←── 20L gødningsdunk + │ + ├── Vandfilter (130µm mesh) + │ + ├── Trykreducer (1-1.5 bar) + │ + ════ PE-rør 25mm i rende (~10m over græs) ════ + │ + ┌──────────┤ Fordeler + ventilbox (nedgravet IP65) + │ │ + Zone 1 Zone 2 Zone 3 Zone 4 Zone 5 + Højbed 1 Højbed 2 Højbed 3 Drivhusbed Kapillærkasser + (sive) (sive) (sive) (sive) (3× flydventil) +``` + +--- + +## Komponentliste + +### Controller & sensorer (OpenSprinklerShop.de) + +| Komponent | Antal | Ca. pris | Formål | +|---|---|---|---| +| OpenSprinkler AC v3.4 (8 zoner, inkl. 24V transformer) | 1 | 650 kr | WiFi irrigation controller, HA integration | +| Analog Sensor Board | 1 | 225 kr | Forbind jordfugtsensorer | +| SMT50 jordfugt+temp sensorer | 4 | 900 kr | Én per jordzone (3 højbede + drivhusbed) | +| IP65 kabinet | 1 | 190 kr | Udendørs beskyttelse | +| **Subtotal** | | **~1.965 kr** | | + +### Vandstyring (Vandingsspecialisten.dk / Bauhaus) + +| Komponent | Antal | Ca. pris | Formål | +|---|---|---|---| +| Y-splitter m/ kugleventiler | 1 | 100 kr | Bypass til manuel slange | +| 24V AC magnetventiler (Rain Bird/Hunter 1") | 5 | 1.000 kr | Zoneventiler | +| Ventilbox/fordeler (underjordisk) | 1 | 300 kr | Samler ventiler | +| PE-rør 25mm | ~20m | 200 kr | Hovedledning i rende | +| Siveslange/drypslange (5m ruller) | 4 | 320 kr | Én per jordzone | +| Trykreducer (1-1.5 bar) | 1 | 150 kr | Nødvendigt for siveslanger | +| Vandfilter (mesh 130µm) | 1 | 100 kr | Beskytter mod tilstopning | +| PE-fittings (T-stykker, koblinger, klemringe) | diverse | 300 kr | Forgreninger | +| Mini-flydventiler (1/2" eller 1/4") | 3 | 240 kr | Selvreguler kapillærkasser | +| **Subtotal** | | **~2.710 kr** | | + +### Gødningsdosering (Dosatron-forhandler / AgroWeb.dk) + +| Komponent | Antal | Ca. pris | Formål | +|---|---|---|---| +| Dosatron D25RE2 (1:500-1:50) | 1 | 2.500 kr | Proportional gødningsinjektor, vandtryks-drevet | +| 20L dunk med låg + slangekoblinger | 1 | 100 kr | Gødningskoncentrat | +| **Subtotal** | | **~2.600 kr** | | + +### Total + +| Kategori | Pris | +|---|---| +| Controller & sensorer | ~1.965 kr | +| Vandstyring | ~2.710 kr | +| Gødningsdosering | ~2.600 kr | +| **Total** | **~7.275 kr** | + +> **Budget-alternativ (~3.500 kr):** Venturi-injektor (200 kr) i stedet for Dosatron, billigere ventiler fra AliExpress, Tuya Zigbee jordfugtsensorer (~100 kr/stk) i stedet for SMT50. + +--- + +## Indkøbssteder + +| Butik | Hvad | Link | +|---|---|---| +| OpenSprinklerShop.de | Controller, sensorer, kabinet | opensprinklershop.de/en | +| Vandingsspecialisten.dk / Bauhaus.dk | Slanger, ventiler, rør, fittings | vandingsspecialisten.dk | +| Dosatron-forhandler / AgroWeb.dk | Gødningsinjektor | agroweb.dk | +| AliExpress (budget-alt.) | Ventiler, venturi, Tuya-sensorer | aliexpress.com | + +--- + +## HA-integration + +### OpenSprinkler HA-integration +- Officiel HA-integration (config flow) +- Giver entities for hver zone (switch), programstyring, sensordata +- Understøtter MQTT til sensor-publicering + +### Automation-logik + +```yaml +# Pseudo-logik for daglig vanding +trigger: + - platform: time + at: "06:00:00" +condition: + - condition: numeric_state + entity_id: sensor.netatmo_regn_sidste_24t + below: 5 # mm + - condition: numeric_state + entity_id: sensor.jordfugt_zone_1 + below: 40 # procent +action: + # Sekventiel vanding (én zone ad gangen for at holde trykket) + - service: switch.turn_on + entity_id: switch.opensprinkler_zone_1 + - delay: "00:15:00" + - service: switch.turn_off + entity_id: switch.opensprinkler_zone_1 + - service: switch.turn_on + entity_id: switch.opensprinkler_zone_2 + # ... osv for zone 3, 4 og 5 +``` + +### Tilstandsstyring + +| Hændelse | Aktion | +|---|---| +| Jordfugt < tærskel OG ingen regn | Vand zonen | +| Regn > 5mm sidste 24t | Spring vanding over | +| Temperatur < 5°C | Ingen vanding (frostbeskyttelse) | +| Kapillærkasser | Flydventiler er selvregulerende – zone 5 åbnes 2×/dag | + +--- + +## Fysisk installation – trin + +1. **Montér ved vandhane:** Y-splitter → hovedventil → Dosatron → filter → trykreducer +2. **Grav rende:** ~10cm dyb fra vandhane over græsplæne til højbedsområdet +3. **Læg PE-rør** i renden, dæk til +4. **Monter ventilbox** ved højbedene (nedgravet IP65 boks med 5 magnetventiler) +5. **Fordel siveslanger:** Én per højbed, én i drivhusbed +6. **Kapillærkasser:** Forbind zone 5 → T-stykker → 3× flydventil i kasserne +7. **Monter OpenSprinkler** i IP65 kabinet ved stikkontakt (nordsiden) +8. **Træk kabel** fra OpenSprinkler til ventilbox (24V AC, lavspænding) +9. **Forbind jordfugtsensorer** til Analog Sensor Board (kabel i rende) +10. **Test:** Kør hver zone manuelt, tjek flow og dækning +11. **HA-integration:** Tilføj OpenSprinkler, opret automationer + +--- + +## 3-ugers autonomi – tjekliste + +- [x] Dosatron: 20L koncentrat ved 1:100 = 2.000L vandvolumen (rigeligt) +- [ ] Jordfugtsensorer forhindrer overvanding +- [ ] Netatmo regnmåler springer vanding over ved regn +- [ ] Flydventiler i kapillærkasser er 100% selvregulerende +- [ ] OpenSprinkler har lokal fallback hvis HA er nede +- [ ] Rens vandfilter inden afrejse +- [ ] Test alle zoner inden afrejse + +--- + +## Eksisterende sensorer der kan bruges + +- **Netatmo regnmåler** – allerede installeret, bruges til vejrkompensering +- **WiFi-dækning** – god dækning til drivhus/have (bekræftet) +- **Zigbee-dækning** – god, udvides yderligere med Zigbee smart plugs (se ønskeliste) + +--- + +## Konkret graveplan & placering (ud fra fotos) + +### Vandhane-station (nordsiden af huset) + +``` + [Vindue] + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + │ Husmur │ + │ │ + │ [Slangerulle] [Stikkontakt - sort boks] │ + │ Gardena │ │ + │ │ │ 230V │ + │ │ ┌────┴─────────┐ │ + │ ▼ │ OpenSprinkler│ │ + │ [Vandhane] │ i IP65 boks │ │ + │ │ └────┬─────────┘ │ + │ ●─[Y-splitter] │ │ + │ │ ├── Manuel slange (bypass) │ 24V kabel │ + │ │ └── ↓ │ (parallelt med │ + │ │ [Hovedventil 24V] │ PE-rør) │ + │ │ [Dosatron + 20L dunk] │ │ + │ │ [Filter] │ │ + │ │ [Trykreducer] │ │ + │ ▼ │ │ + │ ●═════════════════════════════ ●═══════════════════► + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + ↓ + Fliser → græsplæne + Husqvarna Automower kører her + → PE-rør graves ned ~10cm under græs +``` + +### Renden over græsplænen + +``` + [Hus med vandhane] + ═══════════════════════════════════ + │ + │ PE-rør 25mm + 24V kabel + │ (i samme rende, ~10cm dyb) + │ (~6-8m over græsplæne) + │ + │ ⚠ Husqvarna Automower kører her – + │ derfor SKAL alt graves ned + │ + ▼ + ┌───────────────────────────────────────┐ + │ Graverende stopper │ + │ mellem højbedene │ + │ │ + [Højbed 1] ⊕──── ventilbox [Højbed 2] + (asparges) │ graves ned (asparges) + │ i grus-stien + │ + │ ┌──────────┐ + │ │ Ventilbox │ ← 5 magnetventiler + │ │ (IP65) │ (3 til højbede + 1 til drivhusbed + 1 til kapillærkasser) + │ └──────────┘ + │ + [Højbed 3] │ + (rabarber) │ + │ + ▼ + PE-rør fortsætter + under drivhusets fundament + (lille graverende eller eksisterende åbning) + │ + [Op gennem flise inde i drivhus] +``` + +### Højbede – set ovenfra (fra fotos) + +``` + ═══[Hus, nordside]═══ + │ + │ PE-rør i rende (under græs) + │ + ▼ + ┌──────────────────────────┐ + │ Højbed 1 (asparges) │ ← sive 5m + │ ━━━━━━━━━━━━━━━━━━━━━━━━ │ (zone 1) + └──────────┬───────────────┘ + │ + ╔══════╪══════╗ + ║ ⊕ Ventilbox ║ ← graves ned i grus-stien + ║ (5 ventiler)║ + ╚══════╪══════╝ + │ + ┌──────────┴──────────┐──────────────────┐ + │ Højbed 2 (asparges) │ Højbed 3 (rabarb)│ + │ ━━━━━━━ sive 5m ━━━ │ ━━━ sive 5m ━━━━ │ + │ (zone 2) │ (zone 3) │ + └──────────┬──────────┴──────────────────┘ + │ + │ PE-rør under drivhusfundament + ▼ + ┌──────────────────────────────────┐ + │ Drivhus │ + │ 📍 ↑ PE-rør op gennem flise │ + │ │ │ + │ ├──→ Sive 5m i drivhusbed │ ← (zone 4) + │ │ │ + │ └──→ Zone 5 ─────┐ │ + │ │ │ + │ ┌─────────────────┴─────────┐ │ + │ │ Mini-flydventil → Kasse 1│ │ + │ │ Mini-flydventil → Kasse 2│ │ + │ │ Mini-flydventil → Kasse 3│ │ + │ └───────────────────────────┘ │ + └──────────────────────────────────┘ +``` + +### Drivhus – kapillærkasser (fra foto: 3 sorte kasser med huller) + +``` + ┌────────────────────────────────────────────────┐ + │ Drivhus (set indefra mod indgang) │ + │ │ + │ 📍 PE-rør op gennem flise (ved indgang) │ + │ │ │ + │ │ │ + │ ├─────→ Zone 4: Siveslange langs jorden ─→ │ + │ │ │ + │ │ [Plantebord] │ + │ │ ┌──────────┐ │ + │ │ │ potter │ │ + │ │ └──────────┘ │ + │ │ │ + │ │ ┌────┐ ┌────┐ ┌────┐ │ + │ ├─────→ Zone 5: │ ⊙F │ │ ⊙F │ │ ⊙F │ ← Mini-flydven│ + │ │ ├────┤ ├────┤ ├────┤ │ + │ │ │Kap1│ │Kap2│ │Kap3│ ← Kapillær- │ + │ │ │vand│ │vand│ │vand│ kasser med │ + │ │ └────┘ └────┘ └────┘ vandreservoir│ + │ │ │ + │ │ Selvregulerer: når vandstand falder, │ + │ │ åbner flydventilen og fylder op │ + │ │ + └────────────────────────────────────────────────┘ +``` + +### Strækninger & graveplan (sammenfatning) + +| Strækning | Længde | Hvad | +|---|---|---| +| Vandhane → start på græsrende | ~2m | PE-rør + 24V kabel langs husmur | +| Rende over græsplæne | ~6-8m | Graveret ~10cm dyb (Husqvarna kører her) | +| Rende → ventilbox (mellem højbede) | ~1-2m | Ventilbox nedgraves i grus-sti | +| Ventilbox → drivhus | ~3m | Under drivhusfundament | +| Inde i drivhus | ~2m | Op ved flise, fordel til drivhusbed + 3 kapillærkasser | +| **Total PE-rør** | **~15m** | (køb 20m for sikkerhed) | + +### Vigtige observationer fra fotos + +1. **Husqvarna Automower** har sin garage ved nordmuren – PE-rør og kabler SKAL graves ned så robotten kan køre uforstyrret over græsset +2. **Stikkontakten** under vinduet er ideel placering for OpenSprinkler – ingen lange strømkabler nødvendige +3. **Grus-stien mellem 1. og 2./3. højbed** giver naturligt sted til ventilboxen – let adgang for service, ingen planter forstyrres +4. **Drivhusets fundament** – PE-rør føres under (kort gravearbejde) og kommer op ved flisen ved indgangen +5. **Slangerullen** kan blive ved muren til manuel brug – Y-splitteren bevarer manuel adgang +6. **Stikkontakten** sidder højt nok til at være fri af regnvand diff --git a/dokumenter/vandingssystem_alternativ_rainbird.md b/dokumenter/vandingssystem_alternativ_rainbird.md new file mode 100644 index 0000000..6df69b8 --- /dev/null +++ b/dokumenter/vandingssystem_alternativ_rainbird.md @@ -0,0 +1,509 @@ +# Alternativt Vandingssystem – Rain Bird RC2 + Venturi + Kapillærkasser + +*Oprettet: april 2026* + +--- + +## Formål + +Dette dokument beskriver et alternativ til det eksisterende forslag i [vandingssystem.md](./vandingssystem.md). + +Dette alternative forslag tager udgangspunkt i: + +- Rain Bird RC2 230V Outdoor som primær controller +- 5 zoner i stedet for 4 +- Venturi-gødskning i stedet for Dosatron +- 3 kapillærkasser i drivhus med mekaniske flydventiler uden zone-styring +- Lokal autonom drift, selv hvis Home Assistant er utilgængelig + +Målet er en løsning, der er lidt mere klassisk "havevanding" end OpenSprinkler-forslaget, men stadig kan overvåges og delvist styres fra Home Assistant. + +--- + +## Kort konklusion + +Dette Rain Bird-forslag er stærkt, hvis du vil have: + +- en traditionel irrigation-controller med egen lokal tidsplan +- 5 tydeligt adskilte zoner +- lavere kompleksitet på gødningsdelen +- et system der fortsætter med at køre uden Home Assistant + +Det oprindelige OpenSprinkler-forslag er stærkere, hvis du vil have: + +- dybere Home Assistant-integration +- mere fleksibel logik omkring jordfugt, regn og feriedrift +- bedre mulighed for sensorstyret beslutningstagning direkte i controller/logik +- mere præcis og stabil gødningsdosering via Dosatron + +--- + +## Systemoversigt + +### Have-layout + +- 3 højbede á 2m × 1m +- 1 ekstra bed +- 1 drivhus på 3m × 3m +- 3 kapillærkasser inde i drivhuset +- Vandhane på husmur +- 230V ved vandhane +- WiFi via UniFi i nærheden +- Nedgravet 25 mm PE-rør, ca. 20-30 cm dybde + +### Afstande + +- Ca. 5 m fra husmur/vandhane til første højbed +- Højbede står på række +- Ca. 70 cm mellem højbedene +- Ca. 4 m fra højbedene til drivhuset + +### Zoner + +| Zone | Område | Vandingstype | +|---|---|---| +| Zone 1 | Højbed 1 | 16 mm drypslange / driptubing | +| Zone 2 | Højbed 2 | 16 mm drypslange / driptubing | +| Zone 3 | Højbed 3 | 16 mm drypslange / driptubing | +| Zone 4 | Ekstra bed | 16 mm drypslange / driptubing | +| Zone 5 | Drivhusbed | Mikro-dryp | + +### Kapillærkasser + +Kapillærkasserne er **ikke zone-styrede**. + +De forsynes fra en separat, konstant trykreduceret lavtryksgren med: + +- mekanisk flydventil i hver kasse +- fast vandstand på ca. 2 cm +- overflow-beskyttelse +- manuel afspærring før kapillærgrenen + +Det betyder, at kapillærkasserne virker, også hvis controlleren eller Home Assistant er nede. + +--- + +## Fysisk systemdesign + +### Hovedopbygning + +```text +Husmur / vandhane + +Vandhane + │ + ├── Y-splitter + │ ├── Manuel haveslange + │ └── Irrigationssystem + │ + └── Filter 120 mesh + │ + ├── Trykreducer til drypzoner + │ │ + │ ├── Venturi-bypass + gødningstank + │ │ │ + │ │ └── 25 mm PE hovedledning til ventilbox + │ │ │ + │ │ ├── Ventil 1 → Højbed 1 + │ │ ├── Ventil 2 → Højbed 2 + │ │ ├── Ventil 3 → Højbed 3 + │ │ ├── Ventil 4 → Ekstra bed + │ │ └── Ventil 5 → Drivhus dryp + │ │ + │ └── 24VAC styret af Rain Bird RC2 + │ + └── Separat lavtryksgren til kapillærkasser + │ + ├── Egen regulator + ├── Manuel afspærring + └── 16 mm forsyning til 3 flydventiler i drivhus +``` + +### Bemærkning om gødning og kapillærkasser + +Hvis kapillærkasserne **ikke** skal have gødning kontinuerligt, bør deres vandgren ligge **uden om venturi-injektoren**. + +Det er min anbefaling i denne løsning. + +Det giver: + +- mindre risiko for salt-/næringsophobning i reservoirerne +- mindre risiko ved 3 ugers ferie +- enklere drift + +Hvis du ønsker gødning i kapillærkasserne, bør det ske meget kontrolleret og ikke som konstant forsyning. + +--- + +## Anbefalet hardware + +### Controller + +| Komponent | Antal | Estimat | Note | +|---|---|---|---| +| Rain Bird RC2 230V Outdoor | 1 | ca. 1.400-1.900 kr | 8 stationer, WiFi, 24VAC | + +### Ventiler og hydraulik + +| Komponent | Antal | Estimat | Note | +|---|---|---|---| +| Rain Bird 100-DV 1" magnetventil | 5 | ca. 1.000-1.250 kr | 1 per zone | +| Ventilbox | 1 | ca. 300-500 kr | Samlet servicepunkt | +| PE-rør 25 mm | 15-20 m | ca. 200-300 kr | Nedgravet hovedledning | +| 16 mm driptubing | passende længde | ca. 500-900 kr | Bed- og drivhusfordeling | +| 120 mesh filter | 1 | ca. 100-200 kr | Før alt dryp | +| Trykreducer til drypsystem | 1 | ca. 150-250 kr | Stabilt dryktryk | +| Ekstra regulator til kapillærgren | 1 | ca. 150-250 kr | Lavt tryk til flydventiler | +| Kugleventiler / afspærringer | flere | ca. 150-300 kr | Service og bypass | +| Fittings og koblinger | diverse | ca. 300-500 kr | PE + 16 mm | + +### Gødningssystem + +| Komponent | Antal | Estimat | Note | +|---|---|---|---| +| Venturi-injektor | 1 | ca. 150-400 kr | Billigere end Dosatron | +| Bypass-loop med ventiler | 1 | ca. 200-400 kr | Justering af sug | +| Gødningstank 20L | 1 | ca. 100-200 kr | Koncentrat | +| Sugeslange + filter | 1 | ca. 50-100 kr | Til venturi | + +### Drivhus / kapillærkasser + +| Komponent | Antal | Estimat | Note | +|---|---|---|---| +| Flydventil til kapillærkasser | 3 | ca. 240-450 kr | Mekanisk vandstand | +| Overflow-løsning | 3 | ca. 100-200 kr | Sikkerhed | +| 16 mm + mikrofordeling | 1 sæt | ca. 150-250 kr | Til drivhus | + +### Sensorer + +| Komponent | Antal | Estimat | Note | +|---|---|---|---| +| Jordfugtsensor højbed | 1-2 | afhænger af model | Til HA beslutningsstøtte | +| Jordfugtsensor drivhus | 1 | afhænger af model | Til zone 5 | +| Netatmo regnmåler | eksisterer | 0 kr | Allerede installeret | + +### Samlet budget + +Praktisk realistisk budget: + +- **ca. 4.500-6.500 kr** uden avanceret flowmåler +- **ca. 5.500-7.500 kr** hvis du vælger bedre fittings, bedre sensorer og ekstra sikkerhedskomponenter + +Det gør løsningen typisk lidt billigere end OpenSprinkler + Dosatron-forslaget, især fordi venturi er langt billigere end Dosatron. + +--- + +## Driftsprincip + +### Når Home Assistant virker + +Home Assistant bruges til: + +- overvågning af zoner +- regnlogik +- jordfugt-logik +- notifikationer +- manuel override +- statistik og status + +### Når Home Assistant er nede + +Rain Bird RC2 skal stadig kunne: + +- køre faste schedules +- vande alle 5 zoner efter lokal tidsplan +- ignorere HA-afhængighed + +Kapillærkasserne virker stadig via mekaniske flydventiler. + +Det betyder, at feriekravet på 3 uger kan opfyldes, **hvis de faste schedules er fornuftigt sat op i controlleren**. + +--- + +## Home Assistant-integration + +### Vigtig kompatibilitetsnote + +Home Assistant har en Rain Bird integration til LNK WiFi-baserede systemer. + +Det er en fordel for denne løsning, men der er også en vigtig begrænsning: + +- HA-dokumentationen angiver, at **Rain Bird 2.0 app / nyere IQ4-migrering ikke er kompatibel med Home Assistant** +- derfor bør du sikre dig, at den valgte controller/app-kombination stadig fungerer med den lokale HA-integration + +Hvis RC2-enheden eller firmware ender på den nye inkompatible platform, bliver denne løsning markant dårligere ift. HA-integration. + +OpenSprinkler-forslaget har her lavere integrationsrisiko. + +### Forventede HA-entities + +```text +switch.zone_1 +switch.zone_2 +switch.zone_3 +switch.zone_4 +switch.zone_5 + +sensor.soil_moisture_bed +sensor.soil_moisture_greenhouse +sensor.rain_today +number.rain_delay +calendar.irrigation_schedule +``` + +### Praktisk model i HA + +- Rain Bird styrer den basale lokale plan +- Home Assistant justerer eller stopper efter behov +- HA skal ikke være den eneste logikmotor + +--- + +## Anbefalet autonom strategi + +### Lokal controller-plan i Rain Bird + +Programmer minimum følgende lokalt i Rain Bird: + +- Zone 1-4: kort morgenkørsel +- Zone 5: kortere, hyppigere kørsel efter drivhusbehov +- Regnforsinkelse kan justeres fra HA eller manuelt + +### HA som supervisory layer + +Home Assistant skal bruges som et ekstra lag ovenpå: + +- sæt rain delay ved kraftig regn +- notifikation ved lav jordfugt i drivhus +- notifikation ved manglende flow / usædvanligt forbrug hvis flowsensor tilføjes +- manuel override ved hedebølge eller ferie + +--- + +## Eksempel på HA-automationslogik + +### 1. Regn-forsinkelse baseret på Netatmo + +```yaml +alias: Vanding - regnforsinkelse ved regn +trigger: + - platform: numeric_state + entity_id: sensor.rain_today + above: 5 +action: + - service: number.set_value + target: + entity_id: number.rain_delay + data: + value: 1 +mode: single +``` + +### 2. Notifikation om tørt højbed + +```yaml +alias: Vanding - hoejbed tørt +trigger: + - platform: numeric_state + entity_id: sensor.soil_moisture_bed + below: 28 + for: "02:00:00" +action: + - service: notify.mobile_app_claus_iphone_15pro + data: + title: "Vanding" + message: "Højbedene er tørre. Overvej ekstra vanding eller længere zonetid." +mode: single +``` + +### 3. Notifikation om tørt drivhus + +```yaml +alias: Vanding - drivhus tørt +trigger: + - platform: numeric_state + entity_id: sensor.soil_moisture_greenhouse + below: 35 + for: "01:00:00" +action: + - service: notify.mobile_app_claus_iphone_15pro + data: + title: "Vanding" + message: "Drivhuset er tørt. Tjek zone 5 eller hæv køretiden." +mode: single +``` + +### 4. Manuel zonekørsel med specifik varighed + +```yaml +alias: Vanding - start zone 1 manuelt +trigger: [] +action: + - service: rainbird.start_irrigation + data: + entity_id: switch.zone_1 + duration: 15 +mode: single +``` + +--- + +## Gødningsstrategi i dette alternativ + +### Venturi-forslag + +Venturi giver mening hvis du vil have: + +- lavere pris +- få bevægelige dele +- enkel udskiftning + +Men venturi er dårligere end Dosatron på: + +- præcision +- stabil dosering ved trykvariationer +- reproducerbarhed over lang tid + +### Praktisk anbefaling + +Brug venturi kun på udvalgte dage eller uger, fx: + +- gødning 1 gang pr. uge i vækstsæson +- manuel åbning af venturi-bypass inden ferie hvis du er sikker på blandingsforholdet +- kapillærkasser helst uden venturi i den konstante gren + +### Simpel HA-logik for gødningsdag + +```yaml +input_boolean: + fertigation_day: + name: Gødningsdag + +alias: Vanding - gødningspåmindelse +trigger: + - platform: state + entity_id: input_boolean.fertigation_day + to: "on" +action: + - service: notify.mobile_app_claus_iphone_15pro + data: + message: "Aktivér venturi-bypass og fyld gødningstank før næste vanding." +mode: single +``` + +--- + +## Sikkerhed og fail-safe + +### Minimum anbefalet + +- 120 mesh filter +- trykreducer før dryp +- separat regulator til kapillærgrenen +- manuel afspærring af kapillærgren +- ventilbox med god adgang +- vintertømning/dræning + +### Bør tilføjes senere + +- flowsensor på hovedlinjen +- læksensor ved ventilbox eller ved husmur +- notifikation ved usædvanlig lang zonekørsel + +--- + +## Sammenligning – forslag 1 vs forslag 2 + +### Forslag 1: OpenSprinkler + Dosatron + +Se [vandingssystem.md](./vandingssystem.md). + +Kendetegn: + +- OpenSprinkler AC v3.4 +- 4 zoner +- SMT50-sensorer direkte ind i systemdesignet +- Dosatron proportional gødskning +- kapillærkasser koblet på drivhus-zonen +- stærk HA-orientering + +### Forslag 2: Rain Bird RC2 + Venturi + +Dette dokument. + +Kendetegn: + +- Rain Bird RC2 Outdoor +- 5 zoner +- Venturi-injektor +- kapillærkasser på konstant mekanisk gren +- mere klassisk havevanding-controller +- HA som overvågning/supervision oven på lokal controller + +### Sammenligningstabel + +| Punkt | Forslag 1: OpenSprinkler + Dosatron | Forslag 2: Rain Bird + Venturi | +|---|---|---| +| Controller-fleksibilitet | Meget høj | Middel | +| HA-integration | Meget stærk | God, men med kompatibilitetsrisiko på nyere Rain Bird platforme | +| Lokal autonomi uden HA | God | God | +| Sensorbaseret styring | Bedst egnet | Mulig, men mere indirekte | +| Gødningspræcision | Meget høj | Middel | +| Pris | Højere | Ofte lidt lavere | +| Antal zoner | 4 | 5 | +| Kapillærkasser | På drivhus-zone | Konstant mekanisk forsyning | +| Installationskompleksitet | Høj | Middel | +| Risiko for fejldosering | Lavere | Højere | +| Egnethed til ferie | Meget god | God, hvis den lokale schedule er veldesignet | +| Udvidelsesmuligheder | Meget høj | Middel-god | + +--- + +## Praktisk vurdering + +### Hvornår jeg ville vælge forslag 1 + +Vælg OpenSprinkler + Dosatron hvis du vil have: + +- den mest HA-native løsning +- mest mulig kontrol og fleksibilitet +- bedre sensorstyring +- bedre gødningspræcision +- en løsning som er lettere at gøre intelligent over tid + +### Hvornår jeg ville vælge forslag 2 + +Vælg Rain Bird + Venturi hvis du vil have: + +- mere traditionel sprinklertænkning +- 5 separate zoner fra start +- simplere gødningshardware +- lidt lavere pris +- stærkere "standalone controller"-følelse + +### Min samlede anbefaling + +Hvis målet er **maksimal Home Assistant-værdi og bedst mulig logik**, er det oprindelige OpenSprinkler-forslag stadig det bedste. + +Hvis målet er **en mere klassisk, driftssikker og lidt enklere havevanding-controller**, er dette Rain Bird-forslag et godt alternativ, men kun hvis du verificerer at den præcise Rain Bird-platform stadig er kompatibel med Home Assistant. + +--- + +## Anbefalet beslutning + +Hvis du vil vælge mellem de to, vil jeg formulere det sådan: + +- **Vælg OpenSprinkler** hvis HA-integration og intelligent styring er vigtigst +- **Vælg Rain Bird** hvis lokal controllerdrift og klassisk sprinkler-setup er vigtigst +- **Behold mekaniske flydventiler** til kapillærkasser i begge scenarier +- **Overvej flowsensor** uanset hvilken løsning du vælger + +--- + +## Næste skridt hvis du går med Rain Bird-løsningen + +1. Verificér at præcis RC2/LNK-kombination er kompatibel med Home Assistant i din opsætning. +2. Beslut om kapillærkasserne skal være helt uden gødning. +3. Fastlæg drypslange-layout for hver af de 5 zoner. +4. Vælg jordfugtsensor-type og integrationsmetode. +5. Tilføj senere flowsensor som ekstra sikkerhed ved ferie. diff --git a/dokumenter/vandingssystem_beslutningsnotat.md b/dokumenter/vandingssystem_beslutningsnotat.md new file mode 100644 index 0000000..baa46bb --- /dev/null +++ b/dokumenter/vandingssystem_beslutningsnotat.md @@ -0,0 +1,248 @@ +# Beslutningsnotat – Hvilket vandingssystem ville jeg vælge? + +Oprettet: april 2026 + +Dette notat er et kort supplement til: + +- [vandingssystem.md](./vandingssystem.md) +- [vandingssystem_alternativ_rainbird.md](./vandingssystem_alternativ_rainbird.md) + +Formålet er at svare direkte på spørgsmålet: + +**Hvis det var min have og min Home Assistant-installation, hvilken løsning ville jeg vælge?** + +--- + +## Kort svar + +Jeg ville vælge **OpenSprinkler + proportional gødskning + mekaniske flydventiler til kapillærkasser**. + +Med andre ord: grundretningen fra [vandingssystem.md](./vandingssystem.md), men med én vigtig praktisk pointe: + +- kapillærkasserne skal stadig være så simple og mekaniske som muligt +- flowsensor bør tilføjes senere som ekstra sikkerhed + +--- + +## Hvorfor jeg ville vælge den løsning + +### 1. Den passer bedre til din måde at bruge Home Assistant på + +Du bruger allerede Home Assistant aktivt til: + +- styring +- automations +- sensorer +- speciallogik +- fejlsøgning +- dokumentation og videre udvikling + +Det peger klart i retning af en løsning, hvor controlleren er mere åben og mere HA-venlig. + +OpenSprinkler passer bedre til den tankegang end Rain Bird. + +--- + +### 2. Integrationsrisikoen er lavere + +Rain Bird-løsningen kan være fin, men den har en reel usikkerhed: + +- nyere Rain Bird-platforme og app/firmware-retninger har kendte begrænsninger ift. Home Assistant +- det betyder, at man kan ende med en controller, som fungerer fint alene, men dårligere sammen med HA end forventet + +OpenSprinkler er mere forudsigelig her. + +Det betyder ikke, at Rain Bird er dårlig. +Det betyder bare, at **den tekniske risiko er højere**. + +--- + +### 3. Sensorlogik bliver mere naturlig + +Dit projekt handler ikke kun om at tænde og slukke vand. +Det handler også om: + +- jordfugt +- regn +- ferie i 3 uger +- drivhus +- gødning +- forskellig adfærd i forskellige zoner + +Jo mere af løsningen der bygger på beslutningslogik, desto mere giver OpenSprinkler-retningen mening. + +Rain Bird er bedre som klassisk controller. +OpenSprinkler er bedre som intelligent systemkomponent. + +--- + +### 4. Dosatron er dyrere, men teknisk bedre + +Hvis du vil have automatisk gødning over længere tid, er Dosatron bare en bedre løsning end venturi. + +Fordelene er: + +- mere stabil dosering +- mindre følsom for trykvariationer +- mere forudsigelig under ferie +- bedre egnet når du vil stole på systemet uden daglig kontrol + +Venturi er attraktivt på pris, men ikke på præcision. + +Hvis målet er et system du tør lade passe sig selv i 3 uger, er præcision værd at betale for. + +--- + +### 5. Din haveprofil taler for "robust men intelligent" + +Du har flere krav på én gang: + +- høj ferie-sikkerhed +- drivhus og kapillærkasser +- mulighed for gødning +- Home Assistant-integration +- sandsynligvis lyst til senere forbedringer + +Det er præcis det punkt, hvor OpenSprinkler-løsningen begynder at give mere værdi end en mere klassisk controller. + +--- + +## Hvad jeg ikke ville gøre + +### Jeg ville ikke gøre kapillærkasserne afhængige af HA + +Kapillærkasserne bør være mekaniske. +Det gælder i begge forslag. + +Derfor ville jeg holde fast i: + +- flydventil i hver kasse +- simpel vandforsyning +- så få aktive komponenter som muligt + +Det er den rigtige måde at gøre netop den del ferie-stabil. + +--- + +### Jeg ville ikke starte med flowsensor som krav for dag 1 + +Flowsensor er en god idé, men ikke nødvendig for at komme i gang. + +Jeg ville bygge systemet i denne rækkefølge: + +1. controller +2. ventiler +3. hovedledning og zonefordeling +4. drypvanding +5. kapillærkasser +6. HA-logik +7. flowsensor og ekstra læk-overvågning + +Så får du et brugbart system hurtigere, uden at gøre projektet unødigt tungt fra start. + +--- + +## Hvornår jeg i stedet ville vælge Rain Bird + +Jeg ville vælge Rain Bird-løsningen, hvis følgende var vigtigst: + +- lokal controllerdrift er vigtigere end HA-dybde +- du vil have 5 klassiske zoner og mindst mulig controller-speciallogik +- du vil holde hardwareprisen lidt nede +- du accepterer lidt større usikkerhed på integrationen + +Det er et reelt og fornuftigt valg. + +Jeg synes bare ikke, det er det **bedste** valg i netop din opsætning. + +--- + +## Min anbefalede version af det endelige system + +Hvis jeg skulle vælge for dig, ville jeg sigte efter denne version: + +### Controller + +- OpenSprinkler + +### Zonering + +- 5 zoner fra start +- 3 zoner til højbede +- 1 zone til drivhusbed +- 1 zone til kapillærkasser + +### Gødning + +- Dosatron hvis du vil have reel automatisk drift med høj sikkerhed +- ellers venturi som budgetversion, men så med lavere forventning til præcision + +### Drivhus + +- én drypzone til drivhusbed +- én separat zone til 3 kapillærkasser på mekaniske flydventiler + +### Sikkerhed + +- filter +- trykreducer +- god serviceadgang +- senere flowsensor + +### Home Assistant + +- HA som beslutnings- og overvågningslag +- controller med lokal fallback + +--- + +## Hvis jeg skulle optimere på budgettet + +Hvis budgettet bliver afgørende, ville jeg ikke først spare på controlleren. +Jeg ville i stedet spare her: + +1. starte uden flowsensor +2. starte med færre/færre bedre placerede jordfugtsensorer +3. udskyde Dosatron og begynde uden automatisk gødning eller med simpel venturi + +Det vigtigste at få rigtigt fra starten er: + +- rørføring +- ventilplacering +- filter +- trykregulering +- zoneopdeling + +Det er de ting, der er mest irriterende at bygge om senere. + +--- + +## Endelig anbefaling + +### Mit valg + +Jeg ville vælge: + +OpenSprinkler + mekaniske flydventiler + mulighed for senere flowsensor + +### Mit valg hvis budgettet skal ned + +Jeg ville vælge: + +OpenSprinkler + mekaniske flydventiler + venturi som midlertidig budget-gødningsløsning + +### Mit valg hvis du vil have mest klassisk controller-setup + +Så ville jeg vælge: + +Rain Bird RC2 + 5 zoner + mekanisk kapillærgren + +Men det ville være mit andenvalg i din konkrete opsætning. + +--- + +## En sætning-versionen + +Hvis jeg skal sige det helt kort: + +**Jeg ville vælge OpenSprinkler-løsningen, fordi den passer bedre til dit Home Assistant-miljø, giver lavere integrationsrisiko og er den stærkeste platform, hvis systemet senere skal blive mere intelligent og stadig være ferie-stabilt.** diff --git a/dokumenter/vandingssystem_rainbird_indkoebsliste.md b/dokumenter/vandingssystem_rainbird_indkoebsliste.md new file mode 100644 index 0000000..62c62cb --- /dev/null +++ b/dokumenter/vandingssystem_rainbird_indkoebsliste.md @@ -0,0 +1,262 @@ +# Indkøbsliste – Rain Bird-alternativ + +Oprettet: april 2026 + +Denne liste hører sammen med [vandingssystem_alternativ_rainbird.md](./vandingssystem_alternativ_rainbird.md). + +Målet er at gøre Rain Bird-løsningen konkret med realistiske produkter, som typisk kan findes i Danmark eller Tyskland. + +> Bemærk: priser og lager skifter. Brug listen som indkøbsgrundlag, ikke som garanti for præcis pris eller tilgængelighed. + +--- + +## 1. Controller + +### Primært valg + +| Produkt | Antal | Ca. pris | Butikstype | Note | +| --- | --- | --- | --- | --- | +| Rain Bird RC2, 8 station, 230V Outdoor | 1 | 1.400-1.900 kr | Tysk webshop / dansk vandingsbutik | Hovedcontroller | + +### Tjek før køb + +- at modellen reelt understøtter den HA-kompatible Rain Bird/LNK-løsning +- at den ikke tvinges over på nyere IQ4/2.0-platform uden HA-kompatibilitet +- at udendørs kabinet og 230V-variant er den rigtige model + +### Butikstyper for controller + +- Rain Bird-forhandlere i Tyskland +- Amazon.de +- danske vandingsspecialister + +--- + +## 2. Ventiler og ventilbox + +| Produkt | Antal | Ca. pris | Note | +| --- | --- | --- | --- | +| Rain Bird 100-DV 1" 24VAC magnetventil | 5 | 180-250 kr/stk | En ventil pr. zone | +| Ventilbox standard / jumbo | 1 | 300-500 kr | Til 5 ventiler samlet | +| Ventilmanifold 1" eller samling med nipler/T-stykker | 1 sæt | 250-500 kr | Gør montage lettere | + +### Konkrete ventiltyper + +- Rain Bird 100-DV 1" +- alternativt Hunter PGV 1" 24VAC hvis Rain Bird ikke er på lager + +### Butikstyper for ventiler + +- Vandingsspecialisten.dk +- Rig-Tig Vanding / tilsvarende danske havevandingsforhandlere +- Amazon.de +- tyske irrigation-webshops + +--- + +## 3. Filtrering og trykregulering + +| Produkt | Antal | Ca. pris | Note | +| --- | --- | --- | --- | +| 120 mesh filter, 3/4" eller 1" | 1 | 100-200 kr | Før drypsystem | +| Trykreducer til drypvanding, fx 1.5 bar | 1 | 150-250 kr | Til hovedzoner | +| Ekstra lavtryksregulator til kapillærkasser | 1 | 150-250 kr | Separat gren | +| Kugleventiler / afspærringsventiler | 3-5 | 40-100 kr/stk | Service og bypass | +| Y-splitter til vandhane | 1 | 75-150 kr | Manuel slange + system | + +### Konkrete filter- og regulatorvalg + +- 120 mesh inline irrigation filter +- Rain Bird / Netafim / Irritec trykreducer 1.0-1.5 bar +- messing kugleventiler til bypass og service + +### Butikstyper for filter og trykregulering + +- Bauhaus +- Harald Nyborg (simple fittings og kugleventiler) +- Vandingsspecialisten.dk +- Amazon.de + +--- + +## 4. Rør, slanger og fittings + +| Produkt | Antal | Ca. pris | Note | +| --- | --- | --- | --- | +| PE-rør 25 mm | 20 m | 200-350 kr | Nedgravet hovedledning | +| 16 mm driptubing | 50-100 m | 400-900 kr | Højbede + drivhus | +| 16 mm fittings (knæ, T, koblinger, ender) | 1 sæt | 200-400 kr | Distribution | +| 25 mm PE fittings | 1 sæt | 250-500 kr | Hovedlinje | +| Overgang 25 mm til manifold | 1 sæt | 100-200 kr | Samling ved ventilbox | + +### Konkrete rør- og slangevalg + +- 25 mm PE100 eller almindeligt vandings-PE-rør +- 16 mm drypslange/driptubing med trykkompenserede dryppere +- Rain Bird XF Dripline eller Netafim Techline som kvalitetsvalg + +### Praktisk anbefaling for gødningssystemet + +Til højbede ville jeg prioritere kvalitets-drypslange frem for den billigste løsning. Det er ofte her driftsstabiliteten afgøres. + +--- + +## 5. Drivhus og kapillærkasser + +| Produkt | Antal | Ca. pris | Note | +| --- | --- | --- | --- | +| Mini-flydventil / tank float valve | 3 | 80-150 kr/stk | En pr. kapillærkasse | +| 16 mm forsyningsslange til kasser | 1 sæt | 100-200 kr | Konstant vandgren | +| Mikrofordeling / 4 mm slanger | 1 sæt | 100-200 kr | Hvis nødvendigt i drivhus | +| Overflow-gennemføring / udløb | 3 | 30-60 kr/stk | Sikkerhed mod overløb | + +### Konkrete drivhusdele + +- mini float valve til reservoir / livestock tank / RO-tank +- gennemføring med pakning til sidevæg i kapillærkasser +- 4 mm mikro-irrigation fittings + +### Butikstyper for drivhusdele + +- Amazon.de +- eBay.de +- tyske greenhouse / irrigation-webshops +- hydroponics-butikker + +--- + +## 6. Gødningssystem + +| Produkt | Antal | Ca. pris | Note | +| --- | --- | --- | --- | +| Venturi-injektor 3/4" eller 1" | 1 | 150-400 kr | Billig fertigation | +| Bypass-loop fittings + ventiler | 1 sæt | 200-400 kr | Juster sug og flow | +| Gødningstank 20L | 1 | 100-200 kr | Koncentrat | +| Sugeslange med filter | 1 | 50-100 kr | Ned i tank | + +### Konkrete gødningsdele + +- Mazzei-lignende venturi-injektor eller tilsvarende irrigation venturi +- simpel 20L plastdunk med låg +- kemikaliebestandig sugeslange + +### Praktisk anbefaling + +Hvis du vælger venturi: + +- brug det kun til de zoner der reelt skal have gødning +- hold kapillærkasserne udenfor den kontinuerte gødningsgren +- byg bypass, så venturi kan isoleres helt + +--- + +## 7. Sensorer + +| Produkt | Antal | Ca. pris | Note | +| --- | --- | --- | --- | +| Jordfugtsensor til højbed | 1-2 | 150-900 kr/stk | Afhænger af ambitionsniveau | +| Jordfugtsensor til drivhus | 1 | 150-900 kr/stk | Til zone 5 | +| Flowsensor (senere) | 1 | 300-1.200 kr | Ekstra fail-safe | +| Læksensor (senere) | 1-2 | 100-300 kr/stk | Ved husmur / ventilbox | + +### Mulige retninger + +Budget: + +- Tuya Zigbee jordfugtsensorer + +Mere seriøst: + +- Vegetronix / SMT / industrielle sensorer med kendt kalibrering + +### Praktisk anbefaling for sensorer + +Hvis du går med Rain Bird-varianten, vil jeg holde sensorerne i HA-laget og ikke gøre hele løsningen afhængig af dem for basal drift. + +--- + +## 8. El og montage + +| Produkt | Antal | Ca. pris | Note | +| --- | --- | --- | --- | +| Udendørs godkendt 24VAC installationskabel | passende længde | 150-300 kr | Fra controller til ventilbox | +| Vandtætte samlemuffer / gel connectors | 1 sæt | 100-200 kr | Til ventilledninger | +| Monteringsskruer / rawlplugs | 1 sæt | 50-100 kr | Controller og bokse | +| Kabelflex eller beskyttelse | efter behov | 100-200 kr | Hvor kabel udsættes | + +--- + +## 9. Min anbefalede indkøbspakke + +Hvis jeg skulle købe denne løsning ind i praksis, ville jeg starte med: + +### Kernepakke + +- 1 × Rain Bird RC2 Outdoor 8-zone +- 5 × Rain Bird 100-DV 1" +- 1 × ventilbox til 5 ventiler +- 20 m PE-rør 25 mm +- 50-100 m 16 mm kvalitets-driptubing +- 1 × 120 mesh filter +- 1 × trykreducer til dryp +- 1 × ekstra regulator til kapillærgrenen +- 1 × venturi-injektor +- 1 × 20L gødningsdunk +- 3 × mini-flydventiler +- fittings-pakker til både 25 mm og 16 mm +- 24VAC kabel + vandtætte samlemuffer + +### Bør tilføjes tidligt + +- mindst 1 jordfugtsensor i højbedsområdet +- mindst 1 jordfugtsensor i drivhuset + +### Bør tilføjes senere + +- 1 flowsensor +- 1-2 læksensorer + +--- + +## 10. Hvad jeg ville prioritere kvalitetsmæssigt + +Hvis budgettet skal bruges rigtigt, ville jeg prioritere kvalitet i denne rækkefølge: + +1. Drypslanger og fittings +2. Ventiler +3. Filter og trykreducer +4. Ventilbox og servicevenlig montage +5. Sensorer +6. Venturi + +Venturi må gerne være enkel. Det vigtigste er, at vandføringen, filteret og fordelingssystemet er stabilt. + +--- + +## 11. Butikstyper jeg ville bruge + +### Danmark + +- Vandingsspecialisten.dk +- Bauhaus +- Harald Nyborg til simple fittings og kugleventiler + +### Tyskland + +- Amazon.de +- specialiserede irrigation-webshops +- greenhouse / hydroponics-webshops til float valves og mikrodele + +--- + +## 12. Slutvurdering + +Denne indkøbsliste giver en realistisk vej til at bygge Rain Bird-løsningen uden at gøre den for eksotisk. + +Hvis du vil holde det robust i 3 ugers ferie, vil jeg især fokusere på: + +- god filtrering +- ordentlig trykregulering +- kvalitets-drypslange +- enkel kapillærgren med mekaniske flydventiler +- flowovervågning som næste trin diff --git a/include/automations/infrastructure_alerts.yaml b/include/automations/infrastructure_alerts.yaml new file mode 100644 index 0000000..8594021 --- /dev/null +++ b/include/automations/infrastructure_alerts.yaml @@ -0,0 +1,53 @@ +- alias: Infrastruktur - MQTT broker nede efter opstart + id: infrastructure_mqtt_broker_down_after_start + trigger: + - platform: homeassistant + event: start + + action: + - delay: "00:03:00" + - condition: state + entity_id: binary_sensor.mqtt_broker_tcp + state: "off" + - service: persistent_notification.create + data: + title: "MQTT broker er nede" + message: >- + MQTT-brokeren svarer ikke efter Home Assistant-opstart. + Dørklokker og andre MQTT-afhængige funktioner virker derfor ikke. + - service: notify.mobile_app_claus_iphone_15pro + data: + title: "Home Assistant: MQTT broker nede" + message: "MQTT-brokeren svarer ikke efter opstart. Tjek Synology-containere." + - service: notify.mobile_app_annes_iphone_14_pro + data: + title: "Home Assistant: MQTT broker nede" + message: "MQTT-brokeren svarer ikke efter opstart. Tjek Synology-containere." + + mode: single + +- alias: Infrastruktur - MQTT broker gik ned + id: infrastructure_mqtt_broker_down_runtime + trigger: + - platform: state + entity_id: binary_sensor.mqtt_broker_tcp + to: "off" + for: "00:02:00" + + action: + - service: persistent_notification.create + data: + title: "MQTT broker er nede" + message: >- + MQTT-brokeren har været utilgængelig i mindst 2 minutter. + Dørklokker og andre MQTT-afhængige funktioner virker derfor ikke. + - service: notify.mobile_app_claus_iphone_15pro + data: + title: "Home Assistant: MQTT broker nede" + message: "MQTT-brokeren har været nede i mindst 2 minutter. Tjek Synology-containere." + - service: notify.mobile_app_annes_iphone_14_pro + data: + title: "Home Assistant: MQTT broker nede" + message: "MQTT-brokeren har været nede i mindst 2 minutter. Tjek Synology-containere." + + mode: single \ No newline at end of file diff --git a/include/command_line/infrastructure.yaml b/include/command_line/infrastructure.yaml new file mode 100644 index 0000000..3c1fa8d --- /dev/null +++ b/include/command_line/infrastructure.yaml @@ -0,0 +1,11 @@ +- binary_sensor: + name: MQTT Broker TCP + unique_id: mqtt_broker_tcp + device_class: connectivity + # Opdater host hvis MQTT-brokeren flyttes til en anden maskine. + command: >- + python3 -c "import socket; s=socket.socket(); s.settimeout(2); + print('ON' if s.connect_ex(('10.0.0.142', 1883)) == 0 else 'OFF')" + payload_on: "ON" + payload_off: "OFF" + scan_interval: 60 \ No newline at end of file diff --git a/include/mqtt.yaml b/include/mqtt.yaml new file mode 100644 index 0000000..99d2e66 --- /dev/null +++ b/include/mqtt.yaml @@ -0,0 +1,12 @@ +sensor: + - name: "Shelly bagdoer batteri" + state_topic: "shellies/shellybutton1-98CDAC1E5F42/sensor/battery" + unit_of_measurement: "%" + device_class: battery + value_template: "{{ value | int(0) }}" + + - name: "Shelly fordoer batteri" + state_topic: "shellies/shellybutton1-C45BBE6A5696/sensor/battery" + unit_of_measurement: "%" + device_class: battery + value_template: "{{ value | int(0) }}" \ No newline at end of file diff --git a/include/sensors/shelly_buttons.yaml b/include/sensors/shelly_buttons.yaml index 85b58a6..242996a 100644 --- a/include/sensors/shelly_buttons.yaml +++ b/include/sensors/shelly_buttons.yaml @@ -1,14 +1 @@ -# MQTT sensorer til Shelly Button 1 doerklokker -- platform: mqtt - name: "Shelly bagdoer batteri" - state_topic: "shellies/shellybutton1-98CDAC1E5F42/sensor/battery" - unit_of_measurement: "%" - device_class: battery - value_template: "{{ value | int(0) }}" - -- platform: mqtt - name: "Shelly fordoer batteri" - state_topic: "shellies/shellybutton1-C45BBE6A5696/sensor/battery" - unit_of_measurement: "%" - device_class: battery - value_template: "{{ value | int(0) }}" +# MQTT sensorer flyttet til include/mqtt.yaml