Dimplex Wärmepumpenmanager

Aus FHEMWiki
Version vom 31. Januar 2015, 11:21 Uhr von TinoB (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Mit der NWPM-Erweiterung ist es möglich den Dimplex Wärmepumpenmanager in ein Hausnetzwerk einzubinden. Durch die Einbindung der NWPM-Erweiterung ist es eben…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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

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.