diff --git a/fhem/FHEM/10_EnOcean.pm b/fhem/FHEM/10_EnOcean.pm
index 79dc124b1..946d8f5c1 100755
--- a/fhem/FHEM/10_EnOcean.pm
+++ b/fhem/FHEM/10_EnOcean.pm
@@ -1,5 +1,6 @@
##############################################
# $Id$
+
package main;
use strict;
@@ -400,7 +401,7 @@ EnOcean_Set($@)
return "no set value specified" if (@a < 2);
my $name = $hash->{NAME};
if (IsDisabled($name)) {
- Log3 $name, 4, "EnOcean set $name commands disabled.";
+ Log3 $name, 4, "EnOcean $name set commands disabled.";
return;
}
my $data;
@@ -3304,13 +3305,14 @@ EnOcean_Parse($$)
if ($db[0] == 0x8F && $manufID eq "00D") {
# Eltako, read meter serial number
my $serialNumber;
- if ($db[0] == 0) {
+ if ($db[1] == 0) {
# first 2 digits of the serial number
- $serialNumber = printf "S-%01x%01x", $db[3] >> 4, $db[3] & 0x0F;
+ $serialNumber = substr(ReadingsVal($name, "serialNumber", "S-------"), 4, 4);
+ $serialNumber = sprintf "S-%01x%01x%4s", $db[3] >> 4, $db[3] & 0x0F, $serialNumber;
} else {
# last 4 digits of the serial number
$serialNumber = substr(ReadingsVal($name, "serialNumber", "S---"), 0, 4);
- $serialNumber = printf "%4c%01x%01x%01x%01x", $serialNumber,
+ $serialNumber = sprintf "%4s%01x%01x%01x%01x", $serialNumber,
$db[2] >> 4, $db[2] & 0x0F, $db[3] >> 4, $db[3] & 0x0F;
}
push @event, "3:serialNumber:$serialNumber";
@@ -4166,6 +4168,26 @@ EnOcean_Undef($$)
additional SenderIDs you can use the attributes subDef,
subDef0 and subDefI.
+
+
+ Internals
+