[HA / ESPAltherma] Daikin Cycle ML

Pagina: 1 2 Laatste
Acties:

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/logo.png
Voor wie geïnteresseerd is: ik heb een HACS-component gemaakt dat veel meer inzicht geeft in je Daikin warmtepomp. Volledig read-only, 100% lokaal, geen cloud.

https://github.com/elRadix/daikin_cycle_ml

🔥 Daikin Altherma Heat Pump Monitor — Local ML voor Compressor Cyclus Analyse & SPF/COP Optimalisatie
(Home Assistant · geen cloud · geen writes naar je warmtepomp · werkt met Monoblock, Split, Hybride én Bivalente Altherma)

📡 ESPAltherma geeft je data — Daikin Cycle ML geeft je inzicht

Heb je al ESPAltherma draaien? Dan heb je ruwe data: 127 attributen in één monolithic sensor, of tientallen losse sensor.espaltherma_* entities in de v2-indeling. Maar eerlijk: 127 getallen in een lijst is nog geen inzicht. Je hebt de grondstof, maar niet de antwoorden:
  • Hoe vaak slaat mijn compressor per dag aan — en is dat pendelen of normaal?
  • Wat is mijn échte COP per modus (verwarming / DHW / koelen), en hoe verhoudt die zich tot de datasheet?
  • Welke cycli zijn gezond, welke verspillen energie, en waarom?
  • Daalt mijn seizoensrendement zonder dat ik het doorheb?
  • Wat levert een stooklijn-aanpassing concreet op in COP?
  • Bij hybride opstelling (WP + gasketel): wanneer springt de ketel bij, en wat kost me dat aan COP?
  • Bij Bivalent Direct (WP + boiler, geen DHW-tank): hoe voorkom ik spooktank-alerts en blijft mijn COP kloppen?
Daarom heb ik deze integratie gebouwd: om ESPAltherma's ruwe data om te zetten in actie. Compressorcyclus-detectie, per-modus COP/SPF, fysische grenzen (Carnot), degradatiedetectie, ML-anomalieën, 19 alerts met concrete adviezen, én kant-en-klare dashboard-cards die alles visueel maken. Alles volledig lokaal op je eigen HA-instance.

🔧 Wat het doet
  • Compressorcyclus-detectie — start/stoptijden, duur, frequentie, pendelpatronen (8 patronen over verwarming/koeling/DHW). Lange modulerende runs tot 48 uur worden als één cycle geregistreerd. Sinds v1.19.7 worden ook lage-modulatie runs na een defrost gedetecteerd via een flow+COP fallback, wanneer de RPS-waarde "Invalid" rapporteert.
  • ESPAltherma v2 native support — Sinds v1.20.0 kun je naast de klassieke monolithic sensor ook de nieuwe v2-indeling gebruiken (losse sensor.espaltherma_* + binary_sensor.espaltherma_*). Auto-detectie kiest de bron met de hoogste coverage, met prefix-configuratie in de wizard en een repair-melding die precies laat zien welke labels ontbreken.
  • Hybride & Bivalente ondersteuning — Daikin Altherma R Hybrid (EVLQ05/EVLQ08): boiler-detectie, COP-isolatie (co-fire samples uitgesloten van HP-COP), ketel-bijdrage per dag, hybride-modus sensor. Sinds v1.22.3 ook Bivalent Direct (SH-only) en Bivalent Indirect (DHW) — met expliciete dhw_present override en 3-traps auto-detectie.
  • Per-modus COP/SPF — verwarming, warm water, koelen, met weersnormalisatie (A7W35) en datasheet-vergelijking
  • Fysische COP-grenzen (Carnot) — Sinds v1.19.9 worden fysisch onmogelijke COP-samples automatisch geclassificeerd (accept/flag/reject) op basis van de Carnot-limiet. Bij een reject verschijnt de binary_sensor cop_physically_impossible en wordt de sample niet meegenomen in de statistieken.
  • Defrost als flag, geen split — defrost wordt per cycle gemarkeerd (defrost_used=True), niet als aparte cycle. Effectieve verwarming = runtime_compressor_today.heating_s − defrost_duration_today
  • Energieboekhouding — elektrisch kWh vs. geleverde warmte kWh, per dag/week/maand, met persistente accumulators over HA-restarts
  • Seizoensgebonden degradatie — 30-daagse COP-trend met Carnot-correctie (ondervangt het "COP daalt als het kouder wordt"-effect)
  • Installateur-advies — stooklijn-suggesties in Daikin-taal (slope/offset), inclusief verwacht effect op COP
  • 19 alerts, 20 instelbare aggregatievensters — pendelen per uur/dag, korte runs, short cycling pattern (3+ korte runs in een uur), setpoint-oscillatie, defrost, BUH-gebruik, bron-verouderd, fysisch onmogelijke COP, etc.
  • Lokaal ML-model — kmeans clustering op je eigen cycli, geen data verlaat je huis, geen externe API's
  • HA 2026.10+ & Gold Quality Scale — Volledig geaudit, 5.850+ tests, 100% coverage, klaar voor de nieuwste Home Assistant architectuur.
🆕 Sinds v1.22.3: Bivalente systemen first-class

De grootste update tot nu toe voor wie een hybride of bivalente opstelling heeft:
  • Nieuwe dhw_present optie (auto / always / never) in Options → Advanced. Bepaalt of de integratie een DHW-tank verwacht. Bij auto: 3-traps detectie (3-wegklep → tanktemperatuur → historische DB-cycli).
  • Bivalent Direct (SH-only) werkt nu — voorheen brak COP-aggregatie zodra je de 3-wegklep sensor uitschakelde om spooktank-rendering te voorkomen. Nu: zet dhw_present = never, de integratie negeert de klep en de COP-berekening loopt gewoon door.
  • Nieuwe binary sensor — binary_sensor.daikin_cycle_ml_dhw_installed laat direct zien wat de integratie heeft gedetecteerd (on = tank verwacht, off = bypass actief).
  • Repair Issue — dhw_missing_suspect waarschuwt als de integratie geen DHW verwacht, maar er wél historische DHW-cycli in de DB staan. Voorkomt stille breuk bij wie per ongeluk een klep-sensor heeft uitgezet.
  • Bool 3-wegklep fix (#167) — True/False waardes worden nu correct gelezen (was: None, waardoor DHW-cycli als heating werden geregistreerd op nieuwere ESPAltherma firmware).
  • Volledige bivalent-gids — CONFIGURATION.md §4.8 met decision matrix (Direct / Indirect DHW / Indirect DHW+SH) en stap-voor-stap per type.
🆕 Sinds v1.21.0: accurate kwaliteitsscores en correcte dagtotalen

v1.21.0 richtte zich op datacorrectheid — de cijfers die je ziet, kloppen nu exact:
  • Dagtotalen kloppen eindelijk exact — cycli die over middernacht lopen worden correct toegerekend aan de startdag, en transient cycli (tijdens HA-herstarts of korte storingen) worden uitgesloten van de gebruikers-statistieken. Geen "28-uur dagen" meer in je grafieken.
  • Legionella BUH-uitzondering — als je warmtepomp de backup-heater inzet tijdens een legionella-run (DHW ≥ 60°C), wordt dat niet meer als verspilling bestraft. De BUH-penalty in de quality score wordt automatisch kwijtgescholden.
  • Options-wijzigingen direct actief — na het opslaan van nieuwe instellingen hoef je niet meer te herstarten; de integratie pikt de nieuwe waarden direct op.
🆕 Sinds v1.20.0: ESPAltherma v2 native support & transparantie

v1.20.0 introduceerde de nieuwe ESPAltherma v2-indeling (losse sensoren per label in plaats van één grote monolithic sensor). Drie modi:
  • Monolithic — de klassieke aanpak, één sensor.althermasensors met 127 attributen
  • Individual (v2) — losse sensor.espaltherma_* + binary_sensor.espaltherma_* entities, met automatische prefix-detectie
  • Auto — beide bronnen lezen, de hoogste coverage wint, met INFO/WARNING-logs bij wisseling
Daarnaast is er nu een expliciet CONSUMED_ATTRIBUTES-contract (25 labels): de integratie laat in de wizard en in een repair-melding precies zien welke labels ze nodig heeft, zodat je zelf kunt controleren of je ESPAltherma-definitie compleet is.

📊 Kant-en-klare dashboard cards

Vijf Lovelace-kaarten, direct te plakken via Manual Card. Geen YAML-gedoe, geen entity-aanpassingen. Klik op een thumbnail om naar de GitHub-documentatie en YAML te gaan.
Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/dashboard/cards/simple-card/showcase.png
Simple Card
[size=85]Live fase, schema, COP, alerts[/size]
Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/dashboard/cards/heating-curve/preview.png
Heating Curve
[size=85]LWT vs. buitentemp + COP-heatmap[/size]
Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/dashboard/cards/daily-summary/showcase.png
Daily Summary
[size=85]8 dagen cycle-historie[/size]
Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/dashboard/cards/daily-summary-tabbed/screenshot-overview.png
Tabbed Card
[size=85]5 tabs: Overview / Quality / Cycles / Duration / Events[/size]
Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/dashboard/cards/pattern-analysis/showcase.gif
Pattern Analysis
[size=85]3 tabs: Distribution / Scatter / COP[/size]
✅ Wat heb je nodig?
  • Home Assistant (2024.x of nieuwer)
  • ESPAltherma op je Daikin Altherma — ESPAltherma 1.x én 2.x (beta/stable) beide native ondersteund sinds v1.20.0
  • HACS voor installatie van de integratie en de 5 frontend cards
  • Optioneel maar aanbevolen: Shelly of andere kWh-meter voor nauwkeurig elektrisch verbruik (anders valt de integratie terug op een schatting via flow × ΔT)
🔧 Ondersteunde modellen

Monoblock, Split, Hybride en Bivalente Altherma — ruim 55 datasheets gebundeld (EPRA, ERLA, ERGA, EDLA, EBLA, EDLQ, EBLQ, EVLQ, EPSK, ERRQ, EPGA, en meer). Zie docs/MODEL_COMPATIBILITY.md voor de volledige lijst. Onbekend model? Eigen datasheet importeren kan via de import-datasheet service.

Bivalente opstellingen zijn sinds v1.22.3 first-class ondersteund. Zowel Bivalent Direct (SH-only, geen DHW-tank) als Bivalent Indirect (DHW via boiler) worden ondersteund. De nieuwe dhw_present optie laat je handmatig ingrijpen als auto-detectie niet lukt. Zie de bivalent-gids voor stap-voor-stap per type.

🔒 Veiligheid & privacy

Volledig read-only. Geen writes naar de warmtepomp. Geen cloud-verbinding. Alle data staat in een lokale SQLite-database op je HA-instance. Geen telemetrie, geen externe API-calls. De integratie leest alleen de attributen van je ESPAltherma-sensor en doet de rest lokaal.

📖 Documentatie & installatie

GitHub — README, installatie, configuratie, dashboard-cards, troubleshooting
Laatste release: v1.22.3

📋 Laatste 5 releases
VersieDatumBelangrijkste wijzigingen
v1.22.311 nov 2026Bivalente systemen first-class: nieuwe dhw_present optie (auto/always/never), 3-traps detectie, binary_sensor.dhw_installed, dhw_missing_suspect repair. Bool 3-wegklep fix (#167). Bivalent Direct zonder spooktank-alerts (#176). Volledige bivalent-gids.
v1.22.211 nov 2026`last_cycle` sensor stale fix na forward-merge (#329). Sensor toont nu de DB-waarde binnen dezelfde poll-cyclus na een merge-extensie.
v1.22.110 nov 2026Defrost-tolerant-on (#308), HA 2026.11.1 compat (#311, #322), live daily_summary tijdens open cycle (#323), detector stuck-IDLE fix (#285), backfill q=0 (#313).
v1.22.09 nov 2026EPRA14DAW17 support, nieuwe Pattern Analysis dashboard-card (3 tabs: Distribution / Scatter / COP-trend).
v1.21.08 nov 2026Correcte dagtotalen (cross-midnight + transient exclusion), legionella BUH-uitzondering, options reload listener (geen herstart meer nodig), backfill respecteert user options. Quality + accuracy release.
Feedback, bugs en feature-requests graag via GitHub issues. Discussie over interpretatie van de cijfers (COP-berekening, defrost-detectie, pendelen, bivalente setups) kan hier in het topic.

[ Voor 179% gewijzigd door FloRadix op 11-11-2026 19:11 ]


  • rogervdh
  • Registratie: Augustus 2008
  • Laatst online: 17:09

rogervdh

Gasloos sinds 11-2024

FloRadix schreef op dinsdag 6 oktober 2026 @ 14:47:
Voor wie geinteresserd is, heb ik een hacs component gemaakt, die veel meer inzichten geeft van uw daikin warmtepomp, is allemaal read only.
Daar ga ik binnenkort zeker eens naar kijken en kan mooie inzichten geven! d:)b Enige 'vervelende' is dat ik niet alle benodigde ESPAltherma sensors actief heb. Er ontbreken enkele. Helaas is het flashen toch wat meer werk dan ESPHome ofzo.

[ Voor 20% gewijzigd door rogervdh op 07-10-2026 08:12 ]

☀️12340Wp | ♨️Daikin Altherma 3 8kW | 💧Atlantic Calypso VM 150L | 🚗Tesla M3 LR 2019 | ⛽Peblar Business | 🌬️Zehnder WHR960 |🔋


  • asing
  • Registratie: Oktober 2001
  • Laatst online: 21:12
FloRadix schreef op dinsdag 6 oktober 2026 @ 14:47:
Voor wie geinteresserd is, heb ik een hacs component gemaakt, die veel meer inzichten geeft van uw daikin warmtepomp, is allemaal read only.

https://github.com/elRadix/daikin_cycle_ml

🔥 [BÈTA] Daikin Altherma Heat Pump Monitor – Local ML voor Compressor Cyclus Analyse & SPF/COP Optimalisatie (Geen cloud, 100% lokaal, voor Home Assistant)

📌 Waarom deze integratie? Daikin Altherma-warmtepompen bieden beperkte inzichten in hun werkelijke prestaties (bv. compressorcycli, COP per modus, seizoensgebonden degradatie). Deze Home Assistant-integratie leest direct de ESP-Altherma-sensor uit en voegt de volgende analytics toe met:
  • Compressorcyclusdetectie (start/stoptijden, frequentie, abnormaliteiten).
  • Per-modus COP/SPF-berekening (verwarming, koeling, warm water) met weersnormalisatie (buitentemperatuur, vochtigheid).
  • Seizoensgebonden prestatietrends (degradatie, efficiëntieverlies over tijd).
  • Energieregistratie (kWh verbruik vs. geleverde warmte/koeling).
  • Installateur-advies (curve-optimalisatie: slope/offset in Daikin-taal).
  • Lokaal ML-model (geen cloud, privacy-vriendelijk, getraind op echte cycli).
[Afbeelding]

[Afbeelding]
Hier ga ik eens heel goed naar kijken! Dank voor al het werk zover, dat moet echt weken tijd gekost hebben.

Ik heb net vandaag de ESP32 een beetje zitten programmeren. Verbinden met HA wil nog niet lukken. Morgen komen de kabeltjes binnen als het goed is.

Who's General Failure and why is he reading my harddrive? - Projectmanager : a person who thinks nine women can make one baby in one month


  • JoTil
  • Registratie: Oktober 2022
  • Laatst online: 21:24
FloRadix schreef op dinsdag 6 oktober 2026 @ 14:47:
Voor wie geinteresserd is, heb ik een hacs component gemaakt, die veel meer inzichten geeft van uw daikin warmtepomp, is allemaal read only.

https://github.com/elRadix/daikin_cycle_ml

🔥 [BÈTA] Daikin Altherma Heat Pump Monitor – Local ML voor Compressor Cyclus Analyse & SPF/COP Optimalisatie (Geen cloud, 100% lokaal, voor Home Assistant)

📌 Waarom deze integratie? Daikin Altherma-warmtepompen bieden beperkte inzichten in hun werkelijke prestaties (bv. compressorcycli, COP per modus, seizoensgebonden degradatie). Deze Home Assistant-integratie leest direct de ESP-Altherma-sensor uit en voegt de volgende analytics toe met:
  • Compressorcyclusdetectie (start/stoptijden, frequentie, abnormaliteiten).
  • Per-modus COP/SPF-berekening (verwarming, koeling, warm water) met weersnormalisatie (buitentemperatuur, vochtigheid).
  • Seizoensgebonden prestatietrends (degradatie, efficiëntieverlies over tijd).
  • Energieregistratie (kWh verbruik vs. geleverde warmte/koeling).
  • Installateur-advies (curve-optimalisatie: slope/offset in Daikin-taal).
  • Lokaal ML-model (geen cloud, privacy-vriendelijk, getraind op echte cycli).
[Afbeelding]

[Afbeelding]
Nice! Werkt deze ook voor de Altherma 3 EHBH modellen, dus wandunit met losse boiler?

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
JoTil schreef op woensdag 7 oktober 2026 @ 13:24:
[...]

Nice! Werkt deze ook voor de Altherma 3 EHBH modellen, dus wandunit met losse boiler?
normaal wel, zolang alle attrributes van je espaltherma sensor aan de minimum requirements voldoen.
https://github.com/elRadix/daikin_cycle_ml#7-source-sensor--attributes

  • JoTil
  • Registratie: Oktober 2022
  • Laatst online: 21:24
FloRadix schreef op woensdag 7 oktober 2026 @ 14:22:
[...]

normaal wel, zolang alle attrributes van je espaltherma sensor aan de minimum requirements voldoen.
https://github.com/elRadix/daikin_cycle_ml#7-source-sensor--attributes
In de losse boiler zit nog een extra heater voor als de gewenste boilerwatertemperatuur niet met de compressor gehaald kan worden, bv legionella run.

De backup heater in de wandunit wordt enkel soms gebruikt net soepeler door zijn start of defrost te komen.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Daikin Cycle ML v1.7.1 is uit — nu met Daily Summary dashboard card 📅

Nieuwe stabiele release van de Daikin Cycle ML integratie (HACS, custom repo).

Nieuw in v1.7.1:

- 📊 Daily Summary card — 8-daagse cyclus-historiek met sparklines, dynamisch gekleurde quality-lijn, gestapelde cycles/duration bars en BUH/defrost events

- 🌡️ Sensor daily_summary_recent — rolling view van alle cycli per dag (permanent bewaard, ook na retention-prune)

Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/v1.7.1/dashboard/cards/daily-summary/showcase.png

📖 Card docs + install

📦 Release v1.7.1

  • Goofman2
  • Registratie: Juni 2022
  • Laatst online: 19:59
@FloRadix is het misschien mogelijk om het "sensor-blok" van de configuration.yaml te delen waarmee auto import werkt ?
Ik zit nu te stoeien met de manual configuratie welke ik niet goed krijg.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Auto-import werkt alleen als je bron-sensor exact sensor.althermasensors heet én de attribuutnamen overeenkomen met de canonieke lijst hieronder.
Canonieke namen die de integratie verwacht
Deze moeten exact zo heten op jouw bron-sensor:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
INV frequency (rps)
Operation Mode
I/U operation mode
3way valve(On:DHW_Off:Space)
Defrost Operation
Leaving water temp. after BUH (R2T)
Inlet water temp.(R4T)
Outdoor air temp.(R1T)
Flow sensor (l/min)
Water pump operation
BUH Step1
BUH Step2
LW setpoint (main)

Pad A — Manual mapping (aanbevolen)
  1. Add Integration → Daikin Cycle ML
  2. Op scherm 1: Attribute mode = Manual
  3. Op scherm 2: map elke canonieke naam → de werkelijke attribuutnaam op jouw sensor
    • Laat een veld leeg als de canonieke naam al exact op je sensor bestaat
    • Als INV frequency (rps) niet bestaat: laat leeg → cycle-detectie valt terug op current-based heuristic

Pad B — Custom JSON mapping
Kies Model = Custom en vul een JSON-mapping in:
JSON:
1
2
3
4
5
{
  "INV frequency (rps)": "jouw_attr_naam",
  "Leaving water temp. after BUH (R2T)": "jouw_attr_naam",
  "Water pump operation": "jouw_attr_naam"
}
Alleen de keys die je invult worden hernoemd. Lege waarde of ontbrekende key → origineel attribuut blijft ongemoeid.
Pad C — Template-sensor proxy (laatste redmiddel)
Alleen als A en B falen. Template-sensoren retourneren waarden vaak als string
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template:
  - sensor:
      - name: "AlthermaSensors"
        unique_id: altherma_sensors_proxy_v1
        state: "{{ states('<ZIJN_BRON>') }}"
        attributes:
          "INV frequency (rps)":                 "{{ state_attr('<ZIJN_BRON>', '<ATTR_RPS>') }}"
          "Operation Mode":                      "{{ state_attr('<ZIJN_BRON>', '<ATTR_OPMODE>') }}"
          "I/U operation mode":                  "{{ state_attr('<ZIJN_BRON>', '<ATTR_IU_OPMODE>') }}"
          "3way valve(On:DHW_Off:Space)":        "{{ state_attr('<ZIJN_BRON>', '<ATTR_3WAY>') }}"
          "Defrost Operation":                   "{{ state_attr('<ZIJN_BRON>', '<ATTR_DEFROST>') }}"
          "Leaving water temp. after BUH (R2T)": "{{ state_attr('<ZIJN_BRON>', '<ATTR_R2T>') }}"
          "Inlet water temp.(R4T)":              "{{ state_attr('<ZIJN_BRON>', '<ATTR_R4T>') }}"
          "Outdoor air temp.(R1T)":              "{{ state_attr('<ZIJN_BRON>', '<ATTR_R1T>') }}"
          "Flow sensor (l/min)":                 "{{ state_attr('<ZIJN_BRON>', '<ATTR_FLOW>') }}"
          "Water pump operation":                "{{ state_attr('<ZIJN_BRON>', '<ATTR_PUMP>') }}"
          "DHW tank temp (R5T)":                 "{{ state_attr('<ZIJN_BRON>', '<ATTR_R5T>') }}"
          "BUH Step1":                           "{{ state_attr('<ZIJN_BRON>', '<ATTR_BUH1>') }}"
          "BUH Step2":                           "{{ state_attr('<ZIJN_BRON>', '<ATTR_BUH2>') }}"
          "LW setpoint (main)":                  "{{ state_attr('<ZIJN_BRON>', '<ATTR_LWSET>') }}"
Herstart HA en controleer in Developer Tools → States dat alle canonieke keys aanwezig zijn vóór je de integratie toevoegt.
Wat ik van je nodig heb
Stuur deze 4 dingen, dan vul ik Pad A of B direct voor je in:

1. Template output (Developer Tools → Template):
code:
1
2
3
{% for k in states.<JOUW_BRON_SENSOR>.attributes.keys() %}
{{ k }}
{% endfor %}
2. Exacte bron-sensor naam: sensor.___________

3. Op welk wizard-scherm het faalt: user / map_attributes / anders

4. ESPAltherma firmware-versie: ___________

[ Voor 3% gewijzigd door FloRadix op 08-10-2026 00:21 ]


  • Goofman2
  • Registratie: Juni 2022
  • Laatst online: 19:59
Afbeeldingslocatie: https://tweakers.net/i/t2loWh1O-X6KrP0A5LUldzR45Vk=/x800/filters:strip_icc():strip_exif()/f/image/IEgdlCTvFwg6AhGHCRLHsZ2R.jpg?f=fotoalbum_large
kan ik hieruit opmaken dat alleen 3way valve nog een probleem geeft ?

  • Goofman2
  • Registratie: Juni 2022
  • Laatst online: 19:59
probleem opgelost. 3way valse sensor was niet aanwezig. Enabled in header file. Opnieuw compileren (stond nog op mijn oude laptop) en via OTA geflashed. Fingers crossed en het werkte !

Dank je voor jouw hulp !

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Goofman2 schreef op donderdag 8 oktober 2026 @ 16:37:
probleem opgelost. 3way valse sensor was niet aanwezig. Enabled in header file. Opnieuw compileren (stond nog op mijn oude laptop) en via OTA geflashed. Fingers crossed en het werkte !

Dank je voor jouw hulp !
elke installatie is anders, niet iedereen heeft alle attributen geactiveerd, goed dat je een firmware update hebt gedaan :)

alle feedback is welkom, ben ondertussen de config flow aan het verbeteren voor nieuwe gebruikers om het process te versoepelen.

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

FloRadix schreef op donderdag 8 oktober 2026 @ 16:45:
[...]


elke installatie is anders, niet iedereen heeft alle attributen geactiveerd, goed dat je een firmware update hebt gedaan :)

alle feedback is welkom, ben ondertussen de config flow aan het verbeteren voor nieuwe gebruikers om het process te versoepelen.
Ik heb het gisteren geïnstalleerd en geen missende attributen maar toch werkt het niet lekker. Hij lijkt geen elektrische energy te meten en de thermische energie niet op te slaan in. Ik gebruik op dit moment alleen nog maar DHW gezien de temperatuur buiten maar dat zou geen probleem moeten zijn toch? Vind je het goed als ik je een PM stuur?

[ Voor 18% gewijzigd door Leeghoofd21 op 08-10-2026 17:34 ]

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hey @Leeghoofd21

Ja, PM mag — maar log het liever als issue op GitHub

Twee dingen eerst:

1. Welke versie heb je? (HACS -> Daikin Cycle ML)

2. Update naar de nieuwste versie. Er is vandaag v1.8.0 uitgekomen.
Update via HACS en probeer opnieuw.

Werkt het daarna niet? Log een issue:
https://github.com/elRadix/daikin_cycle_ml/issues

Met daarin:
- Versie van de integratie (HACS) + HA Core
- Diagnostics download (Instellingen -> Apparaten & Diensten ->
Daikin Cycle ML -> drie puntjes -> Diagnostica downloaden)
- Korte beschrijving van het probleem
- Welke power-sensor je gebruikt (Shelly?)

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

FloRadix schreef op donderdag 8 oktober 2026 @ 19:14:
Hey @Leeghoofd21

Ja, PM mag — maar log het liever als issue op GitHub

Twee dingen eerst:

1. Welke versie heb je? (HACS -> Daikin Cycle ML)

2. Update naar de nieuwste versie. Er is vandaag v1.8.0 uitgekomen.
Update via HACS en probeer opnieuw.

Werkt het daarna niet? Log een issue:
https://github.com/elRadix/daikin_cycle_ml/issues

Met daarin:
- Versie van de integratie (HACS) + HA Core
- Diagnostics download (Instellingen -> Apparaten & Diensten ->
Daikin Cycle ML -> drie puntjes -> Diagnostica downloaden)
- Korte beschrijving van het probleem
- Welke power-sensor je gebruikt (Shelly?)
Ik denk dat het vooral dat laatste is.
Ik heb geen specifieke sensor voor de power.
Ik had gehoopt dat met Inverter primary current of inverter RPS er een berekening bij benadering zou worden gemaakt.

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Leeghoofd21 schreef op donderdag 8 oktober 2026 @ 20:49:
[...]

Ik denk dat het vooral dat laatste is.
Ik heb geen specifieke sensor voor de power.
Ik had gehoopt dat met Inverter primary current of inverter RPS er een berekening bij benadering zou worden gemaakt.
das ook mogelijk maar minder nauwkeurig dan een echte energie meter
zal ik toevoegen in de roadmap met waarschuwing

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
Hi @FloRadix

Ik heb Daikin Cycle ML toegevoegd aan HA.

Ik probeer nu de card op te zetten, maar vind nergens sensor.daikin_cycle_ml_daily_summary_recent.

Wordt deze sensor niet automatisch aangemaakt?
Ik kan dat niet uit de beschrijving halen.
Ik heb de custom variant ingevuld.


[EDIT1]
De COP sensoren blijven ook leeg.

[ Voor 16% gewijzigd door Hedzie op 24-10-2026 10:06 ]


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
ik gebruik ook de laatste espaltherma v2
zou moeten werken

voor cop moet je in de config flow je eigen cop sensor toevoegen

aanpassen menu device
Afbeeldingslocatie: https://tweakers.net/i/4laMCJfKBq3DXaM6UtZoqPGB-Js=/x800/filters:strip_exif()/f/image/ozwrYbFCA4ZmV0ogww2Q0EmX.png?f=fotoalbum_large


Afbeeldingslocatie: https://tweakers.net/i/meltM5PhkqkAi5Dt-ryFjG2TY5Y=/x800/filters:strip_exif()/f/image/VCpIgj9K9EgcHGrcxnvWuwmY.png?f=fotoalbum_large

[ Voor 123% gewijzigd door FloRadix op 24-10-2026 19:20 ]


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hedzie schreef op vrijdag 23 oktober 2026 @ 21:12:
Hi @FloRadix

Ik heb Daikin Cycle ML toegevoegd aan HA.

Ik probeer nu de card op te zetten, maar vind nergens sensor.daikin_cycle_ml_daily_summary_recent.

Wordt deze sensor niet automatisch aangemaakt?
Ik kan dat niet uit de beschrijving halen.
Ik heb de custom variant ingevuld.


[EDIT1]
De COP sensoren blijven ook leeg.
Even gecheckt op een verse installatie: de sensor wordt wél
aangemaakt, staat AAN (niet uitgeschakeld) en bevat bij mij
gewoon 29 dagen data. Dus het ligt niet aan de integratie zelf.

Het meest waarschijnlijke probleem: HA genereert de entity_id
op basis van de NAAM die jij bij het instellen aan de integratie
hebt gegeven — niet op basis van een vaste string.

Heb je bij installatie "Daikin Cycle ML" als naam ingevuld,
dan heet de sensor:
sensor.daikin_cycle_ml_daily_summary_recent

Heb je bijv. "Warmtepomp", "Daikin" of "WP Thuis" ingevuld,
dan heet hij:
sensor.warmtepomp_daily_summary_recent
sensor.daikin_daily_summary_recent
sensor.wp_thuis_daily_summary_recent

Zo vind je 'm 100% zeker:

1. Ontwikkelaarstools → Template
Plak dit in het template-veld:

{{ states.sensor
| selectattr('entity_id', 'search', 'daily_summary')
| map(attribute='entity_id') | list }}

→ laat de exacte entity_id zien

2. Of: Instellingen → Apparaten & diensten → tab "Entiteiten"
→ zoekveld: daily_summary
(dus NIET de hele entity_id, alleen dit stukje)

Zie je 'm dan nog steeds niet, laat dan even weten:
- Welke versie (HACS → Daikin Cycle ML, staat bovenaan)
- Hoe je entry heet (Apparaten & diensten → Daikin Cycle
ML → tandwiel → Naam)
- Of er iets in Instellingen → Reparaties staat
- Eventueel een screenshot van je entiteitenlijst

Als je 'm in Template ziet maar niet in de card: in de card
moet je de exacte entity_id gebruiken die je daar ziet, niet
de "verwachte" naam.

Best de originele benaming behouden zo werken de kaarten automatisch

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
FloRadix schreef op zaterdag 24 oktober 2026 @ 20:53:
[...]


Even gecheckt op een verse installatie: de sensor wordt wél
aangemaakt, staat AAN (niet uitgeschakeld) en bevat bij mij
gewoon 29 dagen data. Dus het ligt niet aan de integratie zelf.

Het meest waarschijnlijke probleem: HA genereert de entity_id
op basis van de NAAM die jij bij het instellen aan de integratie
hebt gegeven — niet op basis van een vaste string.

Heb je bij installatie "Daikin Cycle ML" als naam ingevuld,
dan heet de sensor:
sensor.daikin_cycle_ml_daily_summary_recent

Heb je bijv. "Warmtepomp", "Daikin" of "WP Thuis" ingevuld,
dan heet hij:
sensor.warmtepomp_daily_summary_recent
sensor.daikin_daily_summary_recent
sensor.wp_thuis_daily_summary_recent

Zo vind je 'm 100% zeker:

1. Ontwikkelaarstools → Template
Plak dit in het template-veld:

{{ states.sensor
| selectattr('entity_id', 'search', 'daily_summary')
| map(attribute='entity_id') | list }}

→ laat de exacte entity_id zien

2. Of: Instellingen → Apparaten & diensten → tab "Entiteiten"
→ zoekveld: daily_summary
(dus NIET de hele entity_id, alleen dit stukje)

Zie je 'm dan nog steeds niet, laat dan even weten:
- Welke versie (HACS → Daikin Cycle ML, staat bovenaan)
- Hoe je entry heet (Apparaten & diensten → Daikin Cycle
ML → tandwiel → Naam)
- Of er iets in Instellingen → Reparaties staat
- Eventueel een screenshot van je entiteitenlijst

Als je 'm in Template ziet maar niet in de card: in de card
moet je de exacte entity_id gebruiken die je daar ziet, niet
de "verwachte" naam.

Best de originele benaming behouden zo werken de kaarten automatisch
Helaas, geen daily_summary.

Moet het eerst geen 24u data verzamelen voordat de sensor zichtbaar wordt?

Ik heb versie 1.12.3.

Daikin Cycle ML - custom (sensor.althermasensors)

Geen reparaties.

Dit zijn al mijn entiteiten.

Afbeeldingslocatie: https://tweakers.net/i/ucwuNJRgiBp7LiXKOPc_QgeRUwo=/800x/filters:strip_icc():strip_exif()/f/image/R7FDnIDkd3oJPtKVDV97jlwK.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/hgGazhPWUyCbHO2xM_3B-wAxn1M=/800x/filters:strip_icc():strip_exif()/f/image/1Bhi9OJhcfNRqavfWkUDZEDG.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/nZl36aWY4rl820An5hCjcVgHCI0=/800x/filters:strip_icc():strip_exif()/f/image/XQScmqqkcbkYQBbRH4HLh1zF.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/k3RtaW_0X_B-T8LvRn13OadPqVI=/800x/filters:strip_icc():strip_exif()/f/image/eO3Q9C9eGn7qd7hNC3eDWHNX.jpg?f=fotoalbum_large

[edit1]

Ik zit te denken, zijn de entiteiten niet vertaald naar het NL?

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
kan je even in dev tools, template editor deze jinja code uitvoeren en de resultaat doorsturen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
{% set ALL = states
   | selectattr('entity_id', 'search', 'daikin_cycle_ml')
   | list %}
{% set SENSORS = ALL
   | selectattr('entity_id', 'search', '^sensor\.')
   | list %}
{% set BINS = ALL
   | selectattr('entity_id', 'search', '^binary_sensor\.')
   | list %}
{% set OTHER = ALL
   | rejectattr('entity_id', 'search', '^sensor\.|^binary_sensor\.')
   | list %}

# Daikin Cycle ML — Overzicht

**Totaal:** {{ ALL | count }} entities
({{ SENSORS | count }} sensors, {{ BINS | count }} binary, {{ OTHER | count }} andere)

---

## Sensors ({{ SENSORS | count }})

{% for e in SENSORS | sort(attribute='entity_id') %}
- **`{{ e.entity_id }}`**
  - State: `{{ e.state }}{% if e.attributes.get('unit_of_measurement') %} {{ e.attributes.get('unit_of_measurement') }}{% endif %}`
  - Friendly: {{ e.attributes.get('friendly_name', '—') }}
  {%- if e.attributes.get('device_class') %} | device_class: `{{ e.attributes.get('device_class') }}`{% endif %}
  {%- if e.attributes.get('icon') %} | icon: `{{ e.attributes.get('icon') }}`{% endif %}
  {%- set EXCLUDE = ['friendly_name','unit_of_measurement','device_class','icon','entity_id','last_changed','last_updated'] %}
  {%- set ATTRS = e.attributes | reject('in', EXCLUDE) | list %}
  {%- if ATTRS | count > 0 %}
  - Attributen:
    {%- for k in ATTRS | sort %}
    - `{{ k }}`: `{{ e.attributes.get(k) }}`
    {%- endfor %}
  {%- endif %}
{% endfor %}

---

## Binary sensors ({{ BINS | count }})

{% for e in BINS | sort(attribute='entity_id') %}
- **`{{ e.entity_id }}`** — `{{ e.state }}`
  - Friendly: {{ e.attributes.get('friendly_name', '—') }}
  {%- if e.attributes.get('device_class') %} | device_class: `{{ e.attributes.get('device_class') }}`{% endif %}
  {%- set EXCLUDE = ['friendly_name','device_class','icon','entity_id','last_changed','last_updated'] %}
  {%- set ATTRS = e.attributes | reject('in', EXCLUDE) | list %}
  {%- if ATTRS | count > 0 %}
  - Attributen:
    {%- for k in ATTRS | sort %}
    - `{{ k }}`: `{{ e.attributes.get(k) }}`
    {%- endfor %}
  {%- endif %}
{% endfor %}

{% if OTHER | count > 0 %}

---

## Andere ({{ OTHER | count }})

{% for e in OTHER | sort(attribute='entity_id') %}
- **`{{ e.entity_id }}`** — `{{ e.state }}`
{% endfor %}

{% endif %}

---

_Laatst geüpdatet: {{ now().strftime('%Y-%m-%d %H:%M:%S') }}_

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
Jazeker.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
# Daikin Cycle ML — Overzicht

**Totaal:** 63 entities
(47 sensors, 15 binary, 1 andere)

---

## Sensors (47)


- **`sensor.cop_daikin_cycle_ml`**
  - State: `4.18 COP`
  - Friendly: COP Daikin Cycle ML
  - Attributen:
    - `data_quality`: `Good`
    - `defrost_operation`: `OFF`
    - `power_stable`: `ON`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_bron_gezondheid`**
  - State: `0.02 s`
  - Friendly: Daikin Cycle ML Bron-gezondheid | device_class: `duration` | icon: `mdi:heart-pulse`
  - Attributen:
    - `coordinator_errors`: `0`
    - `is_stale`: `False`
    - `last_sample_age_s`: `0.02`
    - `missing_attrs_count`: `0`
    - `missing_attrs_list`: `[]`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_buh_bedrijfstijd_vandaag`**
  - State: `0 s`
  - Friendly: Daikin Cycle ML BUH-bedrijfstijd vandaag | device_class: `duration` | icon: `mdi:fire-alert`
  - Attributen:
    - `buh_energy_kwh_est`: `0.0`
    - `state_class`: `total_increasing`
    - `step1_s`: `0`
    - `step2_s`: `0`

- **`sensor.daikin_cycle_ml_compressorbedrijfstijd_vandaag`**
  - State: `31746 s`
  - Friendly: Daikin Cycle ML Compressorbedrijfstijd vandaag | device_class: `duration` | icon: `mdi:timer-outline`
  - Attributen:
    - `avg_cycle_s`: `10122`
    - `buh_step1_s`: `0`
    - `buh_step2_s`: `0`
    - `cooling_s`: `0`
    - `cycle_count`: `3`
    - `dhw_s`: `2819`
    - `heating_s`: `27547`
    - `state_class`: `total_increasing`

- **`sensor.daikin_cycle_ml_compressorstarts_vandaag`**
  - State: `3`
  - Friendly: Daikin Cycle ML Compressorstarts vandaag | icon: `mdi:restart`
  - Attributen:
    - `per_mode`: `{'heating': 2, 'dhw': 1, 'cooling': 0}`
    - `starts_last_hour`: `0`
    - `state_class`: `total_increasing`

- **`sensor.daikin_cycle_ml_cop_curve_recent`**
  - State: `8`
  - Friendly: Daikin Cycle ML COP-curve recent | icon: `mdi:chart-scatter-plot`
  - Attributen:
    - `modes_present`: `['dhw', 'heating']`
    - `n_points`: `8`
    - `points`: `[{'ts': 1792832400, 'mode': 'heating', 'cop_mean': 5.676666666666667, 'cop_p50': 5.395, 'cop_p90': 7.609999999999999, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 6}, {'ts': 1792836000, 'mode': 'heating', 'cop_mean': 5.403636363636363, 'cop_p50': 5.56, 'cop_p90': 6.01, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 11}, {'ts': 1792839600, 'mode': 'heating', 'cop_mean': 4.965454545454545, 'cop_p50': 5.14, 'cop_p90': 5.76, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 11}, {'ts': 1792843200, 'mode': 'heating', 'cop_mean': 5.0475, 'cop_p50': 5.45, 'cop_p90': 5.948, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 12}, {'ts': 1792846800, 'mode': 'dhw', 'cop_mean': 16.64333333333333, 'cop_p50': 2.56, 'cop_p90': 28.578000000000017, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 9}, {'ts': 1792846800, 'mode': 'heating', 'cop_mean': 6.340000000000001, 'cop_p50': 6.340000000000001, 'cop_p90': 8.636000000000001, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 2}, {'ts': 1792850400, 'mode': 'heating', 'cop_mean': 5.834166666666667, 'cop_p50': 5.41, 'cop_p90': 8.522, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 12}, {'ts': 1792854000, 'mode': 'heating', 'cop_mean': 4.5, 'cop_p50': 4.09, 'cop_p90': 5.25, 'lwt_mean': None, 'outdoor_mean': None, 'n_samples': 5}]`
    - `state_class`: `measurement`
    - `updated_ts`: `1792874441.1566474`
    - `window_hours`: `48`

- **`sensor.daikin_cycle_ml_cop_degradatie_week`**
  - State: `unknown %`
  - Friendly: Daikin Cycle ML COP-degradatie week % | icon: `mdi:trending-down`
  - Attributen:
    - `bins_used`: `[]`
    - `dynamic_min_samples`: `0`
    - `excluded_hours_prev`: `0`
    - `excluded_hours_recent`: `0`
    - `exclusion_skew`: `0.0`
    - `lwt_mean_prev`: `None`
    - `lwt_mean_recent`: `None`
    - `mode`: `heating`
    - `n_bins_used`: `0`
    - `n_days_prev`: `0`
    - `n_days_recent`: `1`
    - `n_samples_prev`: `0`
    - `n_samples_recent`: `59`
    - `state_class`: `measurement`
    - `updated_ts`: `1792874441.1566474`
    - `window_days`: `7`

- **`sensor.daikin_cycle_ml_cop_degradatiestatus`**
  - State: `none`
  - Friendly: Daikin Cycle ML COP-degradatiestatus | device_class: `enum` | icon: `mdi:chart-line-variant`
  - Attributen:
    - `critical_pct`: `-15.0`
    - `lwt_shift_c`: `0.0`
    - `lwt_shift_detected`: `False`
    - `severity_downgraded`: `False`
    - `severity_raw`: `none`
    - `threshold_pct`: `-8.0`
    - `updated_ts`: `1792874441.1566474`
    - `valid`: `False`
    - `week_pct`: `None`
    - `week_pct_raw`: `None`

- **`sensor.daikin_cycle_ml_cop_gecombineerd_vandaag`**
  - State: `5.95 COP`
  - Friendly: Daikin Cycle ML COP gecombineerd vandaag | icon: `mdi:heat-pump-outline`
  - Attributen:
    - `baseline_cop_verlies_pct`: `0.0`
    - `cop_max`: `129.89`
    - `cop_min`: `1.83`
    - `samples_today`: `128`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_gemiddelde_dag`**
  - State: `5.32 COP`
  - Friendly: Daikin Cycle ML COP gemiddelde dag | icon: `mdi:calendar-today`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `16.64333333333333`
    - `cop_min`: `4.5`
    - `cop_p10`: `2.07`
    - `cop_p90`: `28.578000000000017`
    - `n_hours`: `8`
    - `n_samples`: `68`
    - `period`: `day`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_gemiddelde_maand`**
  - State: `5.32 COP`
  - Friendly: Daikin Cycle ML COP gemiddelde maand | icon: `mdi:calendar-month`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `16.64333333333333`
    - `cop_min`: `4.5`
    - `cop_p10`: `2.07`
    - `cop_p90`: `28.578000000000017`
    - `n_hours`: `8`
    - `n_samples`: `68`
    - `period`: `month`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_gemiddelde_week`**
  - State: `5.32 COP`
  - Friendly: Daikin Cycle ML COP gemiddelde week | icon: `mdi:calendar-week`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `16.64333333333333`
    - `cop_min`: `4.5`
    - `cop_p10`: `2.07`
    - `cop_p90`: `28.578000000000017`
    - `n_hours`: `8`
    - `n_samples`: `68`
    - `period`: `week`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_genormaliseerd_a7w35`**
  - State: `unknown COP`
  - Friendly: Daikin Cycle ML COP genormaliseerd A7W35 | icon: `mdi:thermometer-lines`
  - Attributen:
    - `cop_measured`: `6.59`
    - `cop_normalized_a7w35`: `None`
    - `family`: `None`
    - `kw`: `None`
    - `lwt_max`: `None`
    - `lwt_min`: `None`
    - `model`: `custom`
    - `nom_cop`: `None`
    - `ref_cop_a7w35`: `None`
    - `scop_w35`: `None`
    - `scop_w55`: `None`
    - `source`: `None`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_koeling_dag`**
  - State: `unknown COP`
  - Friendly: Daikin Cycle ML COP koeling (dag) | icon: `mdi:snowflake`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `None`
    - `cop_mean`: `None`
    - `cop_min`: `None`
    - `cop_p10`: `None`
    - `cop_p90`: `None`
    - `mode`: `cooling`
    - `n_hours`: `None`
    - `n_samples`: `None`
    - `period`: `day`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_koeling_maand`**
  - State: `unknown COP`
  - Friendly: Daikin Cycle ML COP koeling (maand) | icon: `mdi:snowflake`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `None`
    - `cop_mean`: `None`
    - `cop_min`: `None`
    - `cop_p10`: `None`
    - `cop_p90`: `None`
    - `mode`: `cooling`
    - `n_hours`: `None`
    - `n_samples`: `None`
    - `period`: `month`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_koeling_week`**
  - State: `unknown COP`
  - Friendly: Daikin Cycle ML COP koeling (week) | icon: `mdi:snowflake`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `None`
    - `cop_mean`: `None`
    - `cop_min`: `None`
    - `cop_p10`: `None`
    - `cop_p90`: `None`
    - `mode`: `cooling`
    - `n_hours`: `None`
    - `n_samples`: `None`
    - `period`: `week`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_sww_dag`**
  - State: `16.64 COP`
  - Friendly: Daikin Cycle ML COP SWW (dag) | icon: `mdi:water-boiler`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `16.64333333333333`
    - `cop_mean`: `16.64333333333333`
    - `cop_min`: `16.64333333333333`
    - `cop_p10`: `2.07`
    - `cop_p90`: `28.578000000000017`
    - `mode`: `dhw`
    - `n_hours`: `1`
    - `n_samples`: `9`
    - `period`: `day`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_sww_maand`**
  - State: `16.64 COP`
  - Friendly: Daikin Cycle ML COP SWW (maand) | icon: `mdi:water-boiler`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `16.64333333333333`
    - `cop_mean`: `16.64333333333333`
    - `cop_min`: `16.64333333333333`
    - `cop_p10`: `2.07`
    - `cop_p90`: `28.578000000000017`
    - `mode`: `dhw`
    - `n_hours`: `1`
    - `n_samples`: `9`
    - `period`: `month`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_sww_week`**
  - State: `16.64 COP`
  - Friendly: Daikin Cycle ML COP SWW (week) | icon: `mdi:water-boiler`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `16.64333333333333`
    - `cop_mean`: `16.64333333333333`
    - `cop_min`: `16.64333333333333`
    - `cop_p10`: `2.07`
    - `cop_p90`: `28.578000000000017`
    - `mode`: `dhw`
    - `n_hours`: `1`
    - `n_samples`: `9`
    - `period`: `week`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_trend_30d`**
  - State: `unknown %`
  - Friendly: Daikin Cycle ML COP-trend 30d | icon: `mdi:chart-timeline-variant`
  - Attributen:
    - `baseline_days`: `30`
    - `cop_observed_recent`: `None`
    - `cop_predicted_recent`: `None`
    - `critical_pct`: `-15.0`
    - `fit_intercept`: `None`
    - `fit_r2`: `None`
    - `fit_slope`: `None`
    - `mode`: `heating`
    - `n_hours_baseline`: `0`
    - `n_hours_recent`: `7`
    - `outdoor_spread_baseline_c`: `0.0`
    - `recent_days`: `7`
    - `state_class`: `measurement`
    - `threshold_pct`: `-8.0`
    - `updated_ts`: `1792874441.1566474`
    - `valid`: `False`
    - `window_days`: `30`

- **`sensor.daikin_cycle_ml_cop_vandaag`**
  - State: `5.16 COP`
  - Friendly: Daikin Cycle ML COP vandaag | icon: `mdi:heat-pump`
  - Attributen:
    - `baseline_cop_verlies_pct`: `0.0`
    - `cop_max`: `9.48`
    - `cop_min`: `2.51`
    - `samples_today`: `117`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_verwarming_dag`**
  - State: `5.32 COP`
  - Friendly: Daikin Cycle ML COP verwarming (dag) | icon: `mdi:radiator`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `6.340000000000001`
    - `cop_mean`: `5.32`
    - `cop_min`: `4.5`
    - `cop_p10`: `3.3419999999999996`
    - `cop_p90`: `8.636000000000001`
    - `mode`: `heating`
    - `n_hours`: `7`
    - `n_samples`: `59`
    - `period`: `day`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_verwarming_maand`**
  - State: `5.32 COP`
  - Friendly: Daikin Cycle ML COP verwarming (maand) | icon: `mdi:radiator`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `6.340000000000001`
    - `cop_mean`: `5.32`
    - `cop_min`: `4.5`
    - `cop_p10`: `3.3419999999999996`
    - `cop_p90`: `8.636000000000001`
    - `mode`: `heating`
    - `n_hours`: `7`
    - `n_samples`: `59`
    - `period`: `month`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_verwarming_week`**
  - State: `5.32 COP`
  - Friendly: Daikin Cycle ML COP verwarming (week) | icon: `mdi:radiator`
  - Attributen:
    - `by_mode`: `{'dhw': {'n_hours': 1, 'n_samples': 9, 'cop_mean': 16.64333333333333, 'cop_p10': 2.07, 'cop_p90': 28.578000000000017, 'cop_min': 16.64333333333333, 'cop_max': 16.64333333333333}, 'heating': {'n_hours': 7, 'n_samples': 59, 'cop_mean': 5.32, 'cop_p10': 3.3419999999999996, 'cop_p90': 8.636000000000001, 'cop_min': 4.5, 'cop_max': 6.340000000000001}}`
    - `cop_max`: `6.340000000000001`
    - `cop_mean`: `5.32`
    - `cop_min`: `4.5`
    - `cop_p10`: `3.3419999999999996`
    - `cop_p90`: `8.636000000000001`
    - `mode`: `heating`
    - `n_hours`: `7`
    - `n_samples`: `59`
    - `period`: `week`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cop_vs_datasheet_pct`**
  - State: `unknown %`
  - Friendly: Daikin Cycle ML COP vs datasheet pct | icon: `mdi:chart-bell-curve`
  - Attributen:
    - `band`: `None`
    - `cop_measured`: `6.59`
    - `cop_normalized_a7w35`: `None`
    - `deviation_pct`: `None`
    - `model`: `custom`
    - `ref_cop_a7w35`: `None`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_cycli_vandaag`**
  - State: `3`
  - Friendly: Daikin Cycle ML Cycli vandaag | icon: `mdi:counter`
  - Attributen:
    - `avg_duration_min`: `168.7`
    - `avg_off_time_min`: `2.0`
    - `cycles_last_hour`: `0`
    - `longest_cycle_min`: `240.0`
    - `non_transient_cycles_today`: `3`
    - `short_offs`: `0`
    - `short_ratio_pct`: `0.0`
    - `short_runs`: `0`
    - `shortest_cycle_min`: `46.98`
    - `state_class`: `total_increasing`
    - `transient_cycles_today`: `0`
    - `transient_ratio_pct`: `0.0`

- **`sensor.daikin_cycle_ml_cyclus_status`**
  - State: `running`
  - Friendly: Daikin Cycle ML Cyclus-status | icon: `mdi:state-machine`
  - Attributen:
    - `configured_cop_sensor`: `sensor.cop_daikin_cycle_ml`
    - `configured_entry_id`: `01M5PE5F4PKTN6001N91MMQGY8`
    - `configured_indoor_sensor`: `None`
    - `configured_language`: `en`
    - `configured_model`: `custom`
    - `configured_power_sensor`: `sensor.kwh_meter_warmtepomp_actueel_vermogen_fase_1`
    - `configured_source_sensor`: `sensor.althermasensors`

- **`sensor.daikin_cycle_ml_duty_cycle_vandaag`**
  - State: `38.8 %`
  - Friendly: Daikin Cycle ML Duty cycle vandaag | icon: `mdi:gauge`
  - Attributen:
    - `band`: `nominal`
    - `elapsed_s`: `81821`
    - `runtime_s`: `31746`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_elektrische_energie_koeling_vandaag`**
  - State: `0.0 kWh`
  - Friendly: Daikin Cycle ML Elektrische energie koeling vandaag | device_class: `energy` | icon: `mdi:lightning-bolt`
  - Attributen:
    - `cooling_el_kwh`: `0.0`
    - `cooling_th_kwh`: `0.0`
    - `dhw_el_kwh`: `1.507`
    - `dhw_th_kwh`: `3.657`
    - `heating_el_kwh`: `3.715`
    - `heating_th_kwh`: `18.899`
    - `state_class`: `total_increasing`
    - `total_el_kwh`: `5.222`
    - `total_th_kwh`: `22.555`

- **`sensor.daikin_cycle_ml_elektrische_energie_totaal_vandaag`**
  - State: `5.22 kWh`
  - Friendly: Daikin Cycle ML Elektrische energie totaal vandaag | device_class: `energy` | icon: `mdi:lightning-bolt-circle`
  - Attributen:
    - `cooling_el_kwh`: `0.0`
    - `cooling_th_kwh`: `0.0`
    - `dhw_el_kwh`: `1.507`
    - `dhw_th_kwh`: `3.657`
    - `heating_el_kwh`: `3.715`
    - `heating_th_kwh`: `18.899`
    - `state_class`: `total_increasing`
    - `total_el_kwh`: `5.222`
    - `total_th_kwh`: `22.555`

- **`sensor.daikin_cycle_ml_elektrische_energie_verwarming_vandaag`**
  - State: `3.71 kWh`
  - Friendly: Daikin Cycle ML Elektrische energie verwarming vandaag | device_class: `energy` | icon: `mdi:lightning-bolt`
  - Attributen:
    - `cooling_el_kwh`: `0.0`
    - `cooling_th_kwh`: `0.0`
    - `dhw_el_kwh`: `1.507`
    - `dhw_th_kwh`: `3.657`
    - `heating_el_kwh`: `3.715`
    - `heating_th_kwh`: `18.899`
    - `state_class`: `total_increasing`
    - `total_el_kwh`: `5.222`
    - `total_th_kwh`: `22.555`

- **`sensor.daikin_cycle_ml_elektrische_energie_warm_water_vandaag`**
  - State: `1.51 kWh`
  - Friendly: Daikin Cycle ML Elektrische energie warm water vandaag | device_class: `energy` | icon: `mdi:lightning-bolt`
  - Attributen:
    - `cooling_el_kwh`: `0.0`
    - `cooling_th_kwh`: `0.0`
    - `dhw_el_kwh`: `1.507`
    - `dhw_th_kwh`: `3.657`
    - `heating_el_kwh`: `3.715`
    - `heating_th_kwh`: `18.899`
    - `state_class`: `total_increasing`
    - `total_el_kwh`: `5.222`
    - `total_th_kwh`: `22.555`

- **`sensor.daikin_cycle_ml_geleerde_drempels`**
  - State: `unknown min`
  - Friendly: Daikin Cycle ML Geleerde drempels | device_class: `duration` | icon: `mdi:brain`
  - Attributen:
    - `adaptive_enabled`: `False`
    - `good_off_min`: `None`
    - `state_class`: `measurement`
    - `target_cycles_per_day`: `None`

- **`sensor.daikin_cycle_ml_huidige_cyclus`**
  - State: `heating`
  - Friendly: Daikin Cycle ML Huidige cyclus | icon: `mdi:hvac`
  - Attributen:
    - `dt_k`: `4.1`
    - `duration_min`: `23.0`
    - `rps`: `8.0`
    - `started_at`: `1792873240.8857417`

- **`sensor.daikin_cycle_ml_kwaliteit_vandaag`**
  - State: `80.0 score`
  - Friendly: Daikin Cycle ML Kwaliteit vandaag | icon: `mdi:star-outline`
  - Attributen:
    - `bad_cycles`: `0`
    - `good_cycles`: `3`
    - `good_ratio_pct`: `100.0`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_laatste_cyclus`**
  - State: `80 score`
  - Friendly: Daikin Cycle ML Laatste cyclus | icon: `mdi:star-outline`
  - Attributen:
    - `buh_used`: `False`
    - `cluster`: `None`
    - `defrost_used`: `False`
    - `dt_avg_k`: `3.194594594594595`
    - `dt_max_k`: `4.799999999999997`
    - `duration_min`: `240.0`
    - `end_ts`: `1792864193.0391908`
    - `mode`: `heating`
    - `outdoor_temp`: `10.5`
    - `rps_avg`: `10.446985446985448`
    - `rps_max`: `38.0`
    - `start_ts`: `1792849763.0380712`
    - `state_class`: `measurement`
    - `thermal_kw_avg`: `1.5773083714483715`

- **`sensor.daikin_cycle_ml_ontdooiingen_vandaag`**
  - State: `0`
  - Friendly: Daikin Cycle ML Ontdooiingen vandaag | icon: `mdi:snowflake-melt`
  - Attributen:
    - `avg_duration_s`: `None`
    - `last_defrost_ts`: `None`
    - `state_class`: `total_increasing`

- **`sensor.daikin_cycle_ml_ontdooiingsduur_vandaag`**
  - State: `0 s`
  - Friendly: Daikin Cycle ML Ontdooiingsduur vandaag | device_class: `duration` | icon: `mdi:timer-sand`
  - Attributen:
    - `avg_duration_s`: `None`
    - `defrost_count`: `0`
    - `state_class`: `total_increasing`

- **`sensor.daikin_cycle_ml_recent_dagoverzicht`**
  - State: `3`
  - Friendly: Daikin Cycle ML Recent dagoverzicht | icon: `mdi:calendar-range`
  - Attributen:
    - `days`: `[{'day': '2026-10-24', 'mode': 'heating', 'cycles': 2, 'dur_min': 459.1, 'dur_min_avg': 229.6, 'dur_max': 240.0, 'quality_avg': 80.0, 'buh': 0, 'defrost': 0}, {'day': '2026-10-24', 'mode': 'dhw', 'cycles': 1, 'dur_min': 47.0, 'dur_min_avg': 47.0, 'dur_max': 47.0, 'quality_avg': 80.0, 'buh': 0, 'defrost': 0}]`
    - `days_available`: `1`
    - `days_count`: `1`
    - `latest_day`: `2026-10-24`
    - `oldest_day`: `2026-10-24`
    - `state_class`: `measurement`
    - `totals_by_mode`: `{'heating': {'days': 1, 'cycles': 2, 'dur_min': 459.1, 'buh': 0, 'defrost': 0}, 'dhw': {'days': 1, 'cycles': 1, 'dur_min': 47.0, 'buh': 0, 'defrost': 0}, 'cooling': {'days': 0, 'cycles': 0, 'dur_min': 0.0, 'buh': 0, 'defrost': 0}}`

- **`sensor.daikin_cycle_ml_scop_rollend_365d`**
  - State: `6.02 SPF`
  - Friendly: Daikin Cycle ML SCOP rollend 365d | icon: `mdi:chart-timeline-variant`
  - Attributen:
    - `scop_365d`: `6.02`
    - `scop_365d_n`: `124`
    - `season_start_month`: `10`
    - `spf_season_n`: `124`
    - `spf_ytd`: `6.02`
    - `spf_ytd_n`: `124`
    - `state_class`: `measurement`
    - `updated_ts`: `1792873240.8857417`

- **`sensor.daikin_cycle_ml_spf_dit_jaar`**
  - State: `6.02 SPF`
  - Friendly: Daikin Cycle ML SPF dit jaar | icon: `mdi:calendar-today`
  - Attributen:
    - `scop_365d`: `6.02`
    - `scop_365d_n`: `124`
    - `season_start_month`: `10`
    - `spf_season_n`: `124`
    - `spf_ytd`: `6.02`
    - `spf_ytd_n`: `124`
    - `state_class`: `measurement`
    - `updated_ts`: `1792873240.8857417`

- **`sensor.daikin_cycle_ml_spf_seizoen`**
  - State: `6.02 SPF`
  - Friendly: Daikin Cycle ML SPF seizoen | icon: `mdi:calendar-star`
  - Attributen:
    - `scop_365d`: `6.02`
    - `scop_365d_n`: `124`
    - `season_start_month`: `10`
    - `spf_season_n`: `124`
    - `spf_ytd`: `6.02`
    - `spf_ytd_n`: `124`
    - `state_class`: `measurement`
    - `updated_ts`: `1792873240.8857417`

- **`sensor.daikin_cycle_ml_stooklijn_advies`**
  - State: `unknown`
  - Friendly: Daikin Cycle ML Stooklijn advies | icon: `mdi:chart-line`
  - Attributen:
    - `besparing_cop_pct`: `0.0`
    - `betrouwbaarheid`: `1.0`
    - `bucket`: `unknown`
    - `buckets`: `{'unknown': {'cop': 5.19, 'n': 115, 'lwt': None}}`
    - `comfort_cap`: `None`
    - `comfort_impact`: `0.0`
    - `delta_c`: `0.0`
    - `doel_setpoint`: `None`
    - `huidige_lwt`: `None`
    - `huidige_setpoint`: `None`
    - `offset_delta_c`: `0.0`
    - `optimale_lwt`: `None`
    - `reason`: ``
    - `samples`: `115`
    - `slope_delta`: `None`
    - `state_label`: `Unknown`
    - `step_c`: `0`
    - `tracking_error`: `None`

- **`sensor.daikin_cycle_ml_thermisch_vermogen_live`**
  - State: `1.68 kW`
  - Friendly: Daikin Cycle ML Thermisch vermogen live | device_class: `power` | icon: `mdi:fire`
  - Attributen:
    - `calculation_source`: `power_cop`
    - `input_cop`: `6.59`
    - `input_dt_k`: `4.1`
    - `input_flow_lmin`: `7.1`
    - `input_power_w`: `255.221`
    - `input_rps`: `8.0`
    - `state_class`: `measurement`

- **`sensor.daikin_cycle_ml_thermische_energie_koeling_vandaag`**
  - State: `0.0 kWh`
  - Friendly: Daikin Cycle ML Thermische energie koeling vandaag | device_class: `energy` | icon: `mdi:snowflake`
  - Attributen:
    - `cooling_el_kwh`: `0.0`
    - `cooling_th_kwh`: `0.0`
    - `dhw_el_kwh`: `1.507`
    - `dhw_th_kwh`: `3.657`
    - `heating_el_kwh`: `3.715`
    - `heating_th_kwh`: `18.899`
    - `state_class`: `total_increasing`
    - `total_el_kwh`: `5.222`
    - `total_th_kwh`: `22.555`

- **`sensor.daikin_cycle_ml_thermische_energie_verwarming_vandaag`**
  - State: `18.9 kWh`
  - Friendly: Daikin Cycle ML Thermische energie verwarming vandaag | device_class: `energy` | icon: `mdi:fire`
  - Attributen:
    - `cooling_el_kwh`: `0.0`
    - `cooling_th_kwh`: `0.0`
    - `dhw_el_kwh`: `1.507`
    - `dhw_th_kwh`: `3.657`
    - `heating_el_kwh`: `3.715`
    - `heating_th_kwh`: `18.899`
    - `state_class`: `total_increasing`
    - `total_el_kwh`: `5.222`
    - `total_th_kwh`: `22.555`

- **`sensor.daikin_cycle_ml_wp_specs`**
  - State: `custom`
  - Friendly: Daikin Cycle ML WP specs | icon: `mdi:heat-pump-outline`
  - Attributen:
    - `configured`: `False`
    - `model`: `custom`
    - `reason`: `no datasheet for this model`


---

## Binary sensors (15)


- **`binary_sensor.daikin_cycle_ml_bron_verouderd`** — `off`
  - Friendly: Daikin Cycle ML Bron verouderd | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_buh_actief`** — `off`
  - Friendly: Daikin Cycle ML BUH actief | device_class: `heat`
  - Attributen:
    - `step`: `0`

- **`binary_sensor.daikin_cycle_ml_compressor_actief`** — `on`
  - Friendly: Daikin Cycle ML Compressor actief | device_class: `running`

- **`binary_sensor.daikin_cycle_ml_defrost_actief`** — `off`
  - Friendly: Daikin Cycle ML Defrost actief | device_class: `running`

- **`binary_sensor.daikin_cycle_ml_hoge_cyclusfrequentie`** — `off`
  - Friendly: Daikin Cycle ML Hoge cyclusfrequentie | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_koeling_actief`** — `off`
  - Friendly: Daikin Cycle ML Koeling actief | device_class: `cold`

- **`binary_sensor.daikin_cycle_ml_korte_off_tijd`** — `off`
  - Friendly: Daikin Cycle ML Korte off-tijd | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_korte_run`** — `off`
  - Friendly: Daikin Cycle ML Korte run | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_ontbrekende_attributen`** — `off`
  - Friendly: Daikin Cycle ML Ontbrekende attributen | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_pendelen_per_dag`** — `off`
  - Friendly: Daikin Cycle ML Pendelen per dag | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_pendelen_per_uur`** — `off`
  - Friendly: Daikin Cycle ML Pendelen per uur | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_setpoint_oscilleert`** — `off`
  - Friendly: Daikin Cycle ML Setpoint oscilleert | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_sww_actief`** — `off`
  - Friendly: Daikin Cycle ML SWW actief

- **`binary_sensor.daikin_cycle_ml_sww_pendelen`** — `off`
  - Friendly: Daikin Cycle ML SWW pendelen | device_class: `problem`

- **`binary_sensor.daikin_cycle_ml_verwarming_actief`** — `on`
  - Friendly: Daikin Cycle ML Verwarming actief | device_class: `heat`




---

## Andere (1)


- **`update.daikin_cycle_ml_update`** — `on`




---

_Laatst geüpdatet: 2026-10-24 22:44:00_

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
@Hetze — ik heb je entiteiten-dump bekeken en de sensor bestaat wel, alleen heet hij in de Nederlandse UI anders dan je zoekt.

Wat je zoekt heet:
code:
1
sensor.daikin_cycle_ml_recent_dagoverzicht
Die staat gewoon in je eigen lijst (uit je dump):
code:
1
2
3
4
5
6
sensor.daikin_cycle_ml_recent_dagoverzicht
State: 3
Attributen:
days_available: 1
days: [{'day': '2026-10-24', 'mode': 'heating', 'cycles': 2, ...},
{'day': '2026-10-24', 'mode': 'dhw', 'cycles': 1, ...}]
Dit is exact de sensor die in de README daily_summary_recent heet. De verwarring komt door de Engelse documentatie vs. de Nederlandse vertaling van de weergavenaam.
Waarom je 'm niet vond
Je systeem staat in het Nederlands. Home Assistant genereert de
code:
1
entity_id
op basis van de weergavenaam die op dat moment actief is — dus de Nederlandse vertaling van de sensor-naam. De sensor die in de Engelse documentatie daily_summary_recent heet, wordt in de NL UI "Recent dagoverzicht" en dus automatisch
code:
1
sensor.daikin_cycle_ml_recent_dagoverzicht
.

Daarom werkt zoeken op "daily_summary" niet: die string zit niet in de entity_id. De sensor is er wel.
Over je 24-uursvraag
Nee, de sensor verschijnt direct na installatie. De entiteit is er meteen, maar de data groeit pas zodra er cycli worden afgerond. Bij jou staat al
code:
1
days_available: 1
met 3 cycli — dus hij werkt al goed.
Over "originele benaming behouden"
Dat advies klopt. Als je bij installatie een andere naam dan "Daikin Cycle ML" had gekozen (bijv. "Warmtepomp"), waren alle entity_id's
code:
1
sensor.warmtepomp_*
geworden en werkten de kant-en-klare dashboard-kaarten uit de repo niet meer zonder aanpassing.
Actie
1. Zoek in je entiteitenlijst op "recent" of "dagoverzicht" i.p.v. "daily_summary"
2. Gebruik
code:
1
sensor.daikin_cycle_ml_recent_dagoverzicht
in je kaart

Wil je de Engelse entity_id alsnog?

Optie A — HA-tijdelijk op Engels zetten (Settings → General → Language → English), dan integratie verwijderen en opnieuw toevoegen. Alle entity_id's worden dan Engels aangemaakt. Let op: bestaande historie/statistieken raak je kwijt per entiteit.

Optie B — Alleen deze ene entiteit hernoemen via Settings → Entities →
code:
1
sensor.daikin_cycle_ml_recent_dagoverzicht
→ tandwiel → Entity ID wijzigen naar
code:
1
sensor.daikin_cycle_ml_daily_summary_recent
. Historie blijft behouden.
Tip om alle sensoren te vinden zonder op naam te zoeken
Developer Tools → Template, plak dit:
code:
1
2
3
{{ states.sensor
| selectattr('entity_id', 'search', 'daikin_cycle_ml')
| map(attribute='entity_id') | list }}
Dat geeft je de exacte entity_id's ongeacht taalinstelling.
Is dit een bug?
Nee. De sensor werkt zoals bedoeld. Het is een naamgevingsverwarring tussen de Engelse README-documentatie en de NL UI-vertaling. De entiteit is aanwezig, heeft data en is direct bruikbaar.

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
Dank je, ik had het idd al gevonden, zie mijn eerdere antwoord. Maar alsnog dank voor je tekst en uitleg.

Ik zit nu te knoeien met de andere 2 kaarten. Vermoedelijk hetzelfde euvel.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
ik zal de kaarten aanpassen en update maken om ook rekening te houden met de taal verschillen

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
Top.

Ik heb nu in alle kaarten de sensor namen aangepast naar NL.

Krijg nu wel wat info in de kaarten, maar nog niet alles.


Afbeeldingslocatie: https://tweakers.net/i/gCc3fP0obo_tiC2siPA9pMmjSxw=/800x/filters:strip_icc():strip_exif()/f/image/GN0xGP9rALuIGlKdlAcsafWJ.jpg?f=fotoalbum_large

Ben er nog niet helemaal achter waar dat aan ligt.

Ik heb bij Custom mijn gegevens van de WP ingevuld, maar wordt niet zichtbaar.

  • traduzione
  • Registratie: September 2014
  • Laatst online: 09:54
Staat er iets bij mij niet helemaal goed:

Ik heb jouw code ook even door mijn Dev - tools gehaald.


# Daikin Cycle ML — Overzicht

Totaal: 62 entities
(46 sensors, 15 binary, 1 andere)

---

## Sensors (46)


- `sensor.daikin_cycle_ml_compressor_starts_today`
- State:
- Friendly: Daikin Cycle ML Compressor starts today | icon: mdi:restart
- Attributen:
- per_mode: {'heating': 0, 'dhw': 0, 'cooling': 0}
- starts_last_hour:
- state_class: total_increasing

- `sensor.daikin_cycle_ml_cop_combined_today`
- State: unknown COP
- Friendly: Daikin Cycle ML COP combined today | icon: mdi:heat-pump-outline
- Attributen:
- baseline_cop_verlies_pct: None
- cop_max: None
- cop_min: None
- samples_today: None
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_cooling_day`
- State: unknown COP
- Friendly: Daikin Cycle ML COP cooling (day) | icon: mdi:snowflake
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: cooling
- n_hours: None
- n_samples: None
- period: day
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_cooling_month`
- State: unknown COP
- Friendly: Daikin Cycle ML COP cooling (month) | icon: mdi:snowflake
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: cooling
- n_hours: None
- n_samples: None
- period: month
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_cooling_week`
- State: unknown COP
- Friendly: Daikin Cycle ML COP cooling (week) | icon: mdi:snowflake
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: cooling
- n_hours: None
- n_samples: None
- period: week
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_curve_recent`
- State:
- Friendly: Daikin Cycle ML COP curve recent | icon: mdi:chart-scatter-plot
- Attributen:
- modes_present: []
- n_points:
- points: []
- state_class: measurement
- updated_ts: 1792924922.490622
- window_hours: 48

- `sensor.daikin_cycle_ml_cop_degradation_status`
- State: none
- Friendly: Daikin Cycle ML COP degradation status | device_class: enum | icon: mdi:chart-line-variant
- Attributen:
- critical_pct: -15.0
- lwt_shift_c: 0.0
- lwt_shift_detected: False
- severity_downgraded: False
- severity_raw: none
- threshold_pct: -8.0
- updated_ts: 1792924922.490622
- valid: False
- week_pct: None
- week_pct_raw: None

- `sensor.daikin_cycle_ml_cop_degradation_week_pct`
- State: unknown %
- Friendly: Daikin Cycle ML COP degradation week pct | icon: mdi:trending-down
- Attributen:
- bins_used: []
- dynamic_min_samples:
- excluded_hours_prev:
- excluded_hours_recent:
- exclusion_skew: 0.0
- lwt_mean_prev: None
- lwt_mean_recent: None
- mode: heating
- n_bins_used:
- n_days_prev:
- n_days_recent:
- n_samples_prev:
- n_samples_recent:
- state_class: measurement
- updated_ts: 1792924922.490622
- window_days: 7

- `sensor.daikin_cycle_ml_cop_dhw_day`
- State: unknown COP
- Friendly: Daikin Cycle ML COP DHW (day) | icon: mdi:water-boiler
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: dhw
- n_hours: None
- n_samples: None
- period: day
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_dhw_month`
- State: unknown COP
- Friendly: Daikin Cycle ML COP DHW (month) | icon: mdi:water-boiler
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: dhw
- n_hours: None
- n_samples: None
- period: month
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_dhw_week`
- State: unknown COP
- Friendly: Daikin Cycle ML COP DHW (week) | icon: mdi:water-boiler
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: dhw
- n_hours: None
- n_samples: None
- period: week
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_heating_day`
- State: unknown COP
- Friendly: Daikin Cycle ML COP heating (day) | icon: mdi:radiator
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: heating
- n_hours: None
- n_samples: None
- period: day
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_heating_month`
- State: unknown COP
- Friendly: Daikin Cycle ML COP heating (month) | icon: mdi:radiator
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: heating
- n_hours: None
- n_samples: None
- period: month
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_heating_week`
- State: unknown COP
- Friendly: Daikin Cycle ML COP heating (week) | icon: mdi:radiator
- Attributen:
- by_mode: {}
- cop_max: None
- cop_mean: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- mode: heating
- n_hours: None
- n_samples: None
- period: week
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_mean_day`
- State: unknown COP
- Friendly: Daikin Cycle ML COP mean day | icon: mdi:calendar-today
- Attributen:
- by_mode: {}
- cop_max: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- n_hours:
- n_samples:
- period: day
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_mean_month`
- State: unknown COP
- Friendly: Daikin Cycle ML COP mean month | icon: mdi:calendar-month
- Attributen:
- by_mode: {}
- cop_max: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- n_hours:
- n_samples:
- period: month
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_mean_week`
- State: unknown COP
- Friendly: Daikin Cycle ML COP mean week | icon: mdi:calendar-week
- Attributen:
- by_mode: {}
- cop_max: None
- cop_min: None
- cop_p10: None
- cop_p90: None
- n_hours:
- n_samples:
- period: week
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_normalized_a7w35`
- State: unknown COP
- Friendly: Daikin Cycle ML COP normalized A7W35 | icon: mdi:thermometer-lines
- Attributen:
- cop_measured: None
- cop_normalized_a7w35: None
- family: None
- kw: None
- lwt_max: None
- lwt_min: None
- model: basisprofiel
- nom_cop: None
- ref_cop_a7w35: None
- scop_w35: None
- scop_w55: None
- source: None
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_today`
- State: unknown COP
- Friendly: Daikin Cycle ML COP today | icon: mdi:heat-pump
- Attributen:
- baseline_cop_verlies_pct: None
- cop_max: None
- cop_min: None
- samples_today: None
- state_class: measurement

- `sensor.daikin_cycle_ml_cop_trend_30d`
- State: unknown %
- Friendly: Daikin Cycle ML COP trend 30d | icon: mdi:chart-timeline-variant
- Attributen:
- baseline_days: 30
- cop_observed_recent: None
- cop_predicted_recent: None
- critical_pct: -15.0
- fit_intercept: None
- fit_r2: None
- fit_slope: None
- mode: heating
- n_hours_baseline:
- n_hours_recent:
- outdoor_spread_baseline_c: 0.0
- recent_days: 7
- state_class: measurement
- threshold_pct: -8.0
- updated_ts: 1792924922.490622
- valid: False
- window_days: 30

- `sensor.daikin_cycle_ml_cop_vs_datasheet_pct`
- State: unknown %
- Friendly: Daikin Cycle ML COP vs datasheet pct | icon: mdi:chart-bell-curve
- Attributen:
- band: None
- cop_measured: None
- cop_normalized_a7w35: None
- deviation_pct: None
- model: basisprofiel
- ref_cop_a7w35: None
- state_class: measurement

- `sensor.daikin_cycle_ml_current_cycle`
- State: heating
- Friendly: Daikin Cycle ML Current cycle | icon: mdi:hvac
- Attributen:
- dt_k: 4.3
- duration_min: 39.59
- rps: 12.0
- started_at: 1792922576.8552513

- `sensor.daikin_cycle_ml_cycle_state`
- State: running
- Friendly: Daikin Cycle ML Cycle state | icon: mdi:state-machine
- Attributen:
- configured_cop_sensor: None
- configured_entry_id: 01M5QVJB7MJHWM3V01YBT8F55E
- configured_indoor_sensor: sensor.espaltherma_indoor_ambient_temp_r1t
- configured_language: en
- configured_model: basisprofiel
- configured_power_sensor: None
- configured_source_sensor: sensor.althermasensors

- `sensor.daikin_cycle_ml_cycles_today`
- State:
- Friendly: Daikin Cycle ML Cycles today | icon: mdi:counter
- Attributen:
- avg_duration_min: None
- avg_off_time_min: None
- cycles_last_hour:
- longest_cycle_min: None
- non_transient_cycles_today:
- short_offs:
- short_ratio_pct: None
- short_runs:
- shortest_cycle_min: None
- state_class: total_increasing
- transient_cycles_today:
- transient_ratio_pct: None

- `sensor.daikin_cycle_ml_daily_summary_recent`
- State:
- Friendly: Daikin Cycle ML Daily summary recent | icon: mdi:calendar-range
- Attributen:
- days: []
- days_available:
- days_count:
- latest_day: None
- oldest_day: None
- state_class: measurement
- totals_by_mode: {'heating': {'days': 0, 'cycles': 0, 'dur_min': 0.0, 'buh': 0, 'defrost': 0}, 'dhw': {'days': 0, 'cycles': 0, 'dur_min': 0.0, 'buh': 0, 'defrost': 0}, 'cooling': {'days': 0, 'cycles': 0, 'dur_min': 0.0, 'buh': 0, 'defrost': 0}}

- `sensor.daikin_cycle_ml_defrost_count_today`
- State:
- Friendly: Daikin Cycle ML Defrost count today | icon: mdi:snowflake-melt
- Attributen:
- avg_duration_s: None
- last_defrost_ts: None
- state_class: total_increasing

- `sensor.daikin_cycle_ml_defrost_duration_today`
- State: 0 s
- Friendly: Daikin Cycle ML Defrost duration today | device_class: duration | icon: mdi:timer-sand
- Attributen:
- avg_duration_s: None
- defrost_count:
- state_class: total_increasing

- `sensor.daikin_cycle_ml_duty_cycle_today`
- State: 5.19 %
- Friendly: Daikin Cycle ML Duty cycle today | icon: mdi:gauge
- Attributen:
- band: low
- elapsed_s: 45752
- runtime_s: 2375
- state_class: measurement

- `sensor.daikin_cycle_ml_electrical_energy_cooling_today`
- State: 0.0 kWh
- Friendly: Daikin Cycle ML Electrical energy cooling today | device_class: energy | icon: mdi:lightning-bolt
- Attributen:
- cooling_el_kwh: 0.0
- cooling_th_kwh: 0.0
- dhw_el_kwh: 0.0
- dhw_th_kwh: 0.0
- heating_el_kwh: 0.0
- heating_th_kwh: 1.213
- state_class: total_increasing
- total_el_kwh: 0.0
- total_th_kwh: 1.213

- `sensor.daikin_cycle_ml_electrical_energy_dhw_today`
- State: 0.0 kWh
- Friendly: Daikin Cycle ML Electrical energy dhw today | device_class: energy | icon: mdi:lightning-bolt
- Attributen:
- cooling_el_kwh: 0.0
- cooling_th_kwh: 0.0
- dhw_el_kwh: 0.0
- dhw_th_kwh: 0.0
- heating_el_kwh: 0.0
- heating_th_kwh: 1.213
- state_class: total_increasing
- total_el_kwh: 0.0
- total_th_kwh: 1.213

- `sensor.daikin_cycle_ml_electrical_energy_heating_today`
- State: 0.0 kWh
- Friendly: Daikin Cycle ML Electrical energy heating today | device_class: energy | icon: mdi:lightning-bolt
- Attributen:
- cooling_el_kwh: 0.0
- cooling_th_kwh: 0.0
- dhw_el_kwh: 0.0
- dhw_th_kwh: 0.0
- heating_el_kwh: 0.0
- heating_th_kwh: 1.213
- state_class: total_increasing
- total_el_kwh: 0.0
- total_th_kwh: 1.213

- `sensor.daikin_cycle_ml_electrical_energy_total_today`
- State: 0.0 kWh
- Friendly: Daikin Cycle ML Electrical energy total today | device_class: energy | icon: mdi:lightning-bolt-circle
- Attributen:
- cooling_el_kwh: 0.0
- cooling_th_kwh: 0.0
- dhw_el_kwh: 0.0
- dhw_th_kwh: 0.0
- heating_el_kwh: 0.0
- heating_th_kwh: 1.213
- state_class: total_increasing
- total_el_kwh: 0.0
- total_th_kwh: 1.213

- `sensor.daikin_cycle_ml_heating_curve_advice`
- State: unknown
- Friendly: Daikin Cycle ML Heating curve advice | icon: mdi:chart-line
- Attributen:
- besparing_cop_pct: 0.0
- betrouwbaarheid: 0.0
- bucket: ``
- buckets: {}
- comfort_cap: None
- comfort_impact: 0.0
- delta_c: 0.0
- doel_setpoint: None
- huidige_lwt: None
- huidige_setpoint: None
- offset_delta_c: 0.0
- optimale_lwt: None
- reason: ``
- samples:
- slope_delta: None
- state_label: Unknown
- step_c:
- tracking_error: None

- `sensor.daikin_cycle_ml_hp_specs`
- State: basisprofiel
- Friendly: Daikin Cycle ML HP specs | icon: mdi:heat-pump-outline
- Attributen:
- configured: False
- model: basisprofiel
- reason: no datasheet for this model

- `sensor.daikin_cycle_ml_last_cycle`
- State: unknown score
- Friendly: Daikin Cycle ML Last cycle | icon: mdi:star-outline
- Attributen:
- buh_used: False
- cluster: None
- defrost_used: False
- dt_avg_k: None
- dt_max_k: None
- duration_min: None
- end_ts: None
- mode: None
- outdoor_temp: None
- rps_avg: None
- rps_max: None
- start_ts: None
- state_class: measurement
- thermal_kw_avg: None

- `sensor.daikin_cycle_ml_learned_thresholds`
- State: unknown min
- Friendly: Daikin Cycle ML Learned thresholds | device_class: duration | icon: mdi:brain
- Attributen:
- adaptive_enabled: False
- good_off_min: None
- state_class: measurement
- target_cycles_per_day: None

- `sensor.daikin_cycle_ml_quality_today`
- State: unknown score
- Friendly: Daikin Cycle ML Quality today | icon: mdi:star-outline
- Attributen:
- bad_cycles:
- good_cycles:
- good_ratio_pct: None
- state_class: measurement

- `sensor.daikin_cycle_ml_runtime_buh_today`
- State: 0 s
- Friendly: Daikin Cycle ML Runtime BUH today | device_class: duration | icon: mdi:fire-alert
- Attributen:
- buh_energy_kwh_est: 0.0
- state_class: total_increasing
- step1_s:
- step2_s:

- `sensor.daikin_cycle_ml_runtime_compressor_today`
- State: 2375 s
- Friendly: Daikin Cycle ML Runtime compressor today | device_class: duration | icon: mdi:timer-outline
- Attributen:
- avg_cycle_s: None
- buh_step1_s:
- buh_step2_s:
- cooling_s:
- cycle_count:
- dhw_s:
- heating_s:
- state_class: total_increasing

- `sensor.daikin_cycle_ml_scop_running_365d`
- State: unknown SPF
- Friendly: Daikin Cycle ML SCOP running 365d | icon: mdi:chart-timeline-variant
- Attributen:
- scop_365d: None
- scop_365d_n:
- season_start_month: 10
- spf_season_n:
- spf_ytd: None
- spf_ytd_n:
- state_class: measurement
- updated_ts: 1792923632.4909842

- `sensor.daikin_cycle_ml_source_health`
- State: 0.02 s
- Friendly: Daikin Cycle ML Source health | device_class: duration | icon: mdi:heart-pulse
- Attributen:
- coordinator_errors:
- is_stale: False
- last_sample_age_s: 0.02
- missing_attrs_count:
- missing_attrs_list: []
- state_class: measurement

- `sensor.daikin_cycle_ml_spf_season`
- State: unknown SPF
- Friendly: Daikin Cycle ML SPF season | icon: mdi:calendar-star
- Attributen:
- scop_365d: None
- scop_365d_n:
- season_start_month: 10
- spf_season_n:
- spf_ytd: None
- spf_ytd_n:
- state_class: measurement
- updated_ts: 1792923632.4909842

- `sensor.daikin_cycle_ml_spf_ytd`
- State: unknown SPF
- Friendly: Daikin Cycle ML SPF YTD | icon: mdi:calendar-today
- Attributen:
- scop_365d: None
- scop_365d_n:
- season_start_month: 10
- spf_season_n:
- spf_ytd: None
- spf_ytd_n:
- state_class: measurement
- updated_ts: 1792923632.4909842

- `sensor.daikin_cycle_ml_thermal_energy_cooling_today`
- State: 0.0 kWh
- Friendly: Daikin Cycle ML Thermal energy cooling today | device_class: energy | icon: mdi:snowflake
- Attributen:
- cooling_el_kwh: 0.0
- cooling_th_kwh: 0.0
- dhw_el_kwh: 0.0
- dhw_th_kwh: 0.0
- heating_el_kwh: 0.0
- heating_th_kwh: 1.213
- state_class: total_increasing
- total_el_kwh: 0.0
- total_th_kwh: 1.213

- `sensor.daikin_cycle_ml_thermal_energy_heating_today`
- State: 1.21 kWh
- Friendly: Daikin Cycle ML Thermal energy heating today | device_class: energy | icon: mdi:fire
- Attributen:
- cooling_el_kwh: 0.0
- cooling_th_kwh: 0.0
- dhw_el_kwh: 0.0
- dhw_th_kwh: 0.0
- heating_el_kwh: 0.0
- heating_th_kwh: 1.213
- state_class: total_increasing
- total_el_kwh: 0.0
- total_th_kwh: 1.213

- `sensor.daikin_cycle_ml_thermal_power_live`
- State: 1.95 kW
- Friendly: Daikin Cycle ML Thermal power live | device_class: power | icon: mdi:fire
- Attributen:
- calculation_source: flow_dt
- input_cop: None
- input_dt_k: 4.3
- input_flow_lmin: 6.5
- input_power_w: None
- input_rps: 12.0
- state_class: measurement


---

## Binary sensors (15)


- `binary_sensor.daikin_cycle_ml_buh_active` — off
- Friendly: Daikin Cycle ML BUH active | device_class: heat
- Attributen:
- step:

- `binary_sensor.daikin_cycle_ml_compressor_running` — on
- Friendly: Daikin Cycle ML Compressor running | device_class: running

- `binary_sensor.daikin_cycle_ml_cooling_active` — off
- Friendly: Daikin Cycle ML Cooling active | device_class: cold

- `binary_sensor.daikin_cycle_ml_defrost_active` — off
- Friendly: Daikin Cycle ML Defrost active | device_class: running

- `binary_sensor.daikin_cycle_ml_dhw_active` — off
- Friendly: Daikin Cycle ML DHW active

- `binary_sensor.daikin_cycle_ml_dhw_pendulum` — off
- Friendly: Daikin Cycle ML DHW pendulum | device_class: problem

- `binary_sensor.daikin_cycle_ml_heating_active` — on
- Friendly: Daikin Cycle ML Heating active | device_class: heat

- `binary_sensor.daikin_cycle_ml_high_cycle_rate` — off
- Friendly: Daikin Cycle ML High cycle rate | device_class: problem

- `binary_sensor.daikin_cycle_ml_missing_attributes` — off
- Friendly: Daikin Cycle ML Missing attributes | device_class: problem

- `binary_sensor.daikin_cycle_ml_pendulum_daily` — off
- Friendly: Daikin Cycle ML Pendulum daily | device_class: problem

- `binary_sensor.daikin_cycle_ml_pendulum_hourly` — off
- Friendly: Daikin Cycle ML Pendulum hourly | device_class: problem

- `binary_sensor.daikin_cycle_ml_setpoint_oscillating` — off
- Friendly: Daikin Cycle ML Setpoint oscillating | device_class: problem

- `binary_sensor.daikin_cycle_ml_short_off` — off
- Friendly: Daikin Cycle ML Short off | device_class: problem

- `binary_sensor.daikin_cycle_ml_short_run` — off
- Friendly: Daikin Cycle ML Short run | device_class: problem

- `binary_sensor.daikin_cycle_ml_source_stale` — off
- Friendly: Daikin Cycle ML Source stale | device_class: problem


---

## Andere (1)


- `update.daikin_cycle_ml_update` — off


---

[ Voor 4% gewijzigd door traduzione op 25-10-2026 11:44 ]

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML


  • traduzione
  • Registratie: September 2014
  • Laatst online: 09:54
Afbeeldingslocatie: https://tweakers.net/i/Syk_qOt69l4g28gRE5GAZVmbz3o=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/wURKnX4s3TPOkO3TYhly8usD.png?f=user_large


Bovenstaande melding krijg ik, ik heb het refresh interval op de ESPaltherma - v2 op 10 seconde staan.

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
traduzione schreef op zondag 25 oktober 2026 @ 12:44:
[Afbeelding]


Bovenstaande melding krijg ik, ik heb het refresh interval op de ESPaltherma - v2 op 10 seconde staan.
is dat eenmalig tijdens de opstart of na dhw/defrost?

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hedzie schreef op zondag 25 oktober 2026 @ 00:28:
Top.

Ik heb nu in alle kaarten de sensor namen aangepast naar NL.

Krijg nu wel wat info in de kaarten, maar nog niet alles.


[Afbeelding]

Ben er nog niet helemaal achter waar dat aan ligt.

Ik heb bij Custom mijn gegevens van de WP ingevuld, maar wordt niet zichtbaar.
Update — er staat een nieuwe tabbed kaart op GitHub. Lost het NL-entity probleem structureel op: geen handmatige sensor-aanpassingen meer nodig, ook niet bij custom entry-namen.

https://github.com/elRadix/daikin_cycle_ml/tree/main/dashboard/cards/daily-summary-tabbed

Wat is er anders:
  • 5 tabs — Overview, Quality, Cycles, Duration, Events
  • Automatische EN/NL entity-resolver (recent_dagoverzicht, wp_specs, cyclus_status, ontdooiingen_vandaag, ...)
  • Popup-details op elk element — bar, dot, tile, stat, hero
  • Adaptieve Y-as — quality chart schaalt naar 60-100 als alle data hoog is
  • Persistente tab-state over de 30s tick updates (blijft op je gekozen tab)
  • 5 variabelen om te tunen: lang_override, default_tab, default_window, chart_height, show_hints
Vereist dezelfde 4 HACS frontend cards als de bestaande kaarten (stack-in-card, mushroom-template-card, button-card, card-mod).

Tip voor mixed EN/NL systemen: als je HA UI Engels is maar je entities zijn Nederlands, forceer de labels met lang_override: 'nl' in de variables. Andersom werkt ook.
Afbeeldingslocatie: https://tweakers.net/i/IxpBJKly1EhB_KZtQnvgowfvZFc=/232x232/filters:strip_exif()/f/image/k5OmU9HGK07O7ZcuSDeOo7KQ.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/Vb61vqrcUxZU2Gw4TLtldi_Z-e4=/232x232/filters:strip_exif()/f/image/qSucz3Q09LYaFhpb8TC3mD1l.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/M2nttMOBF6xjRWWw9k5JgPmXREk=/232x232/filters:strip_exif()/f/image/5Y3pedwGwClBDTxE9Rx1kzRI.png?f=fotoalbum_tile
Afbeeldingslocatie: https://tweakers.net/i/d4IwHnHaCTYpki4rNe7kqKe4yMo=/232x232/filters:strip_exif()/f/image/Pq4YiLWTubo1mVox11uCaRQm.png?f=fotoalbum_tile
Probeer het uit en laat me weten of het werkt — alle feedback is welkom.

Noot over timing: na 1 week draaitijd heb je meer cycle-data verzameld. Dan zijn de quality en cycles charts voller, en laten de popup-details en trends pas echt zien wat ze waard zijn.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Korte notificatie voor de bestaande gebruikers — zojuist is v1.12.9 van de Daikin Cycle ML-integratie gereleased. Geen grote feature-drop dit keer, wel een release die jullie data eindelijk echt betrouwbaar maakt. Upgrade wordt aangeraden.
Wat er is gefixt
  • DHW thermal output — je warmwater-cycli gaven eerder 0 kW thermisch vermogen terwijl de compressor gewoon liep. Nu meten we DHW direct via flow × ΔT met de fysisch correcte koudzijde-sensor (R4T, niet R5T — die overschatte ~45%). Je ziet nu realistische kW in je dashboard en correcte SPF.
  • Schone cycle-grenzen — korte transient-events (30–60s: defrost, service, sensor-hik) knipten een heating-run in tweeën. De detector overbrugt ze nu naar één doorlopende cyclus. Minder spookcycli, kloppende duty cycle.
  • Historische sample-counts gerepareerd — oudere cycli hadden opgeblazen cop_sample_count-waardes (tot 10× te hoog). Een nieuwe migratie repareert je hele historie met een veilige drempel (>1,5× real).
  • Idempotente reconfigure — reconfigure verbreekt niet langer je entity-IDs, dashboards of automatiseringen.

Volledige model-dekking — 40 Altherma-definities, CI-geverifieerd

De integratie valideert nu 40 Daikin Altherma-modeldefinities tegen de upstream ESPAltherma-repo op elke pull request. Als een modeldefinitie ooit een vereist attribuut verliest, faalt onze CI voordat het jouw installatie kan breken.

Nieuw in deze release: de HT ERRQ-ERSQ outdoor unit (11-16kW) — outdoor-only definitie, gedocumenteerd als "partial model" met zichtbare limieten.

Gedekte families: EBLA/EDLA D Monobloc · EPRA/ERGA D+E (incl. ECH2O) · ERLA D · Altherma 4 (EPSK-EPSKS) · LT EBLQ/EDLQ/CA · HT EKHBRD-ERRQ + ERRQ-ERSQ · GEO (EGSAH/EGSQH) · Hybrid · Multi DHW · Mini chiller · Protocol S.

Volledige matrix: MODEL_COMPATIBILITY.md
Upgraden

Via HACS: HACS → Integrations → Daikin Cycle ML → Redownload → HA herstarten.

De integratie blijft backwards-compatible; geen config-wijzigingen nodig.
48-uurs watch

We volgen de eerste 48 uur via #163. Zie je onverwachte cyclusaantallen of rare DHW-kW's? Open een issue met logs — helpt ons valideren.
LinksFijne avond allemaal. Vragen zoals altijd hier of op GitHub.

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
Blijft fascinerend wat je doet!


Nog wel een vraag.

Afbeeldingslocatie: https://tweakers.net/i/ynK1QR9YvZ0bVTvjK-MpH7csFTw=/800x/filters:strip_icc():strip_exif()/f/image/FwZ8ABGtwmKfmH9pYBg9h0vg.jpg?f=fotoalbum_large Hoe krijg ik de linker kaart gevuld met gegevens?

Ik heb een Altherma 3 erga08eav3h buitenunit en de ehvx08s23ej9w binnenunit.

Deze staat niet in de lijst, dus kies ik custom, vul de json in met family enz, maar krijg de info er niet in.

Ook ontbreekt lwt now en lwt opt.

En de rechter kaart mist de data bij heating curve advice.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hoi Hedzie,

1. Je model: ERGA08EAV3H zit (nog) niet in de bundled lijst

Je buitenunit ERGA08EAV3H is een Split-systeem (met de EHVX08S23E9JW binnenunit). In de datasheets.json van de integratie zitten op dit moment alleen EPRA- (Monoblock) en ERLA-modellen — geen ERGA.

Wat je moet doen:

· Kies in de config flow niet "Custom", maar ERLA08DAV3 (Split, 8 kW, R32). Dat is de dichtstbijzijnde match en wordt door zowel de integratie als de heating-curve-kaart herkend.
· De kaart leest configured_model en pakt de eerste 6 tekens (erla08). In de HP_SPECS-tabel van de kaart staat erla08 wél: kw: 8, lwtMin: 25, lwtMax: 55, nomCop: 4.5, family: 'Split', ref: 'R32'.
· Wil je toch Custom gebruiken? Dan moet je JSON exact het schema van datasheets.json volgen (zie custom_components/daikin_cycle_ml/data/datasheets.json). Een halve JSON met alleen "family" is niet genoeg — de kaart heeft kw, lwt_min, lwt_max, nom_cop en points nodig.

2. De heating-curve-kaart is leeg omdat er nog geen buckets zijn

De linkerkant leest sensor.daikin_cycle_ml_heating_curve_advice. Die sensor blijft unknown totdat de integratie meerdere cycli bij verschillende buitentemperaturen heeft gezien.

Uit je rechterkaart zie ik: RUNS: 3. Dat zijn 3 cycli. De kaart heeft minimaal:
· 2 buckets voor een regressielijn
· 5+ buckets verdeeld over een breed buitentemperatuurbereik voor een betrouwbare fit

Met 3 cycli op vrijwel dezelfde buitentemperatuur is er nog geen bucket, dus geen huidige_lwt, geen lwt_opt, geen savings, en geen advies. Dat verklaart ook waarom Heating Curve Advice unknown / unknown toont — de confidence zit onder STOOKLIJN_MIN_CONFIDENCE (0.7).

Dit is geen bug, maar een korte opwarmperiode. Laat de warmtepomp 3–7 dagen draaien met wisselende buitentemperaturen (zodat je zowel 5°C als 12°C als 18°C buiten ziet). Daarna verschijnen de bubbles en het advies vanzelf.

3. Even checken of de sensor wél bestaat

Plak dit in Developer Tools → Template:
code:
1
2
3
4
Advice state: {{ states('sensor.daikin_cycle_ml_heating_curve_advice') }}
Buckets: {{ state_attr('sensor.daikin_cycle_ml_heating_curve_advice', 'buckets') }}
Huidige LWT: {{ state_attr('sensor.daikin_cycle_ml_heating_curve_advice', 'huidige_lwt') }}
Model: {{ state_attr('sensor.daikin_cycle_ml_cycle_state', 'configured_model') }}}
·
  • buckets: [] of None → nog te weinig data, gewoon wachten.
  • buckets heeft al 1–2 waarden → de kaart zou ze moeten tonen; hard refresh (Ctrl+Shift+R) en check de browserconsole (F12).
  • configured_model is leeg of custom → opnieuw configureren met ERLA08DAV3.
4. Waarom LWT Now / LWT Opt ontbreken

Die twee tegels komen uit dezelfde heating_curve_advice-sensor. Zolang die unknown is, blijven ze leeg. Ze vullen zich zodra er een bucket is met een huidige_lwt-waarde.

Laat me weten wat de Template-output geeft na een paar dagen, dan kunnen we zien of de buckets zich vullen. Als je tegen die tijd nog steeds buckets: [] ziet, is er iets anders aan de hand.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
v1.13.0 is zonet verschenen — de grootste release tot nu toe. Hieronder wat er nieuw is, wat je ermee kunt, en hoe je upgradet.

✨ Nieuwe features in v1.13.0

🔥 High-temperature (HT) ondersteuning
HT-systemen (EKHBRD + ERRQ, ERRQ + ERSQ) werden voorheen behandeld als LT-systemen met "te lange looptijden". Nu krijgen ze een eigen profiel:
  • 45 min defrost-interval (was 30) — HT ontdooit legitiem langer
  • 300 min cycle-tolerance (was 240) — HT-runs zijn nu eenmaal lang
  • 10 K dT-drempel (was 5) — HT produceert grotere delta's
  • 30 min minimum-looptijd (was 20)
  • 3-punts COP-curves: W35 / W65 / W80 — echte HT-operating points
Cycle-detectie kapt HT-runs niet meer af "omdat ze te lang duren naar LT-maatstaven".

📊 53 modellen, elk met eigen datasheet-COP
Alle Daikin Altherma families zitten er nu in: EPRA, ERLA, ERGA, EPGA, EBLA, EDLA, EDLQ, EPSK, EBLQ (CV3), EKHBRD, ERRQ, ERSQ. Elke curve komt uit officiële Daikin service-manuals — niet geïnterpoleerd, niet gemiddeld. Als de integratie zegt "je COP is laag", vergelijkt hij met jouw model, niet met een generiek getal.

Datasheet-dekking per model: 6 volledige 6-9-punts curves (EPRA 08/10/12, ERLA 11/14/16), 12 twee-punts (ERGA, EBLA, EPGA), 6 HT drie-punts (EKHBRD, ERRQ), 3 nominaal-COP. Modellen zonder volledige curve kun je handmatig overschrijven met je eigen datasheet via de upload_datasheet-service.

🚫 Slimmere filtering van meet-artefacten
  • COP > 11 = onmogelijk → NULL (was: getoond als echt)
  • Thermisch > 14 kW = onmogelijk voor huishoudunits → NULL
  • Sample-count blijft zichtbaar in diagnostics, ook als de waarde gegate is
Geen "mijn 6 kW pomp claimt 15 kW" meer. Beter NULL dan een verkeerd getal.

🗄️ Historische data automatisch hersteld
Oudere cycles met ontbrekende thermische waarden worden bij eerste boot herberekend uit de samples die al op je schijf staan. Eenmalig, idempotent, geen externe calls. Sommige waarden blijven NULL als de input fysiek ontbreekt — wederom: NULL > fout.

⚡ ESPAltherma-upstream sync
Adopteert de laatste model-definitie (ERRQ-ERSQ outdoor unit, het 40e def-bestand). Firmware-updates van ESPAltherma blijven werken.

🔧 Model wijzigen zonder herinstallatie
Model is config-entry data, geen optie. Switchen gaat via:
  1. Instellingen → Apparaten en diensten → Daikin Cycle ML
  2. Tandwiel-icoon (Configureren)
  3. Kies "Source sensor and model only (quick)"
  4. Selecteer je model uit 53 opties
  5. Bevestig — integratie herlaadt zichzelf
Geen uninstall, geen dataverlies, geen dashboard dat omvalt.

📋 Ondersteunde modellen
  • Monoblock LT — EPRA / ERLA (04-16 kW), EBLA (04-08), EDLA (04-16), EDLQ (04-16), EPSK (04-08), EBLQ CV3 (05-16)
  • Split LT — ERGA (04-08), EPGA (11-16)
  • HT split — EKHBRD + ERRQ (011 / 014 / 016, tot 80°C LWT)
  • HT outdoor — ERRQ + ERSQ (011 / 014 / 016, tot 80°C LWT)
Volledige matrix met per-model curves: https://github.com/elRadi...cs/MODEL_COMPATIBILITY.md

⬆️ Upgraden via HACS
  1. HACS → Daikin Cycle ML
  2. Drie puntjes → Redownload
  3. Selecteer v1.13.0
  4. Herstart Home Assistant
Verifieer na herstart:
  • Integratie toont v1.13.0 in Apparaten en diensten
  • Entiteiten-lijst ongewijzigd
  • Geen "Setup failed for custom integration" in Logs
  • Eerste boot: mogelijk een regel over "v19 thermal_kw_avg rebuild" — dat is de historische data-herstel, verwacht en veilig
⚠️ Bekende limitaties[/size]
  • HT COP-vs-datasheet % gebruikt nog W35 als referentie — false-positive low-COP alert mogelijk op W65/W80. Fix in v1.14.0.
  • v19 heating-recompute conservatief (R4T-sensor ontbreekt in samples). NULL of biased-laag. Issue #184.
  • Cycle-duration kan 2-30s afwijken van (end − start). Cosmetisch. Issue #183.
🔗 Links[/size]Model ontbreekt of bug gevonden? Graag een issue op GitHub met je model-naam, je ESPAltherma attribute-definitie (dump indien mogelijk), en een screenshot uit Diagnostics.

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
Hi,

Dit is het resultaat:

Resultaattype: string
code:
1
2
3
4
Advice state: unknown
Buckets: {'unknown': {'cop': 5.59, 'n': 108, 'lwt': None}}
Huidige LWT: None
Model: erga08eav3}

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Wat ik nodig heb om dit gericht na te kijken :
1. Attribuut-dump van ie source sensor (Developer Tools -> Template):
code:
1
2
{% for k in states.sensor.althermasensors.attributes.keys() %}{{ k }}
{% endfor %}
Ik wil zien of Outdoor air temp.(R1T) en Leaving water temp. after BUH (R2T) exact zo heten op jouw sensor, of dat jouw ERGA-variant andere namen gebruikt (bv. zonder (R1T), of R1T-Outdoor air temp., of iets anders)

2. Diagnostics download (Instellingen -> Apparaten & Diensten > Daikin Cycle ML -> 3 puntjes -> Diagnostica,
Mijin vermoeden: jouw ERGAO8EAV3H exposeert de LWT en/of buitentemperatuur onder een net andere attribuutnaam dan de canonieke, en de sample-collector valt terug op NULL.

anders maak je even een issue in github en met jou log gegevens

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

Ik ben nu enkele dagen bezig om het werkend te krijgen , echter lukt het me maar niet om alle velden netjes gevuld te krijgen. Mogelijk heb ik zelf wat dingen afgebroken maar ik krijg het niet voor elkaar om te zien waar het probleem zit.


De COP lijkt hij maar niet te kunnen vinden als ik naar mijn kaarten kijk:

Afbeeldingslocatie: https://tweakers.net/i/D6BaAe9zaVKNqZ9PKtX3Tx4OTiE=/x800/filters:strip_exif()/f/image/QOkg3nxfUQbwWfbhj0bp7y0m.png?f=fotoalbum_large

Deze kaart lijkt op zich wel goed te werken:

Afbeeldingslocatie: https://tweakers.net/i/HHrWeFRMLN7nuG8QDlD4_VBYJR8=/x800/filters:strip_exif()/f/image/TSkJehxz8YTYZZMsGy6JTyjy.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/194d3a8-1TGYnrxByWmVCPbxhHQ=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/CHyoL7iE3ynQnavsm8pS6hbd.png?f=user_large

Deze werkt dan weer niet.

Afbeeldingslocatie: https://tweakers.net/i/WuuDNJDoivHl-Ov7ETVRaMlqK2Q=/x800/filters:strip_exif()/f/image/L0ofMYbkaq9dB9NbGwnZXABB.png?f=fotoalbum_large

Ik zie in de COP samples van mijn diagnostics ook niets verzameld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
{
  "home_assistant": {
    "arch": "x86_64",
    "dev": false,
    "docker": true,
    "hassio": true,
    "installation_type": "Home Assistant OS",
    "os_name": "Linux",
    "os_version": "6.18.52-haos",
    "python_version": "3.14.9",
    "timezone": "Europe/Amsterdam",
    "version": "2026.10.4",
    "virtualenv": false,
    "container_arch": "amd64",
    "supervisor": "2026.10.4",
    "host_os": "Home Assistant OS 18.3",
    "docker_version": "29.7.2",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "frank_energie": {
      "documentation": "https://github.com/HiDiHo01/home-assistant-frank_energie",
      "version": "2026.9.20",
      "requirements": [
        "python-frank-energie==2026.9.20"
      ]
    },
    "hacs": {
      "documentation": "https://hacs.xyz/docs/use/",
      "version": "2.0.5",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "daikin_cycle_ml": {
      "documentation": "https://github.com/elRadix/daikin_cycle_ml",
      "version": "1.13.0",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "daikin_cycle_ml",
    "name": "Daikin Cycle ML",
    "codeowners": [
      "elRadix"
    ],
    "config_flow": true,
    "dependencies": [
      "http"
    ],
    "documentation": "https://github.com/elRadix/daikin_cycle_ml",
    "integration_type": "hub",
    "iot_class": "calculated",
    "issue_tracker": "https://github.com/elRadix/daikin_cycle_ml/issues",
    "loggers": [
      "custom_components.daikin_cycle_ml"
    ],
    "quality_scale": "gold",
    "requirements": [],
    "version": "1.13.0",
    "is_built_in": false,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 0.0022603640099987388
    },
    "01M5QYJQ4FD775K9BRG1JG5A8Q": {
      "wait_import_platforms": -2.0015441249706782,
      "config_entry_setup": 2.254668463021517
    }
  },
  "data": {
    "entry": {
      "entry_id": "01M5QYJQ4FD775K9BRG1JG5A8Q",
      "version": 1,
      "title": "Daikin Cycle ML - epra12eav3 (sensor.none_althermasensors)",
      "data": {
        "attribute_mode": "auto",
        "model": "epra12eav3",
        "source_sensor": "sensor.none_althermasensors"
      },
      "options": {
        "comfort_max_c": 24.0,
        "comfort_min_c": 20.0,
        "compressor_rps_threshold": 3.0,
        "cop_sensor_entity": "sensor.cop_sensor_live",
        "dhw_pendulum_cycles_per_hour": 3.0,
        "fallback_power_threshold_w": 200.0,
        "good_dt_threshold_k": 5.0,
        "good_off_threshold_min": 20.0,
        "good_run_threshold_min": 45.0,
        "indoor_temp_sensor": "sensor.kamertemperatuur",
        "pendulum_cycles_per_day": 40.0,
        "persistent_enabled": true,
        "power_sensor_entity": "sensor.daikin_ml_daikin_cycle_ml_energy_wp",
        "quiet_hours_enabled": false,
        "quiet_hours_end": "07:00",
        "quiet_hours_start": "22:00",
        "short_off_threshold_min": 5.0,
        "short_run_threshold_min": 20.0,
        "target_cycles_per_day": 8.0
      }
    },
    "coordinator": {
      "state": "idle",
      "mode": "unknown",
      "missing_attrs": [],
      "last_sample_ts": 1793135581.9670064,
      "last_success_ts": 1793135581.9670064,
      "cycle_start_ts": 0.0,
      "errors": 0,
      "errors_total": 0,
      "attrs_sample": {
        "Operation Mode": "Fan Only",
        "Defrost Operation": false,
        "Oil Return Operation": false,
        "Target Cond. Temp.": 24.2188,
        "Outdoor air temp.(R1T)": 10.9,
        "Discharge pipe temp.(R2T)": 21.7,
        "Suction pipe temp.(R3T)": 17.1,
        "INV primary current (A)": 0.0,
        "INV frequency (rps)": 0.0,
        "I/U operation mode": "DHW",
        "DHW setpoint": 42.0,
        "LW setpoint (main)": 35.0,
        "3way valve(On:DHW_Off:Space)": false,
        "BUH Step1": false,
        "BUH Step2": false,
        "Water pump operation": false,
        "Leaving water temp. before BUH (R1T)": 24.7,
        "Leaving water temp. after BUH (R2T)": 21.0,
        "Inlet water temp.(R4T)": 18.5,
        "DHW tank temp. (R5T)": 51.3
      }
    },
    "store": {
      "cycle_count": 19,
      "counters": {
        "cycles_total": 19,
        "cycles_heating": 15,
        "cycles_dhw": 4,
        "cycles_cooling": 0,
        "_day_key": "2026-10-27",
        "cycles_today": 7,
        "good_cycles_today": 6,
        "bad_cycles_today": 1
      },
      "last_cycle": {
        "start_ts": 1793102674.9491673,
        "end_ts": 1793104654.9486647,
        "duration_s": 1979,
        "mode": "dhw",
        "dT_max": 3.3999999999999986,
        "dT_avg": 2.507575757575758,
        "rps_max": 41,
        "rps_avg": 38.75757575757576,
        "outdoor_temp": 16.7,
        "buh_used": 0,
        "defrost_used": 0,
        "quality_score": 50,
        "label": null,
        "cluster_id": null,
        "cop_avg": 1.5576763763584613,
        "cop_sample_count": null,
        "cop_sample_stdev": 0.40451956403247447,
        "cop_confidence": "none",
        "thermal_kw_avg": 4.769918333333333,
        "is_transient": 0
      }
    },
    "baseline": {
      "total_samples": 19,
      "modes": {
        "dhw": {
          "sample_count": 4
        },
        "heating": {
          "sample_count": 15
        }
      }
    },
    "adaptive": {
      "total_samples": 19,
      "modes": [
        "dhw",
        "heating"
      ],
      "enabled": false
    },
    "clusters": {
      "centroids": 3,
      "labels": {
        "2": "pendulum",
        "0": "dhw_like",
        "1": "normal"
      },
      "counts": {}
    },
    "cop_analysis": {
      "state": "unknown",
      "betrouwbaarheid": 0.0,
      "bucket_current": "",
      "buckets": {},
      "cop_today": {},
      "total_samples": 0
    },
    "database": {
      "path": "/config/.storage/daikin_cycle_ml_01M5QYJQ4FD775K9BRG1JG5A8Q.db",
      "is_open": true,
      "counts": {
        "cycles": 19,
        "features": 19,
        "model_state": 22,
        "alerts": 0,
        "daily_summary": 6,
        "cop_samples": 0
      },
      "extra": {
        "daily_summary": [
          {
            "day": "2026-10-25",
            "mode": "dhw",
            "cycles": 1,
            "total_duration_s": 2909,
            "duration_min": 2909,
            "duration_max": 2909,
            "quality_sum": 80,
            "dt_max_sum": 4.200000000000003,
            "rps_sum": 37.30927835051546,
            "buh_count": 0,
            "defrost_count": 0,
            "updated_ts": 1792955855.9363916,
            "duration_avg": 2909.0,
            "quality_avg": 80.0,
            "dt_max_avg": 4.2,
            "rps_avg": 37.309
          },
          {
            "day": "2026-10-25",
            "mode": "heating",
            "cycles": 6,
            "total_duration_s": 72628,
            "duration_min": 7769,
            "duration_max": 14400,
            "quality_sum": 600,
            "dt_max_sum": 41.20000000000001,
            "rps_sum": 157.52419406785623,
            "buh_count": 0,
            "defrost_count": 3,
            "updated_ts": 1792955855.9363916,
            "duration_avg": 12104.67,
            "quality_avg": 100.0,
            "dt_max_avg": 6.867,
            "rps_avg": 26.254
          },
          {
            "day": "2026-10-26",
            "mode": "dhw",
            "cycles": 1,
            "total_duration_s": 1859,
            "duration_min": 1859,
            "duration_max": 1859,
            "quality_sum": 50,
            "dt_max_sum": 3.5,
            "rps_sum": 39.54838709677419,
            "buh_count": 0,
            "defrost_count": 0,
            "updated_ts": 1793055514.955184,
            "duration_avg": 1859.0,
            "quality_avg": 50.0,
            "dt_max_avg": 3.5,
            "rps_avg": 39.548
          },
          {
            "day": "2026-10-26",
            "mode": "heating",
            "cycles": 4,
            "total_duration_s": 49050,
            "duration_min": 9180,
            "duration_max": 14400,
            "quality_sum": 400,
            "dt_max_sum": 29.4,
            "rps_sum": 122.84861133622412,
            "buh_count": 0,
            "defrost_count": 3,
            "updated_ts": 1793055514.955184,
            "duration_avg": 12262.5,
            "quality_avg": 100.0,
            "dt_max_avg": 7.35,
            "rps_avg": 30.712
          },
          {
            "day": "2026-10-27",
            "mode": "dhw",
            "cycles": 2,
            "total_duration_s": 3448,
            "duration_min": 1469,
            "duration_max": 1979,
            "quality_sum": 120,
            "dt_max_sum": 14.199999999999996,
            "rps_sum": 70.2065553494125,
            "buh_count": 0,
            "defrost_count": 0,
            "updated_ts": 1793104654.9579027,
            "duration_avg": 1724.0,
            "quality_avg": 60.0,
            "dt_max_avg": 7.1,
            "rps_avg": 35.103
          },
          {
            "day": "2026-10-27",
            "mode": "heating",
            "cycles": 5,
            "total_duration_s": 42238,
            "duration_min": 1439,
            "duration_max": 14400,
            "quality_sum": 470,
            "dt_max_sum": 33.800000000000004,
            "rps_sum": 119.66783801006152,
            "buh_count": 0,
            "defrost_count": 1,
            "updated_ts": 1793104654.9579027,
            "duration_avg": 8447.6,
            "quality_avg": 94.0,
            "dt_max_avg": 6.76,
            "rps_avg": 23.934
          }
        ],
        "last_maintenance_ts": 1793066400.3415058,
        "kmeans_state": {
          "last_attempt_ts": 1793127409.516789,
          "consecutive_failures": 0,
          "last_failure_reason": null,
          "k": 3,
          "n": 19,
          "iterations": 2,
          "inertia": 21494205.749435514,
          "labels": [
            1,
            1,
            0,
            0,
            2,
            0,
            1,
            1,
            1,
            0,
            2,
            0,
            1,
            0,
            2,
            2,
            1,
            2,
            2
          ],
          "centroids": [
            [
              9504.5,
              7.783333333333334,
              4.609337465123918,
              80.66666666666667,
              28.519875456722115,
              11.566666666666668,
              0.0,
              0.8333333333333334,
              3.9321327170376748,
              0.0,
              0.0,
              0.0
            ],
            [
              14400.0,
              6.214285714285715,
              4.696616741258478,
              51.57142857142857,
              26.261139527902078,
              9.957142857142857,
              0.0,
              0.2857142857142857,
              3.9584996985920475,
              0.0,
              0.0,
              0.0
            ],
            [
              2384.1666666666665,
              6.016666666666667,
              3.271322034600843,
              38.166666666666664,
              32.026272462532795,
              13.616666666666667,
              0.0,
              0.0,
              2.1704296099526594,
              0.0,
              0.0,
              0.0
            ]
          ],
          "cluster_sizes": [
            6,
            7,
            6
          ],
          "ts": 1793127409.516123,
          "last_ok_ts": 1793127409.516789,
          "last_scheduled_fire_ts": 1793070000.330281
        },
        "baseline_state": {
          "dim": 12,
          "alpha": 0.01,
          "outlier_skip_z": 5.0,
          "min_samples_before_skip": 20,
          "baselines": {
            "heating": {
              "type": "ewma",
              "dim": 12,
              "n": 15,
              "mean": [
                13901.86240323794,
                5.875735053506185,
                4.367886286926325,
                43.62599455044739,
                27.231961934811295,
                9.563747831980791,
                0.0,
                0.06453801863452821,
                2.937701295193684,
                0.0,
                1.168972181851381,
                0.30354019799222504
              ],
              "m2": [
                3835588.2241041036,
                0.4373216867321061,
                0.023905385457020492,
                153.77823714424818,
                2.3841247597230866,
                1.5038926153027627,
                0.0,
                0.060372862785257504,
                0.2939103895958355,
                0.0,
                21.993015827555265,
                1.5449788026373321
              ],
              "alpha": 0.01,
              "outlier_skip_z": 5.0,
              "min_samples_before_skip": 20
            },
            "dhw": {
              "type": "ewma",
              "dim": 12,
              "n": 4,
              "mean": [
                2875.1529499999997,
                4.250479300000003,
                2.54644756640278,
                45.88119499999999,
                37.28768987169723,
                11.0993027,
                0.0,
                0.0,
                2.1710028814975684,
                0.0,
                0.4019028977272726,
                0.10409806365986393
              ],
              "m2": [
                38837.6197062975,
                0.4398983302715093,
                0.004641177623045266,
                0.5205103719749994,
                0.40964466841909397,
                0.41183226377270976,
                0.0,
                0.0,
                0.004720046865525377,
                0.0,
                7.955473377010966,
                0.5379811357530342
              ],
              "alpha": 0.01,
              "outlier_skip_z": 5.0,
              "min_samples_before_skip": 20
            }
          }
        }
      },
      "per_entry": {
        "01M5QYJQ4FD775K9BRG1JG5A8Q": {
          "path": "/config/.storage/daikin_cycle_ml_01M5QYJQ4FD775K9BRG1JG5A8Q.db",
          "size_bytes": 102400,
          "counts": {
            "cycles": 19,
            "features": 19,
            "model_state": 22,
            "alerts": 0,
            "daily_summary": 6,
            "cop_samples": 0
          }
        }
      },
      "legacy": null
    }
  },
  "issues": []
}

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hoi,

Ik heb je diagnostics doorgespit. Er zijn een paar dingen aan de hand — één is een configuratie-issue dat je zelf kunt fixen, de rest is een echte bug die ik moet oplossen.

1. Je power-sensor is verkeerd 🔴 (dit kun je zelf fixen)

In je config staat:
code:
1
power_sensor_entity: sensor.daikin_ml_daikin_cycle_ml_energy_wp
Dat is een energie-sensor (kWh), geen vermogen-sensor (W). De integratie verwacht een power-sensor in Watt — zoals een Shelly die live het verbruik in W toont. Als je een kWh-sensor invoert, rekent de integratie met "15" alsof het 15 Watt is → COP-berekening klopt niet.

Fix:
  1. Instellingen → Apparaten & Diensten → Daikin Cycle ML
  2. Tandwiel-icoon (Configureren)
  3. Kies "Full reconfigure"
  4. Bij "Power sensor": kies een live vermogen-sensor in W (bijvoorbeeld
    code:
    1
    
    sensor.shelly_..._power
    — niet
    code:
    1
    
    ..._energy
    )
  5. Bevestig
Heb je geen Shelly? Laat het veld leeg — dan valt de integratie terug op
code:
1
flow × ΔT
, minder nauwkeurig maar werkt wel.

2. ECHTE BUG: cop_samples = 0 terwijl 19 cycli bestaan 🔴
code:
1
2
cycles: 19
cop_samples: 0
Dit is niet jouw schuld. Cycle-detectie werkt perfect (15 heating + 4 DHW), maar de sample-collector slaat niets op. Daardoor blijven al je COP-sensoren leeg (vandaag/week/maand/mean allemaal
code:
1
unknown
), en dus ook de stooklijn-kaart.

Dit verklaart exact waarom je al dagen worstelt: het is niet jouw setup, het is een bug in de 300s-sample-collector voor jouw combinatie. Ik ga dit in v1.13.1 fixen.

Dit probleem is inmiddels bij twee gebruikers bevestigd op twee verschillende modellen — dus prioriteit p1, geen randgeval.

3. Je COP-sensor — ik heb meer info nodig 🟡

Je hebt
code:
1
cop_sensor_entity: sensor.cop_sensor_live
geconfigureerd. Wat is dat voor sensor? Waar komt de waarde vandaan?

Want:
  • Als die sensor
    code:
    1
    
    unknown
    of
    code:
    1
    
    0
    teruggeeft, kan de integratie geen samples wegschrijven
  • Je laatste DHW-cyclus toont
    code:
    1
    
    cop_avg: 1.56
    — extreem laag (verwacht 2.5-3.5)
Dat suggereert dat
code:
1
cop_sensor_live
rare waarden teruggeeft. Klopt dat?

Wat ik van je nodig heb
  1. Wat is [code]sensor.cop_sensor_live[/code]? (bron, template, of zelfgemaakt)
  2. Wat toont die sensor nu? (Developer Tools → States → zoek
    code:
    1
    
    cop_sensor_live
    )
  3. Welke power-sensor heb je écht? (Shelly, slimme meter, anders?)
  4. Attribuut-dump van je bron-sensor (Developer Tools → Template):
    code:
    1
    2
    
    {% for k in states.sensor.none_althermasensors.attributes.keys() %}{{ k }}
    {% endfor %}
Wat je nu al kunt doen
  1. Fix de power-sensor (punt 1 hierboven) — dit haalt in ieder geval één oorzaak weg
  2. Controleer of
    code:
    1
    
    sensor.cop_sensor_live
    plausibele waarden geeft (2.5-4.0 range voor DHW, 3.0-6.0 voor verwarming)
  3. Stuur me de 4 items hierboven, dan kan ik de sample-collector fixen

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

FloRadix schreef op dinsdag 27 oktober 2026 @ 22:35:
Hoi,

Ik heb je diagnostics doorgespit. Er zijn een paar dingen aan de hand — één is een configuratie-issue dat je zelf kunt fixen, de rest is een echte bug die ik moet oplossen.

1. Je power-sensor is verkeerd 🔴 (dit kun je zelf fixen)

In je config staat:
code:
1
power_sensor_entity: sensor.daikin_ml_daikin_cycle_ml_energy_wp
Dat is een energie-sensor (kWh), geen vermogen-sensor (W). De integratie verwacht een power-sensor in Watt — zoals een Shelly die live het verbruik in W toont. Als je een kWh-sensor invoert, rekent de integratie met "15" alsof het 15 Watt is → COP-berekening klopt niet.

Fix:
  1. Instellingen → Apparaten & Diensten → Daikin Cycle ML
  2. Tandwiel-icoon (Configureren)
  3. Kies "Full reconfigure"
  4. Bij "Power sensor": kies een live vermogen-sensor in W (bijvoorbeeld
    code:
    1
    
    sensor.shelly_..._power
    — niet
    code:
    1
    
    ..._energy
    )
  5. Bevestig
Heb je geen Shelly? Laat het veld leeg — dan valt de integratie terug op
code:
1
flow × ΔT
, minder nauwkeurig maar werkt wel.

2. ECHTE BUG: cop_samples = 0 terwijl 19 cycli bestaan 🔴
code:
1
2
cycles: 19
cop_samples: 0
Dit is niet jouw schuld. Cycle-detectie werkt perfect (15 heating + 4 DHW), maar de sample-collector slaat niets op. Daardoor blijven al je COP-sensoren leeg (vandaag/week/maand/mean allemaal
code:
1
unknown
), en dus ook de stooklijn-kaart.

Dit verklaart exact waarom je al dagen worstelt: het is niet jouw setup, het is een bug in de 300s-sample-collector voor jouw combinatie. Ik ga dit in v1.13.1 fixen.

Dit probleem is inmiddels bij twee gebruikers bevestigd op twee verschillende modellen — dus prioriteit p1, geen randgeval.

3. Je COP-sensor — ik heb meer info nodig 🟡

Je hebt
code:
1
cop_sensor_entity: sensor.cop_sensor_live
geconfigureerd. Wat is dat voor sensor? Waar komt de waarde vandaan?

Want:
  • Als die sensor
    code:
    1
    
    unknown
    of
    code:
    1
    
    teruggeeft, kan de integratie geen samples wegschrijven
  • Je laatste DHW-cyclus toont
    code:
    1
    
    cop_avg: 1.56
    — extreem laag (verwacht 2.5-3.5)
Dat suggereert dat
code:
1
cop_sensor_live
rare waarden teruggeeft. Klopt dat?

Wat ik van je nodig heb
  1. Wat is [code]sensor.cop_sensor_live[/code]? (bron, template, of zelfgemaakt)
  2. Wat toont die sensor nu? (Developer Tools → States → zoek
    code:
    1
    
    cop_sensor_live
    )
  3. Welke power-sensor heb je écht? (Shelly, slimme meter, anders?)
  4. Attribuut-dump van je bron-sensor (Developer Tools → Template):
    code:
    1
    2
    
    {% for k in states.sensor.none_althermasensors.attributes.keys() %}{{ k }}
    {% endfor %}
Wat je nu al kunt doen
  1. Fix de power-sensor (punt 1 hierboven) — dit haalt in ieder geval één oorzaak weg
  2. Controleer of
    code:
    1
    
    sensor.cop_sensor_live
    plausibele waarden geeft (2.5-4.0 range voor DHW, 3.0-6.0 voor verwarming)
  3. Stuur me de 4 items hierboven, dan kan ik de sample-collector fixen
Dank je voor je snelle antwoord.

De Power sensor die ik gebruik heb ik zelf gefabriceerd met behulp van het voltage op de 1 van de fases en de inverter primary current: (super dom ding maar was meer een proof of concept en een beetje start proberen te snappen wat je met HA kan. Ik heb hem nu in de configuratie leeggehaald.
code:
1
{{ (states('sensor.p1_meter_voltage_phase_1') | float(230) * 3 *states('sensor.inverter_primary_current') | float(0)) | round(2) }}
Punt 1:
Die COP sensor heb ik ook zelf in elkaar geflanst op basis van de thermal power live en dus de sensor hierboven.
Die COP geeft inderdaad vage waarden omdat hij uitgaat van die brakke power sensor. (alleen weet ik zelf geen betere manier om het te doen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% set thermal_kw = states('sensor.daikin_cycle_ml_thermal_power_live') | float(0) %}
{% set electric_w = states('sensor.daikin_ml_daikin_cycle_ml_energy_wp') | float(0) %}
{% set thermal_w = thermal_kw * 1000 %}

{% if electric_w > 10 %}  {# Pas berekenen als de pomp echt aanstaat (>10W verbruik) #}
  {% set calculated_cop = (thermal_w / electric_w) | round(2) %}
  {# Filter: COP moet tussen 0.5 en 8.0 liggen, anders is het een meetfout #}
  {% if 1.0 <= calculated_cop <= 8.0 %}
    {{ calculated_cop }}
  {% else %}
    0.0
  {% endif %}
{% else %}
  0.0
{% endif %}
Punt 2
Dit is de huidige state: ( Warmtepomp staat uit ).

Afbeeldingslocatie: https://tweakers.net/i/jCHwbo144uUh6OZ6G0LwrFXvm2U=/800x/filters:strip_exif()/f/image/dVfHwhqCPURDtXB5n2Pp9QVC.png?f=fotoalbum_large

Hij komt echter gedurende de dag wel met een getal op de proppen:
Dat wat er te zien is rond 13:00 is een DHW run die het water opstookt van 40 graden naar 53 graden.

Afbeeldingslocatie: https://tweakers.net/i/NoX8slZG0bz9pKwzcfRcploVFhA=/800x/filters:strip_exif()/f/image/QTBHk63hwvLpGhKqZNXmKTkb.png?f=fotoalbum_large


Punt 3:
Ik heb geen echte Power Sensor daarom had ik hem zelf gemaakt aan de hand van de inverter current, al weet ik dat die zeer onbetrouwbaar is (en dat laat de COP grafiek ook goed zien)

Punt 4:
Het resultaat van
code:
1
2
{% for k in states.sensor.none_althermasensors.attributes.keys() %}{{ k }}
{% endfor %}
is
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Operation Mode
Defrost Operation
Oil Return Operation
Target Cond. Temp.
Outdoor air temp.(R1T)
Discharge pipe temp.(R2T)
Suction pipe temp.(R3T)
INV primary current (A)
INV frequency (rps)
I/U operation mode
DHW setpoint
LW setpoint (main)
3way valve(On:DHW_Off:Space)
BUH Step1
BUH Step2
Water pump operation
Leaving water temp. before BUH (R1T)
Leaving water temp. after BUH (R2T)
Inlet water temp.(R4T)
DHW tank temp. (R5T)
Indoor ambient temp. (R1T)
RT setpoint
Flow sensor (l/min)
Current measured by CT sensor of L1
Current measured by CT sensor of L2
Current measured by CT sensor of L3
M5BatV
WifiRSSI
FreeMem
friendly_name

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hoi,

Heel erg bedankt voor deze uitgebreide info — dit maakt de bug een stuk duidelijker. Een paar correcties op mijn eerdere analyse, en een concreet stappenplan.

Correctie: je power-sensor is W, geen kWh

Je template is inderdaad W (voltage × 3 fasen × current), niet kWh. Ik had dat verkeerd uit de sensor-naam "energy_wp" opgemaakt — mijn fout, mijn excuses. Je redenering klopt: V × A × 3 = W. En als proof-of-concept is dat een prima insteek, geen "dom ding". Alleen: inverter-current is een ruwe proxy voor echt vermogen, dus de COP is per definitie schatting.

De echte bug — R1T collision

Uit je attribuut-dump blijkt iets belangrijks: je install heeft drie sensoren met "R1T" in de naam:
  • `Outdoor air temp.(R1T)` — buitentemperatuur
  • `Leaving water temp. before BUH (R1T)` — LWT (de watertemperatuur die wij willen)
  • `Indoor ambient temp. (R1T)` — binnenkamer
Dit is echt een probleem. De integratie zoekt "R1T" om de watertemperatuur te vinden, maar pakt in jouw geval gegarandeerd de verkeerde (of kan niet kiezen). Dat verklaart waarom de sample-collector stopt.

Ik ga dit in v1.13.1 fixen: volledige naam matchen (Leaving water temp. before BUH) in plaats van generiek "R1T".

Wat ik je nu vraag — 1 test
  1. Instellingen → Apparaten en diensten → Daikin Cycle ML → Configureren
  2. Kies "Full reconfigure"
  3. Power sensor: leeg (heb je al gedaan ✅)
  4. COP sensor: ook leeg (laat de integratie intern COP berekenen — pakt hij
    code:
    1
    
    flow × ΔT
    )
  5. Bevestig
  6. Wacht tot je warmtepomp één volledige cyclus draait (verwarming of DHW, minstens 15 min)
  7. Check:
    code:
    1
    
    {{ states('sensor.daikin_cycle_ml_cop_vandaag') }}
Wat vertelt de uitkomst ons
  • COP vandaag toont nu wél een getal → probleem zat in je (te strenge) cop_sensor. Fix voor jou: template soepeler maken (geen 0.0 teruggeven, maar gewoon leeg / niet beschikbaar), of gewoon leeg laten en integratie het zelf laten doen.
  • COP vandaag nog steeds unknown → de bug zit écht in de sample-collector, niet in jouw configuratie. Ik pak het dan op in v1.13.1.
Wat ik doe in v1.13.1
  • R1T collision fix — priority lookup op volledige naam, niet generiek "R1T"
  • Sample-collector debug — log waarom samples niet schrijven
  • power_stable gate herzien — werkt niet met volatiele templates
  • Waarschuwing bij cop_sensor=0.0 (in plaats van stilte)
Met jouw attribuut-dump + templates. Dank voor de grondige analyse — dit is precies wat ik nodig had om het gericht op te lossen.

Ik verwacht dit binnen een paar dagen gefixt te hebben.

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

Dank je voor je antwoord.
Ik heb een full reconfigure gedaan, en hij zegt dat alles netjes is opgeslagen.

Als ik onder Daikin Cycle ML options -> Device kijk zie ik weer de power sensor en COP sensor staan die ik zelf heb ingesteld. Ook als ik ze daar verwijder en submit krijg ik een succes, alleen als ik nogmaals kijk staan ze er gewoon weer.

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
kan je je heel de device daikin cycle ml verwijderen en opnieuw beginnen?

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

FloRadix schreef op woensdag 28 oktober 2026 @ 08:18:
kan je je heel de device daikin cycle ml verwijderen en opnieuw beginnen?
Dat gaan we vanavond maar eens doen. Eigenlijk zou ik ook de database dan willen verwijderen omdat ik verwacht dat die vol staat met onzin waarden, is dat zo makkelijk als de files verwijderen van de database zodra ik Daikin cycle ml heb verwijderd?

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Leeghoofd21 schreef op woensdag 28 oktober 2026 @ 08:33:
[...]

Dat gaan we vanavond maar eens doen. Eigenlijk zou ik ook de database dan willen verwijderen omdat ik verwacht dat die vol staat met onzin waarden, is dat zo makkelijk als de files verwijderen van de database zodra ik Daikin cycle ml heb verwijderd?
@Leeghoofd21 — ja, je kunt veilig de DB files verwijderen na het verwijderen van de device. Stappenplan:

1. Instellingen → Apparaten & Diensten → Daikin Cycle ML → 3 puntjes → Verwijderen
2. Via SSH (of Samba/File editor), verwijder deze 3 files uit /config/.storage/:
daikin_cycle_ml_01M5QYJQ4FD775K9BRG1JG5A8Q.db
daikin_cycle_ml_01M5QYJQ4FD775K9BRG1JG5A8Q.db-shm
daikin_cycle_ml_01M5QYJQ4FD775K9BRG1JG5A8Q.db-wal
(entry_id kan bij jou anders zijn — kijk in /config/.storage/ naar daikin_cycle_ml_*.db)
3. Herstart HA Core (Instellingen → Systeem → Herstart)
4. Installeer de integratie opnieuw via HACS → Redownload → v1.13.1
5. Voeg toe via Instellingen → Apparaten & Diensten → Integratie toevoegen → Daikin Cycle ML
6. **Belangrijk:** op het configuratiescherm, laat power_sensor EN cop_sensor LEEG
7. Wacht tot je warmtepomp één volledige cyclus draait (~15 min verwarming of DHW)

Waarom je dit moet doen:
- De reconfigure-bug die je zag is een bekend probleem in v1.13.0 — de "Full reconfigure" flow schrijft niet altijd correct terug (ik ga dit fixen, dank voor het melden).
- Na een verse installatie met beide sensoren leeg, laat de integratie zelf COP berekenen (flow × ΔT).
- v1.13.1 (vandaag gereleased) bevat een fix voor de sample-collector: die schrijft nu wel naar de DB ook zonder custom sensor.

Wat ik van je nodig heb na de reinstall (na 1 volledige cyclus):

1. Diagnostics download (Instellingen → Apparaten & Diensten → Daikin Cycle ML → 3 puntjes → Diagnostica)
2. Check: `{{ states('sensor.daikin_cycle_ml_cop_vandaag') }}` — moet nu een getal geven, niet "unknown"
3. Check in diagnostics: `data.database.counts.cop_samples` — moet > 0 zijn

Met die 3 dingen kan ik bevestigen dat de R1T-collision + sample fix werkt op jouw daikin model (welk model heb je) .

Over de R1T-collision (3 sensoren met "R1T" in je dump — Outdoor air, Leaving water before BUH, Indoor ambient): dat is inderdaad de root cause van de sample-drop. Ik match nu op volledige naam, niet op "R1T"-substring. Fix zit in v1.13.1 als het goed is; als jij na reinstall nog steeds 0 samples ziet, laat het me weten.

Succes vanavond! Laat weten hoe het afloopt.

  • MarcoPolet
  • Registratie: Januari 2017
  • Laatst online: 13-11 19:54
@FloRadix prachtig project!! Heb het inmiddels aardig goed draaiend, en krijg al her en der adviezen waar ik mee kan werken. Enige waar ik nog ietwat bang voor ben, ik heb nu een custom model gekozen omdat mijn Altherma 3 split EVLQ08CV3 / EHYHBH08AV32 met gasketel Daikin Intergas NHYKOMB33AA voor DHW & warmte op erg koude dagen er nog niet in staat.

Ik zie dat je elke dag zo'n beetje veel types toevoegt, zou super zijn als mijn hybride er ook bij komt. Als ik iets kan doen om gegevens aan te leveren of iets te testen laat maar weten.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
MarcoPolet schreef op woensdag 28 oktober 2026 @ 19:28:
@FloRadix prachtig project!! Heb het inmiddels aardig goed draaiend, en krijg al her en der adviezen waar ik mee kan werken. Enige waar ik nog ietwat bang voor ben, ik heb nu een custom model gekozen omdat mijn Altherma 3 split EVLQ08CV3 / EHYHBH08AV32 met gasketel Daikin Intergas NHYKOMB33AA voor DHW & warmte op erg koude dagen er nog niet in staat.

Ik zie dat je elke dag zo'n beetje veel types toevoegt, zou super zijn als mijn hybride er ook bij komt. Als ik iets kan doen om gegevens aan te leveren of iets te testen laat maar weten.
Dank voor de mooie woorden, dat doet echt goed om te horen. En tof dat je
meedenkt over je hybride, want daar heb ik tot nu toe weinig data van.

Korte eerlijke uitleg voordat ik iets beloof. Jouw set (EVLQ08CV3 +
EHYHBH08AV32 + NHYKOMB33AA) is de Altherma R Hybrid — een andere generatie en een andere architectuur dan de Altherma 3 modellen die nu in de wizard staan. Drie dingen maken het complex:

1. R-410A koelmiddel i.p.v. R-32 → andere COP-karakteristiek en drempels
2. DHW gaat bij jou normaal via de Intergas gasketel, niet via de warmtepomp
→ de COP-berekening voor DHW is niet zomaar geldig op jouw systeem
3. ESPAltherma dekking voor hybrid is nog onbevestigd — dit is de echte vraag

Punt 3 is de belangrijkste. ESPAltherma is gebouwd rond de monobloc/split
Altherma 3 protocol. Of jouw hybride dezelfde attributen (R1T/R2T/R4T/RPS/Flow/Operation Mode) blootgeeft via ESPAltherma weet ik simpelweg niet.

Daarom kan ik niet zeggen "komt eraan" zonder eerst te zien wat er bij jou
binnenkomt.

Wat ik van je nodig heb om te beoordelen of het kan:

1. Volledige attribuut-dump — Developer Tools → Template, sensor.althermasensors
→ gewoon alle attributen plakken. Format maakt niet uit, volledigheid wel.
Bijzonder interessant: welke waarden geeft "Operation Mode" (Heating / DHW /Boiler / iets anders?), staat er een "I/U operation mode" in, en zie je
R1T / R2T / R4T / RPS / Flow überhaupt?

2. Welke ESPAltherma definition file gebruik je? Staat in je ESP
config, iets als ALTHERMA(HPSU6_ULTRA).h of ALTHERMA(LT_...).h. Dat
vertelt me welke protocolversie je draait.

3. Worden er bij jou nu DHW-cycles gedetecteerd? Of blijft cycles_dhw op 0
omdat de ketel het werk doet? Dit is belangrijk — als DHW-COP bij jou
nooit geldig kan zijn, dan bouw ik het anders (DHW uitgeschakeld of
gemarkeerd als "boiler-assisted").

4. 12 tot 24 uur aan cop_samples en cycles rijen uit je huidige custom-model
run. Kan via de diagnostics export van de integratie, of via een SQLite
query op /config/.storage/daikin_cycle_ml_<entry>.db. Gewoon de ruwe
inhoud — geen interpretatie nodig.

Zodra ik die dump zie kan ik je een eerlijk antwoord geven.

Voor nu: je custom model werkt. Cycle-detectie en heating-COP zijn geldig
op jouw systeem. Alleen DHW-COP moet je negeren tot we weten hoe jouw
hybride schakelt.

Als je wilt: open een issue met "Hybrid support" in de titel en plak de
dump daar. Dan kunnen andere hybride-gebruikers ook meelezen en meedenken.

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

FloRadix schreef op woensdag 28 oktober 2026 @ 18:54:
[...]


@Leeghoofd21 — ja, je kunt veilig de DB files verwijderen na het verwijderen van de device. Stappenplan:

*Prachtige uitleg*
Dank je voor je hulp.
De uninstall en re-install is gelukt, nu afwachten op de eerstvolgende run.
Zal morgenavond hopelijk worden vervolgd.

Daarnaast heb ik mijn signature opgeofferd om dit topic te promoten. :twk

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Top!

Altijd leuk om ervaringen te delen en te promoten!

Ben ook benieuwd naar iedereen zijn ervaringen.

Welke maatregelen heb je zelf toegepast op basis van de inzichten? Stooklijn bijgesteld, pendelen teruggedrongen, DHW-setpoint anders? Altijd interessant om te horen wat in de praktijk echt werkt.

  • luckylucg
  • Registratie: Juni 2026
  • Laatst online: 20:33
De laatste update negeert ΔT < 0 voor thermal power, maar betekent dit niet dat defrosts daardoor buiten de berekening van de COP vallen?

Tijdens een defrost wordt er namelijk warmte aan het watercircuit onttrokken, wat resulteert in een negatief thermisch vermogen en negatieve thermische energie.

Daarnaast vraag ik me af welk type COP-sensor de integratie verwacht. Moet dit een instant COP-waarde zijn, of juist een cumulatieve of gemiddelde COP? Ik heb in de instellingen een sensor met de instant COP-waarde opgegeven, maar krijg na drie dagen (nog) geen gegevens te zien?


Afbeeldingslocatie: https://tweakers.net/i/fXAVXfYk03uDu5shfB0o0FsadMU=/x800/filters:strip_exif()/f/image/F13Cy6zJCGVgUgQ7ogNDgeFl.png?f=fotoalbum_large

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Daikin Cycle ML v1.14.0 — COP werkt nu ook zonder power meter


Na weeken fine-tunen is v1.14.0 uit. De grote verandering: je hebt geen power meter meer nodig om COP te zien.
Wat was het probleem?

Om COP te berekenen moet de integratie weten hoeveel elektrisch vermogen je warmtepomp gebruikt. Tot nu toe moest je daarvoor een slimme meter configureren (Shelly, P1 meter, warmtepomp-eigen kWh-teller, etc). Zonder meter: cop_today bleef leeg.

Maar: ESPAltherma 2.0 (de nieuwere firmware van raomin) berekent het elektrisch vermogen al intern en publiceert het in de Stats-sectie als Stats: Electrical input estimated (kW). We lazen het alleen niet. Dat is nu gefixt.
Hoe werkt het nu?

Drie bronnen, in prioriteit-volgorde. De eerste die beschikbaar is wint:
  1. Power meter — als je die hebt ingesteld, blijft die leidend. Geen wijziging, geen offset.
  2. ESPAltherma 2.0 Stats — automatisch gedetecteerd. We lezen de Stats direct, geen offset (v2 doet fases + BUH al intern, anders zouden we dubbel tellen).
  3. ESPAltherma 1.x fallback — schatting uit INV current × 230V × fases + BUH stap 1 + BUH stap 2 + 100W offset. Die 100W compenseert pomp, fan en elektronica die de inverter-stroom-meting niet ziet.
Volledige uitleg met voorbeelden →
Nieuwe instellingen (alleen relevant bij ESPAltherma 1.x zonder meter)

Als je een drie-fase installatie hebt, of je BUH step 2 is 6 kW i.p.v. 3 kW, dan kun je dat instellen:

Settings → Devices & Services → Daikin Cycle ML → Configure → COP calculation
  • Supply phases — 1 of 3 (default 1)
  • BUH step 1 (kW) — default 3.0
  • BUH step 2 (kW) — default 3.0 (sommige units 6.0)
Heb je een power meter of ESPAltherma 2.0? Dan kun je deze stap overslaan, de instellingen worden genegeerd.
Nieuwe sensor
code:
1
sensor.daikin_cycle_ml_electrical_power_estimated
— toont live het geschatte elektrisch vermogen in Watt, plus een source attribute (power_meter / espaltherma_v2_stats / inverter_estimated_v1 / none). Handig om te verifiëren welke bron op dat moment gebruikt wordt, vooral na het wijzigen van de installatie-instellingen.
Wat zie je na upgrade?
  • Power meter ingesteld: niets verandert. COP blijft zoals het was.
  • ESPAltherma 2.0 zonder meter: COP verschijnt waar het eerst leeg was. Cijfers kunnen licht afwijken van een handmatige template (Stats telt BUH mee, de meeste templates niet).
  • ESPAltherma 1.x zonder meter: COP verschijnt met een schatting. Begin met defaults (1 fase, 3+3 kW BUH) en pas aan in COP calculation als je installatie afwijkt.
  • Geen ESPAltherma, geen meter: niets. Je hebt nog steeds één van de twee nodig.
Belangrijk: er wordt niets herschreven. Historische COP-samples behouden hun oude waardes. Alleen nieuwe samples (vanaf het moment van upgrade) gebruiken de nieuwe logica. Geen data loss, geen migratie-stap, geen hercalculatie.

Upgrade

HACS → Daikin Cycle ML → Redownload → v1.14.0 → Restart Core

(Je kunt v1.13.2 overslaan als je nog op v1.13.1 staat — de v1.13.2 thermal fix zit ook in v1.14.0.)
Links
Credits

De cascade-logica komt uit raomin's ESPAltherma Discussion #599. Dank aan raomin voor zowel het design als de ESPAltherma firmware die dit allemaal mogelijk maakt. Ook dank aan @MvdB1982 voor de drie-fase + BUH-inclusieve installatie-rapportage die het design in de praktijk bevestigde.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
luckylucg schreef op donderdag 29 oktober 2026 @ 09:02:
De laatste update negeert ΔT < 0 voor thermal power, maar betekent dit niet dat defrosts daardoor buiten de berekening van de COP vallen?

Tijdens een defrost wordt er namelijk warmte aan het watercircuit onttrokken, wat resulteert in een negatief thermisch vermogen en negatieve thermische energie.

Daarnaast vraag ik me af welk type COP-sensor de integratie verwacht. Moet dit een instant COP-waarde zijn, of juist een cumulatieve of gemiddelde COP? Ik heb in de instellingen een sensor met de instant COP-waarde opgegeven, maar krijg na drie dagen (nog) geen gegevens te zien?


[Afbeelding]
kan je de laatste update installeren en de nodige aanpassingen doen zoals boven vermeld

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

FloRadix schreef op woensdag 28 oktober 2026 @ 18:54:
[...]


@Leeghoofd21 —

Wat ik van je nodig heb na de reinstall (na 1 volledige cyclus):

1. Diagnostics download (Instellingen → Apparaten & Diensten → Daikin Cycle ML → 3 puntjes → Diagnostica)
2. Check: `{{ states('sensor.daikin_cycle_ml_cop_vandaag') }}` — moet nu een getal geven, niet "unknown"
3. Check in diagnostics: `data.database.counts.cop_samples` — moet > 0 zijn

Met die 3 dingen kan ik bevestigen dat de R1T-collision + sample fix werkt op jouw daikin model (welk model heb je) .

Succes vanavond! Laat weten hoe het afloopt.
Nou here we go :)

Vannacht en vanochtend heeft de warmtepomp netjes gedraaid en Daikin Cycle ML op versie 1.30.0.
Vanmiddag na de run heb ik de update gedaan naar versie 1.14.0 en daarbij aangegeven dat het 3 fases is en een 2kW back-up heater.
Ik heb even moeten zoeken welke warmtepomp ik precies had (huis gekocht waar deze in aanwezig was) maar ik kom er niet uit, ik heb enkel de vage omschrijving van meldcode MC20001143.
Wat ik wel weet is dat het een 16kW model is met een boiler van 230 liter, na wat zoeken denk ik dat het deze is: EPRA16DAW1

1. Ik had de update al gedaan toen ik deze diagnostics draaide, maar de warmtepomp was niet meer in een run. Ik zie dat de COP_samples nog steeds nul is.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
{
  "home_assistant": {
    "arch": "x86_64",
    "dev": false,
    "docker": true,
    "hassio": true,
    "installation_type": "Home Assistant OS",
    "os_name": "Linux",
    "os_version": "6.18.58-haos",
    "python_version": "3.14.9",
    "timezone": "Europe/Amsterdam",
    "version": "2026.10.4",
    "virtualenv": false,
    "container_arch": "amd64",
    "supervisor": "2026.10.4",
    "host_os": "Home Assistant OS 18.4",
    "docker_version": "29.8.2",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "frank_energie": {
      "documentation": "https://github.com/HiDiHo01/home-assistant-frank_energie",
      "version": "2026.9.20",
      "requirements": [
        "python-frank-energie==2026.9.20"
      ]
    },
    "hacs": {
      "documentation": "https://hacs.xyz/docs/use/",
      "version": "2.0.5",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "daikin_cycle_ml": {
      "documentation": "https://github.com/elRadix/daikin_cycle_ml",
      "version": "1.14.0",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "daikin_cycle_ml",
    "name": "Daikin Cycle ML",
    "codeowners": [
      "elRadix"
    ],
    "config_flow": true,
    "dependencies": [
      "http"
    ],
    "documentation": "https://github.com/elRadix/daikin_cycle_ml",
    "integration_type": "hub",
    "iot_class": "calculated",
    "issue_tracker": "https://github.com/elRadix/daikin_cycle_ml/issues",
    "loggers": [
      "custom_components.daikin_cycle_ml"
    ],
    "quality_scale": "gold",
    "requirements": [],
    "version": "1.14.0",
    "is_built_in": false,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 0.001710497002932243
    },
    "01M621E42FTFEWARX3K422P8FR": {
      "wait_import_platforms": -2.3646535230000154,
      "config_entry_setup": 2.600500781998562
    }
  },
  "data": {
    "entry": {
      "entry_id": "01M621E42FTFEWARX3K422P8FR",
      "version": 1,
      "title": "Daikin Cycle ML - epra16eav3 (sensor.none_althermasensors)",
      "data": {
        "attribute_mode": "auto",
        "model": "epra16eav3",
        "source_sensor": "sensor.none_althermasensors"
      },
      "options": {
        "compressor_rps_threshold": 3.0,
        "dhw_pendulum_cycles_per_hour": 3.0,
        "fallback_power_threshold_w": 200.0,
        "good_dt_threshold_k": 5.0,
        "good_off_threshold_min": 20.0,
        "good_run_threshold_min": 45.0,
        "pendulum_cycles_per_day": 40.0,
        "persistent_enabled": true,
        "quiet_hours_enabled": false,
        "quiet_hours_end": "07:00",
        "quiet_hours_start": "22:00",
        "short_off_threshold_min": 5.0,
        "short_run_threshold_min": 20.0,
        "target_cycles_per_day": 8.0,
        "supply_phases": "3",
        "buh_step1_kw": 2.0,
        "buh_step2_kw": 3.0,
        "power_sensor_entity": null,
        "cop_sensor_entity": null,
        "indoor_temp_sensor": null,
        "retention_enabled": true,
        "cycle_retention_days": 90.0,
        "alert_retention_days": 90.0,
        "vacuum_enabled": true,
        "daily_summary_live_enabled": true,
        "season_start_month": 10
      }
    },
    "coordinator": {
      "state": "idle",
      "mode": "unknown",
      "missing_attrs": [],
      "last_sample_ts": 1793284262.3417041,
      "last_success_ts": 1793284262.3417041,
      "cycle_start_ts": 0.0,
      "errors": 0,
      "errors_total": 0,
      "attrs_sample": {
        "Operation Mode": "Fan Only",
        "Defrost Operation": false,
        "Oil Return Operation": false,
        "Target Cond. Temp.": 35.2344,
        "Outdoor air temp.(R1T)": 14.4,
        "Discharge pipe temp.(R2T)": 27.9,
        "Suction pipe temp.(R3T)": 19.7,
        "INV primary current (A)": 0.0,
        "INV frequency (rps)": 0.0,
        "I/U operation mode": "DHW",
        "DHW setpoint": 53.0,
        "LW setpoint (main)": 35.0,
        "3way valve(On:DHW_Off:Space)": false,
        "BUH Step1": false,
        "BUH Step2": false,
        "Water pump operation": false,
        "Leaving water temp. before BUH (R1T)": 28.7,
        "Leaving water temp. after BUH (R2T)": 26.8,
        "Inlet water temp.(R4T)": 28.5,
        "DHW tank temp. (R5T)": 53.0
      }
    },
    "store": {
      "cycle_count": 5,
      "counters": {
        "cycles_total": 5,
        "cycles_heating": 4,
        "cycles_dhw": 1,
        "cycles_cooling": 0,
        "_day_key": "2026-10-29",
        "cycles_today": 5,
        "good_cycles_today": 4,
        "bad_cycles_today": 1
      },
      "last_cycle": {
        "start_ts": 1793277201.3324249,
        "end_ts": 1793280741.33038,
        "duration_s": 3539,
        "mode": "heating",
        "dT_max": 5.899999999999999,
        "dT_avg": 4.254237288135593,
        "rps_max": 36,
        "rps_avg": 23.584745762711865,
        "outdoor_temp": 14.8,
        "buh_used": 0,
        "defrost_used": 0,
        "quality_score": 100,
        "label": null,
        "cluster_id": null,
        "cop_avg": null,
        "cop_sample_count": null,
        "cop_sample_stdev": null,
        "cop_confidence": "none",
        "thermal_kw_avg": 4.844537344632768,
        "is_transient": 0
      }
    },
    "baseline": {
      "total_samples": 4,
      "modes": {
        "dhw": {
          "sample_count": 1
        },
        "heating": {
          "sample_count": 3
        }
      }
    },
    "adaptive": {
      "total_samples": 3,
      "modes": [
        "dhw",
        "heating"
      ],
      "enabled": false
    },
    "clusters": {
      "centroids": 3,
      "labels": {
        "0": "pendulum",
        "1": "dhw_like",
        "2": "normal"
      },
      "counts": {}
    },
    "cop_analysis": {
      "state": "unknown",
      "betrouwbaarheid": 0.0,
      "bucket_current": "",
      "buckets": {},
      "cop_today": {},
      "total_samples": 0
    },
    "database": {
      "path": "/config/.storage/daikin_cycle_ml_01M621E42FTFEWARX3K422P8FR.db",
      "is_open": true,
      "counts": {
        "cycles": 5,
        "features": 5,
        "model_state": 19,
        "alerts": 0,
        "daily_summary": 2,
        "cop_samples": 0
      },
      "extra": {
        "daily_summary": [
          {
            "day": "2026-10-29",
            "mode": "dhw",
            "cycles": 1,
            "total_duration_s": 1290,
            "duration_min": 1290,
            "duration_max": 1290,
            "quality_sum": 50,
            "dt_max_sum": 3.3999999999999986,
            "rps_sum": 36.906976744186046,
            "buh_count": 0,
            "defrost_count": 0,
            "updated_ts": 1793280741.3379898,
            "duration_avg": 1290.0,
            "quality_avg": 50.0,
            "dt_max_avg": 3.4,
            "rps_avg": 36.907
          },
          {
            "day": "2026-10-29",
            "mode": "heating",
            "cycles": 4,
            "total_duration_s": 37412,
            "duration_min": 3210,
            "duration_max": 21814,
            "quality_sum": 400,
            "dt_max_sum": 30.300000000000004,
            "rps_sum": 125.2173014838876,
            "buh_count": 0,
            "defrost_count": 1,
            "updated_ts": 1793280741.3379898,
            "duration_avg": 9353.0,
            "quality_avg": 100.0,
            "dt_max_avg": 7.575,
            "rps_avg": 31.304
          }
        ],
        "last_maintenance_ts": 1793239200.2484212,
        "kmeans_state": {
          "last_attempt_ts": 1793281129.8800433,
          "consecutive_failures": 0,
          "last_failure_reason": null,
          "last_scheduled_fire_ts": 1793242800.6050937,
          "k": 3,
          "n": 5,
          "iterations": 2,
          "inertia": 2953058.4222816774,
          "labels": [
            0,
            1,
            2,
            0,
            0
          ],
          "centroids": [
            [
              2679.6666666666665,
              7.5,
              3.825497773144379,
              55.666666666666664,
              36.71219410666067,
              14.4,
              0.0,
              0.3333333333333333,
              0.0,
              0.0,
              0.0,
              0.0
            ],
            [
              21814.0,
              6.0,
              4.624686192468619,
              46.0,
              28.801255230125523,
              9.8,
              0.0,
              0.0,
              0.0,
              0.0,
              0.0,
              0.0
            ],
            [
              8849.0,
              5.200000000000003,
              4.616610169491525,
              36.0,
              23.1864406779661,
              13.7,
              0.0,
              0.0,
              0.0,
              0.0,
              0.0,
              0.0
            ]
          ],
          "cluster_sizes": [
            3,
            1,
            1
          ],
          "ts": 1793281129.879458,
          "last_ok_ts": 1793281129.8800433
        },
        "baseline_state": {
          "dim": 12,
          "alpha": 0.01,
          "outlier_skip_z": 5.0,
          "min_samples_before_skip": 20,
          "baselines": {
            "heating": {
              "type": "ewma",
              "dim": 12,
              "n": 3,
              "mean": [
                3377.171,
                13.048720000000003,
                5.075804794065776,
                89.02439999999999,
                49.17392393636164,
                13.95542,
                0.0,
                0.9801,
                0.0,
                0.0,
                0.0,
                0.10100985361645745
              ],
              "m2": [
                1529676.456759,
                1.1303303616000007,
                0.004207039795107991,
                47.374604639999994,
                11.079811766217675,
                0.17354862359999995,
                0.0,
                0.019503990000000002,
                0.0,
                0.0,
                0.0,
                0.5061467154777942
              ],
              "alpha": 0.01,
              "outlier_skip_z": 5.0,
              "min_samples_before_skip": 20
            },
            "dhw": {
              "type": "ewma",
              "dim": 12,
              "n": 1,
              "mean": [
                1290.0,
                3.3999999999999986,
                2.1372093023255814,
                41.0,
                36.906976744186046,
                14.4,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                4.157512248062014
              ],
              "m2": [
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0
              ],
              "alpha": 0.01,
              "outlier_skip_z": 5.0,
              "min_samples_before_skip": 20
            }
          }
        }
      },
      "per_entry": {
        "01M621E42FTFEWARX3K422P8FR": {
          "path": "/config/.storage/daikin_cycle_ml_01M621E42FTFEWARX3K422P8FR.db",
          "size_bytes": 118784,
          "counts": {
            "cycles": 5,
            "features": 5,
            "model_state": 19,
            "alerts": 0,
            "daily_summary": 2,
            "cop_samples": 0
          }
        }
      },
      "legacy": null
    }
  },
  "issues": []
}
2. Check: `{{ states('sensor.daikin_cycle_ml_cop_vandaag') }}` — moet nu een getal geven, niet "unknown"
Hij heet bij mij sensor.daikin_cycle_ml_cop_today maar geeft ook unknown

3. is nog steeds 0.

4. Sinds het deinstalleren en opnieuw installeren zonder gebruik te maken van de Power sensor (fallback) zie ik dat er geen elektrisch energie meer wordt opgeslagen, maar thermal energy wel:
Afbeeldingslocatie: https://tweakers.net/i/gbWOAxVru_GRReHUCRFsJHODhB4=/800x/filters:strip_exif()/f/image/arI5coeCit1jaMAAwHWPqAt3.png?f=fotoalbum_large

Naar verwachting kan hij dus niet berekenen wat de COP is omdat er geen elektrisch vermogen wordt geregistreerd.
Mogelijk zal versie 1.14 dit oplossen, maar dat weet ik na de volgende run.

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
@FloRadix

Verbetering worden steeds beter zichtbaar.
Als het mag, dan post ik hier wat bevindingen. (ik noem het schoonheidsfoutjes, want je werk is top!)

1. De warmtepomp staat uit. echter blijft er 13 rps staan, en COP 6,55. Zou dit niet naar 0 moeten?
De "Emitter" staat op 2,23kW. Betekend? dat er nu 2,23kW thermisch vermogen nodig is?
Afbeeldingslocatie: https://tweakers.net/i/xYttLaCHgVWUNHukK991HQhvc-Y=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/8JbfWv1L6WTnFnqZcybTsMOY.png?f=user_large

Ook verander de "State" als de warmtepomp uit staat.

Afbeeldingslocatie: https://tweakers.net/i/CbZuxQaxNB2Oxr6rCHEe8PvpdFc=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/kAsQEiMucPWxy9fo78yDbYm6.png?f=user_large

De juiste type warmtepomp is gekozen, maar de 12kW klopt niet.
Afbeeldingslocatie: https://tweakers.net/i/X_Y7PthA0CO7c7LaXloA2iKMiY8=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/k8cfu5E8GWz1zDCi5GNuJ6RL.png?f=user_large

Deze lijkt niet te wijzigen. Ik heb namelijk nog geen 18 cycles.
Afbeeldingslocatie: https://tweakers.net/i/8kfTyypz7md-yr0cLP4PkJ-in6M=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/mLRSEAfOebiOjT4lLcAeYzRF.png?f=user_large


De warmtepomp staat uit, sensor.daikin_cycle_ml_thermal_power_live geeft aan "onbekend", dat zou 0 moeten zijn.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Leeghoofd21 schreef op donderdag 29 oktober 2026 @ 16:25:
[...]


2. Check: `{{ states('sensor.daikin_cycle_ml_cop_vandaag') }}` — moet nu een getal geven, niet "unknown"
Hij heet bij mij sensor.daikin_cycle_ml_cop_today maar geeft ook unknown

3. is nog steeds 0.

4. Sinds het deinstalleren en opnieuw installeren zonder gebruik te maken van de Power sensor (fallback) zie ik dat er geen elektrisch energie meer wordt opgeslagen, maar thermal energy wel:
[Afbeelding]

Naar verwachting kan hij dus niet berekenen wat de COP is omdat er geen elektrisch vermogen wordt geregistreerd.
Mogelijk zal versie 1.14 dit oplossen, maar dat weet ik na de volgende run.
Zonder elektrisch vermogen (Watt) kan de integratie simpelweg geen COP berekenen. De thermische energie (kWh) werkt wel, omdat dit puur op basis van watertemperatuur (ΔT) en flow gaat.

In v1.14.0 zit een fallback die het elektrisch vermogen schat via INV primary current (A). Echter, in jouw dump staat deze op 0.0. Als hij tijdens het verwarmen ook 0.0 blijft, valt de schatting onder de 200W-drempel en worden er dus 0 samples opgeslagen (vandaar unknown).

Vraag voor de bugfix: Zou je tijdens een actieve heating cycle (compressor op bv. 30 rps) in de attributen van je bron-sensor willen kijken wat de waarde van INV primary current (A) is? Als deze op jouw EPRA-serie structureel 0.0 blijft, weten we dat we de fallback-formule voor dit type moeten aanpassen.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hedzie schreef op donderdag 29 oktober 2026 @ 16:54:
@FloRadix

Verbetering worden steeds beter zichtbaar.
Als het mag, dan post ik hier wat bevindingen. (ik noem het schoonheidsfoutjes, want je werk is top!)

1. De warmtepomp staat uit. echter blijft er 13 rps staan, en COP 6,55. Zou dit niet naar 0 moeten?
De "Emitter" staat op 2,23kW. Betekend? dat er nu 2,23kW thermisch vermogen nodig is?
[Afbeelding]

Ook verander de "State" als de warmtepomp uit staat.

[Afbeelding]

De juiste type warmtepomp is gekozen, maar de 12kW klopt niet.
[Afbeelding]

Deze lijkt niet te wijzigen. Ik heb namelijk nog geen 18 cycles.
[Afbeelding]


De warmtepomp staat uit, sensor.daikin_cycle_ml_thermal_power_live geeft aan "onbekend", dat zou 0 moeten zijn.
Ik de code erbij gepakt en je hebt op alle punten gelijk. Dit zijn echte bugs, geen instellingsfouten. Top dat je zo scherp meekijkt

Hier is wat we in de code zagen:

1. Model mapping (ERG08EAV3 = 12kW):
Bevestigd. De integratie kent het exacte model ERGA08EAV3 (met een 'A'), maar jouw auto-discovery pakt blijkbaar ERG08EAV3 (zonder 'A'). Daardoor matcht hij niet en valt hij terug op een generiek "12kW" profiel. We voegen de alias toe zodat hij jouw 8kW profiel wél herkent.

2. Idle COP & 13 rps:
Bevestigd. De integratie leest blind de ruwe INV frequency (13 rps) en de laatst bekende COP uit je bron-sensor, zelfs als de status IDLE is. We bouwen een harde check in: als de warmtepomp uit staat, forceren we RPS naar 0 en COP naar unknown (of -).

3. Thermal power = "unknown":
Ook bevestigd. Op het moment dat de pomp uit staat (ΔT = 0), kan de integratie het vermogen niet berekenen en geeft hij None terug (resulteert in "unknown" in HA). Dit passen we aan naar 0.0 kW.

4. 18 cycles:
Dit heeft te maken met de historische database (hij telt de cycles van de afgelopen 24 uur mee). Ik ga kijken of we dit visueel duidelijker kunnen maken.

Ik ga deze punten op de buglijst zetten voor de volgende update. Bedankt voor de grondige test!

  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
@FloRadix

4. 18 cycles:
Dit heeft te maken met de historische database (hij telt de cycles van de afgelopen 24 uur mee). Ik ga kijken of we dit visueel duidelijker kunnen maken.

Het gekke is, de wp heeft maar 1 cycle gemaakt. En ik ben met een schone installatie begonnen.

[EDIT1]
Ter aanvulling op bovenstaande:

Sinds de update naar 1.14

5. Heat balance laat geen waarde meer zien.
Afbeeldingslocatie: https://tweakers.net/i/aYk6IhToHF2lqbK_67cq5y8MevY=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/24C4nJheRK14M1uDpjW7PbeS.png?f=user_large

6. Klopt het dat naast "sensor.althermasensors geen waardes staan?Afbeeldingslocatie: https://tweakers.net/i/3idCtJ127dBE9t_aie_VFj7T5fQ=/800x/filters:strip_exif()/f/image/00c4ZiQWkeiUyeTXtwZN61wI.png?f=fotoalbum_large

7. Nog een onbekende waardes in de lijst:
Afbeeldingslocatie: https://tweakers.net/i/l_X1sTeUKjP_7tuknThJVmnpsac=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/xxqPMX9XC9E4XGHCf5FLEroT.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/nhTmOJKcR36tg0ouJbsxddTAotk=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/yu02PuN1ajUZuqYUJgh5t0es.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/aar5KWsxsllg3BWdJJs29VEKGWk=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/2y1VyDOEIIipN2a84UT0neaI.png?f=user_large

Geen bug, maar esthetisch:

8. de waarde in de groene cirkels zijn niet leesbaar omdat ze elkaar overlappen.
Je zou de kaart misschien logaritmisch willen hebben. Maar de afbeelding zal een vast plaatje zijn.
Afbeeldingslocatie: https://tweakers.net/i/i3HfX39yaVNW1XCa3DeOUKPt8Eo=/800x/filters:strip_exif()/f/image/GTS3mbp36F1gIlcxe8crNqWq.png?f=fotoalbum_large

[EDIT2]

9. De buitentemp 8°C lijkt de verkeerde sensor te pakken, namelijk "heat exchanger mid temp".
de "outdoor" sensor heeft 11°C aan.
Afbeeldingslocatie: https://tweakers.net/i/yVa_LfrIw5OoabGP8ap7mf8iDAM=/800x/filters:strip_exif()/f/image/vVZmVwBr7O0FfoHzCqpNVKTR.png?f=fotoalbum_large
Afbeeldingslocatie: https://tweakers.net/i/vOtbV747B2sy4FBABaSxHQMdhl0=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/oERcvfNXaHvndIS376bbDNtE.png?f=user_large

10. Het lijkt er op dat het verversen van de gegevens in de kaart met 30sec vertraagd is tov de update Althermasensors. Ik heb dit geklokt middels stopwatch.

[ Voor 98% gewijzigd door Hedzie op 30-10-2026 12:38 ]


  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

FloRadix schreef op donderdag 29 oktober 2026 @ 18:32:
[...]


Zonder elektrisch vermogen (Watt) kan de integratie simpelweg geen COP berekenen. De thermische energie (kWh) werkt wel, omdat dit puur op basis van watertemperatuur (ΔT) en flow gaat.

In v1.14.0 zit een fallback die het elektrisch vermogen schat via INV primary current (A). Echter, in jouw dump staat deze op 0.0. Als hij tijdens het verwarmen ook 0.0 blijft, valt de schatting onder de 200W-drempel en worden er dus 0 samples opgeslagen (vandaar unknown).

Vraag voor de bugfix: Zou je tijdens een actieve heating cycle (compressor op bv. 30 rps) in de attributen van je bron-sensor willen kijken wat de waarde van INV primary current (A) is? Als deze op jouw EPRA-serie structureel 0.0 blijft, weten we dat we de fallback-formule voor dit type moeten aanpassen.
INV primary current kreeg altijd al een waarde en Inverter Frequency ook.
Bijvoorbeeld nu INV Primary Current = 1.50A en Inverter Frequency = 20 rps
In versie 1.14 geeft dit een electrical power estimated van 1135W.
Volgens mij klopt dat met de logica (3x230Vx1.5A=1035W ("Gemeten") + 100W overige componenten = 1135W.

Met versie 1.14 begint nu de cop_samples zich ook netjes te vullen en komen de kaarten tot leven.
Heel erg bedankt voor de support.

Waar ik eigenlijk wel benieuwd naar ben is hoeveel die electrical power estimated eigenlijk afwijkt van de werkelijkheid van bijvoorbeeld een Shelly of andere power meter, en dus het effect op de COP.
Heb jij of een van de andere gebruikers dit wel eens proberen te achterhalen?

Zijn er trouwens nog andere tests die ik voor je uit kan voeren?

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Daikin Cycle ML v1.15.0 — Hybride ondersteuning en nieuw model

Hybride-ondersteuning is nu volledig geïmplementeerd. Voor installaties met een Daikin Altherma R Hybrid (EVLQ) en Intergas ketel analyseert de integratie beide warmtebronnen afzonderlijk en in combinatie.
  • Vijf nieuwe sensoren (uitsluitend op hybride installaties): ketel actief, ketel-DHW, hybride-modus, ketelrendement en dagelijkse ketelbijdrage
  • Correcte COP-berekening — co-fire samples worden niet meer meegerekend in de warmtepomp-COP; ketelbijdrage wordt apart geregistreerd
  • Minder valse meldingen — short-cycle alerts worden onderdrukt tijdens ketelbedrijf
  • Per-cyclus tracking van warmte- vs. DHW-bijdrage — basis voor toekomstige bivalente analyses
Nieuw model: Daikin Altherma 3 M EBLA09DA3W1 (9,37 kW, 3-fase, R32 monobloc). Volledige datasheet gebundeld; COP-vergelijking werkt direct.

Volledige release notes · #218 hybride feedback
Upgraden via HACS. Migraties v23 en v24 lopen automatisch bij de eerste coordinator-tick. Geen breaking changes; niet-hybride installaties vereisen geen actie.
Vragen of opmerkingen zijn welkom in dit topic of via GitHub.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Leeghoofd21 schreef op vrijdag 30 oktober 2026 @ 10:57:
[...]


INV primary current kreeg altijd al een waarde en Inverter Frequency ook.
Bijvoorbeeld nu INV Primary Current = 1.50A en Inverter Frequency = 20 rps
In versie 1.14 geeft dit een electrical power estimated van 1135W.
Volgens mij klopt dat met de logica (3x230Vx1.5A=1035W ("Gemeten") + 100W overige componenten = 1135W.

Met versie 1.14 begint nu de cop_samples zich ook netjes te vullen en komen de kaarten tot leven.
Heel erg bedankt voor de support.

Waar ik eigenlijk wel benieuwd naar ben is hoeveel die electrical power estimated eigenlijk afwijkt van de werkelijkheid van bijvoorbeeld een Shelly of andere power meter, en dus het effect op de COP.
Heb jij of een van de andere gebruikers dit wel eens proberen te achterhalen?

Zijn er trouwens nog andere tests die ik voor je uit kan voeren?
ik heb 130W en 236V ingesteld in espaltherma v2
en vergelijk beiden cop samen met mn Shelly EM
er is nog altijd een kleine verschil maar valt goed mee
een eigen power meter is natuurlijk nauwkeuriger

Afbeeldingslocatie: https://tweakers.net/i/mutfcAvdQhscJrmd98eGlp5Ii_o=/800x/filters:strip_exif()/f/image/3l6EJHz7G50vYmAYeUiqgMLH.png?f=fotoalbum_large


betreffende uw issues met de home assistant kaarten, zal ik bekijken en ook aanpassen aan de recente update.

  • rogervdh
  • Registratie: Augustus 2008
  • Laatst online: 17:09

rogervdh

Gasloos sinds 11-2024

Zijn er meer mensen waar de duration opeens altijd 4 uur is? M'n warmtepomp maakt mega lange runs en in het overzicht komt de laatste dagen altijd 4 uur te staan? Ik gebruik ESPAltherma 2, laatste beta.

Afbeeldingslocatie: https://tweakers.net/i/QgbAGijB99Di2Aw4CP7xTCKWycQ=/800x/filters:strip_exif()/f/image/R5t01YusoaSlmfTlpUUcaUjA.png?f=fotoalbum_large

Laatste run in ESPAltherma:
Afbeeldingslocatie: https://tweakers.net/i/zxNHd4CFomf9Z65UJz2CGKRLdBM=/800x/filters:strip_exif()/f/image/KkzazvNfgqDfUpTFJbm4vueX.png?f=fotoalbum_large

☀️12340Wp | ♨️Daikin Altherma 3 8kW | 💧Atlantic Calypso VM 150L | 🚗Tesla M3 LR 2019 | ⛽Peblar Business | 🌬️Zehnder WHR960 |🔋


  • Hedzie
  • Registratie: Januari 2024
  • Laatst online: 21:20
rogervdh schreef op vrijdag 30 oktober 2026 @ 17:23:
Zijn er meer mensen waar de duration opeens altijd 4 uur is? M'n warmtepomp maakt mega lange runs en in het overzicht komt de laatste dagen altijd 4 uur te staan? Ik gebruik ESPAltherma 2, laatste beta.

[Afbeelding]

Laatste run in ESPAltherma:
[Afbeelding]
Ja hier ook.
WP draait al bijna 24u.

Afbeeldingslocatie: https://tweakers.net/i/T91Mb-9IUcAYDJpPhGqAYmeJEL0=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/uGYDfUt3X1khZUICpIj304PM.png?f=user_large

  • Leeghoofd21
  • Registratie: April 2009
  • Laatst online: 21:33

Leeghoofd21

Wat een leuke ondertitel

Ik zie de compressor runtime ook soms resetten naar 0 na 14400 seconden. Dus 240 minuten. Vandaag twee keer gehad maar daarna niet meer.

Heb je een Daikin Altherma en ESPAltherma, verbeter je perfomance met Daikin Cycle ML [https://gathering.tweakers.net/forum/list_message/86452448


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
De 4-uurs limiet op cycle duration is opgelost in v1.15.1. De cap is verhoogd naar 48 uur, zodat lange modulerende runs (5-18 uur) weer als één cycle worden geregistreerd. Bestaande 4-uurs artefacten in de database worden bij de eerste herstart automatisch samengevoegd via een eenmalige migratie.

Defrost blijft een per-cycle flag (geen run-splitsing). Pendelen wordt niet beïnvloed: alleen cycles met duration_s == 14400 en een directe same-mode child worden samengevoegd; echte korte cycles blijven intact.

Update via HACS → Daikin Cycle ML → 1.15.1 → herstart Home Assistant.

[ Voor 10% gewijzigd door FloRadix op 30-10-2026 20:52 ]


  • MarcoPolet
  • Registratie: Januari 2017
  • Laatst online: 13-11 19:54
FloRadix schreef op vrijdag 30 oktober 2026 @ 15:01:
Daikin Cycle ML v1.15.0 — Hybride ondersteuning en nieuw model

Hybride-ondersteuning is nu volledig geïmplementeerd. Voor installaties met een Daikin Altherma R Hybrid (EVLQ) en Intergas ketel analyseert de integratie beide warmtebronnen afzonderlijk en in combinatie.
  • Vijf nieuwe sensoren (uitsluitend op hybride installaties): ketel actief, ketel-DHW, hybride-modus, ketelrendement en dagelijkse ketelbijdrage
  • Correcte COP-berekening — co-fire samples worden niet meer meegerekend in de warmtepomp-COP; ketelbijdrage wordt apart geregistreerd
  • Minder valse meldingen — short-cycle alerts worden onderdrukt tijdens ketelbedrijf
  • Per-cyclus tracking van warmte- vs. DHW-bijdrage — basis voor toekomstige bivalente analyses
Nieuw model: Daikin Altherma 3 M EBLA09DA3W1 (9,37 kW, 3-fase, R32 monobloc). Volledige datasheet gebundeld; COP-vergelijking werkt direct.

Volledige release notes · #218 hybride feedback


[...]


Vragen of opmerkingen zijn welkom in dit topic of via GitHub.
Dank je wel!! Supersnelle service :-) . Ik heb de versie geinstalleerd. Eerst mijn vorige custom warmtepomp verwijderd en daarna mijn hybride EVLQ08CV3 + EHYHBH08AV32 toegevoegd. Lijkt tot nu toe prima te werken, ik hou het in de gaten

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
MarcoPolet schreef op vrijdag 30 oktober 2026 @ 20:57:
[...]

Dank je wel!! Supersnelle service :-) . Ik heb de versie geinstalleerd. Eerst mijn vorige custom warmtepomp verwijderd en daarna mijn hybride EVLQ08CV3 + EHYHBH08AV32 toegevoegd. Lijkt tot nu toe prima te werken, ik hou het in de gaten
graag gedaan, graag feedback na enkele dagen of dat alles goed werkt

  • Vae Victus
  • Registratie: Mei 2006
  • Laatst online: 17:32

Vae Victus

Awesome God

Ik ben van plan ESPHome te gebruiken als platform met daarop de config van ESPAltherma. Zou dit ook moeten werken?

[ Voor 14% gewijzigd door Vae Victus op 01-11-2026 15:06 ]

I believe in Christianity as I believe that the sun has risen: not only because I see it, but because by it I see everything else. C.S. Lewis


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Daikin Cycle ML ondersteund enkel espaltherma v1 als de nieuwe beta v2

https://github.com/raomin/ESPAltherma/tree/beta

de nieuwe espaltherma v2 heeft veel meer mogelijkheden dan esphome

[ Voor 24% gewijzigd door FloRadix op 01-11-2026 13:26 ]


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Daikin Cycle ML — COP & Energie Lovelace card v1.0.0

Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/dashboard/cards/cop-energy/showcase.png

Wat de card toont
  • SPF hero gauge — 3-laagse radiale gauge met 7-grade buitenring, SPF-arc en een polar 24h chart binnenin
  • Periodes — 24u / Week / Maand / Jaar met sample-counts
  • Delta-rij — vs datablad, 30d trend, week-degradatie, 365d rolling
  • Per-modus dials — Verwarming / SWW / Koeling, actieve modus uitgelicht
  • Live power view — RPS-aangedreven ventilator-animatie, elektrisch→thermisch split-bar, COP-badge, ΔT/flow/RPS chips
  • Standby card — ripple-animatie + laatst-gebruikte-modus chip wanneer compressor uit staat
  • Energy cascade — dagbalans, thermische split, per-modus detail cards met impliciete COP
Waarom deze card naast de bestaande kaarten?

Daily Summary (Tabbed) focust op cyclus-historie — duur, kwaliteit, events. Deze COP & Energie card focust puur op efficiëntie en energie: SPF, live COP, elektra vs. warmte, per-modus verbruik. Ze vullen elkaar aan — je kunt ze naast elkaar op een dashboard zetten.

Thema's en talen
  • Light is default — soft-blauw gradient met zwarte tekst voor maximaal contrast
  • Dark opt-in via
    code:
    1
    
    theme_override: dark
    — diep marineblauw met witte tekst
  • Auto volgt OS/HA dark-mode
  • EN / NL auto-detect via HA-taal, of forceer met
    code:
    1
    
    lang_override: nl
Vereisten
  • daikin_cycle_ml integratie v1.19.0 of nieuwer
  • 4 HACS frontend cards: stack-in-card, mushroom-template-card, button-card, card-mod
  • 19 sensors uit de integratie — geen handmatige entity-ID edits
  • Koeling-rij verschijnt pas als
    code:
    1
    
    cooling_th_kwh > 0
Installatie
  1. Installeer de 4 HACS frontend cards hierboven
  2. Download de YAML: cop-energy.yaml
  3. Lovelace → Edit dashboard → + Add Card → Manual → plak → Save
LinksFeedback welkom — met name als iemand 'm op een andere HP (EPRA08, ERLA11, hybride EVLQ) draait en tegen layout- of sensor-issues aanloopt. Screenshots van jouw setup zijn altijd welkom om de card te verbeteren.

  • MarcoPolet
  • Registratie: Januari 2017
  • Laatst online: 13-11 19:54
Bij deze. Warmtepomp staat nu uit ivm houtkachel, maar lijkt verder goed te werken, ziet er prachtig uit!

Afbeeldingslocatie: https://tweakers.net/i/WmxrBIDnka-u0W0U3et7aj45U5U=/x800/filters:strip_exif()/f/image/zpPZ1Oi6iBFoVe2EoCsyWETQ.png?f=fotoalbum_large

  • MarcoPolet
  • Registratie: Januari 2017
  • Laatst online: 13-11 19:54
FloRadix schreef op vrijdag 30 oktober 2026 @ 21:46:
[...]


graag gedaan, graag feedback na enkele dagen of dat alles goed werkt
Werkt tot nu toe behoorlijk goed, maar testen moet nog wat langer doorgaan, ik ben parallel bezig in EMHASS mijn warmtepomp te modelleren & aansturen, maar daardoor krijg ik momenteel nog vrij veel start/stops etc, wat dan weer wel mooi door Daikin-ML gemeld wordt :-)

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Daikin Cycle ML — v1.19.7 (hardening release)

Nieuwe versie is uit. Geen nieuwe features behalve één extra alert, wel een hoop bugfixes die de cijfers eindelijk kloppend maken.

Wat is opgelost:
  • Dagtotaal boven 24u onmogelijk — cross-midnight runs worden nu pro-rata verdeeld. Een run van 13:31 tot 05:46 telt niet meer als "16u op dag 2" maar als ~10.5u + ~5.75u over beide dagen. #260
  • Onzichtbare 6u runs gedetecteerd — bij lage modulatie (RPS "Invalid" na defrost) werden cycles gemist. Nu via flow + COP fallback. Op mijn prod-1: ~6u/dag aan "onzichtbare" verwarming teruggevonden. #261
  • Geen valse alerts na HA-restart — short_run/short_off vuurden op oude gehydrateerde cycles na een herstart of DB-import. Nieuwe freshness-guard: cycles ouder dan 1u worden genegeerd. #259
  • Piekwaarden op korte cycli — thermal_kw_avg op <90s cycli gaf onmogelijke waarden (33 kW piek op een 30s run). Nu NULL ipv fysiek onmogelijke waarde.
  • Alert-historiek in de database — de interne alerts-tabel werd nooit gevuld sinds de eerste release. Dat is nu wel zo, dus alert-historiek bestaat eindelijk voor diagnose.
Nieuwe sensor: binary_sensor.daikin_cycle_ml_short_cycling_pattern

Vuurt wanneer je warmtepomp 3 of meer korte runs binnen een uur doet. Dat is een ander patroon dan de bestaande short_run alert: die kijkt naar één losse korte cyclus, deze kijkt naar het gedrag over een uur. Klassiek symptoom van:
  • Overdimensionering (WP te groot voor de woning)
  • Stooklijn te steil of te vlak
  • Hysterese te strak
  • Buffervat te klein
Waarom dit nuttig is: drie korte runs van 5-10 min elk zijn individueel niet alarmerend, maar wel slopend voor de compressor en funest voor je COP. De short_run alert vangt dit niet als elke run netjes onder de drempel zit. Deze nieuwe sensor wel.

Extra attributen op de sensor (handig voor dashboards):
  • recent_short_runs — de laatste 10 korte runs met starttijd + duur, zodat je ze kan correleren met buitentemperatuur of LWT
  • pattern_count_60min — hoeveel korte runs er in het laatste uur waren
  • window_min en min_cycles_threshold — de drempels die gebruikt werden
Instelbaar in OptionsFlow:
  • short_cycling_window_min — hoe lang het venster is (default 60 min, instelbaar 5-360)
  • short_cycling_min_cycles — vanaf hoeveel korte runs er een alert komt (default 3, instelbaar 1-20)
Krijg je te veel meldingen? Zet short_cycling_min_cycles op 4 of 5. Heb je een kleine WP die veel modulert? Zet hem op 2.

Hybride (EVLQ):
Geen functionele wijziging t.o.v. v1.19.6 qua hybride-logica. Indirect voordeel: de nieuwe flow+COP-detectie vangt ook lage-modulatie HP-runs na boiler-overname, wanneer de warmtepomp nog een tijdje op laag vermogen doorwarmt terwijl de ketel al is bijgesprongen. Boiler-handover, COP-isolatie en BUH-detectie werken ongewijzigd. Analytics-uitbreidingen lopen via #221.

v27 migratie bij eerste herstart:
Eenmalig (~25s op een DB met maanden historiek). Ruimt historische overlappende cycles op en herbouwt de dagtotalen met de nieuwe pro-rata logica. Je oude getallen kunnen er dus lager uitzien dan voor de update — dat is geen regressie, dat is het wegnemen van dubbeltellingen. Nieuwe dagen vanaf de update zijn correct.

Wat je kan verwachten op koude dagen (24/7 draaien):
  • Voor update: 16-19u gerapporteerd, met af en toe onmogelijke 28u dagen
  • Na update: 21-23u verwarming + 1.5-2u SWW = realistisch dagtotaal
Installatie: HACS update, HA herstart, klaar. Eerste herstart draait de v27 migratie automatisch.

Release: v1.19.7 op GitHub
Changelog: CHANGELOG.md

  • AndereKoekoek
  • Registratie: Juli 2005
  • Laatst online: 13-11 22:55

AndereKoekoek

Ping! Pong?

De cards geven een goed inzicht in de werking van de warmtepomp. Voor mij persoonlijk worden mijn vermoedens ook bevestigd; een warmtepomp die 70 cycles per dag doet.

Afbeeldingslocatie: https://tweakers.net/i/yBllrLzDBeIH9EhOBvQGvecBgMA=/x800/filters:strip_icc():strip_exif()/f/image/YYNM2kYVv27PRjqsYMJAJyjR.jpg?f=fotoalbum_large

De overregeling staat al op de max van 4 graden. Temperatuur staat op 25(18°C OT) - 31 graden(-5°C OT). m.i. kan dat niet echt lager.

1 van de redenen kan zijn dat wij losse thermostaten hebben en er dus vanuit meerdere plekken een warmtevraag kan komen. Al staan de thermostaten op de slaapkamers uit.

Er is ook geen buffervat geïnstalleerd.
Een partij die wij hadden benaderd voor een onderhoudscontract zei dat ze dat pas deden als ze voor 2400 euro een buffervat van 20 liter mochten installeren. Nou ben ik wel voorstander van noodzakelijke aanpassingen, maar 20 liter met een flow van 24l/min zie ik geen toegevoegde waarde van in.

Weer terug OT: Hebben jullie al wijzigingen doorgevoerd waarvan jullie direct resultaat zien?

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hoi AndereKoekoek,

De cards geven inderdaad een goed inzicht! Wat me wel opvalt aan je screenshot: de 71 die je woensdag ziet, is je Kwaliteitsscore (Quality), niet je aantal cycles. De grafiek die je laat zien is de "Quality per day" tab. Gemiddeld sta je op 37% kwaliteit met 4 "Low" dagen. Dat bevestigt je vermoeden dat de warmtepomp niet optimaal draait, maar het exacte aantal van 70 cycles zie ik in deze specifieke grafiek niet terug (wellicht heb je dat uit de "Cycles" tab gehaald?).

Maar los van het exacte aantal: een gemiddelde kwaliteitsscore van 37% betekent vrijwel altijd dat de warmtepomp aan het pendelen is (short-cycling).

Hier is waarom dat gebeurt op basis van jouw setup:
1. Geen buffer + lage LWT = snel pendelen
Met een LWT (aanvoertemperatuur) van 25°C bij 18°C OT en een stooklijn tot 31°C bij -5°C, vraag je heel weinig van de warmtepomp. Omdat er geen buffervat is, zit er heel weinig watervolume in je systeem. De warmtepomp slaat aan, verwarmt het kleine beetje water vrijwel direct tot de overregeling (LWT + 4 graden = 29°C), slaat af, en moet dan weer wachten tot het water is afgekoeld. Dat resulteert in veel te korte cycli en dus een lage kwaliteitsscore.
2. De 20-liter buffer en je ERLA model
Goed dat je die 20 liter hebt geweigerd! Bij een flow van 24 l/min (dat is 1,44 m³ per uur) is een vat van 20 liter letterlijk in 50 seconden door het systeem heen gespoeld. Een 20L vat is puur bedoeld voor de vorstbeveiliging/defrost (in-lijn), maar voegt hydraulisch gezien nul komma niks toe qua buffercapaciteit om pendelen te voorkomen.

Omdat je waarschijnlijk een Daikin ERLA (monoblock) hebt, is de vuistregel voor een fatsoenlijk buffervat 10 tot 15 liter per kW. Voor een 6kW of 8kW model praat je dus al snel over een buffervat van 60 tot 120 liter (in de retourleiding, als parallel buffervat) om echt volume te creëren en het pendelen tegen te gaan.
3. De losse thermostaten
Dit is inderdaad een hele grote boosdoener. Als je losse thermostaten (of slimme knoppen) hebt, kan de warmtepomp heel kort een minimale warmtevraag zien (bijvoorbeeld van 1 kamer). De pomp start op, stookt de leiding op, de thermostaat is tevreden, en de pomp stopt weer. Zelfs als de slaapkamers "uit" staan, kunnen ze soms nog minimale signalen afgeven.
Wat direct resultaat geeft:
Thermostaten volledig uitschakelen: Zorg dat de Daikin (of je hoofdthermostaat) de enige bron van de warmtevraag is. Open eventueel alle radiatoren/verdelers handmatig (of zet slimme knoppen in "handmatig open" modus). Regel de temperatuur puur met de stooklijn van de warmtepomp.

Flow verlagen: 24 l/min is vrij fors. Als je de pompsnelheid verlaagt (bijvoorbeeld naar 15-18 l/min), krijg je een grotere delta-T (temperatuurverschil tussen aanvoer en retour). De warmtepomp kan dan rustiger moduleren en hoeft minder snel af te slaan.

Pompmodus aanpassen: Kijk in de installateursinstellingen of je de pomp continu kunt laten draaien in plaats van vraaggestuurd (thermostaat-modus).

Door het watervolume te vergroten (middels een correct gedimensioneerd buffervat) en de warmtevraag te centraliseren, zul je direct zien dat je kwaliteitsscore omhoog gaat en de grafiek groener wordt!

[ Voor 3% gewijzigd door FloRadix op 06-11-2026 10:16 ]


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
De score (die 37% gemiddeld) wordt door de integratie per individuele cyclus berekend (van 0 tot 100). De integratie deelt straffen (penalties) uit op basis van een aantal factoren. Het gemiddelde van al die individuele cycles bepaalt uiteindelijk je dagscore.

De volgende factoren drukken de score omlaag:
  • Short Run: Cycli die te kort duren (vaak < 20 minuten). Dit duidt op pendelen.
  • Short Off: De tijd tussen twee cycli in is te kort (bijv. < 5 minuten). De compressor krijgt geen tijd om te rusten en het water is nog niet genoeg afgekoeld.
  • Low Delta-T: Het verschil tussen je aanvoer- (LWT) en retourtemperatuur is te klein (vaak < 1.5K tot 3K). Dit gebeurt bijvoorbeeld bij een te hoge flow, waardoor de warmte niet goed wordt afgegeven.
  • High Cycle Ratio: Er zijn simpelweg te veel starts per uur/dag in verhouding tot de warmtevraag.
  • BUH (Backup Heater): Als de elektrische hulpverwarming is bijgesprongen tijdens een cyclus, kost dit veel energie en krijg je een flinke minpunten.
Een score onder de 40% (rood in je grafiek) betekent dus dat bijna al je cycli lijden aan een combinatie van de bovenstaande punten. Ze duren te kort, de pomp start te snel weer, of de warmte-afgifte (delta-T) is te laag.

  • AndereKoekoek
  • Registratie: Juli 2005
  • Laatst online: 13-11 22:55

AndereKoekoek

Ping! Pong?

Dank je wel voor de toelichting! _/-\o_

Had bewust de kwaliteitsscore gedeeld, zodat jullie niet konden zien dat er 2 dagen met 121 cycles waren :X Had de overregeling uitgezet en net weer aangezet toen de WP ging verwarmen.

Moet er wel bij zeggen dat wij een huis uit 2020 hebben met op 3 verdiepingen vloerverwarming en nergens radiatoren in het huis. Hierdoor zakt de temperatuur niet snelen zeker in die overgangsfase tussen koud/warm (nazomer/herfst) weer schommelt het een beetje.

De tips ga ik zeker stapsgewijs toepassen. Ook al eens zitten denken om de badkamer altijd open zetten in de winter en dat als een soort van buffer te gebruiken tot ik een buffervat heb laten plaatsen.

  • asing
  • Registratie: Oktober 2001
  • Laatst online: 21:12
Mijn Dakin loopt een beetje te piepen.

Afbeeldingslocatie: https://tweakers.net/i/3D08uKdglp17tbgCGGVzd3E6ozs=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/OqPCT9EWfAnl6XhbeHz6D6X2.png?f=user_large

Ik geloof niet dat het erg is. Moet ik hier iets mee? Hij lijkt verder prima te draaien (met dank aan het geweldige werk van elRadix) :

Afbeeldingslocatie: https://tweakers.net/i/W1AWjv3K3Yxqosj8XXUQ2bEQZpM=/x800/filters:strip_exif()/f/image/CDja935PrspNOxs6P8Nt7lHh.png?f=fotoalbum_large

[ Voor 43% gewijzigd door asing op 07-11-2026 17:11 ]

Who's General Failure and why is he reading my harddrive? - Projectmanager : a person who thinks nine women can make one baby in one month


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
De melding LWT-setpoint oscillating geeft aan dat de aanvoertemperatuur (Leaving Water Temperature) binnen een kort tijdsbestek frequent wordt bijgesteld. In uw geval is het setpoint 6 keer gewijzigd binnen een venster van 30 minuten, met een relatief kleine afwijking (0.5 °C).

Oorzaak
Dit gedrag wordt doorgaans veroorzaakt door een wisselwerking tussen de warmtepomp en de ruimtethermostaten (of slimme radiatorknoppen). De thermostaat vraagt warmte aan, de warmtepomp reageert hierop, waarna de thermostaat de vraag weer afschakelt. Dit resulteert in een continu proces van bijsturen.

Impact
Hoewel de installatie hierdoor niet direct beschadigd raakt, is het voor de efficiëntie en de levensduur van de compressor gunstig om dit te minimaliseren. Een constante afwisseling van opwarmen en afkoelen zorgt voor onnodig energieverbruik en extra slijtage.

Aanbevolen acties
De integratie geeft een tweetal concrete adviezen:
  • Stooklijn vergrendelen (Lock LWT setpoint): Indien u gebruikmaakt van een weersafhankelijke regeling, zorg er dan voor dat de kamerthermostaten de warmtepomp niet continu overrulen. Door de thermostaten volledig open te zetten of de regeling op de warmtepomp te laten, wordt een stabielere aanvoertemperatuur bereikt.
  • Hysterese verhogen: Indien de warmtepomp wordt aangestuurd op basis van de kamerthermostaat, kan het verhogen van de hysterese (toegestane temperatuurafwijking) voorkomen dat het systeem bij elke kleine schommeling direct reageert. Een marge van 1.0 °C tot 1.5 °C is gebruikelijk.
Door de regeling meer ruimte te geven, zal de warmtepomp rustiger en efficiënter functioneren.

  • asing
  • Registratie: Oktober 2001
  • Laatst online: 21:12
Ik heb weersafhankelijke regeling en een madoka thermostaat. Als ik je zo lees niet ik de hysterese wat ruimer zetten? Of de madoka een halve graad omhoog?

Who's General Failure and why is he reading my harddrive? - Projectmanager : a person who thinks nine women can make one baby in one month


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Goede vraag! Je bent zeker op de goede weg, maar het is belangrijk om te weten dat het verhogen van de Madoka met een halve graad het probleem niet structureel oplost. Dat verschuift alleen het moment waarop de thermostaat reageert. De continue bijsturing (oscillatie) van de aanvoertemperatuur (LWT) zal blijven plaatsvinden.

Waarom gebeurt dit technisch gezien?
Je hebt twee regelaars die elkaar in de weg zitten. De weersafhankelijke stooklijn bepaalt de basis-aanvoertemperatuur, terwijl de Madoka continu kleine correcties probeert door te voeren op basis van de gemeten ruimtetemperatuur. Omdat de Madoka standaard vaak een vrij krappe tolerantie (hysterese) heeft, reageert hij fel op kleine schommelingen. Dit resulteert in het "jojo-effect" van de LWT die de integratie detecteert.

De beste aanpak
  • Verruim de hysterese op de Madoka: Dit is de meest effectieve stap. In het installateursmenu van de Madoka (of via de Daikin Onecta app, afhankelijk van je configuratie) kun je de regelnauwkeurigheid aanpassen. Staat deze nu op 0.5 °C? Probeer deze dan te verruimen naar 1.0 °C of 1.5 °C. Hierdoor grijpt de thermostaat minder snel in en krijgt de warmtepomp de rust om efficiënt te moduleren.
  • Gebruik de Madoka puur als begrenzer: Omdat je al een weersafhankelijke regeling hebt, kun je de Madoka ook instellen als een zogenaamde "high limit" (veiligheidsthermostaat). Je laat dan de stooklijn het volledige werk doen en de Madoka grijpt alleen in als de kamertemperatuur écht te hoog oploopt.
Door de thermostaat minder agressief te laten corrigeren, stopt het constante bijstellen van de LWT, wat resulteert in een stabielere en zuinigere werking van je warmtepomp.

Ik hoop dat Daikin Cycle ML je heeft geholpen om meer inzicht te krijgen in je systeem en dat je hiermee de efficiëntie van je warmtepomp verder kunt verbeteren!

  • AndereKoekoek
  • Registratie: Juli 2005
  • Laatst online: 13-11 22:55

AndereKoekoek

Ping! Pong?

Setpoint en flow lager gezet. Warmtepomp was gisteren rustig aan de hele dag aan het draaien. Nu zie ik vannacht toch weer 8 cycles, terwijl de warmtepomp nagenoeg de hele nacht 7l/min heeft gelopen.

Nu zie ik dat de thermostaten is op off is gegaan voor 1-2 minuten maximaal. Ondanks dat ik de badkamer op 26 graden heb gezet en er altijd een vraag is. Woonkamer ook hoger gezet en die temperatuur is vannacht ook niet gehaald.

Vanuit de cycles en sensoren terug gaan redeneren en het lijkt erop dat wanneer een andere thermostaat zijn doeltemperatuur bereikt er ook een signaal naar de Daikin gaat wat dan 1 minuut later wel.weer wordt gecorrigeerd. Volgende stap: Continu laten draaien

@FloRadix

Wat ik gisteren ook zie is dat de BUH de kwaliteit hard naar beneden haalt. Gisteren is de BUH ingeschakeld voor de legionella run. Zou je het een optie kunnen maken wat wanneer die run draait dat de BUH niet meetelt in de score van de kwaliteit?

Ik zie het als iets wat onvermijdelijk is en je er geen invloed op hebt. Maar snap ook wel dat andere mensen het wel willen meenemen, dus wellicht variabel maken? Note: zet maar ergens ver onderaan de nice to have lijst.

Heel blij met de overzichten!

  • MBgek
  • Registratie: Mei 2011
  • Laatst online: 13:05
Mooi werk! ik heb een Altherma hybride, EHBHX08, buitenunit ERLQ008CAV3. Dit draait nu nog op de oorspronkelijke ESPAltherma, nu wil ik over naar de v2 en zou dan ook deze integratie willen gebruiken maar ik zie mijn exacte model er niet tussen staan, ik ga het proberen. Mocht je van mijn model data o.i.d. willen hebben hoor ik het graag :)

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
MBgek schreef op zondag 8 november 2026 @ 13:22:
Mooi werk! ik heb een Altherma hybride, EHBHX08, buitenunit ERLQ008CAV3. Dit draait nu nog op de oorspronkelijke ESPAltherma, nu wil ik over naar de v2 en zou dan ook deze integratie willen gebruiken maar ik zie mijn exacte model er niet tussen staan, ik ga het proberen. Mocht je van mijn model data o.i.d. willen hebben hoor ik het graag :)
Hoi MBgek! Let op: de EHBHX08 is officieel een Low Temperature Split binnenunit, geen Daikin-hybride (dat is de EHYHBH08). Heb je hier een externe (gas)boiler aan gekoppeld? Dan heb je een bivalente opstelling, en daar bouwen we op dit moment juist ondersteuning voor, maar heb meer info nodig.

Je model staat nog niet in onze datasheets, maar jouw data is super welkom. Om de integratie te laten werken, hebben we in ieder geval deze 12 verplichte sensoren nodig (zet deze aan in ESPAltherma v2):

1. Leaving water temp (R1T)
2. Return water temp (R4T)
3. Flow rate
4. Outdoor temp
5. Compressor frequentie (RPS)
6. Elektrisch vermogen (Power)
7. Operation mode
8. Defrost status
9. BUH Step1
10. DHW tank temp (indien aanwezig)
11. Heat output
12. Target LWT / Setpoint

Specifiek voor jouw setup (extra's):

· Bivalenter Betrieb (staat vaak uitgecommentarieerd)
· Leaving water temp after BUH (R2T)
· Inlet water temp (R4T) - kritiek, anders klopt de COP niet

Zodra je de overstap naar v2 hebt gemaakt, kun je dan deze Jinja-template in Developer Tools (Template) plakken en de output hier delen?
code:
1
2
3
4
5
6
7
8
9
10
{% set esp_sensors = states.sensor | selectattr('entity_id', 'match', '^sensor\.espaltherma_') | sort(attribute='entity_id') %}
{% set esp_binary = states.binary_sensor | selectattr('entity_id', 'match', '^binary_sensor\.espaltherma_') | sort(attribute='entity_id') %}
=== SENSORS ===
{% for s in esp_sensors %}
{{ s.entity_id }}: {{ s.state }}
{% endfor %}
=== BINARY SENSORS ===
{% for b in esp_binary %}
{{ b.entity_id }}: {{ b.state }}
{% endfor %}
Dan zien we precies wat jouw unit uitspuugt en zorgen we dat de integratie en datasheets jouw setup perfect ondersteunen!

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
FloRadix schreef op zaterdag 7 november 2026 @ 18:10:
Goede vraag! Je bent zeker op de goede weg, maar het is belangrijk om te weten dat het verhogen van de Madoka met een halve graad het probleem niet structureel oplost. Dat verschuift alleen het moment waarop de thermostaat reageert. De continue bijsturing (oscillatie) van de aanvoertemperatuur (LWT) zal blijven plaatsvinden.

Waarom gebeurt dit technisch gezien?
Je hebt twee regelaars die elkaar in de weg zitten. De weersafhankelijke stooklijn bepaalt de basis-aanvoertemperatuur, terwijl de Madoka continu kleine correcties probeert door te voeren op basis van de gemeten ruimtetemperatuur. Omdat de Madoka standaard vaak een vrij krappe tolerantie (hysterese) heeft, reageert hij fel op kleine schommelingen. Dit resulteert in het "jojo-effect" van de LWT die de integratie detecteert.

De beste aanpak
  • Verruim de hysterese op de Madoka: Dit is de meest effectieve stap. In het installateursmenu van de Madoka (of via de Daikin Onecta app, afhankelijk van je configuratie) kun je de regelnauwkeurigheid aanpassen. Staat deze nu op 0.5 °C? Probeer deze dan te verruimen naar 1.0 °C of 1.5 °C. Hierdoor grijpt de thermostaat minder snel in en krijgt de warmtepomp de rust om efficiënt te moduleren.
  • Gebruik de Madoka puur als begrenzer: Omdat je al een weersafhankelijke regeling hebt, kun je de Madoka ook instellen als een zogenaamde "high limit" (veiligheidsthermostaat). Je laat dan de stooklijn het volledige werk doen en de Madoka grijpt alleen in als de kamertemperatuur écht te hoog oploopt.
Door de thermostaat minder agressief te laten corrigeren, stopt het constante bijstellen van de LWT, wat resulteert in een stabielere en zuinigere werking van je warmtepomp.

Ik hoop dat Daikin Cycle ML je heeft geholpen om meer inzicht te krijgen in je systeem en dat je hiermee de efficiëntie van je warmtepomp verder kunt verbeteren!
1. De 8 cycles: Klopt, die 1-2 min "off" van een thermostaat stopt de Daikin tijdelijk. Continu draaien (op watertemperatuur) lost dit op. Tip: verhoog in de opties de "Korte off-tijd" drempel (bijv. naar 3 min), dan negeert de integratie deze micro-onderbrekingen.

2. BUH & legionella: Helemaal terecht. Dat is onvermijdelijk en verpest onterecht je score. Ik ga een optie toevoegen om de BUH-penalty te negeren als de doeltemperatuur >60°C is (legionella). Staat op de backlog!

  • MarcoPolet
  • Registratie: Januari 2017
  • Laatst online: 13-11 19:54
Ik krijg af en toe een waarschuwing dat het LWT setpoint te vaak verandert. Waar triggert deze op? Mijn HomeAssistant LWT-setpoint-setter (van -3 tot +3 oid) wijzigt maar maximaal 1 keer per 30 of 40 minuten. De buitentemperatuur verandert natuurlijk wel vaak, en dus de weersafhankelijke curve, maar dat lijkt mij normaal en geen waarschuwing-trigger?

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
🔥 Daikin Cycle ML — v1.21.0

github.com/elRadix/daikin_cycle_ml

🎉 v1.21.0 — Accurate Quality Scores & Correct Daily Totals

Elke quality score is nu betrouwbaar. Deze release fixt vier onafhankelijke manieren waarop je kwaliteitshistorie kon afwijken van de realiteit, plus één instelbare optie voor de onvermijdelijke BUH-inzet tijdens legionella-runs.

🕐 Wat er mis was
  • Instellingen wijzigden niet tot een HA-restart — de scorer bleef oude thresholds gebruiken
  • Backfill negeerde je custom thresholds en gebruikte fabrieksdefaults
  • Cross-midnight cycles werden dubbel geteld — een 22:00 → 02:00 run telde op beide dagen
  • Korte 29s LWT-pulsen vervuilden de dagelijkse duration/quality gemiddelden
  • Legionella-runs (DHW ≥ 60°C) kostten onterecht kwaliteitspunten door BUH-penalty
✅ Wat veranderd is
  • Instellingen werken direct — OptionsFlow save triggert coordinator reload, geen restart meer nodig
  • Backfill respecteert jouw thresholds — geen fabrieksdefaults meer bij startup re-scoring
  • Cross-midnight telt één keer — cycles, quality en duration statistieken op de start-dag. Pro-rata total_duration_s blijft behouden
  • Transients buiten user-metrics — 29s pulsen apart getrackt, geen phantom rijen meer
  • Legionella BUH vrijgesteld — waiver bij mode=dhw én tank ≥ 60°C. Heating en DHW onder 60°C ongewijzigd
  • Nieuwe optie: buh_penalty_legionella_waived — default aan, uit te zetten voor strikte tracking
  • Database migraties v29 + v30 — automatisch bij eerste startup, additief, geen dataverlies
📊 Impact voor jouw warmtepomp
  • Quality stopt met driften — threshold wijziging telt binnen seconden, niet na restart
  • Dagelijkse cycle counts kloppen — geen +1 meer per overnachtingsdag
  • Minimum duration is echt — geen 29s phantom-rijen meer in je daily summary
  • Legionella-runs scoren eerlijk — DHW onderhoud wordt niet meer bestraft
Geen gedragswijziging als je geen legionella draait of nooit OptionsFlow-instellingen aanpast.

🔗 LinksFeedback en bugs graag via GitHub issues. Discussie over de interpretatie van de cijfers (COP-berekening, defrost-detectie, pendelen) kan hier in het topic.

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
MarcoPolet schreef op zondag 8 november 2026 @ 19:17:
Ik krijg af en toe een waarschuwing dat het LWT setpoint te vaak verandert. Waar triggert deze op? Mijn HomeAssistant LWT-setpoint-setter (van -3 tot +3 oid) wijzigt maar maximaal 1 keer per 30 of 40 minuten. De buitentemperatuur verandert natuurlijk wel vaak, en dus de weersafhankelijke curve, maar dat lijkt mij normaal en geen waarschuwing-trigger?
@MarcoPolet — Belangrijk om te weten: met jouw 1× per 30-40 min setpoint-update zou de default (window=30, threshold=6) niet mogen afgaan. De alert vuurt pas bij 6 richtingsveranderingen binnen dat venster — jouw automatisering levert er maximaal 1. Dus als je de alert wél krijgt, komt de oscillatie ergens anders vandaan.

Eerst diagnosticeren — check in HA:
  • Developer Tools → History → log het LWT-setpoint 1 uur
  • Tel handmatig de richtingsveranderingen > 0.5 °C in een 30-min venster
  • Zie je er < 6 maar de alert vuurt? → tweede bron (weersafhankelijke curve, tweede regelaar) tikt stappen binnen
  • Zie je er ≥ 6? → je HA-automatisering is sneller dan gedacht, of het setpoint-kanaal heeft ruis
Pas bijstellen op basis van de oorzaak:
  • Weersafhankelijke curve past bij elke graad buitentemperatuur bij → Setpoint window 30 → 60. Dit is normaal gedrag, langere middeling filtert het weg zonder een echt probleem te maskeren
  • Tweede regelaar (zone, thermostaat) werkt tegen → fix de bron, niet de alert-drempel. Anders verberg je een echt conflict
  • Sensorruis > 0.5 °C → Minimum setpoint change 0.5 → 1.0. Filtert echte ruis, normale stappen blijven zichtbaar
  • Echt oscillerend systeem (bijv. 3× op/neer in 30 min) → laat de default 6 staan. Dit is een echte waarschuwing, niet iets om weg te tunen

[ Voor 59% gewijzigd door FloRadix op 08-11-2026 20:16 ]


  • MarcoPolet
  • Registratie: Januari 2017
  • Laatst online: 13-11 19:54
FloRadix schreef op zondag 8 november 2026 @ 20:13:
[...]


@MarcoPolet — Belangrijk om te weten: met jouw 1× per 30-40 min setpoint-update zou de default (window=30, threshold=6) niet mogen afgaan. De alert vuurt pas bij 6 richtingsveranderingen binnen dat venster — jouw automatisering levert er maximaal 1. Dus als je de alert wél krijgt, komt de oscillatie ergens anders vandaan.

Eerst diagnosticeren — check in HA:
  • Developer Tools → History → log het LWT-setpoint 1 uur
  • Tel handmatig de richtingsveranderingen > 0.5 °C in een 30-min venster
  • Zie je er < 6 maar de alert vuurt? → tweede bron (weersafhankelijke curve, tweede regelaar) tikt stappen binnen
  • Zie je er ≥ 6? → je HA-automatisering is sneller dan gedacht, of het setpoint-kanaal heeft ruis
Pas bijstellen op basis van de oorzaak:
  • Weersafhankelijke curve past bij elke graad buitentemperatuur bij → Setpoint window 30 → 60. Dit is normaal gedrag, langere middeling filtert het weg zonder een echt probleem te maskeren
  • Tweede regelaar (zone, thermostaat) werkt tegen → fix de bron, niet de alert-drempel. Anders verberg je een echt conflict
  • Sensorruis > 0.5 °C → Minimum setpoint change 0.5 → 1.0. Filtert echte ruis, normale stappen blijven zichtbaar
  • Echt oscillerend systeem (bijv. 3× op/neer in 30 min) → laat de default 6 staan. Dit is een echte waarschuwing, niet iets om weg te tunen
Dit is de melding:

Afbeeldingslocatie: https://tweakers.net/i/Ttk9eib5fEp6DTvXgfg3cPk8WtQ=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/9cbKMnuNnPUTUNHcogrKGvt7.png?f=user_large

Dit is de history van Leaving water setpoint:

Afbeeldingslocatie: https://tweakers.net/i/IeyWLzCNv6Hk-OCZGYvsHyNXfpQ=/800x/filters:strip_exif()/f/image/8RODYFAS9WufzTKLI6tfyrpJ.png?f=fotoalbum_large

Het klopt dus wel dat de Daikin meer dan 6 keer switcht in laatste half uur, maar dat is volgens mij vanuit de buitentemperatuur? Het zijn ook vrij kleine offsets, die kan ik vanuit de 'offset-thermostaat' ook niet zetten:

Afbeeldingslocatie: https://tweakers.net/i/8FSMWlcU3SYinifsWjIFEvIkDuw=/800x/filters:strip_exif()/f/image/qKKEJsBiafmY2l276kIKRaBy.png?f=fotoalbum_large Hierboven helemaal onderaan (slecht te zien) het gele lijntje wat steeds op nul staat afgelopen uur. De Daikin staat trouwens ook uit (geen warmtevraag).

Mijn indruk is dus dat de waarschuwing triggert doordat vanuit de weersafhankelijke regeling het LWT setpoint verandert, maar daar kun je niet zo veel aan doen lijkt mij?

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
MarcoPolet schreef op zondag 8 november 2026 @ 20:30:
[...]

Dit is de melding:

[Afbeelding]

Dit is de history van Leaving water setpoint:

[Afbeelding]

Het klopt dus wel dat de Daikin meer dan 6 keer switcht in laatste half uur, maar dat is volgens mij vanuit de buitentemperatuur? Het zijn ook vrij kleine offsets, die kan ik vanuit de 'offset-thermostaat' ook niet zetten:

[Afbeelding] Hierboven helemaal onderaan (slecht te zien) het gele lijntje wat steeds op nul staat afgelopen uur. De Daikin staat trouwens ook uit (geen warmtevraag).

Mijn indruk is dus dat de waarschuwing triggert doordat vanuit de weersafhankelijke regeling het LWT setpoint verandert, maar daar kun je niet zo veel aan doen lijkt mij?
Je analyse klopt, en de screenshots maken het beeld compleet. Dit is inderdaad een bug die gefixt moet worden.

De grafiek toont precies 6 changes van exact 0.5 °C in het half uur (7:17 → 8:20). Dat is precies op de grens van Minimum setpoint change = 0.5 °C en Threshold = 6. De alert telt ze dus allemaal mee en vuurt op de 6e.

Dat komt inderdaad vanuit de weersafhankelijke regeling: bij 0 °C buitentemperatuur en kleine fluctuaties past de Daikin het LWT-setpoint in stapjes van 0.5 °C aan.

Je schrijft het zelf al: "De Daikin staat trouwens ook uit (geen warmtevraag)." Dat is de kern. De alert vuurt op basis van setpoint-bewegingen terwijl de compressor niet loopt. Er oscilleert in werkelijkheid niets, de Daikin staat klaar met een berekend setpoint dat de regeling bijstelt voor het geval er warmtevraag komt.

LWT target = 0.0 °C
Dat is verdacht. Je setpoint is 35.2 °C maar "target" toont 0.0. Ofwel je hebt de target-sensor niet geconfigureerd (default 0), ofwel de Daikin rapporteert 0 omdat hij uit staat. Geen invloed op deze alert (die kijkt naar setpoint, niet target), maar wel de moeite om te checken: Developer Tools → States → filter "lwt_target".

Dit is inderdaad een bug/edge case die gefixt moet worden: de alert zou onderdrukt moeten worden als de compressor (bijv. > 10-15 min) uit staat, want dan is er per definitie geen sprake van een oscillerende warmtepomp. Bedankt voor de zeer uitgebreide screenshots en grafieken, dat maakt de root cause direct duidelijk.

Het probleem is inmiddels vastgelegd en wordt opgepakt in de volgende release.

  • asing
  • Registratie: Oktober 2001
  • Laatst online: 21:12
FloRadix schreef op zaterdag 7 november 2026 @ 18:10:
Goede vraag! Je bent zeker op de goede weg, maar het is belangrijk om te weten dat het verhogen van de Madoka met een halve graad het probleem niet structureel oplost. Dat verschuift alleen het moment waarop de thermostaat reageert. De continue bijsturing (oscillatie) van de aanvoertemperatuur (LWT) zal blijven plaatsvinden.

Waarom gebeurt dit technisch gezien?
Je hebt twee regelaars die elkaar in de weg zitten. De weersafhankelijke stooklijn bepaalt de basis-aanvoertemperatuur, terwijl de Madoka continu kleine correcties probeert door te voeren op basis van de gemeten ruimtetemperatuur. Omdat de Madoka standaard vaak een vrij krappe tolerantie (hysterese) heeft, reageert hij fel op kleine schommelingen. Dit resulteert in het "jojo-effect" van de LWT die de integratie detecteert.

De beste aanpak
  • Verruim de hysterese op de Madoka: Dit is de meest effectieve stap. In het installateursmenu van de Madoka (of via de Daikin Onecta app, afhankelijk van je configuratie) kun je de regelnauwkeurigheid aanpassen. Staat deze nu op 0.5 °C? Probeer deze dan te verruimen naar 1.0 °C of 1.5 °C. Hierdoor grijpt de thermostaat minder snel in en krijgt de warmtepomp de rust om efficiënt te moduleren.
  • Gebruik de Madoka puur als begrenzer: Omdat je al een weersafhankelijke regeling hebt, kun je de Madoka ook instellen als een zogenaamde "high limit" (veiligheidsthermostaat). Je laat dan de stooklijn het volledige werk doen en de Madoka grijpt alleen in als de kamertemperatuur écht te hoog oploopt.
Door de thermostaat minder agressief te laten corrigeren, stopt het constante bijstellen van de LWT, wat resulteert in een stabielere en zuinigere werking van je warmtepomp.

Ik hoop dat Daikin Cycle ML je heeft geholpen om meer inzicht te krijgen in je systeem en dat je hiermee de efficiëntie van je warmtepomp verder kunt verbeteren!
Ik heb de waarde (9-0c) aangepast van 1 graad naar 1.5 graad.

Verder begint het hier in huis goed warm te worden dus ik heb de stooklijn maar even met 2 graden verlaagd.

Who's General Failure and why is he reading my harddrive? - Projectmanager : a person who thinks nine women can make one baby in one month


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
🎯 Nieuwe dashboard card: Pattern Analysis — 3-in-1 analytics voor Daikin Cycle ML

Voor wie zijn warmtepomp wil doorgronden zonder eindeloos door entities te scrollen: er is een nieuwe Lovelace card die drie analytics-tabs combineert in één overzichtelijke kaart.

Afbeeldingslocatie: https://raw.githubusercontent.com/elRadix/daikin_cycle_ml/main/dashboard/cards/pattern-analysis/showcase.gif

(animated: Distribution → Scatter → COP)

Wat het toont:
  • 📊 Distribution — cyclusduur-buckets (Pendulum / Kort / Goed / Lang) met dominante-bucket kroontje en per-bucket detail-popups
  • 🎯 Scatter — cycli/dag vs gemiddelde duur, kwaliteit-gekleurd, vandaag-highlight met pulserende halo
  • 🎯 COP — live COP + 48u sparkline, datasheet-vergelijking (A7/W35), per-modus breakdown (D/W/M), dual-axis duration/cycles trend met kroontje/waarschuwing badges, systeemgezondheid (SPF/BUH/defrost), contextuele insight banner
Features:
  • Interactieve popups op elke balk, punt en mode-card
  • Dual-axis chart met kroontje (goede dag) / waarschuwing (slechte dag) badges
  • 48u COP sparkline + datasheet vergelijking met formule-uitleg
  • EN/NL entity auto-detect (werkt met zowel _daily_summary_recent als _recent_dagoverzicht)
  • Dark-mode via HA CSS variabelen (geen aparte light/dark versie nodig)
  • Tab- en window-state blijft behouden tijdens live updates (geen reset naar eerste tab)
Vereisten:
  • Daikin Cycle ML v1.21.0+
  • HACS frontend cards: stack-in-card, mushroom-template-card, button-card, card-mod
Installatie:

1. Installeer de 4 HACS cards (HACS → Frontend → Explore)
2. Herstart Home Assistant, hard-refresh browser (Ctrl+Shift+R)
3. Lovelace → Edit dashboard → + Add Card → Manual
4. Kopieer de YAML via onderstaande link
5. Save

Links:Variables (optioneel):

Je kunt de kaart tunen via het variables: blok bovenaan de YAML:
code:
1
2
3
4
5
6
7
type: custom:stack-in-card
variables:
  lang_override: ''      # forceer 'nl' of 'en'
  default_tab: 'dist'    # 'dist' | 'scatter' | 'cop'
  default_window: 7      # 7 | 15 | 30 dagen
  chart_height: 280      # px
  show_hints: true       # toon "tap voor details" notitie
Suggesties of bugs? Open een issue op GitHub, of reageer in dit topic. Ik hoor graag wat jullie ervan vinden!

  • asing
  • Registratie: Oktober 2001
  • Laatst online: 21:12
Ik heb de nieuwste versie van Daikin ML erop gezet. Ik heb ook de hysterese verhoogd van 1.0 naar 1.5 graad. Volgens Chatgpt was dat parameter 9-0C. Als laatste heb ik de LWT verlaagd van 30 naar 28 graden. Ik twijfel eraan, want de melding is niet weg en ik krijg er eentje bij:

Afbeeldingslocatie: https://tweakers.net/i/rPN45_EmQoDA_in7mx3-lZ0M95s=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/BozwpJl2XUnaJXmmU9qdGS4i.png?f=user_large

Who's General Failure and why is he reading my harddrive? - Projectmanager : a person who thinks nine women can make one baby in one month


  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Hoi @asing,

Allereerst ontzettend bedankt dat je je ervaringen en screenshots deelt! Je bent echt precies op de juiste manier bezig: je kijkt naar de data, past de stooklijn aan, en probeert de hysterese te optimaliseren. Dat is de beste manier om je warmtepomp te leren kennen.

Dat je nu nog steeds die twee meldingen krijgt, kan heel frustrerend lijken, maar het is eigenlijk een teken dat Daikin Cycle ML goed z'n werk doet. Laat me je geruststellen en uitleggen wat er gebeurt:

1. Waarom de "COP below datasheet" melding komt
De integratie vergelijkt je huidige COP met de datasheet (die is gebaseerd op de perfecte testomstandigheden: 7°C buiten, 35°C aanvoer). Omdat je de stooklijn naar 28°C hebt verlaagd, vraagt je huis op dit moment heel weinig warmte (deellast). Bij een lage belasting en lage temperaturen werkt de compressor niet op z'n efficiëntst, waardoor de berekende COP onder de datasheet duikt. Dit is volkomen normaal gedrag.
Actie: Klik op Dismiss. Je hoeft je hier geen zorgen over te maken.

2. Waarom de "LWT-setpoint oscillating" melding komt
Je ziet de LWT continu kleine sprongetjes maken (0.5°C). Dit komt doordat de kamerthermostaat (Madoka) en de stooklijn met elkaar in gevecht zijn. Je hebt de hysterese (9-0C) al verhoogd naar 1.5, wat hartstikke goed is! Maar na zo'n ingrijpende wijziging (stooklijn 2 graden omlaag, hysterese omhoog) heeft je systeem even de tijd nodig om te "settelen".
Actie: Klik ook deze melding weg.

Hoe nu verder? Tips om je efficiëntie te verbeteren:
  • Geef het 24 tot 48 uur de tijd. Laat de instellingen nu even met rust. Je huis koelt langzaam af, dus de komende uren zal de warmtepomp misschien nog wat zoeken.
  • Kijk naar je Pattern Analysis card! Dit is de perfecte kaart om te zien of je aanpassingen werken. Kijk of de "Distribution" balken mooi groen (Goed) blijven en of de Scatter-punten niet in de rode "Pendel" zone liggen.
  • Wordt het huis te koud? Voel je dat de stooklijn van 28°C net te laag is? Verhoog hem dan stapje voor stapje (0.5°C per keer) tot het weer comfortabel is.
  • Gebruik de Madoka als begrenzer. Probeer de thermostaat in de ruimte niet als "aan/uit" schakelaar te gebruiken, maar laat de weersafhankelijke regeling (de stooklijn) het werk doen.
Je bent hartstikke goed bezig. Het is een leerproces om de ideale balans te vinden tussen comfort en efficiëntie, en Daikin Cycle ML helpt je om dat inzichtelijk te maken.

Bedankt voor je vertrouwen in de integratie! Laat je over een paar dagen weten of de oscillatie is gestopt en hoe de Pattern Analysis kaart eruitziet?

  • MarcoPolet
  • Registratie: Januari 2017
  • Laatst online: 13-11 19:54
FloRadix schreef op zondag 8 november 2026 @ 21:15:
[...]


Je analyse klopt, en de screenshots maken het beeld compleet. Dit is inderdaad een bug die gefixt moet worden.

De grafiek toont precies 6 changes van exact 0.5 °C in het half uur (7:17 → 8:20). Dat is precies op de grens van Minimum setpoint change = 0.5 °C en Threshold = 6. De alert telt ze dus allemaal mee en vuurt op de 6e.

Dat komt inderdaad vanuit de weersafhankelijke regeling: bij 0 °C buitentemperatuur en kleine fluctuaties past de Daikin het LWT-setpoint in stapjes van 0.5 °C aan.

Je schrijft het zelf al: "De Daikin staat trouwens ook uit (geen warmtevraag)." Dat is de kern. De alert vuurt op basis van setpoint-bewegingen terwijl de compressor niet loopt. Er oscilleert in werkelijkheid niets, de Daikin staat klaar met een berekend setpoint dat de regeling bijstelt voor het geval er warmtevraag komt.

LWT target = 0.0 °C
Dat is verdacht. Je setpoint is 35.2 °C maar "target" toont 0.0. Ofwel je hebt de target-sensor niet geconfigureerd (default 0), ofwel de Daikin rapporteert 0 omdat hij uit staat. Geen invloed op deze alert (die kijkt naar setpoint, niet target), maar wel de moeite om te checken: Developer Tools → States → filter "lwt_target".

Dit is inderdaad een bug/edge case die gefixt moet worden: de alert zou onderdrukt moeten worden als de compressor (bijv. > 10-15 min) uit staat, want dan is er per definitie geen sprake van een oscillerende warmtepomp. Bedankt voor de zeer uitgebreide screenshots en grafieken, dat maakt de root cause direct duidelijk.

Het probleem is inmiddels vastgelegd en wordt opgepakt in de volgende release.
De LWT-target is de offset, met andere woorden als die 0 is, dan wordt de weersafhankelijke curve gevolgd vanuit de buitentemperatuur.

  • asing
  • Registratie: Oktober 2001
  • Laatst online: 21:12
@FloRadix dank je wel voor al je werk en terugkoppeling. De data die Daikin ML teruggeeft is bij mij nogal rommelig. Dit komt waarschijnlijk door alle updates en wijzigingen aan de instellingen. Met een buitentemperatuur van rond de 2 graden haal ik een gemiddelde COP van 2.84. LWT is 36-37 graden en het was goed warm vanmorgen. Ik denk dat ik de stooklijn aan de -10 kant wel wat kan verlagen.

Anyway, ik denk dat het volgende plaatje voldoende aangeeft of het optimaal draait. Ik denk nog niet.

Afbeeldingslocatie: https://tweakers.net/i/Q-JFXGGKxqhibcyTa4K8Vx6W5dA=/x800/filters:strip_exif()/f/image/S4D0d9W2dDdVas7JdGSwxOwV.png?f=fotoalbum_large

Als laatste, je eerste cards doen het niet lekker in dark mode. De laatste ziet er wel goed uit.

Afbeeldingslocatie: https://tweakers.net/i/ndkp6bfpDJoTLArOrZA5nIyJiq4=/x800/filters:strip_exif()/f/image/oEgVq7FiVEAyiqK5rlhTxeVD.png?f=fotoalbum_large

Hier zie je ook dat quality op 0 staat terwijl de Daikin de hele nacht heeft staan pruttelen.

Who's General Failure and why is he reading my harddrive? - Projectmanager : a person who thinks nine women can make one baby in one month


  • AndereKoekoek
  • Registratie: Juli 2005
  • Laatst online: 13-11 22:55

AndereKoekoek

Ping! Pong?

Hier zie je ook dat quality op 0 staat terwijl de Daikin de hele nacht heeft staan pruttelen.
Dit zag ik ook bij mezelf. Op dat moment waren er nog geen cycles geweest.
Nadat iedereen een douche had gepakt (en dhw werd verwarmd), was er een cycle en kreeg ik ook een percentage.

  • gigidag
  • Registratie: November 2012
  • Laatst online: 20:26
@FloRadix , supergaaf wat je hier gemaakt hebt. Ik heb zelf een Daikin Intergas hybride warmtepomp en ben druk bezig met het optimaliseren van de vloerverwarming. Ik heb de warmtepomp middels de P1/P2 mqtt Bridge in home assistant geïntegreerd, zodat ik alle meetpunten heb en ook de stooklijn kan bijsturen middels automations. Ik zie jouw project als een mogelijke volgende stap. Nu vroeg ik me af of jij de P1/P2 mqtt Bridge op termijn ook wilt gaan implementeren als optie voor input? Of dat ik beter een ESPAltherma parallel aan mijn systeem kan hangen?

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
gigidag schreef op dinsdag 10 november 2026 @ 11:52:
@FloRadix , supergaaf wat je hier gemaakt hebt. Ik heb zelf een Daikin Intergas hybride warmtepomp en ben druk bezig met het optimaliseren van de vloerverwarming. Ik heb de warmtepomp middels de P1/P2 mqtt Bridge in home assistant geïntegreerd, zodat ik alle meetpunten heb en ook de stooklijn kan bijsturen middels automations. Ik zie jouw project als een mogelijke volgende stap. Nu vroeg ik me af of jij de P1/P2 mqtt Bridge op termijn ook wilt gaan implementeren als optie voor input? Of dat ik beter een ESPAltherma parallel aan mijn systeem kan hangen?
is mss mogelijk als je de minimum sensors beschikt die de integratie nodig heeft zie: https://github.com/elRadi...ml#required-attributes-12

Kan je een issue maken in github en je volledige lijst van sensors delen en de waarde van elke sensor en een beetje setup je kan uitleggen plus model daikin binnen en buiten unit enz

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
asing schreef op dinsdag 10 november 2026 @ 09:44:
@FloRadix dank je wel voor al je werk en terugkoppeling. De data die Daikin ML teruggeeft is bij mij nogal rommelig. Dit komt waarschijnlijk door alle updates en wijzigingen aan de instellingen. Met een buitentemperatuur van rond de 2 graden haal ik een gemiddelde COP van 2.84. LWT is 36-37 graden en het was goed warm vanmorgen. Ik denk dat ik de stooklijn aan de -10 kant wel wat kan verlagen.

Anyway, ik denk dat het volgende plaatje voldoende aangeeft of het optimaal draait. Ik denk nog niet.

[Afbeelding]

Als laatste, je eerste cards doen het niet lekker in dark mode. De laatste ziet er wel goed uit.

[Afbeelding]

Hier zie je ook dat quality op 0 staat terwijl de Daikin de hele nacht heeft staan pruttelen.
ik zal het bekijken en het nodige doen
inzake quality score is het inderdaad een probleem

  • FloRadix
  • Registratie: Augustus 2005
  • Laatst online: 17:51
Daikin Cycle ML v1.22.1 is uit

Korte bugfix-release, vooral relevant als je ESPAltherma v2 draait of HA 2026.11.1 gebruikt:
  • Defrost-teller blijft niet meer op 0 hangen bij ESPAltherma v2 (payloads als "on"/"1" werden niet herkend)
  • HA 2026.11.1 compat: options flow opslaan werkt weer, dashboard-card rendert zonder Jinja-fout
  • Live data: daily_summary en quality_today updaten nu tijdens een cyclus i.p.v. pas bij sluiten
  • Detector stuck-IDLE opgelost wanneer de pomp OFF meldt maar de compressor nog loopt
  • Backfill: historische cycli met quality_score=0 worden nu opnieuw gescoord (inclusief legionella-waiver)
Beschikbaar via Marketplace. Geen config-wijzigingen nodig.

Mochten er nog issues opduiken na de update, gooi ze in de GitHub tracker.

Volledige release notes →

  • asing
  • Registratie: Oktober 2001
  • Laatst online: 21:12
Ik zit al een paar dagen naar de COP van mijn Daikin te kijken. Ik heb geen ijkpunt maar ik vind de mijne laag. Het schommelt ergens tussen 3 en bijna 4. Gemiddeld over de afgelopen 24 uur 3.23. Afgelopen week 3.87.

Ik heb de stooklijn 2 graden opgehoogd (30 bij 10 graden) na deze eerder 2 graden verlaagd te hebben. Dit zodat de WP iets meer te doen had zeg maar. Hij pruttelt op 16RPM met een delta T van 3.5 graad en 7 liter per minuut. Buitentemperatuur is 6.5 graad. LWT is 33.5.

[ Voor 3% gewijzigd door asing op 11-11-2026 12:49 ]

Who's General Failure and why is he reading my harddrive? - Projectmanager : a person who thinks nine women can make one baby in one month

Pagina: 1 2 Laatste