diff --git a/fhem/FHEM/46_TRX_ELSE.pm b/fhem/FHEM/46_TRX_ELSE.pm index c83c5a255..25ed7323d 100755 --- a/fhem/FHEM/46_TRX_ELSE.pm +++ b/fhem/FHEM/46_TRX_ELSE.pm @@ -37,6 +37,8 @@ my $TRX_ELSE_debug = 0; my $time_old = 0; +my $DOT = q{_}; + sub TRX_ELSE_Initialize($) { @@ -65,9 +67,10 @@ TRX_ELSE_Define($$) my $name = $a[0]; my $code = $a[2]; - $hash->{CODE} = $code; - #$modules{TRX_ELSE}{defptr}{$name} = $hash; - $modules{TRX_ELSE}{defptr}{$code} = $hash; + my $device_name = "TRX_UNKNOWN".$DOT.$code; + + $hash->{TRX_LIGHT_CODE} = $code; + $modules{TRX_ELSE}{defptr}{$device_name} = $hash; AssignIoPort($hash); return undef; @@ -82,9 +85,6 @@ TRX_ELSE_Undef($$) return undef; } - -my $DOT = q{_}; - sub TRX_ELSE_Parse($$) { @@ -125,10 +125,30 @@ TRX_ELSE_Parse($$) if (($msg != 0x00) && ($msg != 0x01)) { Log 0, "TRX_ELSE: error transmit NACK=".sprintf("%02x",$msg); } - } else { - Log 0, "TRX_ELSE: hex=$msg"; + } + #Log 0, "TRX_ELSE: hex=$msg"; + + my $type_hex = sprintf("%02x", $type); + + my $device_name = "TRX".$DOT."UNKNOWN".$DOT.$type_hex; + + my $def = $modules{TRX_ELSE}{defptr}{$device_name}; + if (!$def) { + Log 1, "UNDEFINED $device_name TRX_ELSE $type_hex"; + Log 3, "TRX_ELSE: TRX_ELSE Unknown device $device_name, please define it"; + return "UNDEFINED $device_name TRX_ELSE $type_hex"; } + readingsBeginUpdate($def); + + #my $sensor = "hexline"; + my $current = $msg; + #readingsBulkUpdate($def, $sensor, $current); + + readingsBulkUpdate($def, "state", $current); + + + readingsEndUpdate($def, 1); return ""; } @@ -141,8 +161,25 @@ TRX_ELSE_Parse($$)
define <name> TRX_ELSE <hextype>
<hextype>
+ define TRX_UNKNOWN_9A TRX_ELSE 9A
+