diff --git a/fhem/FHEM/23_LUXTRONIK2.pm b/fhem/FHEM/23_LUXTRONIK2.pm
index b3d0d332e..9c2a57425 100644
--- a/fhem/FHEM/23_LUXTRONIK2.pm
+++ b/fhem/FHEM/23_LUXTRONIK2.pm
@@ -1,5 +1,7 @@
###############################################################
#
+# 23_LUXTRONIK2.pm
+#
# Copyright notice
#
# (c) 2012,2014 Torsten Poitzsch (torsten.poitzsch@gmx.de)
@@ -53,7 +55,7 @@ LUXTRONIK2_Initialize($)
$hash->{UndefFn} = "LUXTRONIK2_Undefine";
$hash->{NotifyFn} = "LUXTRONIK2_Notify";
$hash->{SetFn} = "LUXTRONIK2_Set";
- $hash->{AttrFn} = "LUXTRONIK2_Attr";
+ $hash->{AttrFn} = "LUXTRONIK2_Attr";
$hash->{AttrList} = "disable:0,1 ".
"allowSetParameter:0,1 ".
"autoSynchClock:slider,10,5,300 ".
@@ -155,10 +157,31 @@ LUXTRONIK2_Notify(@) {
if ( exists( $hash->{READINGS}{$oldReading} ) ) {
delete($hash->{READINGS}{$oldReading});
Log3 $name,2,"$name: !!! Change/fix in LUXTRONIK2-Modul: '$oldReading' is now '$newReading'";
+ }
}
- }
- }
- return;
+ }
+ return;
+}
+
+
+sub ########################################
+LUXTRONIK2_Attr(@)
+{
+ my ($cmd,$name,$aName,$aVal) = @_;
+ # $cmd can be "del" or "set"
+ # $name is device name
+ # aName and aVal are Attribute name and value
+ if ($cmd eq "set") {
+ if ($aName eq "1allowSetParameter") {
+ eval { qr/$aVal/ };
+ if ($@) {
+ Log3 $name, 3, "LUXTRONIK2: Invalid allowSetParameter in attr $name $aName $aVal: $@";
+ return "Invalid allowSetParameter $aVal";
+ }
+ }
+ }
+
+ return undef;
}
@@ -241,25 +264,6 @@ LUXTRONIK2_Set($$@)
return "Unknown argument $cmd, choose one of $list";
}
-sub ########################################
-LUXTRONIK2_Attr(@)
-{
- my ($cmd,$name,$aName,$aVal) = @_;
- # $cmd can be "del" or "set"
- # $name is device name
- # aName and aVal are Attribute name and value
- if ($cmd eq "set") {
- if ($aName eq "1allowSetParameter") {
- eval { qr/$aVal/ };
- if ($@) {
- Log3 $name, 3, "LUXTRONIK2: Invalid allowSetParameter in attr $name $aName $aVal: $@";
- return "Invalid allowSetParameter $aVal";
- }
- }
- }
-
- return undef;
-}
sub ########################################
LUXTRONIK2_GetUpdate($)
@@ -296,7 +300,8 @@ LUXTRONIK2_DoUpdate($)
my $readingStartTime = time();
Log3 $name, 5, "$name: Opening connection to host ".$host;
- my $socket = new IO::Socket::INET ( PeerAddr => $host,
+ my $socket = new IO::Socket::INET (
+ PeerAddr => $host,
PeerPort => 8888,
# Type = SOCK_STREAM, # probably needed on some systems
Proto => 'tcp'
@@ -1270,18 +1275,19 @@ LUXTRONIK2_doStatisticBoilerCoolDown ($$$$$$)
LUXTRONIK2
- Luxtronik 2.0 is a heating controller used in Alpha Innotec and Siemens Novelan (WPR NET) heat pumps.
+ Luxtronik 2.0 is a heating controller used in Alpha Innotec and Siemens Novelan (WPR NET) heat pumps.
+
It has a built-in ethernet port, so it can be directly integrated into a local area network (LAN).
The modul is reported to work with firmware: V1.54C, V1.60, V1.69.
-
+
+
Define
- define <name> LUXTRONIK2 <IP-address> [poll-interval]
-
+ define <name> LUXTRONIK2 <IP-address> [poll-interval]
If the pool interval is omitted, it is set to 300 (seconds). Smallest possible value is 30.
Example: define Heizung LUXTRONIK2 192.168.0.12 600
@@ -1313,18 +1319,26 @@ LUXTRONIK2_doStatisticBoilerCoolDown ($$$$$$)
Attributes
- statusHTML
- If set, a HTML-formatted reading named "floorplanHTML" is created. It can be used with the FLOORPLAN module.
- Currently, if the value of this attribute is not NULL, the corresponding reading consists of the current status of the heat pump and the temperature of the water.
- doStatistics < 0 | 1 >
+ statusHTML
+
+ If set, a HTML-formatted reading named "floorplanHTML" is created. It can be used with the FLOORPLAN module.
+
+ Currently, if the value of this attribute is not NULL, the corresponding reading consists of the current status of the heat pump and the temperature of the water.
+ doStatistics < 0 | 1 >
+
Calculates statistic values: statBoilerGradientHeatUp, statBoilerGradientCoolDown, statBoilerGradientCoolDownMin (boiler heat loss)
- allowSetParameter < 0 | 1 >
+ allowSetParameter < 0 | 1 >
+
The parameters of the heat pump controller can only be changed if this attribut is set to 1.
- autoSynchClock <delay>
- Corrects the clock of the heatpump automatically if a certain delay (10 s - 600 s) against the FHEM time is exeeded. Does a firmware check before.
+ autoSynchClock <delay>
+
+ Corrects the clock of the heatpump automatically if a certain delay (10 s - 600 s) against the FHEM time is exeeded. Does a firmware check before.
+
(A 'delayDeviceTimeCalc' <= 2 s can be caused by the internal calculation interval of the heat pump controller.)
- ignoreFirmwareCheck < 0 | 1 >
- A firmware check assures before each set operation that a heatpump controller with untested firmware is not damaged accidently.
+ ignoreFirmwareCheck < 0 | 1 >
+
+ A firmware check assures before each set operation that a heatpump controller with untested firmware is not damaged accidently.
+
If this attribute is set to 1, the firmware check is ignored and new firmware can be tested for compatibility.
- readingFnAttributes
@@ -1361,12 +1375,21 @@ LUXTRONIK2_doStatisticBoilerCoolDown ($$$$$$)
Set
Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen mit ungetester Firmware nicht unabsichtlich beschädigt werden.
- - opModeHotWater <Betriebsmodus> - Betriebsmodus des Heißwasserboilers ( Auto | Party | Off )
-
- hotWaterTemperatureTarget <Temperatur> - Soll-Temperatur des Heißwasserboilers in °C
- - INTERVAL <Abfrageinterval> - Abfrageinterval in Sekunden
- - statusRequest - Aktualisieren der Gerätewerte
- - synchClockHeatPump - Abgleich der Uhr der Steuerung mit der FHEM Zeit.
- !! Diese Änderung geht verloren, sobald die Steuerung ausgeschaltet wird!!
+ opModeHotWater <Betriebsmodus>
+
+ Betriebsmodus des Heißwasserboilers ( Auto | Party | Off )
+ hotWaterTemperatureTarget <Temperatur>
+
+ Soll-Temperatur des Heißwasserboilers in °C
+ INTERVAL <Abfrageinterval>
+
+ Abfrageinterval in Sekunden
+ statusRequest
+
+ Aktualisieren der Gerätewerte
+ synchClockHeatPump
+
+ Abgleich der Uhr der Steuerung mit der FHEM Zeit. Diese Änderung geht verloren, sobald die Steuerung ausgeschaltet wird!!
@@ -1380,17 +1403,21 @@ LUXTRONIK2_doStatisticBoilerCoolDown ($$$$$$)
Attribute
- - statusHTML
+ statusHTML
wenn gesetzt, dann wird ein HTML-formatierter Wert "floorplanHTML" erzeugt, welcher vom Modul FLOORPLAN genutzt werden kann.
Momentan wird nur geprüft, ob der Wert dieses Attributes ungleich NULL ist, der entsprechende Gerätewerte besteht aus dem aktuellen Wärmepumpenstatus und der Heizwassertemperatur.
- - doStatistics < 0 | 1 >
- Berechnet statistische Werte: statBoilerGradientHeatUp, statBoilerGradientCoolDown, statBoilerGradientCoolDownMin (Wärmeverlust des Boilers)
- - allowSetParameter < 0 | 1 >
- Die internen Parameter der Wärmepumpensteuerung können nur geändert werden, wenn dieses Attribut auf 1 gesetzt ist.
- - autoSynchClock <Zeitunterschied>
+ doStatistics < 0 | 1 >
+
+ Berechnet statistische Werte: statBoilerGradientHeatUp, statBoilerGradientCoolDown, statBoilerGradientCoolDownMin (Wärmeverlust des Boilers)
+ allowSetParameter < 0 | 1 >
+
+ Die internen Parameter der Wärmepumpensteuerung können nur geändert werden, wenn dieses Attribut auf 1 gesetzt ist.
+ autoSynchClock <Zeitunterschied>
+
Die Uhr der Wärmepumpe wird automatisch korrigiert, wenn ein gewisser Zeitunterschied (10 s - 600 s) gegenüber der FHEM Zeit erreicht ist. Zuvor wird die Kompatibilität der Firmware überprüft.
(Ein Gerätewert 'delayDeviceTimeCalc' <= 2 s ist auf die internen Berechnungsintervale der Wärmepumpensteuerung zurückzuführen.)
- - ignoreFirmwareCheck < 0 | 1 >
+ ignoreFirmwareCheck < 0 | 1 >
+
Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen mit ungetester Firmware nicht unabsichtlich beschädigt werden. Wenn dieses Attribute auf 1 gesetzt ist, dann wird der Firmware-Test ignoriert und neue Firmware kann getestet werden. Dieses Attribut wird jedoch ignoriert, wenn die Steuerungs-Firmware bereits als nicht kompatibel berichtet wurde.
- readingFnAttributes