mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
Updated MAX-Setup and Init, new get "cmds", check for cmds before mode switch
git-svn-id: https://svn.fhem.de/fhem/trunk@1927 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
87740f3f75
commit
5a99e983ce
@ -25,6 +25,7 @@ my %gets = ( # Name, Data to send to the CUL, Regexp for the answer
|
||||
"raw" => ["", '.*'],
|
||||
"uptime" => ["t", '^[0-9A-F]{8}[\r\n]*$' ],
|
||||
"fhtbuf" => ["T03", '^[0-9A-F]+[\r\n]*$' ],
|
||||
"cmds" => ["?", '.*Use one of[ 0-9A-Za-z]+[\r\n]*$' ],
|
||||
);
|
||||
|
||||
my %sets = (
|
||||
@ -142,6 +143,7 @@ CUL_Define($$)
|
||||
}
|
||||
$hash->{FHTID} = uc($a[3]);
|
||||
$hash->{initString} = "X21";
|
||||
$hash->{CMDS} = "";
|
||||
$hash->{Clients} = $clientsSlowRF;
|
||||
$hash->{MatchList} = \%matchListSlowRF;
|
||||
|
||||
@ -460,6 +462,9 @@ READEND:
|
||||
DevIo_Disconnected($hash);
|
||||
$msg = "No answer";
|
||||
|
||||
} elsif($a[1] eq "cmds") { # nice it up
|
||||
$msg =~ s/.*Use one of//g;
|
||||
|
||||
} elsif($a[1] eq "uptime") { # decode it
|
||||
$msg =~ s/[\r\n]//g;
|
||||
$msg = hex($msg)/125;
|
||||
@ -525,6 +530,14 @@ CUL_DoInit($)
|
||||
CUL_SimpleWrite($hash, $msg);
|
||||
}
|
||||
|
||||
# Cmd-String feststellen
|
||||
|
||||
my $cmds = CUL_Get($hash, $name, "cmds", 0);
|
||||
$cmds =~ s/$name cmds =>//g;
|
||||
$cmds =~ s/ //g;
|
||||
$hash->{CMDS} = $cmds;
|
||||
Log 3, "$name: Possible commands: " . $hash->{CMDS};
|
||||
|
||||
CUL_SimpleWrite($hash, $hash->{initString});
|
||||
|
||||
# FHTID
|
||||
@ -960,27 +973,41 @@ CUL_Attr(@)
|
||||
my $hash = $defs{$name};
|
||||
|
||||
$a[3] = "SlowRF" if(!$a[3] || ($a[3] ne "HomeMatic" && $a[3] ne "MAX"));
|
||||
my $msg = $hash->{NAME} . ": Mode $a[3] not supported";
|
||||
|
||||
if($a[3] eq "HomeMatic") {
|
||||
return if($hash->{initString} =~ m/Ar/);
|
||||
$hash->{Clients} = $clientsHomeMatic;
|
||||
$hash->{MatchList} = \%matchListHomeMatic;
|
||||
$hash->{initString} = "X21\nAr"; # X21 is needed for RSSI reporting
|
||||
CUL_SimpleWrite($hash, $hash->{initString});
|
||||
if(($hash->{CMDS} =~ m/A/) || IsDummy($hash->{NAME})) {
|
||||
$hash->{Clients} = $clientsHomeMatic;
|
||||
$hash->{MatchList} = \%matchListHomeMatic;
|
||||
CUL_SimpleWrite($hash, "Zx") if ($hash->{CMDS} =~ m/Z/); # reset Moritz
|
||||
$hash->{initString} = "X21\nAr"; # X21 is needed for RSSI reporting
|
||||
CUL_SimpleWrite($hash, $hash->{initString});
|
||||
} else {
|
||||
Log 2, $msg;
|
||||
return $msg;
|
||||
}
|
||||
|
||||
} elsif($a[3] eq "MAX") {
|
||||
return if($hash->{initString} =~ m/Zr/);
|
||||
$hash->{Clients} = $clientsMAX;
|
||||
$hash->{MatchList} = \%matchListMAX;
|
||||
$hash->{initString} = "X21\nZr"; # X21 is needed for RSSI reporting
|
||||
CUL_SimpleWrite($hash, $hash->{initString});
|
||||
if(($hash->{CMDS} =~ m/Z/) || IsDummy($hash->{NAME})) {
|
||||
$hash->{Clients} = $clientsMAX;
|
||||
$hash->{MatchList} = \%matchListMAX;
|
||||
CUL_SimpleWrite($hash, "Ax") if ($hash->{CMDS} =~ m/A/); # reset AskSin
|
||||
$hash->{initString} = "X21\nZr"; # X21 is needed for RSSI reporting
|
||||
CUL_SimpleWrite($hash, $hash->{initString});
|
||||
} else {
|
||||
Log 2, $msg;
|
||||
return $msg;
|
||||
}
|
||||
|
||||
} else {
|
||||
return if($hash->{initString} eq "X21");
|
||||
$hash->{Clients} = $clientsSlowRF;
|
||||
$hash->{MatchList} = \%matchListSlowRF;
|
||||
$hash->{initString} = "X21";
|
||||
CUL_SimpleWrite($hash, "Ax"); # reset AskSin
|
||||
CUL_SimpleWrite($hash, "Ax") if ($hash->{CMDS} =~ m/A/); # reset AskSin
|
||||
CUL_SimpleWrite($hash, "Zx") if ($hash->{CMDS} =~ m/Z/); # reset Moritz
|
||||
CUL_SimpleWrite($hash, $hash->{initString});
|
||||
|
||||
}
|
||||
|
@ -2820,6 +2820,13 @@ A line ending with \ will be concatenated with the next one, so long lines
|
||||
Read some CUL radio-chip (cc1101) registers (frequency, bandwidth, etc),
|
||||
and display them in human readable form.
|
||||
</li><br>
|
||||
|
||||
<li>cmds<br>
|
||||
Depending on the firmware installed, CULs have a different set of
|
||||
possible commands. Please refer to the README of the firmware of your
|
||||
CUL to interpret the response of this command. See also the raw-
|
||||
command.
|
||||
</li><br>
|
||||
</ul>
|
||||
|
||||
<a name="CULattr"></a>
|
||||
|
Loading…
Reference in New Issue
Block a user