Habe mal dem Heizstab eine Temperatursteuerung verpasst, so dass auch im Sommer bei ausgeschalteter Pelletsheizung eine Warmwasserbereitstellung garantiert ist.
Das ganze läuft jetzt seit über einem Jahr, ich hab das nur auf aktuellen Stand upgedatet.
Einstellbar:
-Mindesttemperatur,
-Maximaltemperatur,
-Legionellenschaltung inklusive der dazugehörigen Temperaturen und Zeiten.
develop ← vision1727:openems_ctrlIoHeatingElementwithTemp
opened 11:44AM - 27 Oct 26 UTC
## Summary
Added an optional water temperature control to "Controller.IO.Heatin… gElement", because during the time with excess power and when pellet heating is turned off, my wife also wants to have warm water :-)
It can be enabled in the config and requires a 'Thermometer'.
If Thermometer is disabled, behavior is unchanged.
## Changes
- New config `hasWaterThermometer` (default `false`) and `waterThermometer_id`. The Thermometer is an optional reference using `@GenerateTargetsFromReferences`, like `meter`.
- Water temperature limits in °C:
- `lowWaterTemperature`: below this temperature the heating element heats with Level 3, even without excess power.
- `highWaterTemperature`: above this temperature the heating element is switched off, even with excess power.
- `maxWaterTemperature`: safety limit, always switched off above.
- `sensorErrorLevel`: Level (0-3) that is applied if the Thermometer is not available. Level 0 switches the heating element off.
- Optional Legionella protection: if the water was not kept at or above `legionellenWaterTemperature` for `minLegionellenTime` hours within `legionellenInterval` days, the heating element heats until it was held long enough.
- The heating element is switched off above the Legionella temperature + 2 K.
- If the temperature is not held within `legionellenMaxHeatingTime` hours, the heating is aborted and the Channel `LegionellenProtectionFailed` is set. It is retried after one day.
- Manual On respects the limits and the sensor error level. Manual Off is unchanged.
- New Channels: `WaterActual`, `WaterTarget` (both in °C), `WaterThermometerNotAvailable`, `LegionellenProtectionFailed`.
- The configuration is validated on activation (low < high <= max, Legionella settings).
- `bnd.bnd`: added `io.openems.edge.thermometer.api`.
- `readme.adoc`: documented the temperature control.
## Notes
- The limits `max`, `high` and the sensor error level are applied immediately and do not wait for `minimumSwitchingTime`. Heating because of `low` or the Legionella protection has priority over Work-Mode and schedule, but respects `minimumSwitchingTime`.
- The Legionella countdown is kept in memory only; after a restart of the Edge the interval starts again.
## Tests
- New `ControllerHeatingElementImplTest11`: behavior without Thermometer, temperature limits, sensor error for all Levels, Legionella protection (hold time, temperature band, abort and retry) and Manual On.
- `MyConfig` extended with the new properties (defaults keep the existing tests unchanged).
- The old version of this code was used for a year and was running well. The code was only updated to current build of OpenEMS and a test file was written.
LG Daniel
1 Like