[nibeheatpump] Added device support for SMO40 control (#9376)
Signed-off-by: Markus Gafner <markus.gafner@hotmail.com>pull/9565/head
parent
ce69f22ef3
commit
ca64d1124a
|
@ -1,7 +1,7 @@
|
|||
# Nibe Heatpump Binding
|
||||
|
||||
The Nibe Heatpump binding is used to get live data from Nibe heat pumps without using an expensive MODBUS40 adapter.
|
||||
This binding is compatible with the F750, F1145, F1245, F1155, F1255 and F470 heat pump models.
|
||||
This binding is compatible with the F750, F1145, F1245, F1155, F1255, F470 and SMO40 heat pump models.
|
||||
|
||||
The binding supports data telegrams (containing a maximum of 20 registers) from the heat pump.
|
||||
The binding can also read other registers from the pump.
|
||||
|
@ -30,6 +30,9 @@ This binding supports direct serial port connection (RS-485 adapter needed) to h
|
|||
| f470-serial | Serial port connected F470 Heat Pumps |
|
||||
| f470-udp | UDP connected Nibe F470 Heat Pumps |
|
||||
| f470-simulator | Simulator for Nibe F470 Heat Pumps |
|
||||
| smo40-serial | Serial port connected SMO40 controller |
|
||||
| smo40-udp | UDP connected Nibe SMO40 controller |
|
||||
| smo40-simulator | Simulator for Nibe SMO40 controller |
|
||||
|
||||
## Discovery
|
||||
|
||||
|
@ -1896,3 +1899,12 @@ This binding currently supports following channels for F1x55 pump models:
|
|||
| 49380 | Switch | 0 | 1 | Setting | External ERS 3 accessory bypass at heat | |
|
||||
| 49381 | Switch | 0 | 1 | Setting | External ERS 2 accessory bypass at heat | |
|
||||
| 49430 | Number | 0 | 255 | Setting | AUX ERS Fire Place Guard | |
|
||||
|
||||
|
||||
### SMO40
|
||||
|
||||
To keep this documentation light, all parameters are documented in the NIBE ModbusManager except of:
|
||||
| Channel Type ID | Item Type | Min | Max | Type | Description | Values |
|
||||
|-----------------|-----------|-------------|------------|---------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| 45780 | Number | 0 | 120 | Setting | Silent Mode Frequency 1 (defined in the service-menu) | |
|
||||
| 49806 | Number | 0 | 120 | Setting | Silent Mode Frequency 2 (defined in the service-menu) | |
|
||||
|
|
|
@ -37,6 +37,10 @@ public class NibeHeatPumpBindingConstants {
|
|||
public static final ThingTypeUID THING_TYPE_F1X55_SERIAL = new ThingTypeUID(BINDING_ID, "f1x55-serial");
|
||||
public static final ThingTypeUID THING_TYPE_F1X55_SIMULATOR = new ThingTypeUID(BINDING_ID, "f1x55-simulator");
|
||||
|
||||
public static final ThingTypeUID THING_TYPE_SMO40_UDP = new ThingTypeUID(BINDING_ID, "smo40-udp");
|
||||
public static final ThingTypeUID THING_TYPE_SMO40_SERIAL = new ThingTypeUID(BINDING_ID, "smo40-serial");
|
||||
public static final ThingTypeUID THING_TYPE_SMO40_SIMULATOR = new ThingTypeUID(BINDING_ID, "smo40-simulator");
|
||||
|
||||
public static final ThingTypeUID THING_TYPE_F750_UDP = new ThingTypeUID(BINDING_ID, "f750-udp");
|
||||
public static final ThingTypeUID THING_TYPE_F750_SERIAL = new ThingTypeUID(BINDING_ID, "f750-serial");
|
||||
public static final ThingTypeUID THING_TYPE_F750_SIMULATOR = new ThingTypeUID(BINDING_ID, "f750-simulator");
|
||||
|
@ -50,7 +54,8 @@ public class NibeHeatPumpBindingConstants {
|
|||
*/
|
||||
public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Stream
|
||||
.of(THING_TYPE_F1X45_UDP, THING_TYPE_F1X45_SERIAL, THING_TYPE_F1X45_SIMULATOR, THING_TYPE_F1X55_UDP,
|
||||
THING_TYPE_F1X55_SERIAL, THING_TYPE_F1X55_SIMULATOR, THING_TYPE_F750_UDP, THING_TYPE_F750_SERIAL,
|
||||
THING_TYPE_F750_SIMULATOR, THING_TYPE_F470_UDP, THING_TYPE_F470_SERIAL, THING_TYPE_F470_SIMULATOR)
|
||||
THING_TYPE_F1X55_SERIAL, THING_TYPE_F1X55_SIMULATOR, THING_TYPE_SMO40_UDP, THING_TYPE_SMO40_SERIAL,
|
||||
THING_TYPE_SMO40_SIMULATOR, THING_TYPE_F750_UDP, THING_TYPE_F750_SERIAL, THING_TYPE_F750_SIMULATOR,
|
||||
THING_TYPE_F470_UDP, THING_TYPE_F470_SERIAL, THING_TYPE_F470_SIMULATOR)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
|
|
@ -151,14 +151,16 @@ public class NibeHeatPumpHandler extends BaseThingHandler implements NibeHeatPum
|
|||
private NibeHeatPumpConnector getConnector() throws NibeHeatPumpException {
|
||||
ThingTypeUID type = thing.getThingTypeUID();
|
||||
|
||||
if (THING_TYPE_F1X45_UDP.equals(type) || THING_TYPE_F1X55_UDP.equals(type) || THING_TYPE_F750_UDP.equals(type)
|
||||
|| THING_TYPE_F470_UDP.equals(type)) {
|
||||
if (THING_TYPE_F1X45_UDP.equals(type) || THING_TYPE_F1X55_UDP.equals(type) || THING_TYPE_SMO40_UDP.equals(type)
|
||||
|| THING_TYPE_F750_UDP.equals(type) || THING_TYPE_F470_UDP.equals(type)) {
|
||||
return new UDPConnector();
|
||||
} else if (THING_TYPE_F1X45_SERIAL.equals(type) || THING_TYPE_F1X55_SERIAL.equals(type)
|
||||
|| THING_TYPE_F750_SERIAL.equals(type) || THING_TYPE_F470_SERIAL.equals(type)) {
|
||||
|| THING_TYPE_SMO40_SERIAL.equals(type) || THING_TYPE_F750_SERIAL.equals(type)
|
||||
|| THING_TYPE_F470_SERIAL.equals(type)) {
|
||||
return new SerialConnector(serialPortManager);
|
||||
} else if (THING_TYPE_F1X45_SIMULATOR.equals(type) || THING_TYPE_F1X55_SIMULATOR.equals(type)
|
||||
|| THING_TYPE_F750_SIMULATOR.equals(type) || THING_TYPE_F470_SIMULATOR.equals(type)) {
|
||||
|| THING_TYPE_SMO40_SIMULATOR.equals(type) || THING_TYPE_F750_SIMULATOR.equals(type)
|
||||
|| THING_TYPE_F470_SIMULATOR.equals(type)) {
|
||||
return new SimulatorConnector();
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ package org.openhab.binding.nibeheatpump.internal.models;
|
|||
public enum PumpModel {
|
||||
F1X45("F1X45"),
|
||||
F1X55("F1X55"),
|
||||
SMO40("SMO40"),
|
||||
F750("F750"),
|
||||
F470("F470");
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -54,6 +54,8 @@ public class VariableInformation {
|
|||
return F1X45.getVariableInfo(key);
|
||||
case F1X55:
|
||||
return F1X55.getVariableInfo(key);
|
||||
case SMO40:
|
||||
return SMO40.getVariableInfo(key);
|
||||
case F750:
|
||||
return F750.getVariableInfo(key);
|
||||
case F470:
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,168 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<thing:thing-descriptions bindingId="nibeheatpump"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||
|
||||
<thing-type id="smo40-udp">
|
||||
<label>UDP Connected Nibe SMO40 Heat Pumps</label>
|
||||
<description></description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group typeId="smo40-sensor-group-channels" id="sensor"/>
|
||||
<channel-group typeId="smo40-setting-group-channels" id="setting"/>
|
||||
</channel-groups>
|
||||
|
||||
<config-description>
|
||||
<parameter name="hostName" type="text" required="true">
|
||||
<label>Host Name</label>
|
||||
<description>Network address of the NibeGW.</description>
|
||||
</parameter>
|
||||
<parameter name="port" type="integer">
|
||||
<label>UDP Port</label>
|
||||
<description>UDP port to listening data packets from the NibeGW.</description>
|
||||
<default>9999</default>
|
||||
</parameter>
|
||||
<parameter name="readCommandsPort" type="integer">
|
||||
<label>UDP Port for Read Commands</label>
|
||||
<description>UDP port to send read commands to the NibeGW.</description>
|
||||
<default>9999</default>
|
||||
</parameter>
|
||||
<parameter name="writeCommandsPort" type="integer">
|
||||
<label>UDP Port for Write Commands</label>
|
||||
<description>UDP port to send write commands to the NibeGW.</description>
|
||||
<default>10000</default>
|
||||
</parameter>
|
||||
<parameter name="refreshInterval" type="integer">
|
||||
<label>Refresh Interval</label>
|
||||
<description>States how often a refresh shall occur in seconds.</description>
|
||||
<default>60</default>
|
||||
</parameter>
|
||||
<parameter name="enableReadCommands" type="boolean">
|
||||
<label>Enable Read Commands</label>
|
||||
<description>Enable read commands to read additional variable from heat pump which are not included to data readout
|
||||
messages. This is experimental feature, use it at your own risk!</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="enableWriteCommands" type="boolean">
|
||||
<label>Enable Write Commands</label>
|
||||
<description>Enable write commands to change heat pump settings. This is experimental feature, use it at your own
|
||||
risk!</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="enableWriteCommandsToRegisters" type="text">
|
||||
<label>Registers List for Write Commands</label>
|
||||
<description>Comma separated list of registers, which are allowed to write to heat pump. E.g. 44266, 47004</description>
|
||||
<default></default>
|
||||
</parameter>
|
||||
<parameter name="throttleTime" type="integer" unit="ms">
|
||||
<label>Throttle Incoming Data</label>
|
||||
<description>Throttle incoming data read out messages from heat pump. 0 = throttle is disabled, otherwise throttle
|
||||
time in milliseconds.</description>
|
||||
<default>0</default>
|
||||
</parameter>
|
||||
</config-description>
|
||||
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="smo40-serial">
|
||||
<label>Serial Port Connected SMO40 Heat Pumps</label>
|
||||
<description></description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group typeId="smo40-sensor-group-channels" id="sensor"/>
|
||||
<channel-group typeId="smo40-setting-group-channels" id="setting"/>
|
||||
</channel-groups>
|
||||
|
||||
<config-description>
|
||||
<parameter name="serialPort" type="text" required="true">
|
||||
<label>Serial Port</label>
|
||||
<description>Serial port to connect to the heat pump.</description>
|
||||
</parameter>
|
||||
<parameter name="refreshInterval" type="integer">
|
||||
<label>Refresh Interval</label>
|
||||
<description>States how often a refresh shall occur in seconds.</description>
|
||||
<default>60</default>
|
||||
</parameter>
|
||||
<parameter name="enableReadCommands" type="boolean">
|
||||
<label>Enable Read Commands</label>
|
||||
<description>Enable read commands to read additional variable from heat pump which are not included to data readout
|
||||
messages. This is experimental feature, use it at your own risk!</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="enableWriteCommands" type="boolean">
|
||||
<label>Enable Write Commands</label>
|
||||
<description>Enable write commands to change heat pump settings. This is experimental feature, use it at your own
|
||||
risk!</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="enableWriteCommandsToRegisters" type="text">
|
||||
<label>Register List for Write Commands</label>
|
||||
<description>Comma separated list of registers, which are allowed to write to heat pump. E.g. 44266, 47004</description>
|
||||
<default></default>
|
||||
</parameter>
|
||||
<parameter name="sendAckToMODBUS40" type="boolean">
|
||||
<label>Enable Acknowledges to MODBUS40 Messages</label>
|
||||
<description>Binding emulates MODBUS40 device and send protocol acknowledges to heat pump.</description>
|
||||
<default>true</default>
|
||||
</parameter>
|
||||
<parameter name="sendAckToRMU40" type="boolean">
|
||||
<label>Enable Acknowledges to RMU40 Messages</label>
|
||||
<description>Binding emulates RMU40 device and send protocol acknowledges to heat pump.</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="sendAckToSMS40" type="boolean">
|
||||
<label>Enable Acknowledges to SMS40 Messages</label>
|
||||
<description>Binding emulates SMS40 device and send protocol acknowledges to heat pump.</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="throttleTime" type="integer" unit="ms">
|
||||
<label>Throttle Incoming Data</label>
|
||||
<description>Throttle incoming data read out messages from heat pump. 0 = throttle is disabled, otherwise throttle
|
||||
time in milliseconds.</description>
|
||||
<default>0</default>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="smo40-simulator">
|
||||
<label>Simulator for Nibe SMO40 Heat Pumps</label>
|
||||
<description></description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group typeId="smo40-sensor-group-channels" id="sensor"/>
|
||||
<channel-group typeId="smo40-setting-group-channels" id="setting"/>
|
||||
</channel-groups>
|
||||
|
||||
<config-description>
|
||||
<parameter name="refreshInterval" type="integer">
|
||||
<label>Refresh Interval</label>
|
||||
<description>States how often a refresh shall occur in seconds.</description>
|
||||
<default>60</default>
|
||||
</parameter>
|
||||
<parameter name="enableReadCommands" type="boolean">
|
||||
<label>Enable Read Commands</label>
|
||||
<description>Enable read commands to read additional variable from heat pump which are not included to data readout
|
||||
messages. This is experimental feature, use it at your own risk!</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="enableWriteCommands" type="boolean">
|
||||
<label>Enable Write Commands</label>
|
||||
<description>Enable write commands to change heat pump settings. This is experimental feature, use it at your own
|
||||
risk!</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
<parameter name="enableWriteCommandsToRegisters" type="text">
|
||||
<label>Register List for Write Commands</label>
|
||||
<description>Comma separated list of registers, which are allowed to write to heat pump. E.g. 44266, 47004</description>
|
||||
<default></default>
|
||||
</parameter>
|
||||
<parameter name="throttleTime" type="integer" unit="ms">
|
||||
<label>Throttle Incoming Data</label>
|
||||
<description>Throttle incoming data read out messages from heat pump. 0 = throttle is disabled, otherwise throttle
|
||||
time in milliseconds.</description>
|
||||
<default>0</default>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</thing-type>
|
||||
</thing:thing-descriptions>
|
Loading…
Reference in New Issue