From 067d5c6a635cab7b531b5cdcb97cc27b6b0d08f9 Mon Sep 17 00:00:00 2001 From: Claus Dethlefsen Date: Sat, 9 May 2026 06:19:50 +0200 Subject: [PATCH] Vi laver mad script+knap, Ally online, TODO/oensker opdateret, mealie/bilka sync --- dashboards/views/04c_madplan.yaml | 9 +- dokumenter/TODO.md | 9 +- dokumenter/oensker.md | 2 +- include/scripts/home_actions.yaml | 47 ++++++ www/bilka_togo_checklist.html | 117 +++++++++------ www/bilka_togo_checklist.json | 232 +++++++++++++++++++++++------- www/mealie.json | 2 +- 7 files changed, 322 insertions(+), 96 deletions(-) diff --git a/dashboards/views/04c_madplan.yaml b/dashboards/views/04c_madplan.yaml index 744b548..47b0f9a 100644 --- a/dashboards/views/04c_madplan.yaml +++ b/dashboards/views/04c_madplan.yaml @@ -41,7 +41,7 @@ cards: - color: white - padding-top: 4px - # 🎵 Musik i køkken + Der er mad + # 🎵 Musik i køkken + Vi laver mad + Der er mad - type: grid columns: 2 square: false @@ -57,6 +57,13 @@ cards: data: source: "1 Family Mix" + - type: button + name: Vi laver mad + icon: mdi:chef-hat + tap_action: + action: call-service + service: script.vi_laver_mad + - type: button name: Der er mad! icon: mdi:silverware-fork-knife diff --git a/dokumenter/TODO.md b/dokumenter/TODO.md index 500b5b7..dfe45d7 100644 --- a/dokumenter/TODO.md +++ b/dokumenter/TODO.md @@ -6,8 +6,13 @@ - [ ] **Mealie shopping merge timeout** — `mealie_shopping_merge.py` timer ud efter 60s (HA shell_command grænse). Skal enten optimeres eller køres som en separat daemon/REST API udenfor HA. - [ ] **aiohttp 400 Bad Request fra ekstern IP** — `66.132.195.116` sendte ugyldig HTTP/2 request til HA (kl. 01:51). Undersøg om HA er korrekt beskyttet bag reverse proxy / firewall. - [ ] **switch.home_charging mangler** — EV-view responderer ikke. Undersøg om Zaptec/EV-integration er nede. -- [ ] **climate.badevarelse mangler** — Touchline termostat i badeværelset ikke monteret endnu. -- [ ] **Husqvarna Automower BLE `auth fail reason=82`** — Bluetooth autentificeringsfejl hvert ~60 sek (GATT `INSUFFICIENT_AUTHENTICATION`). Parringen er sandsynligvis gået tabt. Fix: fjern og genopsæt `husqvarna_automower_ble` integrationen i HA (Indstillinger → Enheder & tjenester). Fylder loggen med 3000+ linjer i døgnet. +- [x] **climate.badevarelse** — Danfoss Ally TRV monteret og online (7. maj 2026). +- [ ] **Husqvarna Automower BLE — genopsæt parring** — BLE-parringen er ustabil (auth fail / GATT error 133 / ~30 fejl/time i loggen). Gør følgende: + 1. HA → Indstillinger → Enheder & Tjenester → `Husqvarna Automower BLE` → slet integrationen + 2. Gå ud til klipperen — tænd den og hold **HOME-knappen** inde ~5 sek indtil Bluetooth/PIN vises i displayet (parring-mode) + 3. HA → Indstillinger → Enheder & Tjenester → Tilføj integration → søg `Husqvarna Automower BLE` → følg guiden + 4. Sørg for M5Stack er tændt og tæt på klipperen under parringen + - Forventning: "auth fail reason=82" og "not pairable"-fejl forsvinder. Forbigående fejl når klipperen sover er OK. - [ ] **Google AI MAX_TOKENS i AI-indkørsel automation** — `script.overvaagning` sender for langt prompt til Gemini. Reducer prompt-størrelsen hvis det sker gentagne gange. ### HA - Kendte ikke-fejl (ingen handling nødvendig) diff --git a/dokumenter/oensker.md b/dokumenter/oensker.md index 92cc193..871c120 100644 --- a/dokumenter/oensker.md +++ b/dokumenter/oensker.md @@ -10,7 +10,7 @@ | Antal | Rum | Beskrivelse | Status | |---|---|---|---| -| 1 | Badeværelse | Danfoss Ally TRV (Zigbee) | 🔧 To be fixed (kan ikke skrues ordentligt fast) | +| 1 | Badeværelse | Danfoss Ally TRV (Zigbee) | ✅ Monteret og online (7. maj 2026) | **Bekræftet ventiltype:** Danfoss RA (snap-on clips) – Ally passer direkte med medfølgende RA-adapter. diff --git a/include/scripts/home_actions.yaml b/include/scripts/home_actions.yaml index 2ab19a0..1419a8d 100644 --- a/include/scripts/home_actions.yaml +++ b/include/scripts/home_actions.yaml @@ -1,3 +1,50 @@ +vi_laver_mad: + alias: Vi laver mad + sequence: + - choose: + - conditions: + - condition: state + entity_id: person.andreas_schusler_dethlefsen + state: home + sequence: + - service: notify.mobile_app_andreas_iphone_12 + data: + message: >- + {% set meal = states('sensor.dagens_aftensmad') %} + {% if meal and meal not in ['unknown','unavailable','Ingen planlagt'] %} + Vi laver mad! I dag: {{ meal }} + {% else %} + Vi laver mad! + {% endif %} + - service: sonos.snapshot + data: + entity_id: media_player.andreas + with_group: true + - service: media_player.media_stop + target: + entity_id: media_player.andreas + - service: media_player.volume_set + target: + entity_id: media_player.andreas + data: + volume_level: 0.35 + - service: tts.speak + target: + entity_id: tts.google_ai_tts + data: + media_player_entity_id: media_player.andreas + message: >- + {% set meal = states('sensor.dagens_aftensmad') %} + {% if meal and meal not in ['unknown','unavailable','Ingen planlagt'] %} + Vi laver mad! I dag spiser vi {{ meal }} + {% else %} + Vi laver mad! + {% endif %} + - delay: "00:00:08" + - service: sonos.restore + data: + entity_id: media_player.andreas + mad_announcement: alias: Der er mad sequence: diff --git a/www/bilka_togo_checklist.html b/www/bilka_togo_checklist.html index 2ec8dbf..5717275 100644 --- a/www/bilka_togo_checklist.html +++ b/www/bilka_togo_checklist.html @@ -18,57 +18,92 @@

đź›’ Bilka ToGo

-

Plan 01/05 – 07/05  Â·  45 varer

+

Plan 08/05 – 14/05  Â·  78 varer

- - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + - + + + - - - - - - - - - + + + + + + + + + + + - - - + - - - - - + + + + + + + +
Andet
0,50 tsk stødt spidskommen
1 æg
1 æggehvider
1 dl grøntsagsbouillon
1 dl mælk
0,50 tsk chiliflager
0,50 tsk røget paprika
1 dl cremefraiche 18 %
1 dl hvidvin
1 fed hvidløg, presset
1 hel knoldselleri (ca. 700-800 g)
1 spsk smør, til at smøre fadet
1 spsk smør, til stegning
1 tsk tørret timian
100 g parmesan, fintrevet
2 fed hvidløg
2 spsk kapers (valgfrit)
4 æggeblommer + 1 helt æg
4 gulerødder, skrællede og skiveskåret
400 g spaghetti eller rigatoni
50 g pecorino, fintrevet (kan erstattes af mere parmesan)
75 g smør
800 g kartofler, skrubbede
1 iceberg
1 rødløg, i tynde ringe
1 spsk lage fra de syltede cornichoner
1 spsk sennep, - gerne sød
1 spsk sesamfrø
1 tsk garam masala
1 tsk hvide peberkorn (knuste)
1 tsk ketchup
1 tsk majsstivelse
1 tsk sød paprika
100 g cheddar
1,2 kg bagekartofler
1,2 liter vand
1/2 tsk chiliflager
1/2 tsk paprika
1,50 stødt spidskommen
1,50 tsk sød paprika
2 dl grøntsagsbouillon
2 fed hvidlag (flaekket)
2 fed hvidlag presset (til marinade)
2 skalottelag (finthakkede)
2 spsk smaor
2 spsk tikka masala paste
2 spsk toervin (hvidvin)
2 store lag (finthakkede)
20 g cornichoner, meget finthakkede
200 g squash, groftrevet
3 aeggeblommer
3 fed hvidlag (finthakkede)
3 fed hvidløg, presset
3 spsk smaor
300 g gulerødder, i små tern
4 fed hvidlag presset (til sauce)
4 tortillas pandekager, smĂĄ
400 g spidskĂĄl, fintsnittet
400g spaghetti eller tagliatelle
600g jomfruhummerhaler (optaot, pillede)
Frost
1 dl piskefløde
2 dl piskefloede
200g smaor (til bearnaise)
50 g mayonnaise
Frugt & Grønt
½ citron
1 citron – saft og fintrevet skal
Grøn salat
Grøntsager eller salat
0,50 agurk, i skiver
1 citron (saft og skal)
1 spsk tomatpure
2 daaser hakkede tomater (a 400g)
200g cherrytomater (halverede)
4 tomater, i tern
Kolonial
1 spsk smør eller olie til stegning
1 1/2 tsk salt (til ris)
1 spsk olivenolie
1 tsk frisk ingefaer revet (til marinade)
1 tsk salt
2 spsk finvalset havregryn
2 spsk hvedemel
2 spsk olie til stegning
3 spsk hvedemel
3 spsk olivenolie, til stegning
Frisk timian eller persille
Friskmalet peber
Friskmalet sort peber – rigeligt
Ris eller kartofler
1/2 bundt frisk estragon
2 spsk hvidvinseddike
2 spsk smaor (til ris)
2 spsk tandoorikrydderi
2 tsk frisk ingefaer revet (til sauce)
3 spsk olivenolie
4 kviste frisk timian
600g basmatiris
Frisk koriander til servering
Salt
salt og friskkværnet peber
Salt og hvid peber
Salt og peber
Salt til pastavand
Kød & Fisk
1 fed hvidløg, finthakket
1 kg kylling, overlĂĄr og evt bryst med skind
1 dl persille, finthakket
1 løg, finthakket
1 spsk frisk rosmarin, finthakket
2 spsk frisk persille, hakket
200 g pancetta eller røget bacon i tern
4 laksefileter med skind (ca. 150 g pr. stk)
500 g hakket svinekød
1 skalottelag (finthakket)
1/2 bundt frisk persille (hakket)
1,2 kg kyllingebryst (i mundrette stykker)
4 ribeye steaks a ca. 250g
400 g hakket oksekød
50 g cornichoner, finthakket
Mejeri & Æg
2 dl yoghurt naturel
diff --git a/www/bilka_togo_checklist.json b/www/bilka_togo_checklist.json index fd8b6e6..ae86f72 100644 --- a/www/bilka_togo_checklist.json +++ b/www/bilka_togo_checklist.json @@ -1,24 +1,20 @@ { - "count": 45, + "count": 78, "items": [ { - "name": "0,50 tsk stødt spidskommen", + "name": "0,50 tsk chiliflager", "category": "andet" }, { - "name": "1 æg", + "name": "0,50 tsk røget paprika", "category": "andet" }, { - "name": "1 æggehvider", + "name": "1 dl cremefraiche 18 %", "category": "andet" }, { - "name": "1 dl grøntsagsbouillon", - "category": "andet" - }, - { - "name": "1 dl mælk", + "name": "1 dl hvidvin", "category": "andet" }, { @@ -26,75 +22,203 @@ "category": "andet" }, { - "name": "1 hel knoldselleri (ca. 700-800 g)", + "name": "1 iceberg", "category": "andet" }, { - "name": "1 spsk smør, til at smøre fadet", + "name": "1 rødløg, i tynde ringe", "category": "andet" }, { - "name": "1 spsk smør, til stegning", + "name": "1 spsk lage fra de syltede cornichoner", "category": "andet" }, { - "name": "1 tsk tørret timian", + "name": "1 spsk sennep, - gerne sød", "category": "andet" }, { - "name": "100 g parmesan, fintrevet", + "name": "1 spsk sesamfrø", "category": "andet" }, { - "name": "2 fed hvidløg", + "name": "1 tsk garam masala", "category": "andet" }, { - "name": "2 spsk kapers (valgfrit)", + "name": "1 tsk hvide peberkorn (knuste)", "category": "andet" }, { - "name": "4 æggeblommer + 1 helt æg", + "name": "1 tsk ketchup", "category": "andet" }, { - "name": "4 gulerødder, skrællede og skiveskåret", + "name": "1 tsk majsstivelse", "category": "andet" }, { - "name": "400 g spaghetti eller rigatoni", + "name": "1 tsk sød paprika", "category": "andet" }, { - "name": "50 g pecorino, fintrevet (kan erstattes af mere parmesan)", + "name": "100 g cheddar", "category": "andet" }, { - "name": "75 g smør", + "name": "1,2 kg bagekartofler", "category": "andet" }, { - "name": "800 g kartofler, skrubbede", + "name": "1,2 liter vand", "category": "andet" }, { - "name": "½ citron", + "name": "1/2 tsk chiliflager", + "category": "andet" + }, + { + "name": "1/2 tsk paprika", + "category": "andet" + }, + { + "name": "1,50 stødt spidskommen", + "category": "andet" + }, + { + "name": "1,50 tsk sød paprika", + "category": "andet" + }, + { + "name": "2 dl grøntsagsbouillon", + "category": "andet" + }, + { + "name": "2 fed hvidlag (flaekket)", + "category": "andet" + }, + { + "name": "2 fed hvidlag presset (til marinade)", + "category": "andet" + }, + { + "name": "2 skalottelag (finthakkede)", + "category": "andet" + }, + { + "name": "2 spsk smaor", + "category": "andet" + }, + { + "name": "2 spsk tikka masala paste", + "category": "andet" + }, + { + "name": "2 spsk toervin (hvidvin)", + "category": "andet" + }, + { + "name": "2 store lag (finthakkede)", + "category": "andet" + }, + { + "name": "20 g cornichoner, meget finthakkede", + "category": "andet" + }, + { + "name": "200 g squash, groftrevet", + "category": "andet" + }, + { + "name": "3 aeggeblommer", + "category": "andet" + }, + { + "name": "3 fed hvidlag (finthakkede)", + "category": "andet" + }, + { + "name": "3 fed hvidløg, presset", + "category": "andet" + }, + { + "name": "3 spsk smaor", + "category": "andet" + }, + { + "name": "300 g gulerødder, i små tern", + "category": "andet" + }, + { + "name": "4 fed hvidlag presset (til sauce)", + "category": "andet" + }, + { + "name": "4 tortillas pandekager, små", + "category": "andet" + }, + { + "name": "400 g spidskål, fintsnittet", + "category": "andet" + }, + { + "name": "400g spaghetti eller tagliatelle", + "category": "andet" + }, + { + "name": "600g jomfruhummerhaler (optaot, pillede)", + "category": "andet" + }, + { + "name": "1 dl piskefløde", + "category": "frost" + }, + { + "name": "2 dl piskefloede", + "category": "frost" + }, + { + "name": "200g smaor (til bearnaise)", + "category": "frost" + }, + { + "name": "50 g mayonnaise", + "category": "frost" + }, + { + "name": "0,50 agurk, i skiver", "category": "frugt & grønt" }, { - "name": "1 citron – saft og fintrevet skal", + "name": "1 citron (saft og skal)", "category": "frugt & grønt" }, { - "name": "Grøn salat", + "name": "1 spsk tomatpure", "category": "frugt & grønt" }, { - "name": "Grøntsager eller salat", + "name": "2 daaser hakkede tomater (a 400g)", "category": "frugt & grønt" }, { - "name": "1 spsk smør eller olie til stegning", + "name": "200g cherrytomater (halverede)", + "category": "frugt & grønt" + }, + { + "name": "4 tomater, i tern", + "category": "frugt & grønt" + }, + { + "name": "1 1/2 tsk salt (til ris)", + "category": "kolonial" + }, + { + "name": "1 spsk olivenolie", + "category": "kolonial" + }, + { + "name": "1 tsk frisk ingefaer revet (til marinade)", "category": "kolonial" }, { @@ -102,59 +226,59 @@ "category": "kolonial" }, { - "name": "2 spsk finvalset havregryn", + "name": "1/2 bundt frisk estragon", "category": "kolonial" }, { - "name": "2 spsk hvedemel", + "name": "2 spsk hvidvinseddike", "category": "kolonial" }, { - "name": "2 spsk olie til stegning", + "name": "2 spsk smaor (til ris)", "category": "kolonial" }, { - "name": "3 spsk hvedemel", + "name": "2 spsk tandoorikrydderi", "category": "kolonial" }, { - "name": "3 spsk olivenolie, til stegning", + "name": "2 tsk frisk ingefaer revet (til sauce)", "category": "kolonial" }, { - "name": "Frisk timian eller persille", + "name": "3 spsk olivenolie", "category": "kolonial" }, { - "name": "Friskmalet peber", + "name": "4 kviste frisk timian", "category": "kolonial" }, { - "name": "Friskmalet sort peber – rigeligt", + "name": "600g basmatiris", "category": "kolonial" }, { - "name": "Ris eller kartofler", + "name": "Frisk koriander til servering", + "category": "kolonial" + }, + { + "name": "Salt", "category": "kolonial" }, { "name": "salt og friskkværnet peber", "category": "kolonial" }, + { + "name": "Salt og hvid peber", + "category": "kolonial" + }, { "name": "Salt og peber", "category": "kolonial" }, { - "name": "Salt til pastavand", - "category": "kolonial" - }, - { - "name": "1 fed hvidløg, finthakket", - "category": "kød & fisk" - }, - { - "name": "1 kg kylling, overlår og evt bryst med skind", + "name": "1 dl persille, finthakket", "category": "kød & fisk" }, { @@ -162,24 +286,32 @@ "category": "kød & fisk" }, { - "name": "1 spsk frisk rosmarin, finthakket", + "name": "1 skalottelag (finthakket)", "category": "kød & fisk" }, { - "name": "2 spsk frisk persille, hakket", + "name": "1/2 bundt frisk persille (hakket)", "category": "kød & fisk" }, { - "name": "200 g pancetta eller røget bacon i tern", + "name": "1,2 kg kyllingebryst (i mundrette stykker)", "category": "kød & fisk" }, { - "name": "4 laksefileter med skind (ca. 150 g pr. stk)", + "name": "4 ribeye steaks a ca. 250g", "category": "kød & fisk" }, { - "name": "500 g hakket svinekød", + "name": "400 g hakket oksekød", "category": "kød & fisk" + }, + { + "name": "50 g cornichoner, finthakket", + "category": "kød & fisk" + }, + { + "name": "2 dl yoghurt naturel", + "category": "mejeri & æg" } ] } \ No newline at end of file diff --git a/www/mealie.json b/www/mealie.json index 51c3259..f6073b0 100644 --- a/www/mealie.json +++ b/www/mealie.json @@ -1 +1 @@ -{"count": 7, "items": [{"date": "2026-05-07", "recipe": {"name": "Macaroni and cheese", "slug": "macaroni-and-cheese"}}, {"date": "2026-05-11", "recipe": {"name": "K\u00e5lfad med hakket oksek\u00f8d", "slug": "kalfad-med-hakket-oksekod"}}, {"date": "2026-05-10", "recipe": {"name": "Kylling tikka masala med basmatiris", "slug": "kylling-tikka-masala-med-basmatiris-1"}}, {"date": "2026-05-09", "recipe": {"name": "Pasta med jomfruhummerhaler", "slug": "pasta-med-jomfruhummerhaler-1"}}, {"date": "2026-05-08", "recipe": {"name": "Ribeye steak med bearnaise og ovnfritter", "slug": "ribeye-steak-med-bearnaise-og-ovnfritter-2"}}, {"date": "2026-05-06", "recipe": {"name": "Rester: Frikadeller fra mandag", "slug": ""}}, {"date": "2026-05-05", "recipe": {"name": "Rester: Bagt kylling fra s\u00f8ndag", "slug": ""}}]} \ No newline at end of file +{"count": 7, "items": [{"date": "2026-05-15", "recipe": {"name": "Pandestegt laks med citronsm\u00f8r", "slug": "pandestegt-laks-med-citronsmor"}}, {"date": "2026-05-14", "recipe": {"name": "Cheeseburger Tacos", "slug": "cheeseburger-tacos"}}, {"date": "2026-05-13", "recipe": {"name": "K\u00e5lfad med hakket oksek\u00f8d", "slug": "kalfad-med-hakket-oksekod"}}, {"date": "2026-05-12", "recipe": {"name": "Kylling tikka masala med basmatiris", "slug": "kylling-tikka-masala-med-basmatiris-1"}}, {"date": "2026-05-11", "recipe": {"name": "K\u00e5lfad med hakket oksek\u00f8d", "slug": "kalfad-med-hakket-oksekod"}}, {"date": "2026-05-10", "recipe": {"name": "Kylling tikka masala med basmatiris", "slug": "kylling-tikka-masala-med-basmatiris-1"}}, {"date": "2026-05-09", "recipe": {"name": "Pasta med jomfruhummerhaler", "slug": "pasta-med-jomfruhummerhaler-1"}}]} \ No newline at end of file