|Zweck / Funktion|
|Control / Extract information from SET Silent Pool Heat pumps|
|Dokumentation||EN / DE|
|Ersteller||StefanStrobel (Forum / Wiki)|
|Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!|
ModbusSET allows to control / communicate with Silent 10 pool heat pumps from Schmidt Energie Technik (SET). These heat pumps provide a Modbus interface over RS485. The module probably works with other heat pumps from SET as well and since the control device used in these heat pumps is an iChill IC121 from Dixell, it could even work for other heat pumps with this controller as well or with few changes. It defines the modbus holding registers for the temperature sensors and reads them in a defined interval.
The module can also be used as a programming example for the usage of the base Modbus module.
The module has been checked in
This module requires the basic Modbus module which itsef requires Device::SerialPort or Win32::SerialPort module.
define <name> ModbusSET <Id> <Interval>
The module connects to the heat pump with Modbus Id <Id> through an already defined modbus device and actively requests data from the heat pump every <Interval> seconds
define WP ModbusSET 1 60
Configuration of the module
apart from the modbus id and the interval which both are specified in the define command there is nothing that needs to be defined. However there are some attributes that can optionally be used to modify the behavior of the module.
The attributes that control which messages are sent / which data is requested every <Interval> seconds are:
poll-Hyst_Mode poll-Temp_Luft poll-Temp_Wasser_Aus_Off poll-Temp_Wasser_Ein_Off poll-Temp_Wasser_Aus poll-Hysterese poll-Temp_Wasser_Ein poll-Temp_Soll poll-Temp_Luft_Off poll-Temp_Verdampfer poll-Temp_Verdampfer_Off
if the attribute is set to 1, the corresponding data is requested every <Interval> seconds. If it is set to 0, then the data is not requested.
by default the temperatures are requested if no attributes are set. if some readings should be polled, but less frequently than the normal interval, you can specify a pollDelay-Attribute for the reading. The pollDelay attribute allows to poll objects at a lower rate than the interval specified in the define command. you can either specify a time in seconds or number prefixed by "x" which means a multiple of the interval of the define command. if you specify a normal number then it is interpreted as minimal time between the last read and another automatic read. Please note that this does not create an individual interval timer. Instead the normal interval timer defined by the interval of the define command will check if this reading is due or not yet. So the effective interval will always be a multiple of the interval of the define.
define WP ModbusSET 1 60 attr WP poll-Temp_Soll 0 attr WP pollDelay-Hysterese 300
The following set options are available:
Hysterese (defines the hysterese in Kelvin) Hyst_Mode (defines the interpretation of hysterese for the heating and can be set to mittig, oberhalb or unterhalb) Temp_Wasser_Aus_Off (offset of sensor in Kelvin - used to kalibrate) Temp_Wasser_Ein_Off (offset of sensor in Kelvin - used to kalibrate) Temp_Luft_Off (offset of sensor in Kelvin - used to kalibrate) Temp_Verdampfer_Off (offset of sensor in Kelvin - used to kalibrate) Temp_Soll (target temperature of the heating pump)
All readings are also available as Get commands. Internally a Get command triggers the corresponding
request to the device and then interprets the data and returns the right field value. To avoid huge option lists in FHEMWEB, only the most important Get options
are visible in FHEMWEB. However this can easily be changed since all the readings and protocol messages are internally defined in the modue in a data structure
and to make a Reading visible as Get option only a little option (e.g.
showget => 1 has to be added to this data structure
- include a read request for the corresponding registers when sending requests every interval seconds
- set a delay for polling individual Readings. In case some readings should be polled less frequently than the normal delay specified during define. Specifying a pollDelay will not create an individual timer for polling this reading but check if the delay is over when the normal update interval is handled.
- You can either specify a time in seconds or number prefixed by "x" which means a multiple of the interval of the define command. If you specify a normal numer then it is interpreted as minimal time between the last read and another automatic read. Please note that this does not create an individual interval timer. Instead the normal interval timer defined by the interval of the define command will check if this reading is due or not yet. So the effective interval will always be a multiple of the interval of the define.
- set the timeout for reads, defaults to 2 seconds
- minimal delay between two requests sent to this device
- minimal delay between requests or receptions to/from this device