# TODO - Pending Tasks

## Home Assistant - Åbne opgaver

### HA-fejl der skal fikses
- [x] **Mealie shopping merge timeout** — udgået, merge med Google Keep droppes. Shopping-liste køres direkte i Mealie hver onsdag morgen.
- [x] **aiohttp 400 Bad Request fra ekstern IP** — Løst: Nginx Proxy Manager sat op som HTTPS reverse proxy (`anneclaus.duckdns.org`). Let's Encrypt cert udstedt, Force HTTPS aktiveret. Port 8123 lukket på routeren. HA tilgås nu udelukkende via HTTPS på port 443.
- [x] **switch.home_charging mangler** — Bilen oplades fint (16. maj 2026). Ikke et reelt problem.
- [x] **climate.badevarelse** — Danfoss Ally TRV monteret og online (7. maj 2026).
- [x] **Husqvarna Automower BLE — genopsæt parring** — Kørte fint. Problemet var at telefon-app'en kørte i baggrunden og holdt BLE-forbindelsen, selvom klipperen var slettet fra appen.
- [x] **Google AI MAX_TOKENS i AI-indkørsel automation** — Ingen fejl observeret i loggen. Fjernet fra aktiv liste.

### HA - Kendte ikke-fejl (ingen handling nødvendig)
- `husqvarna_automower_ble` BLE fejl — normalt når plæneklipperen klipper (men se auth fail-fejl ovenfor)
- `light.spejl1/spejl2` mangler — strøm slukket på kontakt, OK


## Sikring af port forwards via NPM + subdomæner
**Baggrund:** Diverse tjenester er direkte eksponeret via port-forwards på routeren uden kryptering. Disse bør flyttes bag NPM med HTTPS og subdomæner under `anneclaus.dk`.

**Tjenester fra routeren (per 17. maj 2026):**
| Tjeneste | WAN-port | Intern port | Forslag til subdomain |
|---|---|---|---|
| Mealie | 9925 | 9925 | `mealie.anneclaus.dk` |
| Plex | 32400 | 32400 | `plex.anneclaus.dk` (Plex har egen HTTPS — lavere prioritet) |
| Synology DSM | 5000/5001 | 5000/5001 | `nas.anneclaus.dk` |
| Unifi | 8443 | 8443 | (Unifi har egen HTTPS — lavere prioritet) |
| FTP | 21 | 21 | FTP er usikkert — overvej om den skal lukkes |
| MQTT | 1883 | 1883 | MQTT i klartekst — høj risiko |
| SSH | 2222 | 2222 | SSH er krypteret, men tiltrækker brute-force |

**For hver tjeneste der flyttes:**
1. Tilføj CNAME-record hos One.com: `<subdomain>` → `anneclaus.duckdns.org`
2. Opret proxy host i NPM med SSL-cert og Force HTTPS
3. Luk den direkte port-forward på routeren

- [x] **MQTT port 1883** — lukket på routeren (17. maj 2026). MQTT bruges kun internt af Aqara-knapper til ringklokke — ingen ekstern adgang nødvendig.
- [x] **FTP port 21** — lukket på routeren (17. maj 2026).
- [x] **Mealie** — `mealie.anneclaus.dk` via NPM med HTTPS (18. maj 2026). Port 9925 lukket på routeren.
- [x] **Synology DSM** — `nas.anneclaus.dk` via NPM med HTTPS (19. maj 2026). Port 5000/5001 lukket på routeren.
- [ ] **SSH port 2222** — overvej at begrænse til nøgle-login og deaktivere password-login
- [~] **Plex** — springer over. Plex krypterer selv sin trafik, og alle klientenheder (telefoner, iPad, Apple TV) skulle opdateres manuelt. Ikke umagen værd.
- [ ] **Unifi** — lavere prioritet, Unifi har allerede HTTPS

---

## 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).
