Dimplex Wärmepumpenmanager
Mit der NWPM-Erweiterung ist es möglich den Dimplex Wärmepumpenmanager in ein Hausnetzwerk einzubinden. Durch die Einbindung der NWPM-Erweiterung ist es ebenfalls möglich die zur Verfügung gestellten Werte vom Wärmepumpenmanager mittels ModbusTCP in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen.
Voraussetzung
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellsten FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:
- 36_ModbusTCPServer.pm
- 37_ModbusCoil.pm
- 37_ModbusRegister.pm
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.
Installation
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update mitgeliefert.
- download der Module von https://github.com/ChrisD70/FHEM-Modules:
- 36_ModbusTCPServer.pm
- 37_ModbusCoil.pm
- 37_ModbusRegister.pm
- kopieren der Module in das Verzeichnis /fhem/FHEM/
- anschließend gegebenenfalls durch ein Reload laden
Benutzung
Anlegen der ModbusTCPServer Verbindung
Wie im im nachfolgenden angegeben muss zunächst eine ModbusTCPServer Verbindung hergestellt werden. Die angegebene IP-Adresse muss durch die IP-Adresse der Wärmepumpe ersetzt werden.
######################################################## ## ModbusTCPServer definieren ## Erstellt........: 28.12.2014 ######################################################## define HeatPumpServer ModbusTCPServer 192.168.1.150 attr HeatPumpServer verbose 2
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.
Modbus-Register/Coil Adressen definieren
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.
######################################################## ## Außentemperatur ## Erstellt........: 06.01.2015 ######################################################## define dim_outdoor_temperature ModbusRegister 0 1 attr dim_outdoor_temperature IODev HeatPumpServer attr dim_outdoor_temperature conversion 0.1:0 attr dim_outdoor_temperature event-min-interval .*:900 attr dim_outdoor_temperature event-on-change-reading .* attr dim_outdoor_temperature plcDataType INT attr dim_outdoor_temperature registerType Holding attr dim_outdoor_temperature room Dimplex attr dim_outdoor_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))} attr dim_outdoor_temperature updateIntervall 600 attr dim_outdoor_temperature userReadings temperature {sprintf("%0.1f", ReadingsVal($name,"state",0))}
Erklärung:
--------------------------------------------------------------------------------------------------------------------------------- ModbusRegister 0 1 = 0 Device Adresse, in der Regel bei ModbusTCP immer 0 ModbusRegister 0 1 = 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt IODev = Verwendeter und zuvor angelegter ModbusTCPServer conversion = eine gegebenenfalls notwendige Konvertierung des übermittelten Values PlcDataType = Ermöglicht eine automatische Interpretation der ankommenden Daten updateIntervall = Intervall des Abfragezyklus (z.B. 300 Sekunden) userReadings = das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt ---------------------------------------------------------------------------------------------------------------------------------
Betriebsdaten
Vorschlag der Namensvergabe für die Betriebsdaten
dim_outdoor_temperature | Außentemperatur |
dim_flow_temperature | Vorlauftemperatur |
dim_return_temperature | Rücklauftemperatur |
dim_returnset_temperature | Rücklaufsolltemperatur |
dim_room_temperature | Raumtemperatur |
dim_dhw_temperature | Warmwassertemperatur |
dim_dhwset_temperature | Warmwassersolltemperatur |
dim_brine_temperature | Soletemperatur |
dim_high_pressure | Hochdruck |
dim_low_pressure | Niederdruck |
######################################################## ## Register Warmwassertemperatur definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_dhw_temperature ModbusRegister 0 3 attr dim_dhw_temperature IODev HeatPumpServer attr dim_dhw_temperature conversion 0.1:0 attr dim_dhw_temperature event-min-interval .*:900 attr dim_dhw_temperature event-on-change-reading .* attr dim_dhw_temperature plcDataType INT attr dim_dhw_temperature registerType Holding attr dim_dhw_temperature room Dimplex attr dim_dhw_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))} attr dim_dhw_temperature updateIntervall 60 attr dim_dhw_temperature userReadings temperature {sprintf("%0.1f", ReadingsVal($name,"state",0))}
######################################################## ## Register Vorlauftemperatur definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_flow_temperature ModbusRegister 0 5 attr dim_flow_temperature IODev HeatPumpServer attr dim_flow_temperature conversion 0.1:0 attr dim_flow_temperature event-min-interval .*:900 attr dim_flow_temperature event-on-change-reading .* attr dim_flow_temperature plcDataType INT attr dim_flow_temperature registerType Holding attr dim_flow_temperature room Dimplex attr dim_flow_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))} attr dim_flow_temperature updateIntervall 60 attr dim_flow_temperature userReadings temperature {sprintf("%0.1f", ReadingsVal($name,"state",0))}
######################################################## ## Register Rücklauftemperatur definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_return_temperature ModbusRegister 0 2 attr dim_return_temperature IODev HeatPumpServer attr dim_return_temperature conversion 0.1:0 attr dim_return_temperature event-min-interval .*:900 attr dim_return_temperature event-on-change-reading .* attr dim_return_temperature plcDataType INT attr dim_return_temperature registerType Holding attr dim_return_temperature room Dimplex attr dim_return_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))} attr dim_return_temperature updateIntervall 60 attr dim_return_temperature userReadings temperature {sprintf("%0.1f", ReadingsVal($name,"state",0))}
######################################################## ## Register Rücklaufsolltemperatur definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_returnset_temperature ModbusRegister 0 53 attr dim_returnset_temperature IODev HeatPumpServer attr dim_returnset_temperature conversion 0.1:0 attr dim_returnset_temperature event-min-interval .*:900 attr dim_returnset_temperature event-on-change-reading .* attr dim_returnset_temperature plcDataType INT attr dim_returnset_temperature registerType Holding attr dim_returnset_temperature room Dimplex attr dim_returnset_temperature stateFormat {sprintf("%0.1f", ReadingsVal($name,"state",0))} attr dim_returnset_temperature updateIntervall 300 attr dim_returnset_temperature userReadings temperature {sprintf("%0.1f", ReadingsVal($name,"state",0))}
Zustände
Vorschlag der Namensvergabe für die Zustände
dim_compressor_output | Verdichter |
dim_ventilator_output | Ventilator |
dim_brinepump_ output | Solepumpe |
dim_circulationpump_output | Heizungsumwälzpumpe M13 |
dim_2heatgenerator_output | 2.Wärmeerzeuger |
dim_dhwpump_output | Warmwasserpumpe M18 |
dim_auxiliarypump_output | Zusatzpumpe M16 |
dim_flangeheater_output | Flanschheizung |
######################################################## ## Coil Verdichter definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_compressor_output ModbusCoil 0 41 attr dim_compressor_output IODev HeatPumpServer attr dim_compressor_output disableRegisterMapping 1 attr dim_compressor_output event-min-interval .*:900 attr dim_compressor_output event-on-change-reading .* attr dim_compressor_output room Dimplex attr dim_compressor_output source Coil attr dim_compressor_output updateIntervall 60
######################################################## ## Coil Ventilator definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_ventilator_output ModbusCoil 0 43 attr dim_ventilator_output IODev HeatPumpServer attr dim_ventilator_output disableRegisterMapping 1 attr dim_ventilator_output event-min-interval .*:900 attr dim_ventilator_output event-on-change-reading .* attr dim_ventilator_output room Dimplex attr dim_ventilator_output source Coil attr dim_ventilator_output updateIntervall 60
######################################################## ## Coil 2.Wärmeerzeguer definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_2heatgenerator_output ModbusCoil 0 44 attr dim_2heatgenerator_output IODev HeatPumpServer attr dim_2heatgenerator_output disableRegisterMapping 1 attr dim_2heatgenerator_output event-min-interval .*:900 attr dim_2heatgenerator_output event-on-change-reading .* attr dim_2heatgenerator_output room Dimplex attr dim_2heatgenerator_output source Coil attr dim_2heatgenerator_output updateIntervall 60
######################################################## ## Coil Heizungsumwälzpumpe M13 definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_circulationpump_output ModbusCoil 0 45 attr dim_circulationpump_output IODev HeatPumpServer attr dim_circulationpump_output disableRegisterMapping 1 attr dim_circulationpump_output event-min-interval .*:900 attr dim_circulationpump_output event-on-change-reading .* attr dim_circulationpump_output room Dimplex attr dim_circulationpump_output source Coil attr dim_circulationpump_output updateIntervall 60
######################################################## ## Coil Warmwasserpumpe M18 definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_dhwpump_output ModbusCoil 0 46 attr dim_dhwpump_output IODev HeatPumpServer attr dim_dhwpump_output disableRegisterMapping 1 attr dim_dhwpump_output event-min-interval .*:900 attr dim_dhwpump_output event-on-change-reading .* attr dim_dhwpump_output room Dimplex attr dim_dhwpump_output source Coil attr dim_dhwpump_output updateIntervall 60
######################################################## ## Coil Zusatzpumpe M19 definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_auxiliarypump_output ModbusCoil 0 49 attr dim_auxiliarypump_output IODev HeatPumpServer attr dim_auxiliarypump_output disableRegisterMapping 1 attr dim_auxiliarypump_output event-min-interval .*:900 attr dim_auxiliarypump_output event-on-change-reading .* attr dim_auxiliarypump_output room Dimplex attr dim_auxiliarypump_output source Coil attr dim_auxiliarypump_output updateIntervall 60
######################################################## ## Coil Flanschheizung definieren ## Erstellt........: 06.01.2015 ######################################################## define dim_flangeheater_output ModbusCoil 0 50 attr dim_flangeheater_output IODev HeatPumpServer attr dim_flangeheater_output disableRegisterMapping 1 attr dim_flangeheater_output event-min-interval .*:900 attr dim_flangeheater_output event-on-change-reading .* attr dim_flangeheater_output room Dimplex attr dim_flangeheater_output source Coil attr dim_flangeheater_output updateIntervall 60
Die Dokumentation für die Historie, Wärmemengen, Logfile, HourCounter sowie Statistic-Modul folgen.
Plotbeispiel
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die
- Aussen- (AT)
- Raum- (RT)
- Rücklauf- (RL)
- Rücklaufsoll- (RLS)
- Warmwasser- (WWT) und
- Vorlauftemperatur (VLT)
sowie die Ausgänge für
- Verdichter 1 (Vd)
- Ventilator (Ve)
- 2.Wärmeerzeuger (2We)
- Heizungsumwälzpumpe (Hup)
- Warmwasserumwälzpumpe (Wup) und
- Zusatzumwälzpumpe (Zup)
enthalten.
Kontakt
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.