<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TinoB</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TinoB"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/TinoB"/>
	<updated>2026-04-18T04:49:51Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:Dimplex_rh_status_heatpump.jpg&amp;diff=13446</id>
		<title>Datei:Dimplex rh status heatpump.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:Dimplex_rh_status_heatpump.jpg&amp;diff=13446"/>
		<updated>2016-01-04T17:22:46Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=13445</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=13445"/>
		<updated>2016-01-04T17:16:05Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die oben aufgeführten Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt. Die Module werden mit dem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
über die FHEM Befehlszeile installiert und anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reload 36_ModbusTCPServer.pm &lt;br /&gt;
reload 37_ModbusCoil.pm&lt;br /&gt;
reload 37_ModbusRegister.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
mit einem Reload geladen.&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie 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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
  attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
  attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
  attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
  attr dim_outdoor_temperature stateAlias temperature&lt;br /&gt;
  attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_outdoor_temperature updateInterval 00:10:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval    || Intervall des Abfragezyklus (z.B. 00:10:00 Minuten)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
  attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
  attr dim_dhw_temperature registerType Holding&lt;br /&gt;
  attr dim_dhw_temperature room Dimplex&lt;br /&gt;
  attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
  attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_dhw_temperature updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
  attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_flow_temperature plcDataType INT&lt;br /&gt;
  attr dim_flow_temperature registerType Holding&lt;br /&gt;
  attr dim_flow_temperature room Dimplex&lt;br /&gt;
  attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
  attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_flow_temperature updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
  attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_return_temperature plcDataType INT&lt;br /&gt;
  attr dim_return_temperature registerType Holding&lt;br /&gt;
  attr dim_return_temperature room Dimplex&lt;br /&gt;
  attr dim_return_temperature stateAlias temperature&lt;br /&gt;
  attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_return_temperature updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
  attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
  attr dim_returnset_temperature registerType Holding&lt;br /&gt;
  attr dim_returnset_temperature room Dimplex&lt;br /&gt;
  attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
  attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_returnset_temperature updateInterval 00:05:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
  attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
  attr dim_statistics dayChangeTime 1&lt;br /&gt;
  attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics room Dimplex&lt;br /&gt;
  attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
  attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
  attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_output room Dimplex&lt;br /&gt;
  attr dim_compressor_output source Coil&lt;br /&gt;
  attr dim_compressor_output updateInterval 00:01:00&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
  attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_output room Dimplex&lt;br /&gt;
  attr dim_ventilator_output source Coil&lt;br /&gt;
  attr dim_ventilator_output updateInterval 00:01:00&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
  attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
  attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_output source Coil&lt;br /&gt;
  attr dim_2heatgenerator_output updateInterval 00:01:00&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
  attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_output room Dimplex&lt;br /&gt;
  attr dim_circulationpump_output source Coil&lt;br /&gt;
  attr dim_circulationpump_output updateInterval 00:01:00&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
  attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
  attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_output room Dimplex&lt;br /&gt;
  attr dim_dhwpump_output source Coil&lt;br /&gt;
  attr dim_dhwpump_output updateInterval 00:01:00&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
  attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
  attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
  attr dim_auxiliarypump_output source Coil&lt;br /&gt;
  attr dim_auxiliarypump_output updateInterval 00:01:00&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
  attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
  attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_output room Dimplex&lt;br /&gt;
  attr dim_flangeheater_output source Coil&lt;br /&gt;
  attr dim_flangeheater_output updateInterval 00:01:00&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
  attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
  attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
  attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_history alignUpdateInterval 00:01:00&lt;br /&gt;
  attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_history plcDataType INT&lt;br /&gt;
  attr dim_compressor_history registerType Holding&lt;br /&gt;
  attr dim_compressor_history room Dimplex&lt;br /&gt;
  attr dim_compressor_history updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
  attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_history alignUpdateInterval 00:01:00&lt;br /&gt;
  attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_history plcDataType INT&lt;br /&gt;
  attr dim_ventilator_history registerType Holding&lt;br /&gt;
  attr dim_ventilator_history room Dimplex&lt;br /&gt;
  attr dim_ventilator_history updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
  attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_history alignUpdateInterval 00:01:00&lt;br /&gt;
  attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
  attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
  attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_history updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
  attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_history alignUpdateInterval 00:01:00&lt;br /&gt;
  attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
  attr dim_circulationpump_history registerType Holding&lt;br /&gt;
  attr dim_circulationpump_history room Dimplex&lt;br /&gt;
  attr dim_circulationpump_history updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
  attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_history alignUpdateInterval 00:01:00&lt;br /&gt;
  attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
  attr dim_dhwpump_history registerType Holding&lt;br /&gt;
  attr dim_dhwpump_history room Dimplex&lt;br /&gt;
  attr dim_dhwpump_history updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
  attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_history alignUpdateInterval 00:01:00&lt;br /&gt;
  attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
  attr dim_flangeheater_history registerType Holding&lt;br /&gt;
  attr dim_flangeheater_history room Dimplex&lt;br /&gt;
  attr dim_flangeheater_history updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
  attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
  attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating1_thermalenergy updateInterval 00:15:00&lt;br /&gt;
  attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                    ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
  attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating2_thermalenergy updateInterval 00:15:00&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
  attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating3_thermalenergy updateInterval 00:15:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
  attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw1_thermalenergy updateInterval 00:15:00&lt;br /&gt;
  attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
  attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw2_thermalenergy updateInterval 00:15:00&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
  attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw3_thermalenergy updateInterval 00:15:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/entzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 04.01.2016&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
  attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment1_energy plcDataType INT&lt;br /&gt;
  attr dim_environment1_energy registerType Holding&lt;br /&gt;
  attr dim_environment1_energy room Dimplex&lt;br /&gt;
  attr dim_environment1_energy updateInterval 00:15:00&lt;br /&gt;
  attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                 ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
  attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment2_energy plcDataType INT&lt;br /&gt;
  attr dim_environment2_energy registerType Holding&lt;br /&gt;
  attr dim_environment2_energy room Dimplex&lt;br /&gt;
  attr dim_environment2_energy updateInterval 00:15:00&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
  attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment3_energy plcDataType INT&lt;br /&gt;
  attr dim_environment3_energy registerType Holding&lt;br /&gt;
  attr dim_environment3_energy room Dimplex&lt;br /&gt;
  attr dim_environment3_energy updateInterval 00:15:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
  attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Meldungen ===&lt;br /&gt;
[[Bild:dimplex_rh_status_heatpump.jpg|thumb|right|Beispiel Meldungen]]&lt;br /&gt;
Eine sinnvolle Anzeige sind die Meldungen (Status, Sperre, Störung) der Wärmepumpe. Im nachfolgenden Beispiel werden die Meldungen mit dem Hilfsmodul [[readingsHistory]] dargestellt. Die Definitionen der Meldungen beziehen sich auf die im [http://www.dimplex.de/wiki Dimplex-Wiki] beschriebene L-Software. Bei abweichenden Softwareständen müssen die Register sowie die Texte angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Statusmeldung definieren&lt;br /&gt;
##  Erstellt........: 04.01.2016&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define dim_status_heatpump ModbusRegister 0 103&lt;br /&gt;
  attr dim_status_heatpump IODev HeatPumpServer&lt;br /&gt;
  attr dim_status_heatpump event-on-change-reading .*&lt;br /&gt;
  attr dim_status_heatpump plcDataType INT&lt;br /&gt;
  attr dim_status_heatpump registerType Holding&lt;br /&gt;
  attr dim_status_heatpump room Dimplex&lt;br /&gt;
  attr dim_status_heatpump updateInterval 00:00:10&lt;br /&gt;
  attr dim_status_heatpump userReadings Status {&lt;br /&gt;
                             ((ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 1) ? &amp;quot;Aus&amp;quot;:&lt;br /&gt;
                              (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 2) ? &amp;quot;Heizen&amp;quot;:&lt;br /&gt;
                              (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 4) ? &amp;quot;Warmwasser&amp;quot;:&lt;br /&gt;
                              (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 10) ? &amp;quot;Abtauen&amp;quot;:&lt;br /&gt;
                              (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 11) ? &amp;quot;Durchflussüberwachnung&amp;quot;:&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Sperrmeldunge definieren&lt;br /&gt;
##  Erstellt........: 04.01.2016&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define dim_block_heatpump ModbusRegister 0 104&lt;br /&gt;
  attr dim_block_heatpump IODev HeatPumpServer&lt;br /&gt;
  attr dim_block_heatpump event-on-change-reading .*&lt;br /&gt;
  attr dim_block_heatpump plcDataType INT&lt;br /&gt;
  attr dim_block_heatpump registerType Holding&lt;br /&gt;
  attr dim_block_heatpump room Dimplex&lt;br /&gt;
  attr dim_block_heatpump updateInterval 00:00:10&lt;br /&gt;
  attr dim_block_heatpump userReadings Sperre {&lt;br /&gt;
                            ((ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 0) ? &amp;quot;&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 7) ? &amp;quot;Systemkontrolle&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 9) ? &amp;quot;Pumpenvorlauf&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 10) ? &amp;quot;Mindeststandzeit&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 11) ? &amp;quot;Netzbelastung&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 12) ? &amp;quot;Schaltspielsperre&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 15) ? &amp;quot;EVU&amp;quot;:&amp;quot;&amp;quot;)}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Störmeldungen definieren&lt;br /&gt;
##  Erstellt........: 04.01.2016&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define dim_fault_heatpump ModbusRegister 0 105&lt;br /&gt;
  attr dim_fault_heatpump IODev HeatPumpServer&lt;br /&gt;
  attr dim_fault_heatpump event-on-change-reading .*&lt;br /&gt;
  attr dim_fault_heatpump plcDataType INT&lt;br /&gt;
  attr dim_fault_heatpump registerType Holding&lt;br /&gt;
  attr dim_fault_heatpump room Dimplex&lt;br /&gt;
  attr dim_fault_heatpump updateInterval 00:01:00&lt;br /&gt;
  attr dim_fault_heatpump userReadings Störung {&lt;br /&gt;
                            ((ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 0) ? &amp;quot;&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 6) ? &amp;quot;Elektronisches Ex.Ventil&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 15) ? &amp;quot;Sensorik&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 19) ? &amp;quot;!Primärkreis&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 22) ? &amp;quot;!Warmwasser&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 23) ? &amp;quot;!Last Verdichter&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 24) ? &amp;quot;!Codierung&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 25) ? &amp;quot;!Niederdruck&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 26) ? &amp;quot;!Frostschutz&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 27) ? &amp;quot;!Hochdruck&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 29) ? &amp;quot;!Temperatur Differenz&amp;quot;:&lt;br /&gt;
                             (ReadingsVal($name,&amp;quot;state&amp;quot;,&amp;quot;&amp;quot;) == 31) ? &amp;quot;!Durchfluss&amp;quot;:&amp;quot;&amp;quot;)}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Anzeige der Meldungen ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  readingsHistory definieren&lt;br /&gt;
##  Erstellt........: 04.01.2016&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define rh_dim_status_heatpump readingsHistory dim_status_heatpump:Status dim_block_heatpump:Sperre dim_fault_heatpump:Störung&lt;br /&gt;
  attr rh_dim_status_heatpump alias Status&lt;br /&gt;
  attr rh_dim_status_heatpump mapping {&#039;dim_status_heatpump&#039; =&amp;gt; &#039;&#039;, &#039;dim_block_heatpump&#039; =&amp;gt; &#039;&#039;, &#039;dim_fault_heatpump&#039; =&amp;gt; &#039;&#039;}&lt;br /&gt;
  attr rh_dim_status_heatpump nohtml 1&lt;br /&gt;
  attr rh_dim_status_heatpump room Dimplex&lt;br /&gt;
  attr rh_dim_status_heatpump rows 20&lt;br /&gt;
  attr rh_dim_status_heatpump timestampFormat %b %a %R&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plotbeispiel ==&lt;br /&gt;
=== Temperaturen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-05-11 21:40:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
set ytics nomirror&lt;br /&gt;
set y2tics &lt;br /&gt;
set grid ytics y2tics&lt;br /&gt;
set ylabel &amp;quot;&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Temperatur (°C)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_outdoor_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_room_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_return_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_returnset_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_dhw_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_flow_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_brine_temperature.*::&lt;br /&gt;
&lt;br /&gt;
plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;AT&#039; ls l7 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RT&#039; ls l1 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RL&#039; ls l2 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RLS&#039; ls l3 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;WWT&#039; ls l4 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;VLT&#039; ls l0 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;SOL&#039; ls l6 lw 1 with lines&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ausgänge ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-05-11 21:45:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&#039;&lt;br /&gt;
set ytics (&amp;quot;An&amp;quot; -1, &amp;quot;Aus&amp;quot; -2, &amp;quot;An&amp;quot; -5, &amp;quot;Aus&amp;quot; -6, &amp;quot;An&amp;quot; -9, &amp;quot;Aus&amp;quot; -10, &amp;quot;An&amp;quot; -13, &amp;quot;Aus&amp;quot; -14)&lt;br /&gt;
set y2tics (&amp;quot;An&amp;quot; 1, &amp;quot;Aus&amp;quot; 0, &amp;quot;An&amp;quot; -3, &amp;quot;Aus&amp;quot; -4, &amp;quot;An&amp;quot; -7, &amp;quot;Aus&amp;quot; -8, &amp;quot;An&amp;quot; -11, &amp;quot;Aus&amp;quot; -12)&lt;br /&gt;
set grid&lt;br /&gt;
set ylabel &amp;quot;&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Digital&amp;quot;&lt;br /&gt;
set yrange [-16:2]&lt;br /&gt;
set y2range [-16:2]&lt;br /&gt;
&lt;br /&gt;
#FileLog 3:dim_compressor_output.*::$fld[2]=~&amp;quot;on&amp;quot;?1:0&lt;br /&gt;
#FileLog 3:dim_ventilator_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-1:-2&lt;br /&gt;
#FileLog 3:dim_2heatgenerator_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-3:-4&lt;br /&gt;
#FileLog 3:dim_circulationpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-5:-6&lt;br /&gt;
#FileLog 3:dim_dhwpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-7:-8&lt;br /&gt;
#FileLog 3:dim_auxiliarypump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-9:-10&lt;br /&gt;
#FileLog 3:dim_solarpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-11:-12&lt;br /&gt;
#FileLog 3:dim_flangeheater_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-13:-14&lt;br /&gt;
&lt;br /&gt;
plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Vd&#039; ls l7 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Ve&#039; ls l6 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;2.We&#039; ls l5 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Hub&#039; ls l4 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Wup&#039; ls l3 lw 1 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Zup&#039; ls l0 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Sol&#039; ls l2 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Flh&#039; ls l7 lw 1.5 with steps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
Offene Punkte:&lt;br /&gt;
- Darstellung der Werte in einer readingsGroup&lt;br /&gt;
- Zugriff auf Zeitfunktionen mit Lesen und Schreiben&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=13444</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=13444"/>
		<updated>2016-01-04T16:11:53Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die oben aufgeführten Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt. Die Module werden mit dem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
über die FHEM Befehlszeile installiert und anschließend&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reload 36_ModbusTCPServer.pm &lt;br /&gt;
reload 37_ModbusCoil.pm&lt;br /&gt;
reload 37_ModbusRegister.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
mit einem Reload geladen.&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie 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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
  attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
  attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
  attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
  attr dim_outdoor_temperature stateAlias temperature&lt;br /&gt;
  attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_outdoor_temperature updateInterval 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval    || Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
  attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
  attr dim_dhw_temperature registerType Holding&lt;br /&gt;
  attr dim_dhw_temperature room Dimplex&lt;br /&gt;
  attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
  attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_dhw_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
  attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_flow_temperature plcDataType INT&lt;br /&gt;
  attr dim_flow_temperature registerType Holding&lt;br /&gt;
  attr dim_flow_temperature room Dimplex&lt;br /&gt;
  attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
  attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_flow_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
  attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_return_temperature plcDataType INT&lt;br /&gt;
  attr dim_return_temperature registerType Holding&lt;br /&gt;
  attr dim_return_temperature room Dimplex&lt;br /&gt;
  attr dim_return_temperature stateAlias temperature&lt;br /&gt;
  attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_return_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
  attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
  attr dim_returnset_temperature registerType Holding&lt;br /&gt;
  attr dim_returnset_temperature room Dimplex&lt;br /&gt;
  attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
  attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_returnset_temperature updateInterval 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
  attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
  attr dim_statistics dayChangeTime 1&lt;br /&gt;
  attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics room Dimplex&lt;br /&gt;
  attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
  attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
  attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_output room Dimplex&lt;br /&gt;
  attr dim_compressor_output source Coil&lt;br /&gt;
  attr dim_compressor_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
  attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_output room Dimplex&lt;br /&gt;
  attr dim_ventilator_output source Coil&lt;br /&gt;
  attr dim_ventilator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
  attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
  attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_output source Coil&lt;br /&gt;
  attr dim_2heatgenerator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
  attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_output room Dimplex&lt;br /&gt;
  attr dim_circulationpump_output source Coil&lt;br /&gt;
  attr dim_circulationpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
  attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
  attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_output room Dimplex&lt;br /&gt;
  attr dim_dhwpump_output source Coil&lt;br /&gt;
  attr dim_dhwpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
  attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
  attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
  attr dim_auxiliarypump_output source Coil&lt;br /&gt;
  attr dim_auxiliarypump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
  attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
  attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_output room Dimplex&lt;br /&gt;
  attr dim_flangeheater_output source Coil&lt;br /&gt;
  attr dim_flangeheater_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
  attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
  attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
  attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_history plcDataType INT&lt;br /&gt;
  attr dim_compressor_history registerType Holding&lt;br /&gt;
  attr dim_compressor_history room Dimplex&lt;br /&gt;
  attr dim_compressor_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
  attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_history plcDataType INT&lt;br /&gt;
  attr dim_ventilator_history registerType Holding&lt;br /&gt;
  attr dim_ventilator_history room Dimplex&lt;br /&gt;
  attr dim_ventilator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
  attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
  attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
  attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
  attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
  attr dim_circulationpump_history registerType Holding&lt;br /&gt;
  attr dim_circulationpump_history room Dimplex&lt;br /&gt;
  attr dim_circulationpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
  attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
  attr dim_dhwpump_history registerType Holding&lt;br /&gt;
  attr dim_dhwpump_history room Dimplex&lt;br /&gt;
  attr dim_dhwpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
  attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
  attr dim_flangeheater_history registerType Holding&lt;br /&gt;
  attr dim_flangeheater_history room Dimplex&lt;br /&gt;
  attr dim_flangeheater_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
  attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
  attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating1_thermalenergy updateInterval 900&lt;br /&gt;
  attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                    ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
  attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
  attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
  attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw1_thermalenergy updateInterval 900&lt;br /&gt;
  attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
  attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
  attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/entzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
  attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment1_energy plcDataType INT&lt;br /&gt;
  attr dim_environment1_energy registerType Holding&lt;br /&gt;
  attr dim_environment1_energy room Dimplex&lt;br /&gt;
  attr dim_environment1_energy updateInterval 900&lt;br /&gt;
  attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                 ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
  attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment2_energy plcDataType INT&lt;br /&gt;
  attr dim_environment2_energy registerType Holding&lt;br /&gt;
  attr dim_environment2_energy room Dimplex&lt;br /&gt;
  attr dim_environment2_energy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
  attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment3_energy plcDataType INT&lt;br /&gt;
  attr dim_environment3_energy registerType Holding&lt;br /&gt;
  attr dim_environment3_energy room Dimplex&lt;br /&gt;
  attr dim_environment3_energy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
  attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
== Plotbeispiel ==&lt;br /&gt;
=== Temperaturen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-05-11 21:40:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
set ytics nomirror&lt;br /&gt;
set y2tics &lt;br /&gt;
set grid ytics y2tics&lt;br /&gt;
set ylabel &amp;quot;&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Temperatur (°C)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_outdoor_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_room_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_return_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_returnset_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_dhw_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_flow_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_brine_temperature.*::&lt;br /&gt;
&lt;br /&gt;
plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;AT&#039; ls l7 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RT&#039; ls l1 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RL&#039; ls l2 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RLS&#039; ls l3 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;WWT&#039; ls l4 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;VLT&#039; ls l0 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;SOL&#039; ls l6 lw 1 with lines&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ausgänge ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-05-11 21:45:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&#039;&lt;br /&gt;
set ytics (&amp;quot;An&amp;quot; -1, &amp;quot;Aus&amp;quot; -2, &amp;quot;An&amp;quot; -5, &amp;quot;Aus&amp;quot; -6, &amp;quot;An&amp;quot; -9, &amp;quot;Aus&amp;quot; -10, &amp;quot;An&amp;quot; -13, &amp;quot;Aus&amp;quot; -14)&lt;br /&gt;
set y2tics (&amp;quot;An&amp;quot; 1, &amp;quot;Aus&amp;quot; 0, &amp;quot;An&amp;quot; -3, &amp;quot;Aus&amp;quot; -4, &amp;quot;An&amp;quot; -7, &amp;quot;Aus&amp;quot; -8, &amp;quot;An&amp;quot; -11, &amp;quot;Aus&amp;quot; -12)&lt;br /&gt;
set grid&lt;br /&gt;
set ylabel &amp;quot;&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Digital&amp;quot;&lt;br /&gt;
set yrange [-16:2]&lt;br /&gt;
set y2range [-16:2]&lt;br /&gt;
&lt;br /&gt;
#FileLog 3:dim_compressor_output.*::$fld[2]=~&amp;quot;on&amp;quot;?1:0&lt;br /&gt;
#FileLog 3:dim_ventilator_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-1:-2&lt;br /&gt;
#FileLog 3:dim_2heatgenerator_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-3:-4&lt;br /&gt;
#FileLog 3:dim_circulationpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-5:-6&lt;br /&gt;
#FileLog 3:dim_dhwpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-7:-8&lt;br /&gt;
#FileLog 3:dim_auxiliarypump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-9:-10&lt;br /&gt;
#FileLog 3:dim_solarpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-11:-12&lt;br /&gt;
#FileLog 3:dim_flangeheater_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-13:-14&lt;br /&gt;
&lt;br /&gt;
plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Vd&#039; ls l7 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Ve&#039; ls l6 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;2.We&#039; ls l5 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Hub&#039; ls l4 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Wup&#039; ls l3 lw 1 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Zup&#039; ls l0 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Sol&#039; ls l2 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Flh&#039; ls l7 lw 1.5 with steps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=12853</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=12853"/>
		<updated>2015-11-10T20:56:42Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich, FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist ein SolarLog mit Firmware ab Version 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die oben aufgeführten Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt. Die Module werden mit dem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt&lt;br /&gt;
reload 36_ModbusTCPServer.pm &lt;br /&gt;
reload 37_ModbusRegister.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
über die FHEM Befehlszeile installiert und anschließend mit einem Reload geladen.&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im Folgenden beschrieben, muss zunächst eine ModbusTCPServer Verbindung [[Konfiguration|konfiguriert]] werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgenden Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateAlias solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac_cons      || Aktueller Verbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield_cons    || Tagesverbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield_cons  || Monatsverbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield_cons   || Jahresverbrauch&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
  attr solarlog_totalpac stateAlias solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateAlias solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateAlias solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateAlias solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei Anschluß eines SO-Verbrauchszähler können zusätzlich noch die Register Aktueller-, Tages-, Monats- und Jahresverbrauch ausgelesen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktueller Verbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac_cons ModbusRegister 0 3518&lt;br /&gt;
  attr solarlog_totalpac_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac_cons room Solar&lt;br /&gt;
  attr solarlog_totalpac_cons stateAlias solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield_cons ModbusRegister 0 3520&lt;br /&gt;
  attr solarlog_dailyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield_cons room Solar&lt;br /&gt;
  attr solarlog_dailyyield_cons stateAlias solar&lt;br /&gt;
  attr solarlog_dailyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield_cons updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield_cons ModbusRegister 0 3524&lt;br /&gt;
  attr solarlog_monthlyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield_cons alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_monthlyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield_cons room Solar&lt;br /&gt;
  attr solarlog_monthlyyield_cons stateAlias solar&lt;br /&gt;
  attr solarlog_monthlyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield_cons updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield_cons ModbusRegister 0 3526&lt;br /&gt;
  attr solarlog_yearlyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield_cons alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield_cons registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield_cons room Solar&lt;br /&gt;
  attr solarlog_yearlyyield_cons stateAlias solar&lt;br /&gt;
  attr solarlog_yearlyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield_cons updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log solarlog_.*:solar.*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ReadingsGroup ==&lt;br /&gt;
Darstellung in einer ReadingsGroup definieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ReadingsGroup definieren&lt;br /&gt;
##  Erstellt........: 04.04.2015&lt;br /&gt;
##  Geändert........: 10.11.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define rg_SolarLog_state readingsGroup &amp;lt;Beschreibung&amp;gt;,&amp;lt;&amp;gt;&lt;br /&gt;
solarlog_.*:state&lt;br /&gt;
solarlog_.*:energybalance&lt;br /&gt;
  attr rg_SolarLog_state alias SolarLog&lt;br /&gt;
  attr rg_SolarLog_state mapping {&#039;solarlog_dailyyield&#039; =&amp;gt; &#039;Tagesertrag&#039;,&#039;solarlog_monthlyyield&#039; =&amp;gt; &#039;Monatsertrag&#039;, &lt;br /&gt;
                                  &#039;solarlog_totalpac&#039; =&amp;gt; &#039;Erzeugung&#039;,&#039;solarlog_yearlyyield&#039; =&amp;gt; &#039;Jahresertrag&#039;,&lt;br /&gt;
                                  &#039;solarlog_totalyield&#039; =&amp;gt; &#039;Gesamtertrag&#039;,&#039;solarlog_yesterdayyield&#039; =&amp;gt; &#039;Vortagesertrag&#039;}&lt;br /&gt;
  attr rg_SolarLog_state nostate 1&lt;br /&gt;
  attr rg_SolarLog_state notime 1&lt;br /&gt;
  attr rg_SolarLog_state valueFormat {&#039;state&#039; =&amp;gt; &amp;quot;%0.2f&amp;quot;}&lt;br /&gt;
  attr rg_SolarLog_state valueStyle style=&amp;quot;text-align:right&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plotbeispiel ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-03-07 21:20:25&lt;br /&gt;
# Changed by FHEM/98_SVG.pm, 2015-04-04 10:40:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
set ytics &lt;br /&gt;
set y2tics &lt;br /&gt;
set grid&lt;br /&gt;
set ylabel &amp;quot;Einspeiseleistung [kW]&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Ertrag [kWh]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#filelog_solarlog_day 4:solarlog_totalpac.solar\x3a::$fld[3]/1000&lt;br /&gt;
#filelog_solarlog_day 4:solarlog_dailyyield.solar\x3a::&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Bild:Solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
== Kontakt ==&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=34910|LinkText=Forenthread zum Wiki-Artikel &amp;quot;SolarLog&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.solar-log.net/ Solarlog] Herstellerseite&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Energieerzeugungsmessung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=11241</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=11241"/>
		<updated>2015-05-11T19:58:11Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die oben aufgeführten Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt. Die Module werden mit dem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt&lt;br /&gt;
reload 36_ModbusTCPServer.pm &lt;br /&gt;
reload 37_ModbusCoil.pm&lt;br /&gt;
reload 37_ModbusRegister.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
über die FHEM Befehlszeile installiert und anschließend mit einem Reload geladen.&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
  attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
  attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
  attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
  attr dim_outdoor_temperature stateAlias temperature&lt;br /&gt;
  attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_outdoor_temperature updateInterval 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval    || Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
  attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
  attr dim_dhw_temperature registerType Holding&lt;br /&gt;
  attr dim_dhw_temperature room Dimplex&lt;br /&gt;
  attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
  attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_dhw_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
  attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_flow_temperature plcDataType INT&lt;br /&gt;
  attr dim_flow_temperature registerType Holding&lt;br /&gt;
  attr dim_flow_temperature room Dimplex&lt;br /&gt;
  attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
  attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_flow_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
  attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_return_temperature plcDataType INT&lt;br /&gt;
  attr dim_return_temperature registerType Holding&lt;br /&gt;
  attr dim_return_temperature room Dimplex&lt;br /&gt;
  attr dim_return_temperature stateAlias temperature&lt;br /&gt;
  attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_return_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
  attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
  attr dim_returnset_temperature registerType Holding&lt;br /&gt;
  attr dim_returnset_temperature room Dimplex&lt;br /&gt;
  attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
  attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_returnset_temperature updateInterval 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
  attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
  attr dim_statistics dayChangeTime 1&lt;br /&gt;
  attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics room Dimplex&lt;br /&gt;
  attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
  attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
  attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_output room Dimplex&lt;br /&gt;
  attr dim_compressor_output source Coil&lt;br /&gt;
  attr dim_compressor_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
  attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_output room Dimplex&lt;br /&gt;
  attr dim_ventilator_output source Coil&lt;br /&gt;
  attr dim_ventilator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
  attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
  attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_output source Coil&lt;br /&gt;
  attr dim_2heatgenerator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
  attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_output room Dimplex&lt;br /&gt;
  attr dim_circulationpump_output source Coil&lt;br /&gt;
  attr dim_circulationpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
  attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
  attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_output room Dimplex&lt;br /&gt;
  attr dim_dhwpump_output source Coil&lt;br /&gt;
  attr dim_dhwpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
  attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
  attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
  attr dim_auxiliarypump_output source Coil&lt;br /&gt;
  attr dim_auxiliarypump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
  attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
  attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_output room Dimplex&lt;br /&gt;
  attr dim_flangeheater_output source Coil&lt;br /&gt;
  attr dim_flangeheater_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
  attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
  attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
  attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_history plcDataType INT&lt;br /&gt;
  attr dim_compressor_history registerType Holding&lt;br /&gt;
  attr dim_compressor_history room Dimplex&lt;br /&gt;
  attr dim_compressor_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
  attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_history plcDataType INT&lt;br /&gt;
  attr dim_ventilator_history registerType Holding&lt;br /&gt;
  attr dim_ventilator_history room Dimplex&lt;br /&gt;
  attr dim_ventilator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
  attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
  attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
  attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
  attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
  attr dim_circulationpump_history registerType Holding&lt;br /&gt;
  attr dim_circulationpump_history room Dimplex&lt;br /&gt;
  attr dim_circulationpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
  attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
  attr dim_dhwpump_history registerType Holding&lt;br /&gt;
  attr dim_dhwpump_history room Dimplex&lt;br /&gt;
  attr dim_dhwpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
  attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
  attr dim_flangeheater_history registerType Holding&lt;br /&gt;
  attr dim_flangeheater_history room Dimplex&lt;br /&gt;
  attr dim_flangeheater_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
  attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
  attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating1_thermalenergy updateInterval 900&lt;br /&gt;
  attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                    ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
  attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
  attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
  attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw1_thermalenergy updateInterval 900&lt;br /&gt;
  attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
  attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
  attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/entzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
  attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment1_energy plcDataType INT&lt;br /&gt;
  attr dim_environment1_energy registerType Holding&lt;br /&gt;
  attr dim_environment1_energy room Dimplex&lt;br /&gt;
  attr dim_environment1_energy updateInterval 900&lt;br /&gt;
  attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                 ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
  attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment2_energy plcDataType INT&lt;br /&gt;
  attr dim_environment2_energy registerType Holding&lt;br /&gt;
  attr dim_environment2_energy room Dimplex&lt;br /&gt;
  attr dim_environment2_energy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
  attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment3_energy plcDataType INT&lt;br /&gt;
  attr dim_environment3_energy registerType Holding&lt;br /&gt;
  attr dim_environment3_energy room Dimplex&lt;br /&gt;
  attr dim_environment3_energy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
  attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
== Plotbeispiel ==&lt;br /&gt;
= Temperaturen =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-05-11 21:40:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
set ytics nomirror&lt;br /&gt;
set y2tics &lt;br /&gt;
set grid ytics y2tics&lt;br /&gt;
set ylabel &amp;quot;&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Temperatur (°C)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_outdoor_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_room_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_return_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_returnset_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_dhw_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_flow_temperature.*::&lt;br /&gt;
#filelog_dim_temperature_week 4:dim_brine_temperature.*::&lt;br /&gt;
&lt;br /&gt;
plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;AT&#039; ls l7 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RT&#039; ls l1 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RL&#039; ls l2 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;RLS&#039; ls l3 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;WWT&#039; ls l4 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;VLT&#039; ls l0 lw 1 with lines,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;SOL&#039; ls l6 lw 1 with lines&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ausgänge =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-05-11 21:45:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&#039;&lt;br /&gt;
set ytics (&amp;quot;An&amp;quot; -1, &amp;quot;Aus&amp;quot; -2, &amp;quot;An&amp;quot; -5, &amp;quot;Aus&amp;quot; -6, &amp;quot;An&amp;quot; -9, &amp;quot;Aus&amp;quot; -10, &amp;quot;An&amp;quot; -13, &amp;quot;Aus&amp;quot; -14)&lt;br /&gt;
set y2tics (&amp;quot;An&amp;quot; 1, &amp;quot;Aus&amp;quot; 0, &amp;quot;An&amp;quot; -3, &amp;quot;Aus&amp;quot; -4, &amp;quot;An&amp;quot; -7, &amp;quot;Aus&amp;quot; -8, &amp;quot;An&amp;quot; -11, &amp;quot;Aus&amp;quot; -12)&lt;br /&gt;
set grid&lt;br /&gt;
set ylabel &amp;quot;&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Digital&amp;quot;&lt;br /&gt;
set yrange [-16:2]&lt;br /&gt;
set y2range [-16:2]&lt;br /&gt;
&lt;br /&gt;
#FileLog 3:dim_compressor_output.*::$fld[2]=~&amp;quot;on&amp;quot;?1:0&lt;br /&gt;
#FileLog 3:dim_ventilator_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-1:-2&lt;br /&gt;
#FileLog 3:dim_2heatgenerator_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-3:-4&lt;br /&gt;
#FileLog 3:dim_circulationpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-5:-6&lt;br /&gt;
#FileLog 3:dim_dhwpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-7:-8&lt;br /&gt;
#FileLog 3:dim_auxiliarypump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-9:-10&lt;br /&gt;
#FileLog 3:dim_solarpump_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-11:-12&lt;br /&gt;
#FileLog 3:dim_flangeheater_output.*::$fld[2]=~&amp;quot;on&amp;quot;?-13:-14&lt;br /&gt;
&lt;br /&gt;
plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Vd&#039; ls l7 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Ve&#039; ls l6 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;2.We&#039; ls l5 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Hub&#039; ls l4 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Wup&#039; ls l3 lw 1 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Zup&#039; ls l0 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Sol&#039; ls l2 lw 1.5 with steps,\&lt;br /&gt;
     &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Flh&#039; ls l7 lw 1.5 with steps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=E-Mail_senden&amp;diff=11033</id>
		<title>E-Mail senden</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=E-Mail_senden&amp;diff=11033"/>
		<updated>2015-04-17T17:51:14Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um aus FHEM heraus &#039;&#039;&#039;E-Mail senden&#039;&#039;&#039; zu können, sind abhängig von der verwendeten Platform unterschiedliche Vorgehensweisen erforderlich.&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Anleitung zur Einrichtung von Exim4 auf Debian mit GMX als Smarthost:[http://www.fhemwiki.de/w/images/f/f6/Anleitung_Exim4_Debian_GMX.pdf PDF]}}&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
=== FritzBox 7170 (non-chroot) oder &amp;quot;reine&amp;quot; Linuxe ===&lt;br /&gt;
Datei 99_email.pm im Modul-Verzeichnis mit folgender Funktion anlegen (oder in bestehende 99_irgendwas.pm kopieren):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sub fb_mail {&lt;br /&gt;
 my $rcpt = $_[0];&lt;br /&gt;
 my $subject = $_[1];&lt;br /&gt;
 my $text = $_[2];&lt;br /&gt;
 system(&amp;amp;quot;/bin/echo \&amp;amp;quot;$text\&amp;amp;quot; | /usr/bin/mail send -i - -s \&amp;amp;quot;$subject\&amp;amp;quot; -t \&amp;amp;quot;$rcpt\&amp;amp;quot;&amp;amp;quot;);&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Aufruf dann mittels &lt;br /&gt;
:&amp;lt;code&amp;gt;{ fb_mail(&#039;empfaenger@@mail.de&#039;,&#039;Subject&#039;,&#039;text 123&#039;) }&amp;lt;/code&amp;gt;&lt;br /&gt;
Darauf achten, dass der fhem-User Mails senden darf (in richtige Gruppe eintragen. Ggf. vorher einmal su fhem und probieren).&lt;br /&gt;
&lt;br /&gt;
=== Fritz!Box 7390 ===&lt;br /&gt;
Auf der [[AVM Fritz!Box|FritzBox 7390]] ist diese Funktion seit 10/2012 Bestandteil der Fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$) (Groß-Kleinschreibung beachten).&lt;br /&gt;
&lt;br /&gt;
Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von Fhem geladen. Fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (z.&amp;amp;nbsp;B. in 99_myUtils.pm) die Zeile &#039;&#039;use FritzBoxUtils;&#039;&#039; einfügen.&lt;br /&gt;
&lt;br /&gt;
Mit dem Install von AVM.de wird fhem in einer chroot-Umgebung ausgeführt, die den Zugriff auf die Mailfunktion der Fritzbox nicht zulässt. Daher muss Fhem in der [http://fhem.de/fhem.html#Download Version von fhem.de] installiert sein. Sollte Ihre Fritzbox bisher mit dem install von AVM laufen, kann (nach einem backup!) das image von fhem.de einfach drüberinstalliert werden. Es sollten dabei alle Einstellungen erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sub fb_mail {&lt;br /&gt;
 my $rcpt = $_[0];&lt;br /&gt;
 my $subject = $_[1];&lt;br /&gt;
 my $text = $_[2];&lt;br /&gt;
 system(&amp;amp;quot;/bin/echo \&amp;amp;quot;$text\&amp;amp;quot; &amp;amp;gt; /var/tmp/fhem_nachricht.txt&amp;amp;quot;);&lt;br /&gt;
 system(&amp;amp;quot;/sbin/mailer send -i &#039;/var/tmp/fhem_nachricht.txt&#039; -s \&amp;amp;quot;$subject\&amp;amp;quot; -t \&amp;amp;quot;$rcpt\&amp;amp;quot;&amp;amp;quot;);&lt;br /&gt;
 system(&amp;amp;quot;rm /var/tmp/fhem_nachricht.txt&amp;amp;quot;);&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aufruf dann mittels &lt;br /&gt;
:&amp;lt;code&amp;gt;{ fb_mail(&#039;empfaenger@mail.de&#039;,&#039;Subject&#039;,&#039;text 123&#039;) }&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. &lt;br /&gt;
:&amp;lt;code&amp;gt;{ FB_mail(&#039;empfaenger@mail.de&#039;,&#039;Subject&#039;,&#039;text 123&#039;) }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Wenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des Mailempfängers verdoppelt werden, da ein einfaches @ sonst durch den Namen des getriggerten Devices  ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Dem Mailer können noch weitere Parameter hinzugefügt werden. Mehr dazu siehe: [http://www.wehavemorefun.de/fritzbox/Mailer Mailer]&lt;br /&gt;
&lt;br /&gt;
=== OpenWRT  ===&lt;br /&gt;
Die Anleitung wurde mit einer frühen Beta von Barrier Breaker (r391xx) mit einem TP_Lind WDR 4900 getestet. Da &amp;quot;sendEmail&amp;quot; nicht als Package vorliegt wird in dieser Anleitung &amp;quot;ssmtp&amp;quot; verwendet.&lt;br /&gt;
Die Installation erfolgt mittels:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install ssmtp_2.64-4_mpc85xx.ipk  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei werden die Packete libopenssl und zlib mit installiert. Damit ssmtp funktioniert müssen die Dateien /etc/ssmtp/ssmtp.conf und /etc/ssmtp/revaliases angepasst werden.&lt;br /&gt;
&lt;br /&gt;
/etc/ssmtp/ssmtp.conf &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root=arnold@gmx.net&lt;br /&gt;
mailhub=mail.gmx.net:465&lt;br /&gt;
rewriteDomain=gmx.net&lt;br /&gt;
hostname=gmx.net&lt;br /&gt;
FromLineOverride=YES&lt;br /&gt;
UseTLS=YES&lt;br /&gt;
#UseSTARTTLS=YES&lt;br /&gt;
AuthUser=arnold@gmx.net&lt;br /&gt;
AuthPass=Passwort_von_arnold@gmx.net&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/ssmtp/revaliases&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
root:arnold@gmx.net:mail.gmx.net:465&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der [[99_myUtils_anlegen|99_myUtils]] folgende Unterroutine einfügen (von der RPi-Anleitung übernommen):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sub &lt;br /&gt;
OpenWRTMail &lt;br /&gt;
{ &lt;br /&gt;
 my $rcpt = shift;&lt;br /&gt;
 my $subject = shift; &lt;br /&gt;
 my $text = shift; &lt;br /&gt;
 my $ret = &amp;quot;&amp;quot;;&lt;br /&gt;
 my $sender = &amp;quot;dockstar\@heye-tammo.de&amp;quot;; &lt;br /&gt;
 Log 1, &amp;quot;sendEmail RCP: $rcpt, Subject: $subject, Text: $text&amp;quot;;&lt;br /&gt;
 $ret .= qx(echo -e &#039;to:$rcpt\n from:$sender\nsubject:$subject\n$text\n&#039; | ssmtp $rcpt);&lt;br /&gt;
 $ret =~ s,[\r\n]*,,g;    # remove CR from return-string &lt;br /&gt;
 Log 1, &amp;quot;sendEmail returned: $ret&amp;quot;; &lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ab hier den entsprechenden Abschnitt unter &amp;quot;Raspberry Pi&amp;quot; lesen.&lt;br /&gt;
&lt;br /&gt;
=== Synology DiskStation ===&lt;br /&gt;
Beim DSM 3.2 gab es keinen &amp;lt;code&amp;gt;sendmail&amp;lt;/code&amp;gt;-Befehl, sondern nur eine Funktion für den Versand der System-Benachrichtigungen. Interessanterweise funktionierte aber der &amp;lt;code&amp;gt;php-mail&amp;lt;/code&amp;gt;-Befehl, so dass man mittels folgendem Modul Mails frei versenden kann:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sub sendmail($$$) {&lt;br /&gt;
 my($empf, $subj, $nachricht) = @_;&lt;br /&gt;
 system(&amp;amp;quot;php -r &#039;mail(\&amp;amp;quot;$empf\&amp;amp;quot;,\&amp;amp;quot;$subj\&amp;amp;quot;,\&amp;amp;quot;$nachricht\&amp;amp;quot;);&#039;&amp;amp;quot;);&lt;br /&gt;
 undef;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi ===&lt;br /&gt;
In der weezy-Version, wie sie von busware zur Verfügung gestellt wird, muss auf einem [[Raspberry Pi]] noch sendEmail nachinstalliert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install sendEmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in der [[99_myUtils_anlegen|99_myUtils]] folgende Unterroutine einfügen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;######## DebianMail  Mail auf dem RPi versenden ############ &lt;br /&gt;
sub &lt;br /&gt;
DebianMail &lt;br /&gt;
{ &lt;br /&gt;
 my $rcpt = shift;&lt;br /&gt;
 my $subject = shift; &lt;br /&gt;
 my $text = shift;&lt;br /&gt;
 my $attach = shift; &lt;br /&gt;
 my $ret = &amp;amp;quot;&amp;amp;quot;;&lt;br /&gt;
 my $sender = &amp;amp;quot;absender\@account.de&amp;amp;quot;; &lt;br /&gt;
 my $konto = &amp;amp;quot;kontoname\@account.de&amp;amp;quot;;&lt;br /&gt;
 my $passwrd = &amp;amp;quot;passwrd&amp;amp;quot;;&lt;br /&gt;
 my $provider = &amp;amp;quot;smtp.provider.de:25&amp;amp;quot;;&lt;br /&gt;
 Log 1, &amp;amp;quot;sendEmail RCP: $rcpt&amp;amp;quot;;&lt;br /&gt;
 Log 1, &amp;amp;quot;sendEmail Subject: $subject&amp;amp;quot;;&lt;br /&gt;
 Log 1, &amp;amp;quot;sendEmail Text: $text&amp;amp;quot;;&lt;br /&gt;
 Log 1, &amp;quot;sendEmail Anhang: $attach&amp;quot;;;&lt;br /&gt;
 &lt;br /&gt;
 $ret .= qx(sendEmail -f &#039;$sender&#039; -t &#039;$rcpt&#039; -u &#039;$subject&#039; -m &#039;$text&#039; -a &#039;$attach&#039; -s &#039;$provider&#039; -xu &#039;$konto&#039; -xp &#039;$passwrd&#039; -o tls=no -o message-charset=utf-8);&lt;br /&gt;
 $ret =~ s,[\r\n]*,,g;    # remove CR from return-string &lt;br /&gt;
 Log 1, &amp;amp;quot;sendEmail returned: $ret&amp;amp;quot;; &lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um die TLS Verschlüsselung (ehem. SSL) zu nutzen, muss in der 4. letzten Zeile tls=auto verwendet werden. Sollte anschließend keine Mail verschickt werden, siehe Probleme.&lt;br /&gt;
&lt;br /&gt;
Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit &amp;quot;Transferzeichen&amp;quot;, wie @ oder&amp;amp;#160;% aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.&lt;br /&gt;
&lt;br /&gt;
Siehe auch commandref:&lt;br /&gt;
* The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@).&lt;br /&gt;
* The macro&amp;amp;#160;%&amp;amp;lt;parameter&amp;amp;gt; will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\&lt;br /&gt;
 DebianMail(&#039;email@@email.domain&#039;,&#039;Subject&#039;,&#039;Text&#039;,&#039;Anhang&#039;);;\&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in allen anderen Fällen muss die Maskierung entfallen:&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define Sonstiges at *01:00:00 {\&lt;br /&gt;
 DebianMail(&#039;email@email.domain&#039;,&#039;Subject&#039;,&#039;Text&#039;,&#039;Anhang&#039;);;\&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BeagleBoard-xM ===&lt;br /&gt;
Auf einem [[:Kategorie:BeagleBoard-xM|BeagleBoard-xM]] mit einem [http://en.opensuse.org/HCL:BeagleBoard-xM OpenSUSE 12.2] kann man ebenfalls das Perl-Programm &#039;&#039;sendEmail&#039;&#039; wie beim RPi nutzen. Dies gibt es aber nicht in den Repositories von openSUSE, sondern man muss sich &#039;&#039;sendEmail&#039;&#039; als Source herunterladen. Das geht am einfachsten per &#039;&#039;wget&#039;&#039;, welches man ebenfalls erst installieren muss (aber aus einem Repository).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$ zypper in wget&lt;br /&gt;
$ cd /opt&lt;br /&gt;
$ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz&lt;br /&gt;
$ tar xvfz sendEmail-v1.56.tar.gz&lt;br /&gt;
$ cd sendEmail-v1.56&lt;br /&gt;
$ cp sendMail /usr/local/bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Dann geht man weiter vor wie unter RPi beschrieben (anlegen der SUB-Routine in 99_myUtils usw.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Die Version 1.56 von &#039;&#039;sendEmail&#039;&#039; ist Stand Januar 2013 die aktuelle. Da diese Programmversion von 2009 stammt, ist mit neuen Versionen selten zu rechnen. Vielleicht schauen Sie trotzdem vorher auf der [http://caspian.dotconf.net/menu/Software/SendEmail/ Homepage von sendEmail] nach.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
# Kopiere die Datei sendEmail.exe* in Dein FHEM Verzeichnis (hier c:\fhem-5.0\); Quelle: [http://caspian.dotconf.net/menu/Software/SendEmail/ http://caspian.dotconf.net/menu/Software/SendEmail/]&lt;br /&gt;
# Erstelle im FHEM Verzeichnis die Datei wmail.bat mit folgendem Inhalt (eine Zeile): &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;sendEmail -f absender@domain.de -u &amp;quot;%1&amp;quot; -m &amp;quot; &amp;quot; -s SMTP-SERVERAdresse -xu SMTP_USERNAME -xp SMTP_PASSWORT -t empfänger@domain.de -o message-header=&amp;quot;X-Message-Flag: FHEM&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Beispiel fhem.cfg&lt;br /&gt;
## Mail wenn sich der Status von Heizung.* oder Hzg.* ändert &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;define Mail_Heizung notify Heizung.*|Hzg.* { system(&amp;quot;wmail @:%&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
## Mail bei Signal Aussentemperatur (für dieses Beispiel wird [http://fhem.de/commandref.html#getstate http://fhem.de/commandref.html#getstate getstate] benötigt) &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;define Mail_Aussentemperatur notify Aussentemperatur {\&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;my ($val);;\&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;$val = fhem &amp;quot;getstate @&amp;quot;;;\&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;system(&amp;quot;wmail \&amp;quot;@: $val\&amp;quot;&amp;quot;);;\&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
=== sendEmail ===&lt;br /&gt;
Falls man keine E-Mails verschicken kann, kann man in einem ersten Test prüfen, ob sendEmail als solches funktioniert und die Konfiguration (Benutzer, Passwort, Server-Name usw.) des Mail-Kontos, über das die Mails abgesetzt werden sollen, richtig ist.&lt;br /&gt;
&lt;br /&gt;
Hierzu setzt man in der FHEM-Befehlszeile die folgende Anweisung ab:&lt;br /&gt;
:&amp;lt;code&amp;gt;{ SUB-Routinen-Name(&#039;EMailAdresse@Mail.Domain&#039;,&#039;Test&#039;,&#039;Test-Text&#039;);; }&amp;lt;/code&amp;gt;&lt;br /&gt;
und ersetzt &#039;&#039;SUB-Routinen-Name&#039;&#039; durch den Namen der in 99_myUtils erzeugten Prozedur. Statt &#039;&#039;EMailAdresse@Mail.Domain&#039;&#039; trägt man noch eine gültige E-Mail-Adresse ein und bestätigt den Befehl dann mittels &amp;amp;lt;Enter&amp;amp;gt; (nicht &amp;quot;save&amp;quot;). Empfangen Sie nicht kurzfristig eine entsprechende E-Mail, ist sehr wahrscheinlich an den Zugangsdaten etwas verkehrt. &lt;br /&gt;
&lt;br /&gt;
Vor dem testen der Routine oben kann sendEmail auch über die Konsole (z.&amp;amp;nbsp;B. via Putty) getestet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;sendEmail -f &#039;fhemsystem@meinedomain.tld&#039; -t &#039;ich@meinedomain.tld&#039; -u &#039;subject&#039; -m &#039;body&#039; -s &#039;meinmailserver.meinedomain.de&#039; -xu &#039;fhemmailer&#039; -xp &#039;geheimespassword&#039; -o tls=no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Keine Mail mit TLS Verschlüsselung ===&lt;br /&gt;
Den Test über die Konsole durchführen. Erhält man folgende Fehlermeldung:&lt;br /&gt;
&#039;&#039;invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332&#039;&#039;&lt;br /&gt;
muss auf dem Raspberry folgende Datei angepasst werden: &#039;&#039;/usr/bin/sendEmail&#039;&#039;.&lt;br /&gt;
In Zeile 1907 muss&lt;br /&gt;
 if (! IO::Socket::SSL-&amp;gt;start_SSL($SERVER, SSL_version =&amp;gt; &#039;SSLv3 TLSv1&#039;)) {&lt;br /&gt;
&lt;br /&gt;
in folgendes geändert werden&lt;br /&gt;
  if (! IO::Socket::SSL-&amp;gt;start_SSL($SERVER, SSL_version =&amp;gt; &#039;SSLv23:!SSLv2&#039;)) {&lt;br /&gt;
&lt;br /&gt;
Der frühere Tipp direkt in der SSL.pm Datei zu editieren führt zu Problemen wenn man auf FHEM per HTTPS zugreifen will und ist daher nicht zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
== Email laut Log gesendet aber nicht angekommen? ==&lt;br /&gt;
Dann bitte in der Fritzbox Oberfläche überpüfen, ob unter &amp;quot;System&amp;quot; -&amp;gt; &amp;quot;Push Service&amp;quot; selbiger eingerichtet und aktiviert wurde. &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:FritzBox]]&lt;br /&gt;
[[Kategorie:BeagleBoard-xM]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10808</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10808"/>
		<updated>2015-04-04T08:50:06Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich, FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist ein SolarLog mit Firmware ab Version 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die oben aufgeführten Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt. Die Module werden mit dem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt&lt;br /&gt;
reload 36_ModbusTCPServer.pm &lt;br /&gt;
reload 37_ModbusRegister.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
über die FHEM Befehlszeile installiert und anschließend mit einem Reload geladen.&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im Folgenden beschrieben, muss zunächst eine ModbusTCPServer Verbindung [[Konfiguration|konfiguriert]] werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgenden Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateAlias solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac_cons      || Aktueller Verbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield_cons    || Tagesverbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield_cons  || Monatsverbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield_cons   || Jahresverbrauch&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
  attr solarlog_totalpac stateAlias solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateAlias solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateAlias solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateAlias solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei Anschluß eines SO-Verbrauchszähler können zusätzlich noch die Register Aktueller-, Tages-, Monats- und Jahresverbrauch ausgelesen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktueller Verbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac_cons ModbusRegister 0 3518&lt;br /&gt;
  attr solarlog_totalpac_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac_cons room Solar&lt;br /&gt;
  attr solarlog_totalpac_cons stateAlias solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield_cons ModbusRegister 0 3520&lt;br /&gt;
  attr solarlog_dailyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield_cons room Solar&lt;br /&gt;
  attr solarlog_dailyyield_cons stateAlias solar&lt;br /&gt;
  attr solarlog_dailyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield_cons updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield_cons ModbusRegister 0 3524&lt;br /&gt;
  attr solarlog_monthlyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield_cons alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_monthlyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield_cons room Solar&lt;br /&gt;
  attr solarlog_monthlyyield_cons stateAlias solar&lt;br /&gt;
  attr solarlog_monthlyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield_cons updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield_cons ModbusRegister 0 3526&lt;br /&gt;
  attr solarlog_yearlyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield_cons alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield_cons registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield_cons room Solar&lt;br /&gt;
  attr solarlog_yearlyyield_cons stateAlias solar&lt;br /&gt;
  attr solarlog_yearlyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield_cons updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: 04.04.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log solarlog_.*:solar.*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ReadingsGroup ==&lt;br /&gt;
Darstellung in einer ReadingsGroup definieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ReadingsGroup definieren&lt;br /&gt;
##  Erstellt........: 04.04.2015&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define rg_dummy_SOLAR_state readingsGroup &amp;lt;Beschreibung&amp;gt;,&amp;lt;&amp;gt;&lt;br /&gt;
solarlog_.*:state&lt;br /&gt;
solarlog_.*:energybalance&lt;br /&gt;
  attr rg_SolarLog_state alias SolarLog&lt;br /&gt;
  attr rg_SolarLog_state mapping {&#039;solarlog_dailyyield&#039; =&amp;gt; &#039;Tagesertrag&#039;,&#039;solarlog_monthlyyield&#039; =&amp;gt; &#039;Monatsertrag&#039;, &lt;br /&gt;
                                  &#039;solarlog_totalpac&#039; =&amp;gt; &#039;Erzeugung&#039;,&#039;solarlog_yearlyyield&#039; =&amp;gt; &#039;Jahresertrag&#039;,&lt;br /&gt;
                                  &#039;solarlog_totalyield&#039; =&amp;gt; &#039;Gesamtertrag&#039;,&#039;solarlog_yesterdayyield&#039; =&amp;gt; &#039;Vortagesertrag&#039;}&lt;br /&gt;
  attr rg_SolarLog_state nostate 1&lt;br /&gt;
  attr rg_SolarLog_state notime 1&lt;br /&gt;
  attr rg_SolarLog_state valueFormat {&#039;state&#039; =&amp;gt; &amp;quot;%0.2f&amp;quot;}&lt;br /&gt;
  attr rg_SolarLog_state valueStyle style=&amp;quot;text-align:right&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plotbeispiel ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-03-07 21:20:25&lt;br /&gt;
# Changed by FHEM/98_SVG.pm, 2015-04-04 10:40:00&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
set ytics &lt;br /&gt;
set y2tics &lt;br /&gt;
set grid&lt;br /&gt;
set ylabel &amp;quot;Einspeiseleistung [kW]&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Ertrag [kWh]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#filelog_solarlog_day 4:solarlog_totalpac.solar\x3a::$fld[3]/1000&lt;br /&gt;
#filelog_solarlog_day 4:solarlog_dailyyield.solar\x3a::&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Bild:Solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
== Kontakt ==&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=34910|LinkText=Forenthread zum Wiki-Artikel &amp;quot;SolarLog&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.solar-log.net/ Solarlog] Herstellerseite&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Energieerzeugungsmessung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10599</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10599"/>
		<updated>2015-03-22T20:23:49Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich, FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist ein SolarLog mit Firmware ab Version 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die oben aufgeführten Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt. Die Module werden mit dem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt&lt;br /&gt;
reload 36_ModbusTCPServer.pm &lt;br /&gt;
reload 37_ModbusRegister.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
über die FHEM Befehlszeile installiert und anschließend mit einem Reload geladen.&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im Folgenden beschrieben, muss zunächst eine ModbusTCPServer Verbindung [[Konfiguration|konfiguriert]] werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgenden Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac_cons      || Aktueller Verbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield_cons    || Tagesverbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield_cons  || Monatsverbrauch&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield_cons   || Jahresverbrauch&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei Anschluß eines SO-Verbrauchszähler können zusätzlich noch die Register Aktueller-, Tages-, Monats- und Jahresverbrauch ausgelesen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktueller Verbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac_cons ModbusRegister 0 3518&lt;br /&gt;
  attr solarlog_totalpac_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac_cons room Solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield_cons ModbusRegister 0 3520&lt;br /&gt;
  attr solarlog_dailyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield_cons room Solar&lt;br /&gt;
  attr solarlog_dailyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield_cons updateInterval 00:01:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield_cons ModbusRegister 0 3524&lt;br /&gt;
  attr solarlog_monthlyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield_cons alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_monthlyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield_cons room Solar&lt;br /&gt;
  attr solarlog_monthlyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield_cons updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresverbrauch definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield_cons ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield_cons IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield_cons alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield_cons conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield_cons event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield_cons plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield_cons registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield_cons room Solar&lt;br /&gt;
  attr solarlog_yearlyyield_cons stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield_cons updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log (solarlog_totalpac_cons|solarlog_dailyyield_cons|solarlog_monthlyyield_cons|solarlog_yearlyyield_cons|solarlog_dailyyield|solarlog_monthlyyield|solarlog_totalpac|solarlog_totalyield|solarlog_yearlyyield|solarlog_yesterdayyield):(?!RAW)(.*)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ReadingsGroup ==&lt;br /&gt;
Die Dokumentation und Darstellung als ReadingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
== Plotbeispiel ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Created by FHEM/98_SVG.pm, 2015-03-07 21:20:25&lt;br /&gt;
set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
set ytics &lt;br /&gt;
set y2tics &lt;br /&gt;
set grid&lt;br /&gt;
set ylabel &amp;quot;Einspeiseleistung [kW]&amp;quot;&lt;br /&gt;
set y2label &amp;quot;Ertrag [kWh]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#filelog_solarlog_day 3:solarlog_totalpac.*::$fld[2]/1000&lt;br /&gt;
#filelog_solarlog_day 3:solarlog_dailyyield.*::&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Bild:Solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
== Kontakt ==&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=34910|LinkText=Forenthread zum Wiki-Artikel &amp;quot;SolarLog&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.solar-log.net/ Solarlog] Herstellerseite&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Energieerzeugungsmessung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10577</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10577"/>
		<updated>2015-03-20T21:18:33Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die oben aufgeführten Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt. Die Module werden mit dem Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt&lt;br /&gt;
reload 36_ModbusTCPServer.pm &lt;br /&gt;
reload 37_ModbusCoil.pm&lt;br /&gt;
reload 37_ModbusRegister.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
über die FHEM Befehlszeile installiert und anschließend mit einem Reload geladen.&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
  attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
  attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
  attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
  attr dim_outdoor_temperature stateAlias temperature&lt;br /&gt;
  attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_outdoor_temperature updateInterval 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval    || Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
  attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
  attr dim_dhw_temperature registerType Holding&lt;br /&gt;
  attr dim_dhw_temperature room Dimplex&lt;br /&gt;
  attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
  attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_dhw_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
  attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_flow_temperature plcDataType INT&lt;br /&gt;
  attr dim_flow_temperature registerType Holding&lt;br /&gt;
  attr dim_flow_temperature room Dimplex&lt;br /&gt;
  attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
  attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_flow_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
  attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_return_temperature plcDataType INT&lt;br /&gt;
  attr dim_return_temperature registerType Holding&lt;br /&gt;
  attr dim_return_temperature room Dimplex&lt;br /&gt;
  attr dim_return_temperature stateAlias temperature&lt;br /&gt;
  attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_return_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
  attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
  attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
  attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
  attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
  attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
  attr dim_returnset_temperature registerType Holding&lt;br /&gt;
  attr dim_returnset_temperature room Dimplex&lt;br /&gt;
  attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
  attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr dim_returnset_temperature updateInterval 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
  attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
  attr dim_statistics dayChangeTime 1&lt;br /&gt;
  attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
  attr dim_statistics room Dimplex&lt;br /&gt;
  attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
  attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
  attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_output room Dimplex&lt;br /&gt;
  attr dim_compressor_output source Coil&lt;br /&gt;
  attr dim_compressor_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
  attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_output room Dimplex&lt;br /&gt;
  attr dim_ventilator_output source Coil&lt;br /&gt;
  attr dim_ventilator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
  attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
  attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
  attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_output source Coil&lt;br /&gt;
  attr dim_2heatgenerator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
  attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_output room Dimplex&lt;br /&gt;
  attr dim_circulationpump_output source Coil&lt;br /&gt;
  attr dim_circulationpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
  attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
  attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_output room Dimplex&lt;br /&gt;
  attr dim_dhwpump_output source Coil&lt;br /&gt;
  attr dim_dhwpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
  attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
  attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
  attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
  attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
  attr dim_auxiliarypump_output source Coil&lt;br /&gt;
  attr dim_auxiliarypump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
  attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
  attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
  attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_output room Dimplex&lt;br /&gt;
  attr dim_flangeheater_output source Coil&lt;br /&gt;
  attr dim_flangeheater_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
  attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
  attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
  attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
  attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
  attr dim_compressor_history plcDataType INT&lt;br /&gt;
  attr dim_compressor_history registerType Holding&lt;br /&gt;
  attr dim_compressor_history room Dimplex&lt;br /&gt;
  attr dim_compressor_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
  attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_ventilator_history plcDataType INT&lt;br /&gt;
  attr dim_ventilator_history registerType Holding&lt;br /&gt;
  attr dim_ventilator_history room Dimplex&lt;br /&gt;
  attr dim_ventilator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
  attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
  attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
  attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
  attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
  attr dim_2heatgenerator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
  attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
  attr dim_circulationpump_history registerType Holding&lt;br /&gt;
  attr dim_circulationpump_history room Dimplex&lt;br /&gt;
  attr dim_circulationpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
  attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
  attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
  attr dim_dhwpump_history registerType Holding&lt;br /&gt;
  attr dim_dhwpump_history room Dimplex&lt;br /&gt;
  attr dim_dhwpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
  attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
  attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
  attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
  attr dim_flangeheater_history registerType Holding&lt;br /&gt;
  attr dim_flangeheater_history room Dimplex&lt;br /&gt;
  attr dim_flangeheater_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
  attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
  attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating1_thermalenergy updateInterval 900&lt;br /&gt;
  attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                    ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                     (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
  attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
  attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_heating3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
  attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw1_thermalenergy updateInterval 900&lt;br /&gt;
  attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
  attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
  attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
  attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
  attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
  attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
  attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
  attr dim_dhw3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/entzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
  attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment1_energy plcDataType INT&lt;br /&gt;
  attr dim_environment1_energy registerType Holding&lt;br /&gt;
  attr dim_environment1_energy room Dimplex&lt;br /&gt;
  attr dim_environment1_energy updateInterval 900&lt;br /&gt;
  attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                 ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                  (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
  attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment2_energy plcDataType INT&lt;br /&gt;
  attr dim_environment2_energy registerType Holding&lt;br /&gt;
  attr dim_environment2_energy room Dimplex&lt;br /&gt;
  attr dim_environment2_energy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
  attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
  attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
  attr dim_environment3_energy plcDataType INT&lt;br /&gt;
  attr dim_environment3_energy registerType Holding&lt;br /&gt;
  attr dim_environment3_energy room Dimplex&lt;br /&gt;
  attr dim_environment3_energy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
  attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10498</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10498"/>
		<updated>2015-03-14T09:49:17Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich, FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist ein SolarLog mit Firmware ab Version 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* Download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im Folgenden beschrieben, muss zunächst eine ModbusTCPServer Verbindung [[Konfiguration|konfiguriert]] werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgenden Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 3510 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log (solarlog_dailyyield|solarlog_monthlyyield|solarlog_totalpac|solarlog_totalyield|solarlog_yearlyyield|solarlog_yesterdayyield):(?!RAW)(.*)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
== Plotbeispiel ==&lt;br /&gt;
[[Bild:Solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
== Kontakt ==&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=34910|LinkText=Forenthread zum Wiki-Artikel &amp;quot;SolarLog&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.solar-log.net/ Solarlog] Herstellerseite&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Energieerzeugungsmessung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10487</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10487"/>
		<updated>2015-03-11T19:59:25Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist eine SolarLog ab firmware: 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im im nachfolgenden angegeben muss zunächst eine ModbusTCPServer Verbindung hergestellt werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log (solarlog_dailyyield|solarlog_monthlyyield|solarlog_totalpac|solarlog_totalyield|solarlog_yearlyyield|solarlog_yesterdayyield):(?!RAW)(.*)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:Solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=34910|LinkText=Forenthread zum Wiki-Artikel &amp;quot;SolarLog&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Energieerzeugungsmessung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10486</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10486"/>
		<updated>2015-03-11T19:54:42Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist eine SolarLog ab firmware: 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im im nachfolgenden angegeben muss zunächst eine ModbusTCPServer Verbindung hergestellt werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log (solarlog_dailyyield|solarlog_monthlyyield|solarlog_totalpac|solarlog_totalyield|solarlog_yearlyyield|solarlog_yesterdayyield):(?!RAW)(.*)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:Solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=34910|LinkText=Forenthread zum Wiki-Artikel &amp;quot;SolarLog&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:Solarlog_graph.jpg&amp;diff=10485</id>
		<title>Datei:Solarlog graph.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:Solarlog_graph.jpg&amp;diff=10485"/>
		<updated>2015-03-11T19:53:26Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10484</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10484"/>
		<updated>2015-03-11T19:27:16Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist eine SolarLog ab firmware: 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im im nachfolgenden angegeben muss zunächst eine ModbusTCPServer Verbindung hergestellt werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log (solarlog_dailyyield|solarlog_monthlyyield|solarlog_totalpac|solarlog_totalyield|solarlog_yearlyyield|solarlog_yesterdayyield):(?!RAW)(.*)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=34910|LinkText=Forenthread zum Wiki-Artikel &amp;quot;SolarLog&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10482</id>
		<title>SolarLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SolarLog&amp;diff=10482"/>
		<updated>2015-03-11T11:56:39Z</updated>

		<summary type="html">&lt;p&gt;TinoB: Die Seite wurde neu angelegt: „SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SolarLog ist eine Hardwareerweiterung für Wechselrichter zum Monitoren von Photovoltaikanlagen. SolarLog bietet ebenfalls die Möglichkeit die zur Verfügung gestellten Werte mittels ModbusTCP (free Version) in FHEM zu übernehmen, anzuzeigen und grafisch darzustellen. Da man mit FHEM Verbraucher beeinflussen kann, bringt die Integration den Vorteil mit sich FHEM als Energiemanagementsystem einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Voraussetzung zur Anbindung ist eine SolarLog ab firmware: 2.8.1 Build 49 sowie eine bestehende Netzwerkverbindung. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation sowie einem SolarLog 200.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (11.3.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
Wie im im nachfolgenden angegeben muss zunächst eine ModbusTCPServer Verbindung hergestellt werden. Die angegebene IP-Adresse muss durch die IP-Adresse des SolarLog ersetzt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define SolarLogServer ModbusTCPServer 192.168.1.160&lt;br /&gt;
  attr SolarLogServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand des Ertrags vom Vortag die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Ertrag Vortag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........: &lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yesterdayyield ModbusRegister 0 3510&lt;br /&gt;
  attr solarlog_yesterdayyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yesterdayyield alignUpdateInterval 08:00:00&lt;br /&gt;
  attr solarlog_yesterdayyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yesterdayyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yesterdayyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yesterdayyield registerType Holding&lt;br /&gt;
  attr solarlog_yesterdayyield room Solar&lt;br /&gt;
  attr solarlog_yesterdayyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yesterdayyield updateInterval 24:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 3510 Register Adresse&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| alignUpdateInterval|| Startzeit UpdateInterval&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| registerType       || RegisterTyp (z.B. Holding oder Input)&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval     || Intervall des Abfragezyklus (z.B. alle 24 Stunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namensvergabe ===&lt;br /&gt;
Vorschlag der Namensvergabe für den SolarLog. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalpac           || Aktuelle Leistung&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_dailyyield         || Tagesertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yesterdayyield     || Ertrag des Vortag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_monthlyyield       || Monatsertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_yearlyyield        || Jahresertrag&lt;br /&gt;
|-&lt;br /&gt;
| solarlog_totalyield         || Gesamtertrag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register aktuelle Leistung definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_totalpac ModbusRegister 0 3502&lt;br /&gt;
  attr solarlog_totalpac IODev SolarLogServer&lt;br /&gt;
  attr solarlog_totalpac event-on-change-reading .*&lt;br /&gt;
  attr solarlog_totalpac room Solar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Tagesertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_dailyyield ModbusRegister 0 3508&lt;br /&gt;
  attr solarlog_dailyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_dailyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_dailyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_dailyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_dailyyield room Solar&lt;br /&gt;
  attr solarlog_dailyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_dailyyield updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Monatsertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_monthlyyield ModbusRegister 0 3512&lt;br /&gt;
  attr solarlog_monthlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_monthlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_monthlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_monthlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_monthlyyield room Solar&lt;br /&gt;
  attr solarlog_monthlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_monthlyyield updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Jahresertrag definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define solarlog_yearlyyield ModbusRegister 0 3514&lt;br /&gt;
  attr solarlog_yearlyyield IODev SolarLogServer&lt;br /&gt;
  attr solarlog_yearlyyield alignUpdateInterval 01:00:00&lt;br /&gt;
  attr solarlog_yearlyyield conversion 0.001:0&lt;br /&gt;
  attr solarlog_yearlyyield event-on-change-reading .*&lt;br /&gt;
  attr solarlog_yearlyyield plcDataType DWORD&lt;br /&gt;
  attr solarlog_yearlyyield registerType Holding&lt;br /&gt;
  attr solarlog_yearlyyield room Solar&lt;br /&gt;
  attr solarlog_yearlyyield stateFormat {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
  attr solarlog_yearlyyield updateInterval 01:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile ====&lt;br /&gt;
Anlegen eines täglichen Logfiles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Tägliches LogFile definieren&lt;br /&gt;
##  Erstellt........: 07.03.2015&lt;br /&gt;
##  Geändert........:&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_solarlog_day FileLog ./log/filelog_solarlog_day-%d.log (solarlog_dailyyield|solarlog_monthlyyield|solarlog_totalpac|solarlog_totalyield|solarlog_yearlyyield|solarlog_yesterdayyield):(?!RAW)(.*)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:solarlog_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Eintrag folgt ...&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10287</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10287"/>
		<updated>2015-02-22T12:17:16Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusCoil.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateAlias temperature&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateInterval 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval    || Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateAlias temperature&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateInterval 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateInterval 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
   attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateInterval 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
   attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateInterval 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
   attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
   attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating1_thermalenergy updateInterval 900&lt;br /&gt;
   attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                   ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
   attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
   attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
   attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw1_thermalenergy updateInterval 900&lt;br /&gt;
   attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                               ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
   attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw2_thermalenergy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
   attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw3_thermalenergy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/entzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
   attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment1_energy plcDataType INT&lt;br /&gt;
   attr dim_environment1_energy registerType Holding&lt;br /&gt;
   attr dim_environment1_energy room Dimplex&lt;br /&gt;
   attr dim_environment1_energy updateInterval 900&lt;br /&gt;
   attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
   attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment2_energy plcDataType INT&lt;br /&gt;
   attr dim_environment2_energy registerType Holding&lt;br /&gt;
   attr dim_environment2_energy room Dimplex&lt;br /&gt;
   attr dim_environment2_energy updateInterval 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
   attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment3_energy plcDataType INT&lt;br /&gt;
   attr dim_environment3_energy registerType Holding&lt;br /&gt;
   attr dim_environment3_energy room Dimplex&lt;br /&gt;
   attr dim_environment3_energy updateInterval 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
   attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10286</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10286"/>
		<updated>2015-02-22T12:12:55Z</updated>

		<summary type="html">&lt;p&gt;TinoB: /* Modbus-Register/Coil Adressen definieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusCoil.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 22.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateAlias temperature&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateInterval 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateInterval    || Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateAlias temperature&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
   attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
   attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
   attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
   attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                   ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
   attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
   attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
   attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                               ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
   attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
   attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/enzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
   attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment1_energy plcDataType INT&lt;br /&gt;
   attr dim_environment1_energy registerType Holding&lt;br /&gt;
   attr dim_environment1_energy room Dimplex&lt;br /&gt;
   attr dim_environment1_energy updateIntervall 900&lt;br /&gt;
   attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
   attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment2_energy plcDataType INT&lt;br /&gt;
   attr dim_environment2_energy registerType Holding&lt;br /&gt;
   attr dim_environment2_energy room Dimplex&lt;br /&gt;
   attr dim_environment2_energy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
   attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment3_energy plcDataType INT&lt;br /&gt;
   attr dim_environment3_energy registerType Holding&lt;br /&gt;
   attr dim_environment3_energy room Dimplex&lt;br /&gt;
   attr dim_environment3_energy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
   attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10281</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10281"/>
		<updated>2015-02-21T18:28:17Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusCoil.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateAlias temperature&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateIntervall    || Intervall des Abfragezyklus (z.B. 300 Sekunden)&amp;lt;br&amp;gt; &#039;&#039;English? Dann müsste es eigentlich &amp;quot;updateInterval&amp;quot; heißen.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateAlias temperature&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
##  Geändert........: 21.02.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
   attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
   attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
   attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
   attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                   ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
   attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
   attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
   attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                               ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
   attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
   attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/enzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
   attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment1_energy plcDataType INT&lt;br /&gt;
   attr dim_environment1_energy registerType Holding&lt;br /&gt;
   attr dim_environment1_energy room Dimplex&lt;br /&gt;
   attr dim_environment1_energy updateIntervall 900&lt;br /&gt;
   attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
   attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment2_energy plcDataType INT&lt;br /&gt;
   attr dim_environment2_energy registerType Holding&lt;br /&gt;
   attr dim_environment2_energy room Dimplex&lt;br /&gt;
   attr dim_environment2_energy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
   attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment3_energy plcDataType INT&lt;br /&gt;
   attr dim_environment3_energy registerType Holding&lt;br /&gt;
   attr dim_environment3_energy room Dimplex&lt;br /&gt;
   attr dim_environment3_energy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
   attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10280</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=10280"/>
		<updated>2015-02-21T17:49:51Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- bitte noch die Abkürzung &amp;quot;NWPM&amp;quot; erklären (Benutzer:Ph1959de, 2015/02/02) --&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
Die Anbindung des Dimplex Wärmepumpenmanager an FHEM erfolgt mittels NWPM-Erweiterung und der aktuellen FHEM Installation. Weiterhin werden die zur Verfügung stehenden Module:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff auf einem BeagleBone Black mit der [[BeagleBone Black|hier beschriebenen]] Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die nachfolgenden Module sind notwendig und müssen nachinstalliert werden. Zum Zeitpunkt der Erstellung dieser Dokumentation (31.1.2015) sind diese Module noch nicht offiziell in FHEM enthalten und werden auch nicht mittels Update verteilt.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
** 36_ModbusTCPServer.pm&lt;br /&gt;
** 37_ModbusCoil.pm&lt;br /&gt;
** 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Erläuterungen zur Adressdefinition&lt;br /&gt;
|-&lt;br /&gt;
! Attribut !! Erläuterungen&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
|-&lt;br /&gt;
| ModbusRegister 0 1 || 1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
|-&lt;br /&gt;
| IODev              || Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
|-&lt;br /&gt;
| conversion         || eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
|-&lt;br /&gt;
| PlcDataType        || Ermögliche automatische Interpretation der ankommenden Daten&lt;br /&gt;
|-&lt;br /&gt;
| stateAlias         || es wird ein zusätzliches Reading erzeugt, um zum Beispiel das Statistic-Modul nutzen zu können, stateAlias ist eine echte Kopie von &amp;quot;state&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| updateIntervall    || Intervall des Abfragezyklus (z.B. 300 Sekunden)&amp;lt;br&amp;gt; &#039;&#039;English? Dann müsste es eigentlich &amp;quot;updateInterval&amp;quot; heißen.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch [[readingsGroup]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateAlias temperature&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateAlias temperature&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateAlias temperature&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateAlias temperature&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
   attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
   attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlegen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch readingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
   attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
   attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                   ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
   attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
   attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
   attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                               ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
   attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
   attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/enzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
   attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment1_energy plcDataType INT&lt;br /&gt;
   attr dim_environment1_energy registerType Holding&lt;br /&gt;
   attr dim_environment1_energy room Dimplex&lt;br /&gt;
   attr dim_environment1_energy updateIntervall 900&lt;br /&gt;
   attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
   attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment2_energy plcDataType INT&lt;br /&gt;
   attr dim_environment2_energy registerType Holding&lt;br /&gt;
   attr dim_environment2_energy room Dimplex&lt;br /&gt;
   attr dim_environment2_energy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
   attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment3_energy plcDataType INT&lt;br /&gt;
   attr dim_environment3_energy registerType Holding&lt;br /&gt;
   attr dim_environment3_energy room Dimplex&lt;br /&gt;
   attr dim_environment3_energy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
   attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer readingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden {{Link2Forum|Topic=33086|LinkText=Forenthread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;}} zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9715</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9715"/>
		<updated>2015-01-31T13:44:19Z</updated>

		<summary type="html">&lt;p&gt;TinoB: /* Kontakt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
   attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
   attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
   attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
   attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                   ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
   attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
   attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
   attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                               ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
   attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
   attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/enzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
   attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment1_energy plcDataType INT&lt;br /&gt;
   attr dim_environment1_energy registerType Holding&lt;br /&gt;
   attr dim_environment1_energy room Dimplex&lt;br /&gt;
   attr dim_environment1_energy updateIntervall 900&lt;br /&gt;
   attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
   attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment2_energy plcDataType INT&lt;br /&gt;
   attr dim_environment2_energy registerType Holding&lt;br /&gt;
   attr dim_environment2_energy room Dimplex&lt;br /&gt;
   attr dim_environment2_energy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
   attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment3_energy plcDataType INT&lt;br /&gt;
   attr dim_environment3_energy registerType Holding&lt;br /&gt;
   attr dim_environment3_energy room Dimplex&lt;br /&gt;
   attr dim_environment3_energy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
   attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer ReadingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Weitere Fragen, Wünsche und Anregungen bitte im entsprechenden [http://forum.fhem.de/index.php?topic=33086 Forenthread Thread zum Wiki-Artikel &amp;quot;Dimplex Wärmepumpenmanager&amp;quot;] zur Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9714</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9714"/>
		<updated>2015-01-31T13:25:08Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log&lt;br /&gt;
                                      dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
   attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
   attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
   attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wärmemengen ====&lt;br /&gt;
Laut Definition aus dem [http://www.dimplex.de/wiki Dimplex-Wiki] werden die Wärmemengen für Heizen, Warmwasser und Schwimmbad aus 3 Register-Adressen zusammengesetzt. Im Nachfolgenden Code-Beispiel wird dies entsprechend dargestellt. Dabei wird jeweils im ersten Register ein neues userReading mit der Darstellung der Gesamtwärmemenge angelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Heizen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_heating1_thermalenergy ModbusRegister 0 5096&lt;br /&gt;
   attr dim_heating1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_heating1_thermalenergy userReadings heatingthermalenergy {&lt;br /&gt;
                                   ((ReadingsVal(&amp;quot;dim_heating3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                    (ReadingsVal(&amp;quot;dim_heating1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_heating2_thermalenergy ModbusRegister 0 5097&lt;br /&gt;
   attr dim_heating2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_heating3_thermalenergy ModbusRegister 0 5098&lt;br /&gt;
   attr dim_heating3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_heating3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_heating3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_heating3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_heating3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_heating3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Wärmemenge Warmwasser definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw1_thermalenergy ModbusRegister 0 5099&lt;br /&gt;
   attr dim_dhw1_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw1_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw1_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw1_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw1_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw1_thermalenergy updateIntervall 900&lt;br /&gt;
   attr dim_dhw1_thermalenergy userReadings dhwthermalenergy {&lt;br /&gt;
                               ((ReadingsVal(&amp;quot;dim_dhw3_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw2_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                (ReadingsVal(&amp;quot;dim_dhw1_thermalenergy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_dhw2_thermalenergy ModbusRegister 0 5100&lt;br /&gt;
   attr dim_dhw2_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw2_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw2_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw2_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw2_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw2_thermalenergy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_dhw3_thermalenergy ModbusRegister 0 5101&lt;br /&gt;
   attr dim_dhw3_thermalenergy IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw3_thermalenergy event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw3_thermalenergy plcDataType INT&lt;br /&gt;
   attr dim_dhw3_thermalenergy registerType Holding&lt;br /&gt;
   attr dim_dhw3_thermalenergy room Dimplex&lt;br /&gt;
   attr dim_dhw3_thermalenergy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Umweltenergie ====&lt;br /&gt;
Als Umweltenergie wird die zugeführte Kälteenergie aus der Umwelt (Luft/Erdreich) bezeichnet. Das Auslesen dieser Werte über die Schnittstelle ist erst ab einem neueren Softwarestand möglich. Die Differenz der gesamten Wärmemenge und der Umweltenergie entspricht in etwa der Energie des Verdichters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Umweltenergie/enzogene Kälteenergie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_environment1_energy ModbusRegister 0 5127&lt;br /&gt;
   attr dim_environment1_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment1_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment1_energy plcDataType INT&lt;br /&gt;
   attr dim_environment1_energy registerType Holding&lt;br /&gt;
   attr dim_environment1_energy room Dimplex&lt;br /&gt;
   attr dim_environment1_energy updateIntervall 900&lt;br /&gt;
   attr dim_environment1_energy userReadings environmentenergy {&lt;br /&gt;
                                ((ReadingsVal(&amp;quot;dim_environment3_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*100000000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment2_energy&amp;quot;,&amp;quot;state&amp;quot;,0)*10000)+&lt;br /&gt;
                                 (ReadingsVal(&amp;quot;dim_environment1_energy&amp;quot;,&amp;quot;state&amp;quot;,0)))}&lt;br /&gt;
&lt;br /&gt;
define dim_environment2_energy ModbusRegister 0 5128&lt;br /&gt;
   attr dim_environment2_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment2_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment2_energy plcDataType INT&lt;br /&gt;
   attr dim_environment2_energy registerType Holding&lt;br /&gt;
   attr dim_environment2_energy room Dimplex&lt;br /&gt;
   attr dim_environment2_energy updateIntervall 900&lt;br /&gt;
&lt;br /&gt;
define dim_environment3_energy ModbusRegister 0 5129&lt;br /&gt;
   attr dim_environment3_energy IODev HeatPumpServer&lt;br /&gt;
   attr dim_environment3_energy event-on-change-reading .*&lt;br /&gt;
   attr dim_environment3_energy plcDataType INT&lt;br /&gt;
   attr dim_environment3_energy registerType Holding&lt;br /&gt;
   attr dim_environment3_energy room Dimplex&lt;br /&gt;
   attr dim_environment3_energy updateIntervall 900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Wärmemengen ====&lt;br /&gt;
Anlegen eines jährlichen Logfile der Wärmemengen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Wärmemengen definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_thermalenergy_year FileLog ./log/filelog_dim_thermalenergy_year-%y.log&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*|&lt;br /&gt;
                                              dim_dhw1_thermalenergy:dhwthermalenergy:.*|&lt;br /&gt;
                                              dim_heating1_thermalenergy:heatingthermalenergy:.*&lt;br /&gt;
   attr filelog_dim_thermalenergy_year room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Darstellung in einer ReadingsGroup folgt.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9713</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9713"/>
		<updated>2015-01-31T12:28:48Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Betriebsdaten ====&lt;br /&gt;
Anlegen eines täglichen Logfile der Betriebsdaten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Betriebsdaten definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_temperature FileLog ./log/filelog_dim_temperature-%W-%d.log dim_.*._temperature:temperature:.*|dim_.*._pressure:pressure:.*&lt;br /&gt;
   attr filelog_dim_temperature room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Logfile Zustände ====&lt;br /&gt;
Anlegen eines wöchentlichen Logfile der Zustände.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Ausgänge/Zustände definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_output_week FileLog ./log/filelog_dim_output_week-%W.log dim_.*._output.*&lt;br /&gt;
   attr filelog_dim_output_week room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von zum Beispiel Logfiles, Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Logfile Historie ====&lt;br /&gt;
Anlegen eines monatlichen Logfile für die Historischen Daten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Logfile Historie definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define filelog_dim_history_month FileLog ./log/filelog_dim_history_month-%m.log dim_.*._history.*&lt;br /&gt;
   attr filelog_dim_history_month room Dimplex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für ReadingsGroup und Wärmemengen folgen.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9712</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9712"/>
		<updated>2015-01-31T12:16:56Z</updated>

		<summary type="html">&lt;p&gt;TinoB: /* Betriebsdaten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten. Eine sinnvolle Namensvergabe erleichtert später das Anlagen weiterer Definitionen von Statistiken oder auch ReadingsGroup.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Statistiken ====&lt;br /&gt;
Folgender Code legt die Statistiken der Betriebsdaten an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define dim_statistics statistics dim_.*._temperature|dim_.*._pressure&lt;br /&gt;
   attr dim_statistics dayChangeTime 1&lt;br /&gt;
   attr dim_statistics deltaReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics minAvgMaxReadings temperature,pressure&lt;br /&gt;
   attr dim_statistics room Dimplex&lt;br /&gt;
   attr dim_statistics tendencyReadings temperature,pressure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für ReadingsGroup, Wärmemengen, Logfile sowie Statistic-Modul folgen.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9711</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9711"/>
		<updated>2015-01-31T12:11:38Z</updated>

		<summary type="html">&lt;p&gt;TinoB: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für ReadingsGroup, Wärmemengen, Logfile sowie Statistic-Modul folgen.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9710</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9710"/>
		<updated>2015-01-31T12:10:59Z</updated>

		<summary type="html">&lt;p&gt;TinoB: /* Zustände */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_compressor_output HourCounter dim_compressor_output:on dim_compressor_output:off&lt;br /&gt;
   attr hourcounter_compressor_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_compressor_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_ventilator_output HourCounter dim_ventilator_output:on dim_ventilator_output:off&lt;br /&gt;
   attr hourcounter_ventilator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_ventilator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_2heatgenerator_output HourCounter dim_2heatgenerator_output:on dim_2heatgenerator_output:off&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_circulationpump_output HourCounter dim_circulationpump_output:on dim_circulationpump_output:off&lt;br /&gt;
   attr hourcounter_circulationpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_circulationpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_dhwpump_output HourCounter dim_dhwpump_output:on dim_dhwpump_output:off&lt;br /&gt;
   attr hourcounter_dhwpump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_dhwpump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Zusatzpumpe M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_auxiliarypump_output HourCounter dim_auxiliarypump_output:on dim_auxiliarypump_output:off&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&lt;br /&gt;
########################################################&lt;br /&gt;
##  Passenden HourCounter für Flanschheizung M16 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define hourcounter_flangeheater_output HourCounter dim_flangeheater_output:on dim_flangeheater_output:off&lt;br /&gt;
   attr hourcounter_flangeheater_output event-min-interval tick.*:0,.*:3600&lt;br /&gt;
   attr hourcounter_flangeheater_output event-on-change-reading .*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Historie ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Historie&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_history      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_history      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_history       || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_history || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_history  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_history         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_history   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_history    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_history ModbusRegister 0 72&lt;br /&gt;
   attr dim_compressor_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_history event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_history plcDataType INT&lt;br /&gt;
   attr dim_compressor_history registerType Holding&lt;br /&gt;
   attr dim_compressor_history room Dimplex&lt;br /&gt;
   attr dim_compressor_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_history ModbusRegister 0 74&lt;br /&gt;
   attr dim_ventilator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_history plcDataType INT&lt;br /&gt;
   attr dim_ventilator_history registerType Holding&lt;br /&gt;
   attr dim_ventilator_history room Dimplex&lt;br /&gt;
   attr dim_ventilator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie 2.Wärmeerzeuger definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_history ModbusRegister 0 75&lt;br /&gt;
   attr dim_2heatgenerator_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_history event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_history plcDataType INT&lt;br /&gt;
   attr dim_2heatgenerator_history registerType Holding&lt;br /&gt;
   attr dim_2heatgenerator_history room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_history ModbusRegister 0 76&lt;br /&gt;
   attr dim_circulationpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_history plcDataType INT&lt;br /&gt;
   attr dim_circulationpump_history registerType Holding&lt;br /&gt;
   attr dim_circulationpump_history room Dimplex&lt;br /&gt;
   attr dim_circulationpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_history ModbusRegister 0 77&lt;br /&gt;
   attr dim_dhwpump_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_history event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_history plcDataType INT&lt;br /&gt;
   attr dim_dhwpump_history registerType Holding&lt;br /&gt;
   attr dim_dhwpump_history room Dimplex&lt;br /&gt;
   attr dim_dhwpump_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Historie Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_history ModbusRegister 0 78&lt;br /&gt;
   attr dim_flangeheater_history IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_history event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_history plcDataType INT&lt;br /&gt;
   attr dim_flangeheater_history registerType Holding&lt;br /&gt;
   attr dim_flangeheater_history room Dimplex&lt;br /&gt;
   attr dim_flangeheater_history updateIntervall 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für ReadingsGroup, Wärmemengen, Logfile sowie Statistic-Modul folgen.&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9708</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9708"/>
		<updated>2015-01-31T10:22:10Z</updated>

		<summary type="html">&lt;p&gt;TinoB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeguer definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M19 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Historie, Wärmemengen, Logfile, HourCounter sowie Statistic-Modul folgen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Heizungssteuerung]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9706</id>
		<title>Dimplex Wärmepumpenmanager</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Dimplex_W%C3%A4rmepumpenmanager&amp;diff=9706"/>
		<updated>2015-01-31T10:21:24Z</updated>

		<summary type="html">&lt;p&gt;TinoB: 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…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzung ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 36_ModbusTCPServer.pm &lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
&lt;br /&gt;
genutzt. Getestet wurde der Zugriff mit einem BeagleBone Black und mit der im Wiki (http://www.fhemwiki.de/wiki/BeagleBone_Black) beschriebenen Debian Installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
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.&lt;br /&gt;
* download der Module von https://github.com/ChrisD70/FHEM-Modules:&lt;br /&gt;
* 36_ModbusTCPServer.pm&lt;br /&gt;
* 37_ModbusCoil.pm&lt;br /&gt;
* 37_ModbusRegister.pm&lt;br /&gt;
* kopieren der Module in das Verzeichnis /fhem/FHEM/&lt;br /&gt;
* anschließend gegebenenfalls durch ein Reload laden&lt;br /&gt;
&lt;br /&gt;
== Benutzung == &lt;br /&gt;
=== Anlegen der ModbusTCPServer Verbindung ===&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  ModbusTCPServer definieren&lt;br /&gt;
##  Erstellt........: 28.12.2014&lt;br /&gt;
########################################################&lt;br /&gt;
define HeatPumpServer ModbusTCPServer 192.168.1.150&lt;br /&gt;
attr HeatPumpServer verbose 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau wird mit einem „ok“ im State gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Modbus-Register/Coil Adressen definieren ===&lt;br /&gt;
Im nachfolgendem Beispiel wird anhand der Außentemperatur die Adressdefinition erklärt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Außentemperatur&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_outdoor_temperature ModbusRegister 0 1&lt;br /&gt;
   attr dim_outdoor_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_outdoor_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_outdoor_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_outdoor_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_outdoor_temperature plcDataType INT&lt;br /&gt;
   attr dim_outdoor_temperature registerType Holding&lt;br /&gt;
   attr dim_outdoor_temperature room Dimplex&lt;br /&gt;
   attr dim_outdoor_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_outdoor_temperature updateIntervall 600&lt;br /&gt;
   attr dim_outdoor_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Erklärung:&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ModbusRegister 0 1          =   0 Device Adresse, in der Regel bei ModbusTCP immer 0&lt;br /&gt;
 ModbusRegister 0 1          =   1 Register Adresse, wird unter www.dimplex.de/wiki → ModbusTCP → Spalten IP zur Verfügung gestellt&lt;br /&gt;
 IODev                       =   Verwendeter und zuvor angelegter ModbusTCPServer&lt;br /&gt;
 conversion                  =   eine gegebenenfalls notwendige Konvertierung des übermittelten Values&lt;br /&gt;
 PlcDataType                 =   Ermöglicht eine automatische Interpretation der ankommenden Daten&lt;br /&gt;
 updateIntervall             =   Intervall des Abfragezyklus (z.B. 300 Sekunden)&lt;br /&gt;
 userReadings                =   das userReading „temperature“ wird wegen dem Statistic-Modul gleich mit angelegt&lt;br /&gt;
 ---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
=== Betriebsdaten ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Betriebsdaten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_outdoor_temperature     || Außentemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_flow_temperature        || Vorlauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_return_temperature      || Rücklauftemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_returnset_temperature   || Rücklaufsolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_room_temperature        || Raumtemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhw_temperature         || Warmwassertemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwset_temperature      || Warmwassersolltemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_brine_temperature       || Soletemperatur&lt;br /&gt;
|-&lt;br /&gt;
| dim_high_pressure           || Hochdruck&lt;br /&gt;
|-&lt;br /&gt;
| dim_low_pressure           || Niederdruck&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Warmwassertemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhw_temperature ModbusRegister 0 3&lt;br /&gt;
   attr dim_dhw_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhw_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_dhw_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_dhw_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_dhw_temperature plcDataType INT&lt;br /&gt;
   attr dim_dhw_temperature registerType Holding&lt;br /&gt;
   attr dim_dhw_temperature room Dimplex&lt;br /&gt;
   attr dim_dhw_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_dhw_temperature updateIntervall 60&lt;br /&gt;
   attr dim_dhw_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Vorlauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flow_temperature ModbusRegister 0 5&lt;br /&gt;
   attr dim_flow_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_flow_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_flow_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_flow_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_flow_temperature plcDataType INT&lt;br /&gt;
   attr dim_flow_temperature registerType Holding&lt;br /&gt;
   attr dim_flow_temperature room Dimplex&lt;br /&gt;
   attr dim_flow_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_flow_temperature updateIntervall 60&lt;br /&gt;
   attr dim_flow_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklauftemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_return_temperature ModbusRegister 0 2&lt;br /&gt;
   attr dim_return_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_return_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_return_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_return_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_return_temperature plcDataType INT&lt;br /&gt;
   attr dim_return_temperature registerType Holding&lt;br /&gt;
   attr dim_return_temperature room Dimplex&lt;br /&gt;
   attr dim_return_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_return_temperature updateIntervall 60&lt;br /&gt;
   attr dim_return_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Register Rücklaufsolltemperatur definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_returnset_temperature ModbusRegister 0 53&lt;br /&gt;
   attr dim_returnset_temperature IODev HeatPumpServer&lt;br /&gt;
   attr dim_returnset_temperature conversion 0.1:0&lt;br /&gt;
   attr dim_returnset_temperature event-min-interval .*:900&lt;br /&gt;
   attr dim_returnset_temperature event-on-change-reading .*&lt;br /&gt;
   attr dim_returnset_temperature plcDataType INT&lt;br /&gt;
   attr dim_returnset_temperature registerType Holding&lt;br /&gt;
   attr dim_returnset_temperature room Dimplex&lt;br /&gt;
   attr dim_returnset_temperature stateFormat {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
   attr dim_returnset_temperature updateIntervall 300&lt;br /&gt;
   attr dim_returnset_temperature userReadings temperature {sprintf(&amp;quot;%0.1f&amp;quot;, ReadingsVal($name,&amp;quot;state&amp;quot;,0))}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zustände ===&lt;br /&gt;
Vorschlag der Namensvergabe für die Zustände&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| dim_compressor_output      || Verdichter&lt;br /&gt;
|-&lt;br /&gt;
| dim_ventilator_output      || Ventilator&lt;br /&gt;
|-&lt;br /&gt;
| dim_brinepump_ output      || Solepumpe&lt;br /&gt;
|-&lt;br /&gt;
| dim_circulationpump_output || Heizungsumwälzpumpe M13&lt;br /&gt;
|-&lt;br /&gt;
| dim_2heatgenerator_output  || 2.Wärmeerzeuger&lt;br /&gt;
|-&lt;br /&gt;
| dim_dhwpump_output         || Warmwasserpumpe M18&lt;br /&gt;
|-&lt;br /&gt;
| dim_auxiliarypump_output   || Zusatzpumpe M16&lt;br /&gt;
|-&lt;br /&gt;
| dim_flangeheater_output    || Flanschheizung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Verdichter definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_compressor_output ModbusCoil 0 41&lt;br /&gt;
   attr dim_compressor_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_compressor_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_compressor_output event-min-interval .*:900&lt;br /&gt;
   attr dim_compressor_output event-on-change-reading .*&lt;br /&gt;
   attr dim_compressor_output room Dimplex&lt;br /&gt;
   attr dim_compressor_output source Coil&lt;br /&gt;
   attr dim_compressor_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Ventilator definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_ventilator_output ModbusCoil 0 43&lt;br /&gt;
   attr dim_ventilator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_ventilator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_ventilator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_ventilator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_ventilator_output room Dimplex&lt;br /&gt;
   attr dim_ventilator_output source Coil&lt;br /&gt;
   attr dim_ventilator_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil 2.Wärmeerzeguer definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_2heatgenerator_output ModbusCoil 0 44&lt;br /&gt;
   attr dim_2heatgenerator_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_2heatgenerator_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_2heatgenerator_output event-min-interval .*:900&lt;br /&gt;
   attr dim_2heatgenerator_output event-on-change-reading .*&lt;br /&gt;
   attr dim_2heatgenerator_output room Dimplex&lt;br /&gt;
   attr dim_2heatgenerator_output source Coil&lt;br /&gt;
   attr dim_2heatgenerator_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Heizungsumwälzpumpe M13 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_circulationpump_output ModbusCoil 0 45&lt;br /&gt;
   attr dim_circulationpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_circulationpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_circulationpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_circulationpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_circulationpump_output room Dimplex&lt;br /&gt;
   attr dim_circulationpump_output source Coil&lt;br /&gt;
   attr dim_circulationpump_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Warmwasserpumpe M18 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_dhwpump_output ModbusCoil 0 46&lt;br /&gt;
   attr dim_dhwpump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_dhwpump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_dhwpump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_dhwpump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_dhwpump_output room Dimplex&lt;br /&gt;
   attr dim_dhwpump_output source Coil&lt;br /&gt;
   attr dim_dhwpump_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Zusatzpumpe M19 definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_auxiliarypump_output ModbusCoil 0 49&lt;br /&gt;
   attr dim_auxiliarypump_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_auxiliarypump_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_auxiliarypump_output event-min-interval .*:900&lt;br /&gt;
   attr dim_auxiliarypump_output event-on-change-reading .*&lt;br /&gt;
   attr dim_auxiliarypump_output room Dimplex&lt;br /&gt;
   attr dim_auxiliarypump_output source Coil&lt;br /&gt;
   attr dim_auxiliarypump_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
##  Coil Flanschheizung definieren&lt;br /&gt;
##  Erstellt........: 06.01.2015&lt;br /&gt;
########################################################&lt;br /&gt;
define dim_flangeheater_output ModbusCoil 0 50&lt;br /&gt;
   attr dim_flangeheater_output IODev HeatPumpServer&lt;br /&gt;
   attr dim_flangeheater_output disableRegisterMapping 1&lt;br /&gt;
   attr dim_flangeheater_output event-min-interval .*:900&lt;br /&gt;
   attr dim_flangeheater_output event-on-change-reading .*&lt;br /&gt;
   attr dim_flangeheater_output room Dimplex&lt;br /&gt;
   attr dim_flangeheater_output source Coil&lt;br /&gt;
   attr dim_flangeheater_output updateIntervall 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation für die Historie, Wärmemengen, Logfile, HourCounter sowie Statistic-Modul folgen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Plotbeispiel =&lt;br /&gt;
[[Bild:dimplex_hp_graph.jpg|thumb|right|Plotbeispiel]]&lt;br /&gt;
Im nebenstehenden Plotbeispiel werde die Temperaturen (Analogwerte) sowie die Ausgänge (Digitalwerte) dargestellt. Im einzelnen sind die Kurven für die&lt;br /&gt;
&lt;br /&gt;
* Aussen- (AT)&lt;br /&gt;
* Raum- (RT)&lt;br /&gt;
* Rücklauf- (RL)&lt;br /&gt;
* Rücklaufsoll- (RLS)&lt;br /&gt;
* Warmwasser- (WWT) und &lt;br /&gt;
* Vorlauftemperatur (VLT) &lt;br /&gt;
&lt;br /&gt;
sowie die Ausgänge für&lt;br /&gt;
&lt;br /&gt;
* Verdichter 1 (Vd)&lt;br /&gt;
* Ventilator (Ve)&lt;br /&gt;
* 2.Wärmeerzeuger (2We)&lt;br /&gt;
* Heizungsumwälzpumpe (Hup)&lt;br /&gt;
* Warmwasserumwälzpumpe (Wup) und&lt;br /&gt;
* Zusatzumwälzpumpe (Zup)&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
= Kontakt =&lt;br /&gt;
&lt;br /&gt;
Anfragen bei Problemen bitte in der entsprechenden (wird noch verlinkt) Diskussion stellen.&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BeagleBone_Black&amp;diff=8623</id>
		<title>BeagleBone Black</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BeagleBone_Black&amp;diff=8623"/>
		<updated>2014-11-29T12:59:35Z</updated>

		<summary type="html">&lt;p&gt;TinoB: /* Debian auf dem BBB (emmc) installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beim [[BeagleBone Black]] (BBB) handelt es sich um eine Entwicklungsplattform für Entwickler und Hobbyisten. Diese ist im direkten Vergleich im  Bereich der Embedded Systems ähnlich dem [[Raspberry Pi]] angesiedelt. Das BeagleBone Black basiert u.a. auf einen ARM-Prozessor (Singlecore, ARM Cortex-A8) mit 1GHz, 512MB DDR3 RAM und 2GB onBoard eMMC Flash. &lt;br /&gt;
&lt;br /&gt;
Für das BeagleBone Black gibt es bereits Betriebssystem-Unterstützungen durch &lt;br /&gt;
* Ångström Linux&lt;br /&gt;
* Android&lt;br /&gt;
* und Ubuntu&lt;br /&gt;
&lt;br /&gt;
Seit März 2014 gibt es auch einen Debian Port für den BBB.&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Die folgende Beschreibung gilt nur noch für REV C Boards mit 4GB emmc.&lt;br /&gt;
Auf alten Revisionen mit 2GB ist hinterher lediglich ca. 180MB Speicher im emmc frei. Details sind im &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,24566.msg177766.html#msg177766 Fhem-Forum] beschrieben.}}&lt;br /&gt;
&lt;br /&gt;
== Debian/Ubuntu auf dem BBB (emmc) installieren ==&lt;br /&gt;
=== Benötigt ===&lt;br /&gt;
* micro SD-Karte nebst Lesegerät&lt;br /&gt;
* 5V Stromkabel (beim BBB mitgeliefert)&lt;br /&gt;
* einen USB Port der 500mA bereit stellen kann; kann auch einfach ein USB Ladeadapter in einer Steckdose sein&lt;br /&gt;
* &#039;&#039;&#039;Debian:&#039;&#039;&#039; eMMC Image [http://beagleboard.org/latest-images/ BeagleBone Black (eMMC flasher) auswählen]&lt;br /&gt;
* &#039;&#039;&#039;Ubuntu:&#039;&#039;&#039; eMMC Image [https://rcn-ee.net/deb/flasher/trusty/ BeagleBone Black (eMMC flasher) auswählen]&lt;br /&gt;
* Win32DiskImager (wenn man mit Windows arbeitet jedenfalls) [http://sourceforge.net/projects/win32diskimager/ gibts da]&lt;br /&gt;
&lt;br /&gt;
=== Image auf SD Karte ===&lt;br /&gt;
* das gewünschte Image von oben speichern&lt;br /&gt;
* entpacken&lt;br /&gt;
* micro SD Karte in PC&lt;br /&gt;
* Win32DiskImager starten (er benötigt Admin Rechte, nicht über die Abfrage beim Start wundern)&lt;br /&gt;
* vergewissern, dass der DiskImager den richtigen Laufwerksbuchstaben (also den der SD Karte) als Ziel hat (Device)&lt;br /&gt;
* nochmal kontrollieren&lt;br /&gt;
* das gerade entpackte Image auswählen&lt;br /&gt;
* write&lt;br /&gt;
* warten... (dauert durchaus so 5 Minuten)&lt;br /&gt;
* wenn fertig, bitte SD Karte ordentlich auswerfen&lt;br /&gt;
&lt;br /&gt;
=== Image von SD Karte auf eMMC ===&lt;br /&gt;
Jetzt geht es weiter auf dem BBB&lt;br /&gt;
* micro SD Karte in den BBB&lt;br /&gt;
* sonst nichts angeschlossen haben!&lt;br /&gt;
* den kleinen Knopf auf der Seite vom USB Port drücken und halten&lt;br /&gt;
* jetzt Strom zuführen (es leuchtet sofort 1 einzelne blaue LED)&lt;br /&gt;
* wenn die restlichen LEDs anfangen zu blinken, kann man den Knopf wieder loslassen&lt;br /&gt;
* warten, bis alle LEDs ruhig und gleichmäßig leuchten&lt;br /&gt;
&lt;br /&gt;
=== Weiter auf dem BBB ===&lt;br /&gt;
* nun muss man die IP Adresse des BBB rausfinden (ich schau dazu auf der FritzBox nach, das Teil nennt sich &amp;quot;beaglebone&amp;quot; bei Debian, &amp;quot;arm&amp;quot; bei Ubuntu)&lt;br /&gt;
* mit einem SSH Client verbinden&lt;br /&gt;
&lt;br /&gt;
==== Zugangsdaten Debian ====&lt;br /&gt;
* Benutzername: debian&lt;br /&gt;
* Passwort: temppwd (vermutlich sollte man das mal ändern ;) )&lt;br /&gt;
&lt;br /&gt;
==== Zugangsdaten Ubuntu ====&lt;br /&gt;
* Benutzername: ubuntu&lt;br /&gt;
* Passwort: temppwd (vermutlich sollte man das mal ändern ;) )&lt;br /&gt;
&lt;br /&gt;
== Perl und Fhem installieren ==&lt;br /&gt;
Jetzt geht es weiter, ziemlich genau wie am RasPi auch:&lt;br /&gt;
&lt;br /&gt;
 # Timezone einstellen&lt;br /&gt;
 sudo dpkg-reconfigure tzdata&lt;br /&gt;
 # Ist nie verkehrt:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 # jetzt gehts los&lt;br /&gt;
 sudo apt-get install perl libdevice-serialport-perl&lt;br /&gt;
 sudo apt-get install libio-socket-ssl-perl&lt;br /&gt;
 # fhem-X.Y.deb bitte mit der [http://fhem.de/fhem.html#Download aktuellsten, stabilen Version] ersetzen&lt;br /&gt;
 wget  [http://fhem.de/fhem-X.Y.deb http://fhem.de/fhem-X.Y.deb]&lt;br /&gt;
 sudo dpkg -i fhem-X.Y.deb&lt;br /&gt;
&lt;br /&gt;
Jetzt sollte man mit der IP Adresse vom Beagle unter der Portnummer 8083 von fhem begrüßt werden&lt;br /&gt;
&lt;br /&gt;
z.B.&lt;br /&gt;
192.168.10.43:8083&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* BeagleBone Black [http://beagleboard.org/products/beaglebone%20black &amp;quot;Homepage&amp;quot;]&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,24566.msg177766.html#msg177766 Download Informationen] für Installation auf BBB mit 2GB emmc&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:BeagleBone Black]]&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:Dimplex_hp_graph.jpg&amp;diff=4062</id>
		<title>Datei:Dimplex hp graph.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:Dimplex_hp_graph.jpg&amp;diff=4062"/>
		<updated>2013-12-27T18:24:42Z</updated>

		<summary type="html">&lt;p&gt;TinoB: NWPM Plotbeispiel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NWPM Plotbeispiel&lt;/div&gt;</summary>
		<author><name>TinoB</name></author>
	</entry>
</feed>