Dimplex Wärmepumpenmanager: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 11: Zeile 11:


== 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.
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 verteilt.
* download der Module von https://github.com/ChrisD70/FHEM-Modules:
* download der Module von https://github.com/ChrisD70/FHEM-Modules:
* 36_ModbusTCPServer.pm
* 36_ModbusTCPServer.pm

Version vom 31. Januar 2015, 13:11 Uhr

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 verteilt.

  • 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

########################################################
##  Passenden HourCounter für Verdichter definieren
##  Erstellt........: 06.01.2015
########################################################
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600
   attr hourcounter_compressor_output event-on-change-reading .*
########################################################
##  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

########################################################
##  Passenden HourCounter für Ventilator definieren
##  Erstellt........: 06.01.2015
########################################################
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600
   attr hourcounter_ventilator_output event-on-change-reading .*
########################################################
##  Coil 2.Wärmeerzeuger 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

########################################################
##  Passenden HourCounter für 2.Wärmeerzeuger definieren
##  Erstellt........: 06.01.2015
########################################################
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600
   attr hourcounter_2heatgenerator_output event-on-change-reading .*
########################################################
##  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

########################################################
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren
##  Erstellt........: 06.01.2015
########################################################
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600
   attr hourcounter_circulationpump_output event-on-change-reading .*
########################################################
##  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

########################################################
##  Passenden HourCounter für Warmwasserpumpe M18 definieren
##  Erstellt........: 06.01.2015
########################################################
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600
   attr hourcounter_dhwpump_output event-on-change-reading .*
########################################################
##  Coil Zusatzpumpe M16 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

########################################################
##  Passenden HourCounter für Zusatzpumpe M16 definieren
##  Erstellt........: 06.01.2015
########################################################
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600
   attr hourcounter_auxiliarypump_output event-on-change-reading .*
########################################################
##  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

########################################################
##  Passenden HourCounter für Flanschheizung M16 definieren
##  Erstellt........: 06.01.2015
########################################################
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600
   attr hourcounter_flangeheater_output event-on-change-reading .*

Historie

Vorschlag der Namensvergabe für die Historie

dim_compressor_history Verdichter
dim_ventilator_history Ventilator
dim_brinepump_history Solepumpe
dim_circulationpump_history Heizungsumwälzpumpe M13
dim_2heatgenerator_history 2.Wärmeerzeuger
dim_dhwpump_history Warmwasserpumpe M18
dim_auxiliarypump_history Zusatzpumpe M16
dim_flangeheater_history Flanschheizung
########################################################
##  Register Historie Verdichter definieren
##  Erstellt........: 06.01.2015
########################################################
define dim_compressor_history ModbusRegister 0 72
   attr dim_compressor_history IODev HeatPumpServer
   attr dim_compressor_history event-on-change-reading .*
   attr dim_compressor_history plcDataType INT
   attr dim_compressor_history registerType Holding
   attr dim_compressor_history room Dimplex
   attr dim_compressor_history updateIntervall 3600
########################################################
##  Register Historie Ventilator definieren
##  Erstellt........: 06.01.2015
########################################################
define dim_ventilator_history ModbusRegister 0 74
   attr dim_ventilator_history IODev HeatPumpServer
   attr dim_ventilator_history event-on-change-reading .*
   attr dim_ventilator_history plcDataType INT
   attr dim_ventilator_history registerType Holding
   attr dim_ventilator_history room Dimplex
   attr dim_ventilator_history updateIntervall 3600
########################################################
##  Register Historie 2.Wärmeerzeuger definieren
##  Erstellt........: 06.01.2015
########################################################
define dim_2heatgenerator_history ModbusRegister 0 75
   attr dim_2heatgenerator_history IODev HeatPumpServer
   attr dim_2heatgenerator_history event-on-change-reading .*
   attr dim_2heatgenerator_history plcDataType INT
   attr dim_2heatgenerator_history registerType Holding
   attr dim_2heatgenerator_history room Dimplex
   attr dim_2heatgenerator_history updateIntervall 3600
########################################################
##  Register Historie Heizungsumwälzpumpe M13 definieren
##  Erstellt........: 06.01.2015
########################################################
define dim_circulationpump_history ModbusRegister 0 76
   attr dim_circulationpump_history IODev HeatPumpServer
   attr dim_circulationpump_history event-on-change-reading .*
   attr dim_circulationpump_history plcDataType INT
   attr dim_circulationpump_history registerType Holding
   attr dim_circulationpump_history room Dimplex
   attr dim_circulationpump_history updateIntervall 3600
########################################################
##  Register Historie Warmwasserpumpe M18 definieren
##  Erstellt........: 06.01.2015
########################################################
define dim_dhwpump_history ModbusRegister 0 77
   attr dim_dhwpump_history IODev HeatPumpServer
   attr dim_dhwpump_history event-on-change-reading .*
   attr dim_dhwpump_history plcDataType INT
   attr dim_dhwpump_history registerType Holding
   attr dim_dhwpump_history room Dimplex
   attr dim_dhwpump_history updateIntervall 3600
########################################################
##  Register Historie Flanschheizung definieren
##  Erstellt........: 06.01.2015
########################################################
define dim_flangeheater_history ModbusRegister 0 78
   attr dim_flangeheater_history IODev HeatPumpServer
   attr dim_flangeheater_history event-on-change-reading .*
   attr dim_flangeheater_history plcDataType INT
   attr dim_flangeheater_history registerType Holding
   attr dim_flangeheater_history room Dimplex
   attr dim_flangeheater_history updateIntervall 3600

Die Dokumentation für ReadingsGroup, Wärmemengen, Logfile 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.