|
|
Zeile 1: |
Zeile 1: |
| {{Infobox Modul | | {{Infobox Modul |
| |ModPurpose=Control / Extract information from SET Silent Pool Heat pumps | | |ModPurpose=UmweltBundesAmt |
| |ModType=d | | |ModType=d |
| |ModCmdRef=ModbusSET | | |ModCmdRef=UBA |
| |ModForumArea=Sonstiges | | |ModForumArea=Unterstützende Dienste |
| |ModTechName=98_ModbusSET.pm | | |ModTechName=60_uba.pm |
| |ModOwner=StefanStrobel ({{Link2FU|3960|Forum}} / [[Benutzer:StefanStrobel|Wiki]]) | | |ModOwner=Florian Asche |
| }} | | }} |
| 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.
| | comming soon. |
|
| |
|
| The module can also be used as a programming example for the usage of the base [[Modbus]] module.
| | == Availability == |
| | | ... |
| == Availability == | |
| The module has been checked in
| |
|
| |
|
| == Prerequisites == | | == Prerequisites == |
| This module requires the basic Modbus module which itsef requires Device::SerialPort or Win32::SerialPort module.
| | ... |
|
| |
|
| == Define == | | == Define == |
| <pre> | | <pre> |
| define <name> ModbusSET <Id> <Interval> | | define <name> uba <StationID> |
| </pre> | | </pre> |
| 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 | | 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 |
Zeile 26: |
Zeile 24: |
|
| |
|
| <pre> | | <pre> |
| define WP ModbusSET 1 60 | | define Umwelt uba 1190 |
| </pre> | | </pre> |
|
| |
|
| == Configuration of the module == | | == 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:
| |
| | |
| <pre>
| |
| 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
| |
| </pre>
| |
| | |
| 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.
| |
|
| |
|
| === Example:=== | | === Example:=== |
| <pre> | | <pre> |
| define WP ModbusSET 1 60
| | ... |
| attr WP poll-Temp_Soll 0
| |
| attr WP pollDelay-Hysterese 300
| |
| </pre> | | </pre> |
|
| |
|
Zeile 68: |
Zeile 40: |
| The following set options are available: | | The following set options are available: |
| <pre> | | <pre> |
| 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)
| |
| </pre> | | </pre> |
|
| |
|
| == Get-Commands == | | == Get-Commands == |
| 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. <code>showget => 1</code> has to be added to this data structure
| |
|
| |
|
| == Attributes == | | == Attributes == |
| ;do_not_notify | | ;... |
| ;readingFnAttributes
| |
| | |
| ;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
| |
| :include a read request for the corresponding registers when sending requests every interval seconds
| |
| | |
| ;pollDelay-*
| |
| :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.
| |
| | |
| ;dev-timing-timeout
| |
| :set the timeout for reads, defaults to 2 seconds
| |
| ;dev-timing-minSendDelay
| |
| :minimal delay between two requests sent to this device
| |
| ;dev-timing-minCommDelay
| |
| :minimal delay between requests or receptions to/from this device
| |
| | |
| [[Kategorie:Other Components]] | | [[Kategorie:Other Components]] |
| [[Kategorie:Heizungssteuerung]] | | [[Kategorie:Heizungssteuerung]] |