You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I need in HomeAssistant the cooling mode to use this for my Automations in KNX.
Therefore it is necessary to add following sensor which is not yet available in PyViCare:
heating.circuits.N.operating.modes.cooling
a summary of what we found while digging into this.
heating.circuits.N.operating.modes.cooling turned out to be a mode-selection/config flag, not a runtime state. On our own Vitocal 300-G (CU401B) I watched natural cooling run live (the buffer dropped from 42 to 19 °C) while heating.circuits.1.operating.modes.cooling stayed active: false, and the selected mode was the umbrella dhwAndHeatingCooling, so getActiveMode() never returns cooling.
Unfortunately, on our setup there is no clean "cooling is running now" flag in the API. Because it is natural cooling (no compressor), the compressor metrics stay 0 as well: getCoefficientOfPerformanceCooling() = 0 and power.consumption.cooling = 0. The only way we could tell cooling was active was the temperature signature, the circuit supply / system return / buffer dropping well below heating level (secondary supply went from ~42 °C to ~16 °C). Those thresholds are specific to each installation, so they do not generalize into a reliable getter, which is a pity.
For active cooling (compressor reversal, e.g. Vitocal 250-A) it should be easier: getCoefficientOfPerformanceCooling() > 0 or CoolingCircuit.getReverseActive() should indicate it.
To see whether a general indicator exists, could you (and anyone else here) help with a bit of data:
Which device model, and active or natural cooling?
A diagnostics dump (or the raw feature list) once with cooling clearly running and once without, so we can diff which feature actually flips.
If you spot any feature on your device that reads true or nonzero only while cooling, please paste it here.
With a few examples across setups we can tell whether there is a common signal worth exposing, instead of a per-installation temperature heuristic.
Activity
lackas commentedon Jul 7, 2026
Hi @bekra00,
a summary of what we found while digging into this.
heating.circuits.N.operating.modes.coolingturned out to be a mode-selection/config flag, not a runtime state. On our own Vitocal 300-G (CU401B) I watched natural cooling run live (the buffer dropped from 42 to 19 °C) whileheating.circuits.1.operating.modes.coolingstayedactive: false, and the selected mode was the umbrelladhwAndHeatingCooling, sogetActiveMode()never returnscooling.Unfortunately, on our setup there is no clean "cooling is running now" flag in the API. Because it is natural cooling (no compressor), the compressor metrics stay 0 as well:
getCoefficientOfPerformanceCooling()= 0 andpower.consumption.cooling= 0. The only way we could tell cooling was active was the temperature signature, the circuit supply / system return / buffer dropping well below heating level (secondary supply went from ~42 °C to ~16 °C). Those thresholds are specific to each installation, so they do not generalize into a reliable getter, which is a pity.For active cooling (compressor reversal, e.g. Vitocal 250-A) it should be easier:
getCoefficientOfPerformanceCooling()> 0 orCoolingCircuit.getReverseActive()should indicate it.To see whether a general indicator exists, could you (and anyone else here) help with a bit of data:
With a few examples across setups we can tell whether there is a common signal worth exposing, instead of a per-installation temperature heuristic.