From 96196699faca60f3988b665356bcc00a1b04130e Mon Sep 17 00:00:00 2001 From: Simon Milvert Date: Sat, 24 Oct 2026 19:15:01 +0200 Subject: [PATCH] Autocommit 2026-10-24 19:15 --- 10-Projekt/Daikin värmepump.md | 164 +++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 10-Projekt/Daikin värmepump.md diff --git a/10-Projekt/Daikin värmepump.md b/10-Projekt/Daikin värmepump.md new file mode 100644 index 0000000..c7cf199 --- /dev/null +++ b/10-Projekt/Daikin värmepump.md @@ -0,0 +1,164 @@ +--- +title: Daikin värmepump +created: 2026-10-24 +status: aktiv +tags: + - projekt +--- + +# Daikin värmepump + +> [!abstract] Mål +> Värma vardagsrummet med Daikin-luftvärmepumpen i hallen till så låg elkostnad som möjligt. Värmen stannar gärna i hallen, så styrningen ska reglera efter vardagsrummet och inte efter Daikins egen givare. + +## Uppgifter + +- [ ] **30/10:** utvärdera fläkttestet (se [[#Fläkttest 24–30 oktober]] och [[#Så analyserar du ett test]]) +- [ ] Ta bort `packages/house/hall/daikin_flakttest.yaml` efter testet, och sätt `input_select.daikin_testflakt` till "Av" +- [ ] Bestäm om regleringens fläktlogik ska ändras utifrån testresultatet (i dag väljer den fläkt 4 när vardagsrummet ligger efter, annars Auto) +- [ ] Bestäm om nattmålet ska sänkas (`input_number.vardagsrum_maltemp_natt`, i dag 21 °C) +- [ ] Ta reda på varför kompressorn går trots setpoint långt under rumstemperaturen (Daikin-appen eller manualen: minsta setpoint i värmeläge, frostskydd?) +- [ ] Städa bort de gamla utkasten: automationen "Reser temp" (avstängd) och skriptet "Värmepump – Nattläge med stegvis justering" + +## Styrningen i Home Assistant + +Paketet `~/repo/Docker/ha/config/packages/house/hall/daikin.yaml`: + +- **Reglering:** var 30:e minut justeras Daikins setpoint ±1 °C (19–24 °C) tills vardagsrummet ligger inom ±0,3 °C från målet. Hallen får inte gå över 24,5 °C när setpointen höjs, och över 25 °C sänks den. +- **Mål:** `input_number.vardagsrum_maltemp` gäller 06–22 och `input_number.vardagsrum_maltemp_natt` gäller 22–06. Båda är 21 °C från 2026-10-24. +- **Fläkt:** 4 när vardagsrummet ligger efter, annars Auto. +- **Elpris:** under dyra timmar sänks setpointen 1 °C och regleringen fryses. Under billiga timmar höjs målet 0,5 °C. +- **Av/på:** `input_boolean.daikin_auto`. +- **Testläge:** `input_select.daikin_testflakt` låser fläkten och stänger av elprisjusteringen. "Av" ger vanlig drift. + +> [!warning] Fel givare +> Regleringen använder `sensor.sensor_inne_vrum_aq001_temperature`. Använd inte `sensor.vardagsrum_temperature` som rumstemperatur, den sitter troligen i en annan enhet. + +## Resultat + +### Stegtest natten 22→23 oktober + +Varje kombination av fläkt och setpoint kördes en timme. Daikins effekt är uppskattad som evcc:s `homePower` minus timmen före testet (574 W). Daikin har ingen egen elmätare. + +| Tid | Steg | Kompressor (Hz) | Hall | Daikin ungefär | +|---|---|---|---|---| +| 00–01 | 17 °C, fläkt 2 | 12 | 22,5 | +110 W | +| 01–02 | 17 °C, fläkt 4 | 13 | 22,8 | +290 W | +| 02–03 | 21 °C, fläkt 2 | 19 | 23,2 | +350 W | +| 03–04 | 21 °C, fläkt 4 | 22 | 23,8 | +370 W (en annan last på cirka 280 W borträknad) | +| 04–05 | 23 °C, fläkt 2 | 19 | 24,2 | +590 W | +| 05–06 | 23 °C, fläkt 4 | 22 | 24,4 | +830 W | + +Ute var det 11,6 → 9,5 °C. Daikin drog cirka 2,8 kWh mellan 00 och 06. + +Slutsatser: + +- **Kompressorn stod aldrig vid 17 °C.** Den gick på 12–18 Hz hela tiden, fast Daikins egen givare visade 21–24 °C. +- **Lägre fläkt drog mindre el** vid samma setpoint (180–240 W skillnad). **Högre setpoint drog mer** (cirka +240 W per steg vid fläkt 2). +- **Testet säger inte vad som ger mest värme per kWh.** Stegen var bara en timme och kom i stigande ordning, så huset hann inte stabilisera sig. Därför görs [[#Fläkttest 24–30 oktober]]. +- **Daikins egen givare mäter stillastående luft** när fläkten står på Auto. Den visade 18 °C och hoppade till 22 °C så fort fläkten startade. + +### Vanlig natt 23→24 oktober (referens) + +Manuellt 13 °C och fläkt Auto, regleringen av. Vardagsrummet sjönk från 22,5 till 20,4 °C (cirka 0,3 °C i timmen), ute 7 °C. Kompressorn gick ändå på 8–12 Hz hela natten. Huset drog cirka 5,1 kWh mellan 00 och 06, men Daikins andel går inte att räkna ut eftersom andra laster varierade mer. + +### Fläkttest 24–30 oktober + +Paketet `packages/house/hall/daikin_flakttest.yaml`. Regleringen håller vardagsrummet på 21 °C varje natt och bara fläkten skiljer. Fläkten låses 22–06 och mätfönstret är 00–06. Varje läge körs två nätter i speglad ordning, så att en trend i utetemperaturen jämnas ut. + +| Natt (morgondatum) | Fläkt | +|---|---| +| 25/10 | Auto | +| 26/10 | 2 | +| 27/10 | 4 | +| 28/10 | 4 | +| 29/10 | 2 | +| 30/10 | Auto | + +- Start 24/10 kl. 20:00: målen sätts till 21 °C och `daikin_auto` slås på. +- Varje kväll och morgon loggas fläkt, setpoint och temperaturer i loggboken under namnet "Daikin fläkttest". +- Natten mot 25/10 slutar sommartiden, så jämför medeleffekt (W) och inte kWh. +- En omstart av HA sätter testfläkten till "Av" fram till nästa kväll, och den natten blir då ogiltig. + +**Resultat:** fylls i efter 30/10. + +## Så analyserar du ett test + +En arbetsgång för att utvärdera en natt eller ett test. Alla kommandon körs på `zeuz`. + +### Datakällor + +| Vad | Var | Detaljer | +|---|---|---| +| Husets förbrukning utan bil | Influx `Car` / `homePower` (evcc) | W. Bästa måttet, eftersom billaddningen redan är borträknad. | +| Billaddning | Influx `Car` / `chargePower`, `chargeCurrents` | Laddar ofta cirka 5,5 kW nattetid, och då blir P1 oanvändbar utan evcc. | +| P1-mätaren | Influx `HomeBucket` / `el` | `electricity_currently_delivered` (kW), `phase_currently_delivered_l1..l3` (W). **Daikin sitter på L2.** | +| Daikin | Influx `home/autogen` / `Daikin`, taggen `type` | `cmpfreq`, `fanRate`, `mode` samt `temperature` med `location` = indoor, outdoor eller target. Tät upplösning. | +| Rumstemperaturer | HA-databasen `ha/config/home-assistant_v2.db` | `sensor.sensor_inne_vrum_aq001_temperature`, `sensor.sensor_inne_hall_th016_temperature`, `sensor.daikinap14037_outside_temperature` | +| Daikin-läge | HA-databasen | `climate.daikinap14037`, attributen `temperature`, `fan_mode`, `hvac_action` | +| Testlogg | HA-databasen, händelsen `logbook_entry` | Sök på "fläkttest" eller "stegtest". | + +> [!tip] Fallgropar +> - **Tidszon:** Influx svarar i UTC och `aggregateWindow` märker raden med fönstrets *slut*. Raden `22:00Z` är timmen 23–00 svensk sommartid. +> - **HA-databasen sparar bara ändringar,** så glesa sensorer saknar värden för vissa timmar. Använd Influx för kompressorn. +> - **Kompressorns `hvac_action` i HA** är grövre än `cmpfreq` i Influx. +> - **Daikins effekt är alltid en uppskattning:** `homePower` minus en referenstimme. Andra laster (cirka 300–700 W) ger brus, så titta på L2 och kompressorn för att se vad som är Daikin. + +### Frågor + +Husets förbrukning, kompressor och fläkt per timme (ändra start och stop): + +```bash +docker exec influxdb influx query ' +h = from(bucket:"Car") |> range(start: 2026-10-24T22:00:00Z, stop: 2026-10-25T05:00:00Z) + |> filter(fn:(r)=> r._measurement=="homePower" or r._measurement=="chargePower") + |> group(columns:["_measurement"]) |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) + |> map(fn:(r)=>({r with _field: r._measurement})) +c = from(bucket:"home/autogen") |> range(start: 2026-10-24T22:00:00Z, stop: 2026-10-25T05:00:00Z) + |> filter(fn:(r)=> r._measurement=="Daikin" and (r.type=="cmpfreq" or r.type=="fanRate")) + |> map(fn:(r)=>({r with _field: r.type})) |> group(columns:["_field"]) + |> aggregateWindow(every: 1h, fn: mean, createEmpty:false) +union(tables:[h,c]) |> group() |> keep(columns:["_time","_field","_value"]) + |> pivot(rowKey:["_time"], columnKey:["_field"], valueColumn:"_value")' --raw | grep -v '^#' +``` + +Rumstemperaturer per timme (lokal tid): + +```bash +cd ~/repo/Docker/ha/config +sqlite3 -readonly -column -header "file:home-assistant_v2.db?mode=ro" " +SELECT strftime('%H',s.last_updated_ts,'unixepoch','localtime') h, + round(avg(CASE WHEN m.entity_id LIKE '%vrum_aq001%' THEN CAST(s.state AS REAL) END),2) vardagsrum, + round(avg(CASE WHEN m.entity_id LIKE '%hall_th016%' THEN CAST(s.state AS REAL) END),2) hall, + round(avg(CASE WHEN m.entity_id LIKE '%outside%' THEN CAST(s.state AS REAL) END),1) ute +FROM states s JOIN states_meta m USING(metadata_id) +WHERE m.entity_id IN ('sensor.sensor_inne_vrum_aq001_temperature', + 'sensor.sensor_inne_hall_th016_temperature','sensor.daikinap14037_outside_temperature') + AND s.state NOT IN ('unknown','unavailable') + AND s.last_updated_ts BETWEEN strftime('%s','2026-10-24 22:00','-2 hours') + AND strftime('%s','2026-10-25 06:00','-1 hours') +GROUP BY h;" +``` + +(`-2 hours` och `-1 hours` gör om svensk tid till UTC: sommartid +2, vintertid +1.) + +Loggboken för testet: + +```bash +sqlite3 -readonly "file:home-assistant_v2.db?mode=ro" " +SELECT datetime(e.time_fired_ts,'unixepoch','localtime'), d.shared_data +FROM events e JOIN event_types t USING(event_type_id) LEFT JOIN event_data d USING(data_id) +WHERE t.event_type='logbook_entry' AND d.shared_data LIKE '%fläkttest%' ORDER BY 1;" +``` + +### Utvärdera fläkttestet + +1. **Kontrollera att varje natt blev giltig.** Loggboken ska ha en start- och en slutrad med rätt fläkt. Ingen HA-omstart får ha skett mellan 22 och 06, och bilen bör inte ha laddat (annars får man förlita sig på `homePower`). +2. **Per natt:** ta fram medel av `homePower` 00–06, medel av kompressorn, medel av vardagsrummet (ska ligga nära 21 °C) och medel av utetemperaturen. +3. **Jämför fläktlägena** med medeleffekten och ta hänsyn till utetemperaturen. Kalla nätter drar mer. Jämför helst nätter med liknande utetemperatur, eller räkna W per grad skillnad mellan inne och ute. +4. **Skriv in resultatet** under "Fläkttest 24–30 oktober" och bocka av uppgifterna. + +## Relaterat + +- [[Docker-stack]] +- Paket: `~/repo/Docker/ha/config/packages/house/hall/`