mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
45_TRX.pm: added readings for Settings (firmware, frequency, protocols)
git-svn-id: https://svn.fhem.de/fhem/trunk@16653 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c45bac06ab
commit
26bb6eca63
@ -29,6 +29,7 @@
|
||||
#
|
||||
# CHANGELOG
|
||||
#
|
||||
# 23.04.2018 added readings for Settings (firmware, frequency, protocols)
|
||||
# 02.04.2018 support for vair CO2 sensors (forum #67734) -Thanks to vbs
|
||||
# 29.03.2018 Summary for Commandref
|
||||
#
|
||||
@ -50,28 +51,23 @@ sub TRX_Read($@);
|
||||
sub TRX_Ready($);
|
||||
sub TRX_Parse($$$$);
|
||||
|
||||
my %sets = (
|
||||
"reopen" => ""
|
||||
);
|
||||
my %sets = ( "reopen" => "" );
|
||||
|
||||
sub
|
||||
TRX_Initialize($)
|
||||
{
|
||||
sub TRX_Initialize($) {
|
||||
my ($hash) = @_;
|
||||
|
||||
|
||||
require "$attr{global}{modpath}/FHEM/DevIo.pm";
|
||||
|
||||
# Provider
|
||||
$hash->{ReadFn} = "TRX_Read";
|
||||
$hash->{WriteFn} = "TRX_Write";
|
||||
$hash->{Clients} =
|
||||
":TRX_WEATHER:TRX_SECURITY:TRX_LIGHT:TRX_ELSE:";
|
||||
$hash->{Clients} = ":TRX_WEATHER:TRX_SECURITY:TRX_LIGHT:TRX_ELSE:";
|
||||
my %mc = (
|
||||
"1:TRX_WEATHER" => "^..(40|4e|50|51|52|54|55|56|57|58|5a|5b|5c|5d|71).*",
|
||||
"2:TRX_SECURITY" => "^..(20).*",
|
||||
"3:TRX_LIGHT" => "^..(10|11|12|13|14|15|16|17|18|19).*",
|
||||
"4:TRX_ELSE" => "^..(0[0-9a-f]|1[a-f]|2[1-9a-f]|3[0-9a-f]|4[1-9a-d]|4f|53|59|5e|5f|6[0-9a-f]|70|7[2-9a-f]|[8-9a-f][0-9a-f]).*",
|
||||
"4:TRX_ELSE" =>
|
||||
"^..(0[0-9a-f]|1[a-f]|2[1-9a-f]|3[0-9a-f]|4[1-9a-d]|4f|53|59|5e|5f|6[0-9a-f]|70|7[2-9a-f]|[8-9a-f][0-9a-f]).*",
|
||||
);
|
||||
$hash->{MatchList} = \%mc;
|
||||
|
||||
@ -89,13 +85,10 @@ TRX_Initialize($)
|
||||
}
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_Define($$)
|
||||
{
|
||||
sub TRX_Define($$) {
|
||||
my ( $hash, $def ) = @_;
|
||||
my @a = split( "[ \t][ \t]*", $def );
|
||||
|
||||
|
||||
if ( @a != 3 && @a != 4 ) {
|
||||
my $msg = "wrong syntax: define <name> TRX devicename [noinit]";
|
||||
Log3 undef, 2, $msg;
|
||||
@ -106,7 +99,7 @@ TRX_Define($$)
|
||||
|
||||
my $name = $a[0];
|
||||
my $dev = $a[2];
|
||||
my $opt = $a[3] if(@a == 4);;
|
||||
my $opt = $a[3] if ( @a == 4 );
|
||||
|
||||
if ( $dev eq "none" ) {
|
||||
Log3 $name, 1, "TRX: $name device is none, commands will be echoed only";
|
||||
@ -118,8 +111,9 @@ TRX_Define($$)
|
||||
if ( $opt eq "noinit" ) {
|
||||
Log3 $name, 1, "TRX: $name no init is done";
|
||||
$attr{$name}{do_not_init} = 1;
|
||||
} else {
|
||||
return "wrong syntax: define <name> TRX devicename [noinit]"
|
||||
}
|
||||
else {
|
||||
return "wrong syntax: define <name> TRX devicename [noinit]";
|
||||
}
|
||||
}
|
||||
|
||||
@ -130,9 +124,7 @@ TRX_Define($$)
|
||||
|
||||
#####################################
|
||||
# Input is hexstring
|
||||
sub
|
||||
TRX_Write($$)
|
||||
{
|
||||
sub TRX_Write($$) {
|
||||
my ( $hash, $fn, $msg ) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
@ -145,18 +137,15 @@ TRX_Write($$)
|
||||
DevIo_SimpleWrite( $hash, $bstring, 1 );
|
||||
}
|
||||
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_Undef($$)
|
||||
{
|
||||
sub TRX_Undef($$) {
|
||||
my ( $hash, $arg ) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
foreach my $d ( sort keys %defs ) {
|
||||
if(defined($defs{$d}) &&
|
||||
defined($defs{$d}{IODev}) &&
|
||||
$defs{$d}{IODev} == $hash)
|
||||
if ( defined( $defs{$d} )
|
||||
&& defined( $defs{$d}{IODev} )
|
||||
&& $defs{$d}{IODev} == $hash )
|
||||
{
|
||||
my $lev = ( $reread_active ? 4 : 2 );
|
||||
Log3 $name, $lev, "deleting port for $d";
|
||||
@ -169,17 +158,13 @@ TRX_Undef($$)
|
||||
}
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_Shutdown($)
|
||||
{
|
||||
sub TRX_Shutdown($) {
|
||||
my ($hash) = @_;
|
||||
return undef;
|
||||
}
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_Reopen($)
|
||||
{
|
||||
sub TRX_Reopen($) {
|
||||
my ($hash) = @_;
|
||||
DevIo_CloseDev($hash);
|
||||
sleep(1);
|
||||
@ -187,9 +172,7 @@ TRX_Reopen($)
|
||||
}
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_Get($@)
|
||||
{
|
||||
sub TRX_Get($@) {
|
||||
my ( $hash, @a ) = @_;
|
||||
|
||||
my $msg;
|
||||
@ -202,9 +185,7 @@ TRX_Get($@)
|
||||
}
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_Set($@)
|
||||
{
|
||||
sub TRX_Set($@) {
|
||||
my ( $hash, @a ) = @_;
|
||||
|
||||
return "\"set TRX\" needs at least one parameter" if ( @a < 1 );
|
||||
@ -222,16 +203,12 @@ TRX_Set($@)
|
||||
}
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_SetState($$$$)
|
||||
{
|
||||
sub TRX_SetState($$$$) {
|
||||
my ( $hash, $tim, $vt, $val ) = @_;
|
||||
return undef;
|
||||
}
|
||||
|
||||
sub
|
||||
TRX_Clear($)
|
||||
{
|
||||
sub TRX_Clear($) {
|
||||
my $hash = shift;
|
||||
|
||||
# Clear the pipe
|
||||
@ -246,9 +223,7 @@ TRX_Clear($)
|
||||
}
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_DoInit($)
|
||||
{
|
||||
sub TRX_DoInit($) {
|
||||
my $hash = shift;
|
||||
my $name = $hash->{NAME};
|
||||
my $err;
|
||||
@ -256,12 +231,10 @@ TRX_DoInit($)
|
||||
my $buf;
|
||||
my $char = undef;
|
||||
|
||||
|
||||
if ( defined( $attr{$name} ) && defined( $attr{$name}{"do_not_init"} ) ) {
|
||||
Log3 $name, 1, "TRX: defined with noinit. Do not send init string to device.";
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
# Reset
|
||||
my $init = pack( 'H*', "0D00000000000000000000000000" );
|
||||
DevIo_SimpleWrite( $hash, $init, 0 );
|
||||
@ -282,14 +255,24 @@ TRX_DoInit($)
|
||||
if ( !$buf ) {
|
||||
Log3 $name, 1, "TRX: Initialization Error: No character read";
|
||||
return "TRX: Initialization Error $name: no char read";
|
||||
} elsif ($buf !~ m/0d0100....................../ && $buf !~ m/140100..................................../) {
|
||||
}
|
||||
elsif ( $buf !~ m/0d0100....................../ && $buf !~ m/140100..................................../ ) {
|
||||
Log3 $name, 1, "TRX: Initialization Error hexline='$buf', expected 0d0100......................";
|
||||
return "TRX: Initialization Error %name expected 0D010, but buf=$buf received.";
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Log3 $name, 1, "TRX: Init OK";
|
||||
|
||||
# Analyse result and display it:
|
||||
my $fw = undef;
|
||||
if ( $buf =~ m/0d0100(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)/ ) {
|
||||
$fw = 1;
|
||||
}
|
||||
elsif ( $buf =~ m/140100(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)/ ) {
|
||||
$fw = 2;
|
||||
}
|
||||
if ($fw) {
|
||||
|
||||
# Analyse result and display it:
|
||||
my $status = "";
|
||||
|
||||
my $seqnbr = $1;
|
||||
@ -299,6 +282,7 @@ TRX_DoInit($)
|
||||
my $msg3 = ord( pack( 'H*', $5 ) );
|
||||
my $msg4 = ord( pack( 'H*', $6 ) );
|
||||
my $msg5 = ord( pack( 'H*', $7 ) );
|
||||
my $msg6 = ord( pack( 'H*', $8 ) ) if $fw == 2;
|
||||
my $freq = {
|
||||
'50' => '310MHz',
|
||||
'51' => '315MHz',
|
||||
@ -311,96 +295,58 @@ TRX_DoInit($)
|
||||
'59' => '868.35MHz',
|
||||
'5a' => '868.35MHz FSK',
|
||||
'5b' => '868.95MHz'
|
||||
}->{$msg1} || 'unknown Mhz';
|
||||
}->{$msg1}
|
||||
|| 'unknown Mhz';
|
||||
$status .= $freq;
|
||||
$status .= ", " . sprintf "firmware=%d",$msg2;
|
||||
$status .= ", protocols enabled: ";
|
||||
$status .= "undecoded " if ($msg3 & 0x80);
|
||||
$status .= "RFU " if ($msg3 & 0x40);
|
||||
$status .= "ByronSX " if ($msg3 & 0x20);
|
||||
$status .= "RSL " if ($msg3 & 0x10);
|
||||
$status .= "Lighting4 " if ($msg3 & 0x08);
|
||||
$status .= "FineOffset/Viking " if ($msg3 & 0x04);
|
||||
$status .= "Rubicson " if ($msg3 & 0x02);
|
||||
$status .= "AE/Blyss " if ($msg3 & 0x01);
|
||||
$status .= "BlindsT1/T2/T3/T4 " if ($msg4 & 0x80);
|
||||
$status .= "BlindsT0 " if ($msg4 & 0x40);
|
||||
$status .= "ProGuard " if ($msg4 & 0x20);
|
||||
$status .= "FS20 " if ($msg4 & 0x10);
|
||||
$status .= "LaCrosse " if ($msg4 & 0x08);
|
||||
$status .= "Hideki " if ($msg4 & 0x04);
|
||||
$status .= "LightwaveRF " if ($msg4 & 0x02);
|
||||
$status .= "Mertik " if ($msg4 & 0x01);
|
||||
$status .= "Visonic " if ($msg5 & 0x80);
|
||||
$status .= "ATI " if ($msg5 & 0x40);
|
||||
$status .= "OREGON " if ($msg5 & 0x20);
|
||||
$status .= "KOPPLA " if ($msg5 & 0x10);
|
||||
$status .= "HOMEEASY " if ($msg5 & 0x08);
|
||||
$status .= "AC " if ($msg5 & 0x04);
|
||||
$status .= "ARC " if ($msg5 & 0x02);
|
||||
$status .= "X10 " if ($msg5 & 0x01);
|
||||
my $hexline = unpack('H*', $buf);
|
||||
Log3 $name, 4, "TRX: Init status hexline='$hexline'";
|
||||
Log3 $name, 1, "TRX: Init status: '$status'";
|
||||
my $firmware = "";
|
||||
if ($fw==2) {
|
||||
$firmware = $msg2 + 1000;
|
||||
}
|
||||
else {
|
||||
$firmware = $msg2;
|
||||
}
|
||||
# Since 1001
|
||||
if ($buf =~ m/140100(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)/) {
|
||||
my $status = "";
|
||||
|
||||
my $seqnbr = $1;
|
||||
my $cmnd = $2;
|
||||
my $msg1 = $3;
|
||||
my $msg2 = ord(pack('H*', $4));
|
||||
my $msg3 = ord(pack('H*', $5));
|
||||
my $msg4 = ord(pack('H*', $6));
|
||||
my $msg5 = ord(pack('H*', $7));
|
||||
my $msg6 = ord(pack('H*', $8));
|
||||
my $freq = {
|
||||
'50' => '310MHz',
|
||||
'51' => '315MHz',
|
||||
'52' => '433.92MHz receiver only',
|
||||
'53' => '433.92MHz transceiver',
|
||||
'55' => '868.00MHz',
|
||||
'56' => '868.00MHz FSK',
|
||||
'57' => '868.30MHz',
|
||||
'58' => '868.30MHz FSK',
|
||||
'59' => '868.35MHz',
|
||||
'5a' => '868.35MHz FSK',
|
||||
'5b' => '868.95MHz'
|
||||
}->{$msg1} || 'unknown Mhz';
|
||||
$status .= $freq;
|
||||
$status .= ", " . sprintf "firmware=%d",$msg2+1000;
|
||||
$status .= ", " . sprintf "firmware=%d", $firmware;
|
||||
my $protocols = "";
|
||||
$status .= ", protocols enabled: ";
|
||||
$status .= "undecoded " if ($msg3 & 0x80);
|
||||
$status .= "RFU " if ($msg3 & 0x40);
|
||||
$status .= "ByronSX " if ($msg3 & 0x20);
|
||||
$status .= "RSL " if ($msg3 & 0x10);
|
||||
$status .= "Lighting4 " if ($msg3 & 0x08);
|
||||
$status .= "FineOffset/Viking " if ($msg3 & 0x04);
|
||||
$status .= "Rubicson " if ($msg3 & 0x02);
|
||||
$status .= "AE/Blyss " if ($msg3 & 0x01);
|
||||
$status .= "BlindsT1/T2/T3/T4 " if ($msg4 & 0x80);
|
||||
$status .= "BlindsT0 " if ($msg4 & 0x40);
|
||||
$status .= "ProGuard " if ($msg4 & 0x20);
|
||||
$status .= "FS20 " if ($msg4 & 0x10);
|
||||
$status .= "LaCrosse " if ($msg4 & 0x08);
|
||||
$status .= "Hideki " if ($msg4 & 0x04);
|
||||
$status .= "LightwaveRF " if ($msg4 & 0x02);
|
||||
$status .= "Mertik " if ($msg4 & 0x01);
|
||||
$status .= "Visonic " if ($msg5 & 0x80);
|
||||
$status .= "ATI " if ($msg5 & 0x40);
|
||||
$status .= "OREGON " if ($msg5 & 0x20);
|
||||
$status .= "KOPPLA " if ($msg5 & 0x10);
|
||||
$status .= "HOMEEASY " if ($msg5 & 0x08);
|
||||
$status .= "AC " if ($msg5 & 0x04);
|
||||
$status .= "ARC " if ($msg5 & 0x02);
|
||||
$status .= "X10 " if ($msg5 & 0x01);
|
||||
$status .= "HomeComfort " if ($msg6 & 0x02);
|
||||
$status .= "KEELOQ " if ($msg6 & 0x01);
|
||||
$protocols .= "undecoded " if ( $msg3 & 0x80 );
|
||||
$protocols .= "RFU " if ( $msg3 & 0x40 );
|
||||
$protocols .= "ByronSX " if ( $msg3 & 0x20 );
|
||||
$protocols .= "RSL " if ( $msg3 & 0x10 );
|
||||
$protocols .= "Lighting4 " if ( $msg3 & 0x08 );
|
||||
$protocols .= "FineOffset/Viking " if ( $msg3 & 0x04 );
|
||||
$protocols .= "Rubicson " if ( $msg3 & 0x02 );
|
||||
$protocols .= "AE/Blyss " if ( $msg3 & 0x01 );
|
||||
$protocols .= "BlindsT1/T2/T3/T4 " if ( $msg4 & 0x80 );
|
||||
$protocols .= "BlindsT0 " if ( $msg4 & 0x40 );
|
||||
$protocols .= "ProGuard " if ( $msg4 & 0x20 );
|
||||
$protocols .= "FS20 " if ( $msg4 & 0x10 );
|
||||
$protocols .= "LaCrosse " if ( $msg4 & 0x08 );
|
||||
$protocols .= "Hideki " if ( $msg4 & 0x04 );
|
||||
$protocols .= "LightwaveRF " if ( $msg4 & 0x02 );
|
||||
$protocols .= "Mertik " if ( $msg4 & 0x01 );
|
||||
$protocols .= "Visonic " if ( $msg5 & 0x80 );
|
||||
$protocols .= "ATI " if ( $msg5 & 0x40 );
|
||||
$protocols .= "OREGON " if ( $msg5 & 0x20 );
|
||||
$protocols .= "KOPPLA " if ( $msg5 & 0x10 );
|
||||
$protocols .= "HOMEEASY " if ( $msg5 & 0x08 );
|
||||
$protocols .= "AC " if ( $msg5 & 0x04 );
|
||||
$protocols .= "ARC " if ( $msg5 & 0x02 );
|
||||
$protocols .= "X10 " if ( $msg5 & 0x01 );
|
||||
$protocols .= "HomeComfort " if ( $msg6 & 0x02 and $fw == 2 );
|
||||
$protocols .= "KEELOQ " if ( $msg6 & 0x01 and $fw == 2 );
|
||||
$status .= $protocols;
|
||||
my $hexline = unpack( 'H*', $buf );
|
||||
Log3 $name, 4, "TRX: Init status hexline='$hexline'";
|
||||
Log3 $name, 1, "TRX: Init status: '$status'";
|
||||
readingsBeginUpdate($hash);
|
||||
readingsBulkUpdate( $hash, "frequency", $freq );
|
||||
readingsBulkUpdate( $hash, "firmware", $firmware );
|
||||
readingsBulkUpdate( $hash, "protocols", $protocols );
|
||||
readingsEndUpdate( $hash, 1 );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -415,12 +361,11 @@ TRX_DoInit($)
|
||||
|
||||
#####################################
|
||||
# This is a direct read for commands like get
|
||||
sub
|
||||
TRX_ReadAnswer($$)
|
||||
{
|
||||
sub TRX_ReadAnswer($$) {
|
||||
my ( $hash, $arg ) = @_;
|
||||
return ( "No FD (dummy device?)", undef )
|
||||
if ( !$hash || ( $^O !~ /Win/ && !defined( $hash->{FD} ) ) );
|
||||
|
||||
# my $to = ($hash->{RA_Timeout} ? $hash->{RA_Timeout} : 3);
|
||||
my $to = ( $hash->{RA_Timeout} ? $hash->{RA_Timeout} : 9 );
|
||||
Log3 $hash, 4, "TRX_ReadAnswer arg:$arg";
|
||||
@ -435,7 +380,8 @@ TRX_ReadAnswer($$)
|
||||
return ( "Timeout reading answer for get $arg", undef )
|
||||
if ( length($buf) == 0 );
|
||||
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
if ( !$hash->{FD} ) {
|
||||
Log3 $hash, 1, "TRX_ReadAnswer: device lost";
|
||||
return ( "Device lost when reading answer for get $arg", undef );
|
||||
@ -474,9 +420,7 @@ TRX_ReadAnswer($$)
|
||||
|
||||
#####################################
|
||||
# called from the global loop, when the select for hash->{FD} reports data
|
||||
sub
|
||||
TRX_Read($@)
|
||||
{
|
||||
sub TRX_Read($@) {
|
||||
my ( $hash, $local ) = @_;
|
||||
|
||||
my $mybuf = ( defined($local) ? $local : DevIo_SimpleRead($hash) );
|
||||
@ -494,12 +438,15 @@ TRX_Read($@)
|
||||
my $num_bytes = ord( substr( $TRX_data, 0, 1 ) );
|
||||
|
||||
while ( length($TRX_data) > $num_bytes ) {
|
||||
|
||||
# the buffer contains at least the number of bytes we need
|
||||
my $rmsg;
|
||||
$rmsg = substr( $TRX_data, 0, $num_bytes + 1 );
|
||||
|
||||
#my $hexline = unpack('H*', $rmsg);
|
||||
Log3 $name, 5, "TRX_Read rmsg '$hexline'";
|
||||
$TRX_data = substr($TRX_data, $num_bytes+1);;
|
||||
$TRX_data = substr( $TRX_data, $num_bytes + 1 );
|
||||
|
||||
#$hexline = unpack('H*', $TRX_data);
|
||||
Log3 $name, 5, "TRX_Read TRX_data '$hexline'";
|
||||
#
|
||||
@ -511,9 +458,7 @@ TRX_Read($@)
|
||||
$hash->{PARTIAL} = $TRX_data;
|
||||
}
|
||||
|
||||
sub
|
||||
TRX_Parse($$$$)
|
||||
{
|
||||
sub TRX_Parse($$$$) {
|
||||
my ( $hash, $iohash, $name, $rmsg ) = @_;
|
||||
|
||||
#Log3 $hash, 5, "TRX_Parse() '$rmsg'";
|
||||
@ -524,6 +469,7 @@ TRX_Parse($$$$)
|
||||
}
|
||||
|
||||
my %addvals;
|
||||
|
||||
# Parse only if message is different within 2 seconds
|
||||
# (some Oregon sensors always sends the message twice, X10 security sensors even sends the message five times)
|
||||
if ( ( "$last_rmsg" ne "$rmsg" ) || ( time() - $last_time ) > 1 ) {
|
||||
@ -534,7 +480,8 @@ TRX_Parse($$$$)
|
||||
$hash->{"${name}_TIME"} = TimeNow();
|
||||
$hash->{RAWMSG} = $rmsg;
|
||||
readingsSingleUpdate( $hash, "state", $hash->{READINGS}{state}{VAL}, 0 );
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Log3 $hash, 5, "TRX_Parse() '$rmsg' dup";
|
||||
}
|
||||
|
||||
@ -543,11 +490,8 @@ TRX_Parse($$$$)
|
||||
|
||||
}
|
||||
|
||||
|
||||
#####################################
|
||||
sub
|
||||
TRX_Ready($)
|
||||
{
|
||||
sub TRX_Ready($) {
|
||||
my ($hash) = @_;
|
||||
|
||||
return DevIo_OpenDev( $hash, 1, "TRX_DoInit" )
|
||||
@ -626,9 +570,19 @@ KlikAanKlikUit, NEXA, CHACON, HomeEasy UK.</li>
|
||||
</ul>
|
||||
<br>
|
||||
</table>
|
||||
<a name="TRXReadings"></a>
|
||||
<b>Readings</b>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>firmware: Firmware of the RFXTRX Device</li>
|
||||
<li>frequency: Frequency and type of the RFXTRX Device</li>
|
||||
<li>protocols: enabled protocols of the RFXTRX Device</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<a name="TRXattr"></a>
|
||||
<a name="TRXAttributes"></a>
|
||||
<b>Attributes</b>
|
||||
<ul>
|
||||
<ul>
|
||||
<li><a href="#attrdummy">dummy</a></li><br>
|
||||
<li>longids<br>
|
||||
@ -646,7 +600,7 @@ attr RFXTRXUSB longids BTHR918N
|
||||
# Use longids for TX3_T and TX3_H devices.
|
||||
# Will generate devices names like TX3_T_07, TX3_T_01 ,TX3_H_07.
|
||||
attr RFXTRXUSB longids TX3_T,TX3_H</PRE>
|
||||
</li><br>
|
||||
</li>
|
||||
<li>rssi<br>
|
||||
1: enable RSSI logging, 0: disable RSSI logging<br>
|
||||
Default is no RSSI logging.
|
||||
@ -655,10 +609,10 @@ Default is no RSSI logging.
|
||||
# Do log rssi values (this is default):
|
||||
attr RFXCOMUSB rssi 0
|
||||
# Enable rssi logging for devices:
|
||||
attr RFXCOMUSB rssi 1
|
||||
</li><br>
|
||||
attr RFXCOMUSB rssi 1</PRE>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
=end html
|
||||
|
Loading…
x
Reference in New Issue
Block a user