Coder Social home page Coder Social logo

rg-engineering / iobroker.heatingcontrol Goto Github PK

View Code? Open in Web Editor NEW
51.0 8.0 15.0 3.31 MB

heating control incl. simple actor handling

License: MIT License

HTML 24.89% JavaScript 75.06% CSS 0.04%
iobroker smarthome repository home-automation heating-control

iobroker.heatingcontrol's Introduction

Logo

ioBroker.HeatingControl

Number of Installations Number of Installations Downloads NPM version

Known Vulnerabilities GitHub Actions

NPM

node-lts Libraries.io dependency status for latest release

GitHub GitHub repo size GitHub commit activity GitHub last commit GitHub issues

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:

paypal

Documentation

I'm looking for support in creating / updating the user documentation and the FAQ's. If someone is interested, please contact me...

Adapter for controlling your heating system.

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 are automatically detected per room. 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!

FAQ

Installation

Settings

main

  • Function = Function to be used to detect thermostats, actuators and sensors per room. It's one of the sytem enums
  • timezone = to be used for cron to adjust cron jobs
  • 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)
  • delete all devices when admin opens = should be disabled. Enable it only when you need to delete all room, actuator and sensor settings. A device search will be executed when adapter admin opens
  • 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

  • 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"

devices

  • a list of all rooms. You can disable a room here.
  • press edit button on right hand side to open settings window for thermostats, actuators and sensors for that room

Edit 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

datapoints

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

temperature decrease / increase

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

no heating period

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)

others

  • 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.

window open

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.

ical support

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...

use changes from thermostat

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.

extend override when temperature is changed

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

override mode

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!

Thermostat handles "window is open"

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.

Copy period and copy profile

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 ...

maintenance mode

to do

fireplace mode

to do

actuator handling

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

extended actuator handling

checks that value was set correctly and ack is set, otherwise retries...

to do

EVU Sperrzeit / PowerInterruption

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

Issues and Feature Requests

  • 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.

known issues

Adapter with Homematic IP Fußbodenheizungsaktor HmIP-FAL230-C10 – 10fach, 230 V

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

Window-open function of HM thermostats

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.

Changelog

2.12.8 (2024-06-05)

  • (René) bug fix heating period: calculation of cron job string fixed

2.12.7 (2024-05-28)

  • (René) see issue #561: change of dependencies

2.12.5 (2024-03-01)

  • (René) see issue #492: cron jobs recalculation is necessary after reboot if VacationAtHome and PublicHoliday is active
  • (René) create cron job for PowerInterruption only if feature is active
  • (René) bug fix: with cron 3.x status log of cron jobs were wrong

2.12.4 (2024-02-11)

  • (René) dependencies updated
  • (Marc-Berg) update readme "temperature decrease / increase"
  • (René) in some cases undefined was sent in notification messages instead of actor name
  • (René) bug fix related to [email protected]: show next cron job event in log

2.12.3 (2024-01-12)

  • (René) dependencies updated

2.12.2 (2023-12-16)

  • (René) see issue #491: bug fix in offset calculation (NaN)

2.12.1 (2023-11-25)

  • (René) issue #459: Show the number of objects that can be deleted in the log and indicate that they can be deleted in admin
  • (René) issue #376: notification messages customizable

2.12.0 (2023-11-22)

  • (René) dependencies updated
  • (René) fix eslint reported issues
  • (René) see issue #486: option to use offset calculation immediately
  • (René) see issue #489: increase limit of status change list to 100

2.11.1 (2023-07-30)

  • (René) dependencies updated

2.11.0 (2023-06-18)

  • (René) see issue #368: units added in datapoints
  • (René) see issue #361: EVU Sperrzeit / PowerInterruption (description see above)
  • (René) see issue #359: support of discord added to notifications
  • (René) see issue #367: wait for set target temperature before checking actor changes

2.10.6 (2023-01-31)

  • (René) see issue #355: reset override is now also with Button ResetManual possible

2.10.5 (2023-01-21)

  • (René) see issue #356: create list if room list is empty
  • (René) see issue #357: remove change event when loading telegram data
  • (René) handling of exceptions reported by sentry in notification modul

2.10.4 (2022-12-21)

  • (René) UTF8 conversion for some files
  • (René) more space for same values in admin

2.10.3 (2022-12-19)

  • (René) see issue #347: waiting time for target temperature update from thermostat adjustable per room
  • (René) see issue #348: bug fix to avoid unnecessary error message

2.10.1 (2022-12-10)

  • (René) update dependencies
  • (René) see issue #337: bug fix in calculate profil position
  • (René) see issue #336: translation of notification mesaages
  • (René) see issue #347: bug room status if option "thermostat handles windows open" is enabled and window opened and closed
  • (René) some minor bug fixes

2.9.3 (2022-10-28)

  • (René) update dependencies
  • (René) see issue #323: add telegram user to select box
  • (René) see issue #325: autodetect for HmIP-WTH-2 changed

2.9.2 (2022-08-19)

  • (René) update dependencies

2.9.1 (2022-06-10)

  • (René) bug fix timer id's for extended actor handling
  • (René) bug fix exception in SetRoomTemperature

2.9.0 (2022-06-09)

  • (René) see issue #302: adjustable info logging for temperature, aktor and window status change
  • (René) see issue #306: extended handling to set actuator state and thermostat target temperature added

2.8.7 (2022-04-23)

  • (René) see issue #312: bug fix in window is open handling if thermostat reduces temperature

2.8.6 (2022-03-31)

  • (René) see issue #265 and #305: bg fix window handling for rooms with more then one window and sensors with regular status update

2.8.5 (2022-02-12)

  • (René) sentry: Cannot read property 'PARENT_TYPE' of undefined
  • (René) see issue #291: inter thermostat delay added
  • (René) better logging for timediff measurement with external sensors
  • (René) minimum temperature check added in offset calculation

2.8.4 (2022-01-29)

  • (René) see issue #289: round offset to 0.5°C instead 0.25°C
  • (René) see issue #292: set actors when room becomes inactive like out of heating period
  • (René) see issue #291: inter actuator delay added
  • (René) new datapoint to show current profile target temperature

2.8.3 (2022-01-07)

  • (René) see issue #286: Loading the configuration fixed
  • (René) target temperature rounded to 0.5°C instead 0.25°C to avoid rounding on thermostat itself

2.8.2 (2022-01-04)

  • (René) see issue #285: absent and VacationAbsent exchanged to check reduced mode
  • (René) see issue #271: ack flag set only if it's in own namespace, external DP'S acks are not set anymore

2.8.1 (2021-12-29)

  • (René) see issue #283: show internal and external temperature sensors in room status
  • (René) see issue #272: extend override only if different temperature was sent
  • (René) see issue #278: reset remaining override time to 0 when override is canceled
  • (René) offset not to be used when room is in reduced mode (e.g. window open)
  • (René) see issue #271: set ack flag for changed DP after 2 seconds, to give a chance to other adpaters to react on un-acked DP's

2.8.0 (2021-12-18)

  • (René) see issue #266: differrent regulators for actor handling added (linear and linear with hysteresis)

2.7.2 (2021-11-14)

  • (René) bug fix load / save profiles: check fireplace mode added
  • (René) reset offset if disabled or no sensor (see issue #274)
  • (René) bug fix for override in case of "use changes from thermostat as override": reset and window open handling

2.7.1 (2021-10-20)

  • (René) see issue #268: change of override in manual mode is mssing

2.7.0 (2021-10-18)

  • (René) see issue #259: limit for temperature offset added
  • (René) see issue #227: maximum time difference between standard sensor and external sensor added
  • (René) see issue #264: some changes for Pittini-vis

2.6.2 (2021-09-29)

  • (René) see issue #260: bug fix isActive not ignored

2.6.1 (2021-09-25)

  • (René) see issue #258: bug fix fireplace mode and vis

2.6.0 (2021-09-17)

  • (René) maintenance mode added

2.5.1 (2021-08-20)

  • (René) see issue #255: bug fix fireplace mode

2.5.0 (2021-08-20)

  • (René) fireplace mode added
  • (René) see issue #247: disable temp offset calculation when heating is off
  • (René) see issue #223: bug fix to find correct period
  • (René) see issue #194: accept float as minimum / maximum in vis settings; add warning if minumum is lower then 4.5°C

2.4.3 (2021-06-17)

  • (René) see issue #243: bug fix for HeatingPeriod when adpater starts
  • (René) see issue #245: problem with manual mode when SensorOpenDelay is used
  • (René) see issue #244: bug fix for WindowOpenImg

2.4.2 (2021-05-17)

  • (René) logging for ActorsOn optimized

2.4.1 (2021-05-15)

  • (René) see #233: remaining override time set also for choosen room in vis
  • (René) bug fix public holiday detection

2.4.0 (2021-05-13)

  • (René) make it ready for js-controller 3.3

2.3.2 (2021-04-18)

  • (ericsboro) vis translation to russian
  • (René) see issue #231: bug fix detect heating period

2.3.1 (2021-04-05)

  • (René) some optimisations for vis translation

2.3.0 (2021-03-20)

  • (René) see issue #187: show remaining override timeConverter
  • (René) see issue #225: support different languages for vis
  • (René) see issue #223: new overide mode "until next profile point"
  • (René) bug fix to calculate average for temperatur offset

2.2.0 (2021-02-15)

  • (René) see issue #146: different type of window sensor and also adjustable comparative value
  • (René) see issue #110: optionally every room can be set to "no heating" with separate datapoint
  • (René) see issue #185: maintenance function: Delete all unused datapoints (e.g. profiles) is implemented now for admin
  • (René) see issue #185: maintenance function: Delete all devices related to a room, when a room is deleted is implemented now for admin
  • (René) see issue #207: copy buttons for vis added
  • (René) see issue #219: bug fix: DecreaseValues and ProfilName are copied in CopyProfile now

2.1.1 (2021-02-08)

  • (René) bug fix Temperatur Offset: invert sign of TemperatureOffset

2.1.0 (2021-01-31)

  • (René) see issue #198: add name to profile as a datapoint, used to be shown in visualisation
  • (René) see issue #194: limit and step width for increase / decrease values adjustable in admin
  • (René) see issue #182: Temperatur Offset
  • (René) see issue #212: ActiveTimeSlot inkorrekt for vis

2.0.4 (2021-01-28)

  • (René) bug fix for issue #213: Warnung "!!! Statechange not handled"

2.0.3 (2021-01-24)

  • (René) bug fix for issue #211: endless change of temperatures

2.0.2 (2021-01-22)

  • (René) bug fix for issue #208: exception "undefined is not a valid state value"
  • (René) bug fix for issue #209: Not all open windows are recognized

2.0.1 (2021-01-19)

  • (René) bug fix for issue #204: do not take over reduced temperature in manual mode
  • (René) bug fix for issue #203: Warnings "has no existing object, this might lead to an error"
  • (René) bug fix for issue #205: override start

2.0.0 (2021-01-16)

  • (René) internal refactoring

ATTENTION: breaking changes !!!!

  • complete internal refactoring (new source files, internal data structures, code review, ...)
  • Periods and Profils count from 1 instead 0
  • ChangesFromThermostat adjustable per room is removed
  • recalculation of room temperature is performed only for the room where necessary (in previous versions all rooms were recalculated and new value transmitted)
  • SensorOpenDelay / SensorCloseDelay renamed
  • ResetButton to disable manual mode (and go back to auto)
  • status log per room
  • complete profile can be saved and loaded in admin
  • copy profile (complete or for a single room) and periods (for a certain profile and room) by button supported
  • datapoint selector for external datapoints added in admin
  • autodectection for thermostats, sensors and actuators completely overworked
  • room detection overworked
  • limits and step widh for profil temperatures adjustable in admin for Pittini vis
  • simple window status view (in html) for Pittini vis added
  • room state as simple html table for vis added
  • (optionally) extend override when temperature is changed; in standard new temperature is set, but timer is not changed
  • (optionally) Thermostat handles "window is open"
  • issues in github:
    • #161 Profil springt zur angegebenen Zeit nicht um
    • #153 cron Probleme beim ändern eines Profils mittels Javascript
    • #152 Fenstererkennung im manuellen Modus
    • #148 Bei Änderung vom Thermostat bis zum nächsten Profilpunkt müssen Sensoren berücksichtigt werden

1.1.2 (2020-11-11)

  • (René) bug fix: activate actors after temperatur change

1.1.0 (2020-11-01)

  • (René) see issue #149: bug fix: calculate current period in case we are still in last period from yesterday

1.1.0 (2020-10-20)

  • (René) see issue #132: timer before on and off for actuators
  • (René) see issue #143: additional checks to avoid unneccessary override
  • (René) see issue #140: use guests present and party now DP's also as counter like present (as a option); add adjustable counter limit for present, party now and guest present
  • (René) see issue #145: avoid reset of target temperatur by profile settings in option "until next profil point" when set by thermostat

1.0.0 (2020-10-09)

  • (matida538) added better Handling of strings in HandleThermostat (convert to Number, instead of warn) (e.g. fhem connector for fht80)
  • (matida538) changed Check4ValidTemperature to convert strings to Number instead of Int (else we lose information e.g. 18.5 will be 18)
  • (René) some smaller code optimisations

0.6.0 (2020-09-15)

  • (René) see issue #123: use window open / close delay only when window state changed
  • (René) see issue #122: better log for different type warning
  • (René) see issue #120: override from thermostat only if it's different to current settings
  • (René) see issue #126: TestThermostat should not be checked for correct configuration
  • (René) see issue #124: vis from Pittini: Image for open / closed window adjustabel (as an option, if nothing is configured the original will be used)
  • (René) see issue #127: use value from thermostat until next profile point
  • (René) see issue #128: try to convert string data to number

0.5.7 (2020-07-07)

  • (René) see issue #116: get MinimumTemperature for vis only if enabled

0.5.6 (2020-06-14)

  • (René) see issue #113: re-order of rooms added
  • (René) see issue #112: bug fix "Fensterübersicht"

0.5.4 (2020-06-04)

  • (René) bug fix: HeatingControlVis avoid exceptions like "Cannot read property 'val' of null"

0.5.3 (2020-06-03)

  • (René) bug fix: new temperatures set when current profile is changed
  • (René) refactoring HeatingControlVis to avoid exceptions like "Cannot read property 'val' of null"

0.5.2 (2020-05-25)

  • (René) bug fix: log a warning if actors are configured but UseActors are off

0.5.1 (2020-05-22)

  • (René) log a warning if actors are configured but UseActors are off
  • (René) sentry added
  • (René) some hints in admin

0.5.0 (2020-05-03)

  • (René) see issue #101: sensor close delay added (similar to already existing sensor open delay)
  • (René) see issue #103: date/time format string corrected for vis
  • (René) see issue #104: bug fix to take over changes from vis
  • (René) see issue #102: bug fix change current time period to be shown on vis

0.4.0 (2020-05-02)

  • (René) see issue #70: use changes from thermostat
  • (René) see issue #91 bug fix: if the same sensor is configured for more than one room thermostat target temperature will be set for all configured rooms
  • (René) script from Pittini integrated to support his visualization Pittini
  • (Dutchman) some refactoring

0.3.19 (2020-03-15)

  • (René) create correct cron job for sunday if profile type "every day" is used
  • (René) see issue #87: change type of time data points to string
  • (René) see issue #87: set correct roles for data points
  • (René) see issue #84: set default value for minimum temperature
  • (René) see issue #86: all "float" converted to "number""

0.3.18 (2020-03-08)

  • (René) fix issues reported by adapter checker

0.3.17 (2020-03-01)

  • (René) check datapoint configuration: if datapoint points to itself then error messages
  • (René) support of new vis see issue #76
  • (Rene) thermostat mode if no heating period

0.3.16 (2020-02-09)

  • (René) deccrease/increase-handling also when Override is active (see issue #72)
  • (René) priority handling for temperature increase / decrease overworked (use only values not equal zero)

0.3.15 (2020-01-18)

  • (René) bug fix: avoid exception when go to override if MinTemperature-check is active

0.3.14 (2020-01-12)

  • (René) format conversion for temperatures in string to number
  • (René) ack for MinTemperature

0.3.13 (2019-12-28)

  • (René) bugfix create cron jobs for profile type 3 (daily)

0.3.12 (2019-12-27)

  • (René) bugfix exception in CheckTemperatureChange [ReferenceError: RoomState is not defined]

0.3.11 (2019-12-27)

  • (René) option: minimum temperature per room
  • (René) bugfix exception in CheckTemperatureChange [ReferenceError: PublicHolidyToday is not defined]

0.3.10 (2019-12-26)

  • (René) see issue #54: stop override with OverrideTemperature =0
  • (René) new priority for lowering reasons
  • (René) handling of actuators without thermostat
  • (René) see issue #66: handle lowering in time between 0:00 and first period
  • (René) see issue #64: import of configuration fixed

0.3.9 (2019-12-14)

  • (René) see issue #60: sensor delay
  • (René) see issue #57: support of the same sensor for different rooms
  • (René) bug fix: "AbsentDecrease not defined" for relative lowering

0.3.8 (2019-12-12)

  • (René) see issue #59: TemperaturOverride: acceppt hh:mm and hh:mm:ss
  • (René) PartyNow support by iCal
  • (René) if useActuators: show how many actuators are active (as a datapoint)

0.3.7 (2019-11-29)

Attention: some changes in datapoints!!

  • (René) see issue #53: moved datapoints for relative lowering into "relative"
  • (René) new datapoint to show lowering decrease mode (heatingcontrol.0.TemperatureDecreaseMode)
  • (René) guest present as interface to ical
  • (René) see issue #52: support radar adapter
  • (René) all external states checked when adapter starts

0.3.6 (2019-11-23)

Attention: some changes in datapoints!!

  • (René) moved some datapoints from "profile" to "rooms"
  • (René) see issue #50: support absolute and relative decrease of target temperature
  • (René) do not check all rooms everytime: when data only for one room changed then check only one room
  • (René) only one event is used to lower temperature
  • (René) add interface to ical (path to vacation and path to holiday present datapoints)
  • (René) support of more then one instance

0.3.4 (2019-11-09)

  • (René) bug fix in data point name

0.3.3 (2019-11-08)

Attention: some changes in datapoints!!

  • (René) in admin: new buttons to add search new rooms
  • (René) bug fix: in profil type Mo-Fr / Sa- So period order check failed
  • (René) see issue #38: new datapoint for WindowIsOpen
  • (René) change datapoint "CurrentTimePeriod" to "CurrentTimePeriodFull", "CurrentTimePeriod" and "CurrentTimePeriodTime"
  • (René) bugfix datapoint name "Sa-Su"
  • (René) see issue #16: new datapoint "state" per room to show reason for temperatur change
  • (René) change format of LastProgramRun date / time

0.3.2 (2019-11-01)

  • (René) try to convert temperature to number if NaN
  • (René) see issue #33: check for heating period when adapter starts
  • (René) fix a problem in subscription function when room can not be found

0.3.1 (2019-10-31)

  • (René) see issue #42 and #44: check all sensors per room and set state when adapter starts
  • (René) show message in admin when adapter is not online
  • (René) pre-define devicelist; add dummy thermostat, if list is empty

0.3.0 (2019-10-27)

  • (René) see issue #20 + #24: start and end of heating period is configurable in admin
  • (René) see issue #24: use external data point to set internal "present" data point
  • (René) see issue #15: manual temperatur override
  • (René) see issue #35: delete of devices
  • (René) reset DeleteAll at next admin start

0.2.3 (2019-09-20)

  • (René) see issue #19: handling of enums created in iobroker admin fixed
  • (René) see issue #13: check order of periods; if order is wrong (next time is smaller than previous) then time si not used for cron and a warning appears in log
  • (René) see issue #21: check temperatures after changing of period settings (e.g. time)
  • (René) see issue #25: select OID for target and current of thermostat in admin overworked
  • (René) change datapoint type from bool to boolean

0.2.2 (2019-09-13)

  • (René) see issue #14: description of datapoint time changed ('from' instead 'until')
  • (René) see issue #12: unnecessary warnings removed
  • (René) see issue #17: seconds removed from time list
  • (René) datepoint change handling reworked
  • (René) see issue #18: take over values from external PublicHoliday-datapoint

0.2.1 (2019-09-08)

  • (René) bug fixes in actuator handling

0.2.0 (2019-09-05)

  • (René) path to Feiertag-Adapter can also include a complete datapoint path

0.1.0 (2019-08-25)

  • (René) redesign of data structure
    • more then one actuator, sensor and thermostat per room
    • three different profile types
    • manual configuration of devices (if device is not detected automatically)
    • interface to Feiertag-Adapter
    • public holiday as normal day or like sunday (setting in admin)
    • window sensor support. Reduce target temperature when window is open
    • !!ATTENTION!! data structure/objects has been changed. You need to update your visualisation settings

0.0.5 (2019-07-08)

  • (René) support for max! thermostats

0.0.4 (2019-06-23)

  • (René) debugging

0.0.3 (2019-06-02)

  • (René) ready to publish

0.0.2 (2019-05-19)

  • (René) actuator handling added

0.0.1 (2019-04-27)

  • (René) initial release

License

MIT License

Copyright (c) 2019-2024 René G. [email protected]

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.

iobroker.heatingcontrol's People

Contributors

apollon77 avatar dependabot[bot] avatar dutchmannl avatar ericsboro avatar greenkeeper[bot] avatar marc-berg avatar matida538 avatar mcm1957 avatar mic-m avatar rg-engineering avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iobroker.heatingcontrol's Issues

Integration Feiertagskalender

Hallo, wie du selbst im Forum beschrieben hast, soll der Feiertagskalender zukünftig integriert werden. Ich bitte aber darum, diesen nicht "hart" zu verdrahten, sondern in deinem Adapter einen beliebigen true/false Wert auswählen zu lassen. Ich habe mir z.B. einen eigenen Datenpunkt angelegt, welche je nach Feiertag / Urlaub / Ferien / Wochenende einen true / false vergibt, sprich die Tage wo auf jedefall jemand zu Hause ist auch einen true ausgibt. NUR der Feiertagskalender ist hier zu wenig... Deshalb bitte ich die Implementierung etwas freier zu gestalten. Jedem ist dann frei überlassen ob er "nur" den Feiertagskalender-Datenpunkt nimmt oder sich selbst was zusammengebaut hat...

Danke!

Integration Anwesenheitsteuerung und iCal

Für eine automatische Steuerung der Temperaturabsenkung i m Falle das niemand zuhause ist, wäre es wünschenswert wenn der State der Anwesentheiterkennung angegeben werden kann.

Auch für eine iCal-Steuerung z.B. als Overide der Temperatur bei Urlaub (um z.B. unter der Woche später die Heizung hoch zu fahren) wäre wünschenswert.

Please check ioBroker.heatingcontrol with js-controller 2.0

Hi,

the new js-controller 2.0 will come into latest repository in the next days and we want to make sure that all adapters are working well. We already did a 2 weeks Beta test and so some adapter were aleady checked and some needed slight adjustments.

You can find more information in ioBroker/ioBroker.js-controller#482 and in the ioBroker Forum. If you have more technical questions please write in the referenced issue or in the Developer thread please. General questions are best in the genral thread.

Please update your systems to js-controller 2.0 and check your adapter.

Please close this issue once you have checked your adapter or received successfull reports from users.

Thank you very much for your support. Please contact us in the other Threads or Forum on any question.

Thermostate können nicht angelegt werden

Hallo,

leider kann ich mit der 3.0.0 aus github installiert keine Thermostate anlegen. Wenn ich OK drücke und danach wieder das Fenster öffne ist es wieder leer.
So kann ich den Adapter nicht benutzen.

Im Log bekomme ich folgendes:

       
heatingcontrol.0 2019-10-26 07:16:27.786 error (19745) exception in main [TypeError: Cannot read property 'isActive' of null]

<

Hinweis: iobroker listet die version 2.3 als letze Aktuelle mit dem latest Verwahrungsort, die Version hat bei mir überhaupt nicht funktioniert, konnte noch nicht einmal das Fenster zur Thermostatinstallation öffnen.

Grüße
Jan

No function (enums) selectable

I have installed 0.2.0 today. I want to setup the instance, but in this version is no function (enum) selectable. In the last version i could.

grafik
grafik

Zusätzlicher Datenpunkt pro Raum - Verschlussstatus

Bei Nutzung von Fensterkontakten muß programmintern vermutlich ohnehin der Verschlussstatus der Fensterkontakte (Offen - zu) ermittelt werden. Grad bei Vorhandensein mehrer Fenster/Kontakte wär ein Datenpunkt welcher den kombinierten Status des Raums (true/false) angibt hilfreich als Information und Anzeige in Vis. Vorallem wenn dieser wie vermutet ohnehin programmintern erzeugt wird und nur herausgeführt werden muss.

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/rg-engineering/ioBroker.heatingcontrol

  • [E502] "admin/img/info-big.png" not found, but selectID.js used in index_m.html

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

Angabe Start- und End-Datum der Heizperiode

Um automatisch die Heizung während der Heizperiode zu starten wäre es wünschenswert wenn das Datum für die Heizperiode angegeben werden könnte, so daß der Adapter diese automatisch übernimmt.

Verify Compact mode for your adapter

We have detected that your adapter supports the compact mode. Please use the latest js-controller 2.0 and verify that everything works.

Some more information what is important to check can be found at ioBroker/ioBroker.js-controller#512

On questions please answer to the linked issue. Please close this issue after your test and add the version number that you have tested please as a comment.

Thank you for your support.

Feature Request: Burst Modus

Ist es möglich einen Burst Modus zu integrieren um, wenn in einem Raum ein DP für den Burst auf true gesetzt wird, die Thermostate in diesem Raum für eine bestimmte Zeit (15-30 Minuten) voll zu öffnen bzw auf die maximale Temperatur zu schalten?

Wäre gut um z. B. das Bad kurz aufzuheizen oder nach dem Lüften kurz aufzuwärmen bzw wenn die Frau mal wieder wegen Kälte motzt einfach mal hichzuheizen.

Danke für deine Mühe,
Carsten

Nicht gewollter Übertrag aller Temperaturen

Bei mir kommt es vor, dass alle Soll-Temperaturen an die Heizkörperthermostate (HKT) neu fr das aktuelle Zeitfenster übermittelt werden, obwohl sich nur für ein HKT die Temperatur ändert.

Beispiel: Ich habe nur einen Raum, der ab 14Uhr langsam hochgefahren werden soll. Um 14Uhr wurde für alle Räume die Soll-Temperatur übermittelt, obwohl ich für zwei Räume die Temperatur manuell angepasst habe, da ich ungeplant zu Hause war. Aus meiner Sicht sollte nur für den betroffenen Raum die Temp-Anpassung bei einem neuen Zeitfenster erfolgen.

Sonst noch jmd das Problem oder wie wird das sonst so gesehen?

Fehlender Datenpunkt

In den globalen Settings gibt es Datenpunkte für Urlaub anwesend und Urlaub abwesend. In den Profilsettings finde ich aber nur einen Datenpunkt für Urlaub abwesend. (=VacationAbsent Decrease).
Grundsätzlich finde ich jedoch allgemein dass die Benennung der Datenpunkte "unglücklich" ist und evtl. überdacht werden könnte. Beispiel: UrlaubAbwesend in den Globalen Settings heißt: VacationAbsent, Urlaub anwesend heißt: HolydayPresent, das ist verwirrend.
Gleiche seltsamkeit bei dem ProfilOrdnern: Su-So. Wofür steht hier das Su? Sollte das nicht ein Sa sein?

support Radar Adapter

In der Adapter Settings Hauptseite gibt es den Datenpunkt für "derzeit Anwesend". Ich gehe davon aus, dass dieser ein true/false erwartet (hab dazu nix dokumentiert gefunden). Viele, auch ich, verwenden für Anwesenheitskontrolle den Radar Adapter, dieser liefert aber kein true/false sondern unter .nhere die Anzahl der anwesenden Personen. 0 wenn keiner da ist. Wär toll wenn das direkt verwendet werden könnte. Ich hab mir ein Script gebaut das nen true/false Datenpunkt aus der Personenzahl erstellt, aber sollte ja kein großer Akt sein das direkt im Adapter zu machen. Also ein Feature Request.

see
https://forum.iobroker.net/topic/22579/test-adapter-heatingcontrol-v0-3-x/431

Zusätzlicher Datenpunkt MinimalTemperatur

Ich würde mir einen zusätzlichen Datenpunkt "MinimalTemperatur" wünschen, gerne global:
Zur Zeit kann ich nur Temperaturbeträge angeben, um die bei Abwesenheit/Urlaub abgesenkt wird.
Ich fahre unterschiedliche Temperaturen über den Tag verteilt. Diese Staffelung bleibt bei einer Absenkung um einen fixen Betrag erhalten, was für eine generelle Absenkung auf z.B. 18° im Urlaub/Ferienwohnung nicht gewünscht ist.
Gäbe es nun eine MinimalTemperatur von z.B. 18°, könnte ich die Absenkung für den Urlaubszeitraum dann z.B auf 10° einstellen. Wegen der Unterschwelle von 18° würden alle gestaffelten Temperaturen auf diesen gleichen Wert abgesenkt.

Aussentemperatur Abgleich

Hi, schön wäre es wenn es die Möglichkeit gibt bei einer Max Außen Temperatur eine bestimmte Min. Temperatur für alle Thermostate einzustellen.

Integration Vor Heitzungs Zeiten

Gut wäre es der Adapter würde auch die Vorraus Zeiten zum Hochheitzen messen und setzen.
wie im Skript aus dem Forum:

`var rooms= {
'EG-Esszimmer': {
stateIdHeizungStatus: "hm-rpc.1.MEQ0559168.4.VALVE_STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
heizungStatusIstAktor: false, // Status-State ist Aktor (=true) oder Stellventil (=false)
stateIdIstTemperatur: "hm-rpc.1.MEQ0559168.4.ACTUAL_TEMPERATURE" // Ist-Temperatur
},
'EG-Wohnzimmer': {
stateIdHeizungStatus: "hm-rpc.1.MEQ1558304.4.VALVE_STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
heizungStatusIstAktor: false, // Status-State ist Aktor (=true) oder Stellventil (=false)
stateIdIstTemperatur: "hm-rpc.1.MEQ1558304.4.ACTUAL_TEMPERATURE" // Ist-Temperatur
},
'OG-BAD': {
stateIdHeizungStatus: "hm-rpc.1.MEQ0558719.4.VALVE_STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
heizungStatusIstAktor: false, // Status-State ist Aktor (=true) oder Stellventil (=false)
stateIdIstTemperatur: "hm-rpc.1.MEQ0558719.4.ACTUAL_TEMPERATURE" // Ist-Temperatur
},
'EG-Buero': {
stateIdHeizungStatus: "hm-rpc.1.MEQ0555014.4.VALVE_STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
heizungStatusIstAktor: false, // Status-State ist Aktor (=true) oder Stellventil (=false)
stateIdIstTemperatur: "hm-rpc.1.MEQ0555014.4.ACTUAL_TEMPERATURE" // Ist-Temperatur
},
'OG-Rechts': {
stateIdHeizungStatus: "hm-rpc.1.MEQ0549536.4.VALVE_STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
heizungStatusIstAktor: false, // Status-State ist Aktor (=true) oder Stellventil (=false)
stateIdIstTemperatur: "hm-rpc.1.MEQ0549536.4.ACTUAL_TEMPERATURE" // Ist-Temperatur

},
'Boiler': {
    stateIdHeizungStatus: "hm-rpc.1.OEQ2401095.1.STATE", // Status des Heizungsaktors zur Erkennung wann geheizt wird und wann nicht
    heizungStatusIstAktor: true, // Status-State ist Aktor (=true) oder Stellventil (=false)
    stateIdIstTemperatur: "hm-rpc.1.OEQ0800873.1.TEMPERATURE" // Ist-Temperatur

}
};
var stateBaseId = "javascript.0.Heizung.Aufheizzeit.";
var ventilOeffnungHeizen = 31; // Wenn State ein Ventil ist ab welchem Ventil-Öffnungsstand wird es als "Heizen" betrachtet. 80-90% empfohlen, alles darunter ist eher "warm halten"!
var erkennungAusVerzoegerung = 3; // Zeit in Sekunden wann der Aktor als "Aus" akzeptiert wird, kann auch pro Raum definier werden
var maxIncrease1K = 65; // Maximale 1K-Zeit die akzeptiert wird (alles darüber wird als ungültig verworfen)
var minIncrease1K = 3; // Minimale 1K-Zeit die akzeptiert wird (alles darunter wird als ungültig verworfen)
var debug = false; // Ausführliches Debug-Logging

initialize();

function initialize() {
for (var room in rooms) {
rooms[room].letztesEin = 0;
rooms[room].letztesEinTemp = 0;
rooms[room].letzteTemp = 0;
rooms[room].skriptTimeout = null;
rooms[room].aufheizzeiten = [];
rooms[room].status = getState(rooms[room].stateIdHeizungStatus).val;
if (!rooms[room].heizungStatusIstAktor) {
if (rooms[room].status > rooms[room].ventilOeffnungHeizen) rooms[room].status = true;
else rooms[room].status = false;
}

    if (! rooms[room].erkennungAusVerzoegerung) rooms[room].erkennungAusVerzoegerung = erkennungAusVerzoegerung;
    if (! rooms[room].maxIncrease1K) rooms[room].maxIncrease1K = maxIncrease1K;
    if (! rooms[room].minIncrease1K) rooms[room].minIncrease1K = minIncrease1K;
    if (! rooms[room].ventilOeffnungHeizen) rooms[room].ventilOeffnungHeizen = minIncrease1K;
    rooms[room].ausTimeout = null;

    if (rooms[room].status) {
        rooms[room].letztesEin = new Date().getTime();
        rooms[room].letztesEinTemp = getState(rooms[room].stateIdIstTemperatur).val;
        rooms[room].letzteTemp = rooms[room].letztesEinTemp;
        if (debug) {console.log('    ' + room + ': Aktor eingeschaltet, starte Aufheizmessung jetzt (' + rooms[room].letztesEinTemp + ')');}
    }

    initializeSubscribes(room);

    if (debug) {console.log('Raum ' + room + ' initialisiert, status=' + rooms[room].status);}
}

}

function initializeSubscribes(room) {
createState(stateBaseId + room, {'type': 'number', 'read': true, 'write': true, 'role': 'value', 'unit': 'm'}, function() {
createState(stateBaseId + room + '-Data', {'type': 'string', 'read': true, 'write': true, 'role': 'value', 'unit': '', def: ''}, function() {
var storedData = getState(stateBaseId + room + '-Data').val;
var error = false;
if (storedData) {
try {
rooms[room].aufheizzeiten = JSON.parse(storedData);
}
catch (e) {
console.log('Error reading old Data: ' + e);
error = true;
}
}
if (!storedData || error) {
rooms[room].aufheizzeiten = [];
var storedAvg = getState(stateBaseId + room).val;
if (storedAvg) {
rooms[room].aufheizzeiten.push(storedAvg);
}
setState(stateBaseId + room + '-Data', JSON.stringify(rooms[room].aufheizzeiten), true);
if (debug) {console.log(' Initialize Data ' + room + ': ' + JSON.stringify(rooms[room].aufheizzeiten));}
}
});
});

on({id: rooms[room].stateIdHeizungStatus, change: 'any'}, function(state) {
    if (debug) {console.log('Änderung Status Aktor FBH ' + room + ': ' + state.oldState.val + '--> ' + state.state.val + ' (ack=' + state.state.ack + ', from=' + state.state.from + ') status bisher=' + rooms[room].status);}
    if (!state.state.ack) return;
    if (rooms[room].ausTimeout) {
        clearTimeout(rooms[room].ausTimeout);
        rooms[room].ausTimeout = null;
    }
    var verzoegerung = state.state.val ? 0 : (rooms[room].erkennungAusVerzoegerung * 1000);
    var val = state.state.val;
    if (!rooms[room].heizungStatusIstAktor) {
        if (state.state.val > rooms[room].ventilOeffnungHeizen) val = true;
          else val = false;
    }

    rooms[room].ausTimeout = setTimeout(function() {
        aktualisiereAktorStatus(room, val);
    }, verzoegerung);
});

}

function aktualisiereAktorStatus(room, stateVal) {
rooms[room].ausTimeout = null;
if (rooms[room].status === stateVal) return;
rooms[room].status = stateVal;
if (stateVal && rooms[room].letztesEin === 0) {
rooms[room].letztesEin = new Date().getTime();
rooms[room].letztesEinTemp = getState(rooms[room].stateIdIstTemperatur).val;
rooms[room].letzteTemp = rooms[room].letztesEinTemp;
pruefeAufheizzeit(room, true);
}
else if (rooms[room].letztesEin !== 0) {
pruefeAufheizzeit(room, false);
rooms[room].letztesEin = 0;
rooms[room].letzteTemp = 0;
}
}

function pruefeAufheizzeit(room, restart) {
if (rooms[room].skriptTimeout) {
clearTimeout(rooms[room].skriptTimeout);
rooms[room].skriptTimeout = null;
}

var timeDiff = new Date().getTime();
if (! restart) timeDiff -= (rooms[room].erkennungAusVerzoegerung * 1000);
timeDiff = Math.round((timeDiff - rooms[room].letztesEin) / 1000 / 60);
if (debug) {console.log(room + " timeDiff=" + timeDiff);}
if (timeDiff > 10) {
    var invalid = false;
    var tempDiff = getState(rooms[room].stateIdIstTemperatur).val - rooms[room].letztesEinTemp;
    var increase1K = Math.round((1 / tempDiff) * timeDiff);
    var finalInfo = restart ? "" : "FINALE ";
    if (increase1K < rooms[room].minIncrease1K || increase1K > rooms[room].maxIncrease1K) {
        finalInfo = "INVALID ";
        invalid = true;
    }
    var tempDiffLetztes = getState(rooms[room].stateIdIstTemperatur).val - rooms[room].letzteTemp;
    if (tempDiffLetztes < 0) {
        finalInfo = "TEMP-KLEINER ";
        invalid = true;
    }
    var avg = -1;
    if (!invalid) {
        rooms[room].aufheizzeiten.push(increase1K);
        avg = 0;
        for (var i = 0; i < rooms[room].aufheizzeiten.length; i++) {
            avg += rooms[room].aufheizzeiten[i];
        }

        avg = Math.round(avg/rooms[room].aufheizzeiten.length);
        setState(stateBaseId + room, avg, true);
        if (rooms[room].aufheizzeiten.length > 10) {
            rooms[room].aufheizzeiten.shift();
        }
        setState(stateBaseId + room + '-Data', JSON.stringify(rooms[room].aufheizzeiten), true);
    }
    else if (tempDiffLetztes < 0) {
        rooms[room].letztesEin = new Date().getTime();
        rooms[room].letztesEinTemp = getState(rooms[room].stateIdIstTemperatur).val;
        rooms[room].letzteTemp = rooms[room].letztesEinTemp;
    }
    rooms[room].letzteTemp = getState(rooms[room].stateIdIstTemperatur).val;
    if (debug) {console.log(finalInfo + 'Aufheizzeit ' + room + ': timeDiff=' + timeDiff + ', tempDiff=' + tempDiff + ', 1K=' + increase1K + 'm / avg=' + avg + 'm');}
}

if (restart) {
    rooms[room].skriptTimeout = setTimeout(function() {
        rooms[room].skriptTimeout = null;
        pruefeAufheizzeit(room, true);
    }, 30*60*1000);
}`

Fehlauswertung Fenstersensoren

Ich habe in mehreren Zimmern Doppelfenster und somit auch 2 Kontakte. Diese lassen sich ja auch problemlos anlegen, zeigen aber ein eigenartiges Verhalten. Mach ich ein Fenster auf, erfolgt korrekte Absenkung, mach ichs wieder zu auch korrekte Solltemperatur. Mach ich jedoch beide Flügel auf, erfolgt wieder erstmal korrekte Absenkung. Mach ich jetzt von den beiden offenen eins zu, wird wieder auf Solltemp gestellt obwohl der 2te Flügel noch offen ist.

States umlegen

Kann man nicht die States für "Absenkung abwesend", "Fenster offen absenkung", "Manuelle Temperaturänderung und die Zeit dazu" als Globale Parameter machen? Die Werte sind ja in jeder PEriode gleich aber man muss dann nicht jede einzelne Periode durchgehen um das einzustellen.

Vermeidung hoher DutyCyle durch senden bei Temperatur Änderung

Es scheint, als würde die Temperatur bei jedem Event an alle Thermostate gesendet werden, auch wenn sich die Temperatur gar nicht ändert. Ich habe zu mindestens oft einen hohen senden wert und die Befehle werden deshalb sehr zeit verzögert gesendet. Beispiel: Fenster auf = Erst nach ein paar Minuten wird die Temperatur geändert...

Ich denke man sollte die Last möglichst gering halten und deshalb nur dann "steuern" wenn es auch wirklich eine Änderung gab.

Feature Request: Temperatur Übersteuerung

Wäre es möglich das die Temperatur für einzelne Räume manuell geregelt werden könnte und damit die Vorgaben der Einstellungen in den Perioden bis zur nächsten planmäßigen Änderung überteuert werden kann?

Wäre gut falls man mal unplanmäsig zuhause ist und deshalb nicht die Perioden für einen Tag geändert werden müsstenn.

Until = bis, Adapter fährt ab der Uhrzeit die Temperaturen

Hallo,
Wir haben grade 19:28Uhr und der Adapter zeigt Period 3:16:00:00 Uhr an, müsste er nicht danach in Period 4 sein?
Period 4 steht auf until 21:00:00 ?
Es würde ja reichen "ab" zu schreiben...

Ich nutze den Adapter im Übrigen mit einem Maxcul auf einem NUC, habe ihn aber grade auch erst mit einigen Schwierigkeiten installiert was die Räume angeht; aber da lag zu 99,9% an mir und meinem System

Feiertage werden nur bei Neustart des Adapters erkannt

Hallo!

Mir ist gestern aufgefallen, dass der Datenpunkt heatingcontrol.0.PublicHolidyToday nicht auf true gesetzt wurde (Reformationstag).
Nach dem durchstarten des Adapters wurde er dann gesetzt.
Heute ist hier lokal kein Feiertag und dies wird auch im Feiertagsadapter (feiertage.0.heute.boolean) so angezeigt, aber bei heatingcontrol ist der Datenpunkt heatingcontrol.0.PublicHolidyToday immer noch auf true gesetzt.

Ist grundsätzlich ein Neustart des Adapters Nachts notwendig?

Viele Grüße,
Marcus

Sensoren(Fenster) Status wird bei Adapterneustart nicht berücksichtigt

Sind Fenster geöffnet und es muß, warum auch immer, der Adapter oder iobroker neugestartet werden, wird der Fensterstatus nicht berücksichtigt und die Heizung bullert fleißig vor sich hin. Workaround, einmal durchs Haus laufen und jedes offene Fenster einmal schliessen und wieder öffnen.

Datenpunkt MODE anlegen

Ist es möglich einen Datenpunkt Mode anzulegen mit dem der Modus des Thermostat dirkt gesteuert werden kann.
Bei den DECT Thermostaten ist das
Mode 0 = AUTO
Mode 1 = AUS (geschlossen)
Mode 2 = ON (geöffnet)
Ich könnte das zwar auch über den DECT Adapter steuern, aber ich befürchte das der dann vom Heatingcontrol wieder überschrieben wird.

Gedacht ist das einfach das ich bei "Fenster auf" direkt auf Mode 1 gehen kann oder im tiefen Winter kurz einen Button drücke der für 30 Minuten Mode 2 auslöst und ich 30 Minuten später in die schöne warme Dusche komme. (sofern wir noch kalte Winter bekommen)

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/rg-engineering/ioBroker.heatingcontrol

  • [E201] Bluefox was not found in the collaborators on NPM!. Please execute in adapter directory: "npm owner add bluefox iobroker.heatingcontrol"

Thanks,
your automatic adapter checker.

P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

Integration DECT Thermostate

Hi,
ist es Möglich auch die Fritz! bzw. Comet DECT Thermostate zu integrieren?
Wäre super, Danke!

-> issue neu angelegt, da in dem ursprünglichen ein anderes Thema diskutiert wurde...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.