add support
-add support for sensor Singel Rocker -add support for sensor Double Rocker -add support for sensor Wirless Mini Switch -add function for reconnect if disconnected
This commit is contained in:
@@ -51,7 +51,7 @@ sub XiaomiSmartHome_Notify($$);
|
|||||||
sub XiaomiSmartHome_updateSingleReading($$);
|
sub XiaomiSmartHome_updateSingleReading($$);
|
||||||
my $iv="\x17\x99\x6d\x09\x3d\x28\xdd\xb3\xba\x69\x5a\x2e\x6f\x58\x56\x2e";
|
my $iv="\x17\x99\x6d\x09\x3d\x28\xdd\xb3\xba\x69\x5a\x2e\x6f\x58\x56\x2e";
|
||||||
|
|
||||||
my $version = "1.33";
|
my $version = "1.36";
|
||||||
|
|
||||||
my %XiaomiSmartHome_gets = (
|
my %XiaomiSmartHome_gets = (
|
||||||
"getDevices" => ["get_id_list", '^.+get_id_list_ack' ],
|
"getDevices" => ["get_id_list", '^.+get_id_list_ack' ],
|
||||||
@@ -76,7 +76,7 @@ my %sets = (
|
|||||||
sub XiaomiSmartHome_Initialize($) {
|
sub XiaomiSmartHome_Initialize($) {
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
|
|
||||||
$hash->{Clients} = "XiaomiSmartHome_Device";
|
$hash->{Clients} = 'XiaomiSmartHome_Device';
|
||||||
$hash->{DefFn} = 'XiaomiSmartHome_Define';
|
$hash->{DefFn} = 'XiaomiSmartHome_Define';
|
||||||
$hash->{UndefFn} = 'XiaomiSmartHome_Undef';
|
$hash->{UndefFn} = 'XiaomiSmartHome_Undef';
|
||||||
$hash->{NotifyFn} = 'XiaomiSmartHome_Notify';
|
$hash->{NotifyFn} = 'XiaomiSmartHome_Notify';
|
||||||
@@ -84,8 +84,9 @@ sub XiaomiSmartHome_Initialize($) {
|
|||||||
$hash->{GetFn} = 'XiaomiSmartHome_Get';
|
$hash->{GetFn} = 'XiaomiSmartHome_Get';
|
||||||
$hash->{AttrFn} = 'XiaomiSmartHome_Attr';
|
$hash->{AttrFn} = 'XiaomiSmartHome_Attr';
|
||||||
$hash->{ReadFn} = 'XiaomiSmartHome_Read';
|
$hash->{ReadFn} = 'XiaomiSmartHome_Read';
|
||||||
$hash->{WriteFn} = "XiaomiSmartHome_Write";
|
$hash->{ReadyFn} = 'XiaomiSmartHome_Ready';
|
||||||
$hash->{AttrList} = "disable:1,0 " .
|
$hash->{WriteFn} = 'XiaomiSmartHome_Write';
|
||||||
|
$hash->{AttrList} = 'disable:1,0 ' .
|
||||||
$readingFnAttributes;
|
$readingFnAttributes;
|
||||||
|
|
||||||
$hash->{MatchList} = { "1:XiaomiSmartHome_Device" => ".*magnet.*",
|
$hash->{MatchList} = { "1:XiaomiSmartHome_Device" => ".*magnet.*",
|
||||||
@@ -108,7 +109,10 @@ sub XiaomiSmartHome_Initialize($) {
|
|||||||
"18:XiaomiSmartHome_Device" => "^.+weather.v1",
|
"18:XiaomiSmartHome_Device" => "^.+weather.v1",
|
||||||
"19:XiaomiSmartHome_Device" => "^.+sensor_motion.aq2",
|
"19:XiaomiSmartHome_Device" => "^.+sensor_motion.aq2",
|
||||||
"20:XiaomiSmartHome_Device" => "^.+sensor_wleak.aq1",
|
"20:XiaomiSmartHome_Device" => "^.+sensor_wleak.aq1",
|
||||||
"21:XiaomiSmartHome_Device" => "^.+vibration"};
|
"21:XiaomiSmartHome_Device" => "^.+vibration",
|
||||||
|
"22:XiaomiSmartHome_Device" => "^.*b186acn01",
|
||||||
|
"23:XiaomiSmartHome_Device" => "^.*b286acn01",
|
||||||
|
"24:XiaomiSmartHome_Device" => "^.*b1acn01"};
|
||||||
FHEM_colorpickerInit();
|
FHEM_colorpickerInit();
|
||||||
}
|
}
|
||||||
#####################################
|
#####################################
|
||||||
@@ -563,6 +567,22 @@ sub XiaomiSmartHome_EncryptKey($)
|
|||||||
}
|
}
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
|
sub XiaomiSmartHome_Ready($)
|
||||||
|
{
|
||||||
|
my ($hash) = @_;
|
||||||
|
|
||||||
|
# Versuch eines Verbindungsaufbaus, sofern die Verbindung beendet ist.
|
||||||
|
return DevIo_OpenDev($hash, 1, undef ) if ( $hash->{STATE} eq "disconnected" );
|
||||||
|
|
||||||
|
# This is relevant for Windows/USB only
|
||||||
|
if(defined($hash->{USBDev})) {
|
||||||
|
my $po = $hash->{USBDev};
|
||||||
|
my ( $BlockingFlags, $InBytes, $OutBytes, $ErrorFlags ) = $po->status;
|
||||||
|
return ( $InBytes > 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#####################################
|
||||||
|
|
||||||
sub XiaomiSmartHome_Get($@)
|
sub XiaomiSmartHome_Get($@)
|
||||||
{
|
{
|
||||||
my ($hash , $name, $opt, $args ) = @_;
|
my ($hash , $name, $opt, $args ) = @_;
|
||||||
@@ -1090,3 +1110,4 @@ sub XiaomiSmartHome_updateAllReadings($)
|
|||||||
|
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ use warnings;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
my $version = "1.33";
|
my $version = "1.36";
|
||||||
|
|
||||||
sub XiaomiSmartHome_Device_updateSReading($);
|
sub XiaomiSmartHome_Device_updateSReading($);
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ sub XiaomiSmartHome_Device_Initialize($)
|
|||||||
{
|
{
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
|
|
||||||
$hash->{Match} = ".*magnet.*|.*motion.*|sensor_ht|.*switch.*|plug|.*cube.*|86sw1|86sw2|ctrl_neutral1|ctrl_neutral2|rgbw_light|curtain|ctrl_ln1|ctrl_ln2|86plug|natgas|smoke|weather.v1|sensor_wleak.aq1|vibration";
|
$hash->{Match} = ".*magnet.*|.*motion.*|sensor_ht|.*switch.*|plug|.*cube.*|86sw1|86sw2|ctrl_neutral1|ctrl_neutral2|rgbw_light|curtain|ctrl_ln1|ctrl_ln2|86plug|natgas|smoke|weather.v1|sensor_wleak.aq1|vibration|remote.b186acn01|remote.b286acn01|remote.b1acn01";
|
||||||
$hash->{DefFn} = "XiaomiSmartHome_Device_Define";
|
$hash->{DefFn} = "XiaomiSmartHome_Device_Define";
|
||||||
$hash->{SetFn} = "XiaomiSmartHome_Device_Set";
|
$hash->{SetFn} = "XiaomiSmartHome_Device_Set";
|
||||||
$hash->{UndefFn} = "XiaomiSmartHome_Device_Undef";
|
$hash->{UndefFn} = "XiaomiSmartHome_Device_Undef";
|
||||||
@@ -739,3 +739,4 @@ sub XiaomiSmartHome_round {
|
|||||||
=end html_DE
|
=end html_DE
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
UPD 2018-09-09 12:43:14 39606 FHEM/71_XiaomiSmartHome.pm
|
UPD 2018-11-23 23:51:54 40279 FHEM/71_XiaomiSmartHome.pm
|
||||||
UPD 2018-09-09 12:43:16 29789 FHEM/71_XiaomiSmartHome_Device.pm
|
UPD 2018-11-23 23:51:53 29839 FHEM/71_XiaomiSmartHome_Device.pm
|
||||||
|
|||||||
Reference in New Issue
Block a user