This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. For more details and for information how to disable the error reporting see Sentry-Plugin Documentation! Sentry reporting is used starting with js-controller 3.0.
If you like it, please consider a donation:
I'm looking for support in creating / updating the user documentation and the FAQ's. If someone is interested, please contact me...
The adapter is translated using Weblate, a web-based tool that makes translation easier for developers and translators alike. Participate in the ioBroker Adapters project
Click here to go directly to the translations
Features:
- Control the setpoint temperature levels of all thermostats per schedules
- Configure multiple heating periods for each day and night
- Supports all kind of thermostats (precondition: it must be available in ioBroker)
- Homematic device autodetection
- supports multiple profiles
- If there is no direct connection between the thermostat and the actuator, the actuator can be switched directly out of the adapter
- Currently, the actuator is switched off directly when the setpoint temperature is reached. As soon as the setpoint temperature is below the actual temperature, the actuator will be switched on. (To do: implement improved control)
- unlimited number of thermostats, actuators and sonsors per room are supported
- Thermostat, actuator and sensor could be automatically detected per room (homematic devices only). The function (eg "heating") is used for this.
- Rooms can be excluded within the admin interface, if a room contains a thermostat but should not be controlled
- sensor is used to reduce target temperature (e.g. if a window is open); optionally with SensorDelay
- interface to Feiertag-Adapter or any others to detect public holiday. Public holiday can be a normal day or like sundays. (admin setting)
- manual temperature override for a certain time
- predefined heating period
- take over changes from thermostat (optional)
- visualization from Pittini is supported. Thank you!
- Vis-2 support with vis-2-widgets-weather-and-heating
- Function = Function to be used to detect thermostats, actuators and sensors per room. It's one of the sytem enums
- Path to Feiertag - Adapter = if you wnat to use Feiertag-Adapter to dectect automatically public holiday for today then set the path here (e.g. feiertage.0)
- sensor used = if you have window sensors and you want to decrease target temperature when window is open then enable that option
- actuators used = if you want to control actuators directly from adapter. Just in case there is no direct connection between thermostat and actuator.
- use actuators if no heating period = only valid with actuators. Defines how actuators are set when no heating period is active
- use actuators if no thermostat available = only valid with actuators. If you have rooms without thermostat but with heating actuator you can switche them on or off permanantly
- Profile Type = three different profile types (Monday - Sunday, or Monday - Friday and Suturday/Sunday or every day) are supported
- number of profiles = if you need more then on profile increase that value. You can then select which profile will be used.
- number of periods = define how many daily sections with different temperature you need. As more you set as more datapoints will be created. Better to use a low value (e.g. 5)
- "public holiday like sunday = if you want to set target temperatures on public holiday like sunday enable that option. Otherwise public holiday settings are the same as on normal days
- HeatingPeriod = start and end date of heating period. Used to set "HeatingPeriodActive"
- select a room first and enable it
- bewlo you will find all configurtions for the room
- here you can verifay and set object ID's for thermostats, actuators and sensors
- you can add manually new thermostats, actuators or sensors. Just press + button. Then you get an empty line which needs to filled up. The Edit-Button opens a list of available devices on the system
- thermostats: ** name, temperature target OID and current temperature OID should be set.
- actuators ** name and OID for state should be set
- sensors ** name and OID for current state should be set
| DP name | description |
|---|---|
| HeatingPeriodActive | if off, the profiles will not be used |
| CurrentProfile | select current profile (1 based, means profile 1 use datapoints under heatingcontrol.0.Profiles.0 ) |
| LastProgramRun | shows last time when adapter run |
| DP name | description | target temperature for relative decrease | target temperature for absolute decrease |
|---|---|---|---|
| GuestsPresent | increase temperature because guests wants it warmer | increase current profile temperature by Profiles.0.room.relative.GuestIncrease | set target to Profiles.0.room.absolute.GuestIncrease |
| PartyNow | decrease temperature because it's becoming hot' | decrease current profile temperature by Profiles.0.room.relative.PartyDecrease | set target to Profiles.0.room.absolute.PartyDecrease |
| Present | we are present, if we are not present decrease temperature | decrease current profile temperature by Profiles.0.room.relative.AbsentDecrease | set target to Profiles.0.room.absolute.AbsentDecrease |
| VacationAbsent | we are absent, so decrease also on weekend | decrease current profile temperature by Profiles.0.room.relative.VacationAbsentDecrease | set target to Profiles.0.room.absolute.VacationAbsentDecrease |
| FireplaceModeActive | decrease temperature bacause you use a fireplace, will be | decrease current profile temperature by Profiles.0.room.relative.FireplaceModeDecrease | set target to Profiles.0.room.absolute.FireplaceModeDecrease |
| reseted automatically at adjustable time |
- Datapoints only available if "General Profile Settings, temperature lowering" is set
- in both szenarious only one lowering is used (in previous version of adapter more then one degreases could be used)
- in absolute degrease szenario only target values not equal 0°C are used. If you do not need any lowering for a certain room then keep decrease-values at 0°C
there are three options
- fix Temperature per room if this option is selected, a new datapoint in object tree appears for every room. Here you can set a fix target temperature which is set when heating period is not active.
- fix Temperature for all rooms with this option you can use one target temperature for every room when heating period is not active
- nothing with this option nothing will be sent to thermostat if no heating period is active. Target temperature remain from last taget when heating period still was active. In that case and if you use actuators from the adapter then you have the possibilty to define how actuators should be set (off, on, or leave it as it is)
- HolidayPresent / PublicHolidyToday If you enable "Holiday present like sunday" or "public holiday like sunday" in admin, the profile for sunday is used when adapter is informed that today is a public holiday or you are at home in holiday.
if "use sensors" is active and sensor(s) for a room is / are configured then
- decrease current profile temperature when window is open (true) by Profiles.0.room.WindowOpenDecrease if relative decrease is configured
- set target to Profiles.0.room.absolute.WindowOpenDecrease when window is open (true) if absolute decrease is configured
optionally a delay can be used. If window is opened only for a short time sensor delay can avoid from reduce and back to normal in very short times.
you can use your calendar or any other datapoint to change datapoints in adapter. Just configure events from ical or other datapoints in admin. Supported are
| datapoint | description |
|---|---|
| heatingcontrol.0.Present | set it to true (in case of boolean) or to a number higher then limit (in case of number) |
| heatingcontrol.0.HolidayPresent | set it to true when you at home in your holiday |
| heatingcontrol.0.VacationAbsent | set it to true when you not at home in your holiday |
| heatingcontrol.0.GuestsPresent | set it to true (in case of boolean) or to a number higher then limit (in case of number) |
| heatingcontrol.0.PartyNow | set it to true (in case of boolean) or to a number higher then limit (in case of number) |
hint: with number datapoints you could count how many people are in the house and then decide, e.g. we have enough for a party...
Many user asked for an option to take over changes from thermostat into adapter. Now a four options are implemented:
| option | description |
|---|---|
| no | changes from thermostat are ignored |
| as override | changes from thermostat are taken as override; override time must be set in advance in heatingcontrol.0.Rooms.RoomName.TemperaturOverrideTime |
| if override time is not set, than override is not executed | |
| as new profile setting | changes from thermostat are taken as target temperature for current profile period |
| until next profile point | changes from thermostat are taken as target temperature until next profile point. This is a manual mode, so only Window sensors are used. All other |
| increases / decreases are ignored. There is a datapoint in every room to disable manual mode before reaching next profile point. |
The standard behavior for override is, when you change temperature the override time is not changed. E.g if you start override for 20 minutes with 25°C and you change to 28°C after 15 minutes then 28°C is only used for the last 5 minutes. With that option you restart override whenever you change override temperature. In example above 28°C would then be used for 20 minutes which leads to 15 minutes 25°C and 20 minutes 28°C
There are two mode adjustable in admin for all rooms.
- timer controlled this is the wellknown function, which uses a temperature and a duration. The given temperature is used for the duration and then temperature target will set back to value in auto mode
- until next profile point this is a new function. Here we can use a temperature override until next profile point. The duration will be ignored but must be non-zero!
Some thermostats can handle "window is open" by itself. In those cases a direct connection between window sensor and thermostat is configured and thermostat reduces target temperature by itslef when a window is opened. In combination with option "use of changes from thermostat" / "until next profil point" will lead this to an unexpected manual state. In this situation the reduced temperature would be used until next profil point. But the adpater can handle this behavior. You must enable option "Thermostat handles 'Window is Open'" and you can configure window sensors also in adapter. When window is opened the adapter waits for max. 3 seconds for new target temperature from thermostat. If it receives a new target temperature in that time it will be used as a reduced absolut temperature. Status will then be "auto window open". As soon as the window is closed the status goes back to auto and thermostat sets back the original target temperature Attention do not use Sensor Open Delay in that case. If you use it, the Window open event appears after target temperature received from thermostat. This ends up in manual state.
heatingcontrol.0.Profiles.1.CopyProfile heatingcontrol.0.Profiles.1.Room.CopyProfile
and
heatingcontrol.0.Profiles.1.Küche.Fri.CopyPeriods
CopyProfile copies the entire content of the profile where the button is pressed to the next profile. In the above example, the button is in profile 1. The button copies everything from profile 1 to profile 2. If you want to copy only one room, use the button in a certain room.
The CopyPeriods are available per day or Mon-Fri per room. This copies the periods to the next section. In the above example, the CopyPeriods copies all periods from Friday in the kitchen room to the periods on Saturday in the kitchen room. So you can e.g. in the profile "every day separately", copy the periods from Monday to Sunday ...
to do
to do
to do
switch between linear and linear with hysteresis
describe two new datapoints heatingcontrol.0.Rooms.TestRaum.Regulator.HysteresisOffOffset and heatingcontrol.0.Rooms.TestRaum.Regulator.HysteresisOnOffset
checks that value was set correctly and ack is set, otherwise retries...
to do
when the power supply company blocking time is reached, all actuators are switched off and switched on again at the end of the blocking time. Status goes to "EVU Sperrzeit" / "PowerInterruption" Aim: switch off electrical heaters and switch them on again in a targeted manner in order to minimize the load on the contactors and to minimize inrush currents Configuration: Start / end time of the EVU blocking time, several periods can be configured
- If you are faced with any bugs or have feature requests for this adapter, please create an issue within the GitHub issue section of the adapter at github. Any feedback is appreciated and will help to improve this adapter.
It seems that HmIP-FAL230-C10 can not be used directly as an actuator in combination with that adapter. If you use HmIP-FAL230-C10 together with Homematic thermostats it should work. see also Forum
HM thermostats have an open window function in two variants. On the one hand as temperature drop detection and on the other hand in connection with a window contact. This function causes the adapter to switch to manual mode when the window is opened. Ideally, this function should be deactivated so as not to interfere with the functionality of the adapter. If thermostat use information from window sensor then "thermostat handles window open" option should be enabled.
When the adapter crashes or an other Code error happens, this error message that also appears in the ioBroker log is submitted to Sentry. All of this helps me to provide error free adapters that basically never crashs.
- (René) fix in migrate data: wait, until room list is available and check if room list is empty, otherwise do not migrate data to avoid removing rooms
- (René) changelog_old.md added
- (René) some logs in migrate data
- (René) issue #781: fix upload configuration
- (softwarecrash) Add optional window-open thermostat priority
- (René) changes requested by adapter checker
- (René) dependencies updated
- (René) see issue #730: bug fix: if window sensor uses "false" for Open window state was always set to open
- (René) see issue #723: The OIDs selected in the OID selection dialog were not saved.
- (René) bug fix: use correct actor ID
- (René) bug fix: OID-Path for Path2HolidayPresentDP now taken from old version
- (René) old device structure deleted after migration to avoid double import
MIT License
Copyright (c) 2019-2026 René G. info@rg-engineering.eu
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


