I’ve been working on a Homey app called Eplucon Smart Control.
The app started as a way to control and monitor an Eplucon / Ecoforest heat pump directly from Homey, but it is gradually becoming a more generic heat pump controller and optimizer as well.
Main features at the moment:
• Monitor heat pump temperatures, status and power
• Control the living room temperature setpoint
• Control the domestic hot water / boiler setpoint
• Smart hot water planning based on electricity prices
• Automatic Legionella cycle planning
• Learning from previous hot water cycles to improve energy and runtime predictions
• Dashboard widgets for home, hot water, heat pump and detailed home data
• Optional energy split per operating mode:
Heating
Cooling
Hot water
Legionella
Standby
• Support for dynamic electricity prices
• Native Eplucon integration
• Manual source mapping is being added so the app can also work with data from other Homey devices/integrations
The goal is to keep the heat pump control, monitoring and energy optimization in one place inside Homey, without needing several separate apps or dashboards.
• Compatibility with other Eplucon / Ecoforest installations
• Heat pump data and operating modes
• Smart hot water planning
• Dashboard widgets
• Other heat pump integrations or data sources you would like to use
If you test the app, please mention your heat pump type/model and how it is connected to Homey when reporting an issue.
I’ll use this topic for updates, feedback and development discussion.
Heatpump Smart Control for Homey Pro – Features (v1.5.3)
Heatpump Smart Control is a Homey Pro app designed to monitor and optimize heat pump operation, with a particular focus on smart domestic hot water heating, dynamic electricity prices and energy monitoring.
Main features
Heat pump integration: Connect directly to Eplucon/Ecoforest using your account credentials, including automatic module detection. Alternatively, connect compatible Homey devices and sensors manually.
Smart hot water scheduling: Automatically schedules water heating during the cheapest available electricity periods, based on current water temperature, expected energy consumption and heating duration.
Self-learning predictions: Uses historical heating cycles to improve predictions of energy consumption, heating time and boiler temperature loss.
Dynamic electricity prices: Supports Homey Energy, Tibber, ENTSO-E and external Homey price devices, including hourly and 15-minute electricity tariffs.
Legionella protection: Automatically schedules periodic high-temperature boost cycles, prioritizing cheaper electricity periods and verifying whether the heating cycle was successful.
Separate energy meters: Five built-in Homey devices monitor electricity consumption for Heating, Cooling, Hot Water, Boost and Standby. Each provides live power (W) and cumulative energy (kWh).
Configurable power measurement: Select any compatible Homey power meter, use automatic detection or use the heat pump’s internal power measurement.
Energy cost tracking: Calculates electricity costs for each operating mode using the actual electricity prices at the time of consumption.
Boiler capacity calculations: Optionally enter the boiler volume in litres to estimate stored thermal energy and theoretically available mixed hot water.
Building thermal monitoring: Records heating cycles, indoor and outdoor temperatures, electricity consumption, temperature overshoot after heating stops, and passive house cooling rates. This data will be used for future predictive heating optimization. Currently monitoring only.
Thermostat control: View and adjust indoor and domestic hot water temperature setpoints directly from supported Homey widgets.
Four interactive widgets: Heat Pump, Home, Hot Water and Home Data, featuring live measurements, system visualization, energy information and heating schedules. Supports light/dark themes.
Diagnostics and history: Detailed system status, historical heating data, monitoring statistics and JSON export for further analysis.
The goal
The aim is to make the heat pump more intelligent by learning from its actual behaviour, shifting energy consumption to cheaper periods and providing detailed insight into where electricity is being used.
Current focus: Smart hot water optimization and monitoring.
Future development: Predictive space heating control based on the building’s thermal inertia, outside temperature and historical heating behaviour.
The app runs locally on Homey Pro, while the Eplucon integration and external electricity price providers may require internet access.
Dynamic power animation: Electrical flow particles now adjust their speed and density based on actual power consumption.
Independent floor circulation: Detects when the heating circulation pump is running without active heat production. Only the heating circuit is animated, while the source circuit remains inactive.
Improved operating status: Displays Floor Circulation when applicable.
All existing energy monitoring, smart scheduling and control functions remain unchanged.
Was wondering if you could also add so control (THEN) cards for room temperature and hotwater setpoints as part of an advanced flow. Since we also have an in-series hotfill boiler for energy dumping and hot water capacity, that might suit us better. Chrs.
Smart Hot Water Boost: Restored automatic scheduling at 21:00 for the next day, selecting the cheapest consecutive 15-minute intervals based on predicted energy consumption and heating duration. Disabled by default.
Temperature Control: Added a separate economic boost setpoint with safe restoration of the original temperature.
Advanced Flows: New THEN cards for room temperature, hot water temperature, Heating and Cooling modes.
Diagnostics: Added 24-hour logging with downloadable JSON reports.
Energy Metering: Fixed potential kWh overcounting caused by delayed external meter updates and improved energy allocation across all five operating modes.
Legionella: Improved cycle monitoring, temperature verification and scheduling reliability.
Bug Fixes: Improved Eplucon communication handling, physical setpoint confirmation, operating mode detection, automatic planning retries and recovery after app restarts.
Existing settings and energy history are preserved. Economic boost scheduling must be enabled manually after updating.
Thank you. I do see the Cards appearing. But still an issue that hot water setpoints change but room temperatures not. Room temperature setpoints change in the app in Homey, but not in the Eplucon portal nor in the WP control and Eplucon Touch. Any idea?
Kenny_S, tried a couple things. It does work from the flow and widget. But it errors on values when not matching the 0.5 degC increments… Possible to reduce to 0.1 degC increments? 0.5 degC are rather large steps.
Room thermostat: Configurable temperature steps of 0.1°C, 0.5°C (default), or 1°C. Applied to widgets, Homey controls, and Flows. Invalid values are rejected.
Heating & cooling: Improved operating mode control and room setpoint handling, including physical Eplucon confirmation.
Widget controls: A 2-second adjustment delay prevents unnecessary writes. Boiler and Room widgets now lock each other during synchronization.
Hot water optimization: Separate economical daytime boost and Legionella settings, with improved scheduling and safety checks.
Setpoint monitoring: Better detection of unexpected boiler setpoint changes, with detailed tracking and physical readback verification.
Notifications & diagnostics: Hot water notifications via Homey Flows and extended diagnostic reports with historical measurements and setpoint events.
Settings redesign: Reorganized into logical sections, including dedicated Boiler and Room tabs, with clearer explanations and improved layout.
Includes various stability improvements and bug fixes.
First of all, thank you for developing the Heatpump Smart Control app. It’s great that my Ecoforest heat pump can now be controlled through Homey Pro.
I’d like to share one improvement point. When I have two-factor authentication (2FA) enabled on my Eplucon account, the app can still read data, but writing fails: the write test returns an error. As soon as I disable 2FA on my Eplucon account, everything works as expected, including writing.
What I noticed is that I was never asked to enter a 2FA code when logging in through the app. It seems the app doesn’t support 2FA, which probably means the session gets read access but not write access.
Would it be possible to add 2FA support, for example by adding a field for the verification code during login? Or, if that isn’t technically feasible, a clear error message or a note in the documentation stating that 2FA must be disabled in order to write? That would save other users a lot of troubleshooting.
I’m happy to help with testing or to provide logs if that would be useful.
Thanks for your feedback and for reporting this issue!
The reason reading still works is that the app uses the native Eplucon API to retrieve data, while writing setpoints currently goes through the Eplucon web portal. These use different authentication methods, which explains why reading works with 2FA enabled but writing fails.
I don’t have 2FA enabled on my own Eplucon account, so I haven’t encountered this issue during development or testing.
I’ll investigate how the portal handles 2FA and whether I can add support for it.
2FA & Authentication: Fixed incorrect 2FA errors when two-factor authentication is disabled in Eplucon. Improved login and session handling.
Portal Connection: A successful connection test now refreshes the session used by widgets, Flows, and the hot water optimizer. Previous authentication errors are cleared.
Legionella Control: Added an option to cancel pending or stuck Legionella requests, even when no active plan is visible.
Safe Cancellation: Disabling Legionella prevention now clears pending boost requests. Active app-controlled cycles are safely terminated with physical setpoint verification.
Cycle Monitoring: External high-temperature cycles no longer trigger false Legionella failure notifications when prevention is disabled.
Includes additional stability improvements and bug fixes.
Improved handling of temporary Eplucon portal/API outages, including intermittent Invalid accountresponses.
Last known valid sensor values can remain available for up to 30 minutes during a temporary outage.
Real authentication errors are still treated immediately as connection failures.
Invalid or zero-filled Eplucon responses are rejected instead of being interpreted as real measurements.
Configurable Eplucon polling
Added a selectable API polling interval:
60 seconds – default
30 seconds – faster updating
Duplicate API requests from overlapping internal update loops are prevented.
Additional checks after a temperature command can still be performed faster to confirm the physical setpoint.
Expanded Eplucon sensor support
Added support for all 48 values exposed by the Eplucon integration.
17 essential values are always enabled because they are required for control, monitoring or widgets.
31 additional sensors can individually be shown or hidden from the app settings.
Fixed an issue where optional Eplucon sensor values were not being synchronized to the correct Heatpump Smart Control device.
Optional read-only API token
Added support for an Eplucon API token for sensor reading.
Reading can therefore operate independently from the portal login used for temperature control.
The stored API token can also be explicitly removed from the settings page.
Improved data-quality monitoring
Added Eplucon data freshness and data-age information.
Widgets now indicate when displayed information is delayed instead of presenting cached values as live data.
Cached display data is never used as fresh confirmation for automatic control decisions.
Safer hot-water and Legionella boost control
A single incorrect or missing setpoint reading no longer causes the app to immediately abandon an active boost.
External setpoint changes must be confirmed by multiple valid readings before app control is released.
Measurement gaps no longer count as confirmed hot-water inactivity or temperature plateau time.
Maximum boost runtime remains monitored even during temporary API problems.
More reliable setpoint restoration
After an app-controlled boost, restoration of the original hot-water setpoint remains tracked until the physical heat pump confirms it.
Temporary portal write failures are retried in a controlled way.
A manual temperature change always takes priority over an automatic restore.
Restore operations are linked to the heat pump that originally started the cycle, preventing an old restore command from being sent to a different installation.
Energy and cycle bookkeeping improvements
Improved handling of incomplete measurement periods.
Prevented cycle energy from being counted twice when both physical kWh increments and power-time calculations are available.
Incomplete cycles are excluded from data used for learning and prediction where appropriate.
Widget and status improvements
Unknown heat-pump states are no longer presented as known heating, cooling or hot-water operation.
Controls are blocked when the required physical state cannot be determined safely.
Stale browser/widget cache data now has a defined maximum lifetime.
Various reliability, diagnostics, migration and regression-test improvements.