From fbd347aae3eb61cc1543800a2f50fd4b9ea3e07e Mon Sep 17 00:00:00 2001 From: Torte Date: Sat, 24 Nov 2018 00:00:42 +0100 Subject: [PATCH] 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 --- FHEM/71_XiaomiSmartHome.pm | 31 ++++++++++++++++++++++++++----- FHEM/71_XiaomiSmartHome_Device.pm | 5 +++-- controls_mish.txt | 4 ++-- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/FHEM/71_XiaomiSmartHome.pm b/FHEM/71_XiaomiSmartHome.pm index 0463251..ca31207 100644 --- a/FHEM/71_XiaomiSmartHome.pm +++ b/FHEM/71_XiaomiSmartHome.pm @@ -51,7 +51,7 @@ sub XiaomiSmartHome_Notify($$); sub XiaomiSmartHome_updateSingleReading($$); 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 = ( "getDevices" => ["get_id_list", '^.+get_id_list_ack' ], @@ -76,7 +76,7 @@ my %sets = ( sub XiaomiSmartHome_Initialize($) { my ($hash) = @_; - $hash->{Clients} = "XiaomiSmartHome_Device"; + $hash->{Clients} = 'XiaomiSmartHome_Device'; $hash->{DefFn} = 'XiaomiSmartHome_Define'; $hash->{UndefFn} = 'XiaomiSmartHome_Undef'; $hash->{NotifyFn} = 'XiaomiSmartHome_Notify'; @@ -84,8 +84,9 @@ sub XiaomiSmartHome_Initialize($) { $hash->{GetFn} = 'XiaomiSmartHome_Get'; $hash->{AttrFn} = 'XiaomiSmartHome_Attr'; $hash->{ReadFn} = 'XiaomiSmartHome_Read'; - $hash->{WriteFn} = "XiaomiSmartHome_Write"; - $hash->{AttrList} = "disable:1,0 " . + $hash->{ReadyFn} = 'XiaomiSmartHome_Ready'; + $hash->{WriteFn} = 'XiaomiSmartHome_Write'; + $hash->{AttrList} = 'disable:1,0 ' . $readingFnAttributes; $hash->{MatchList} = { "1:XiaomiSmartHome_Device" => ".*magnet.*", @@ -108,7 +109,10 @@ sub XiaomiSmartHome_Initialize($) { "18:XiaomiSmartHome_Device" => "^.+weather.v1", "19:XiaomiSmartHome_Device" => "^.+sensor_motion.aq2", "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(); } ##################################### @@ -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($@) { my ($hash , $name, $opt, $args ) = @_; @@ -1090,3 +1110,4 @@ sub XiaomiSmartHome_updateAllReadings($) =cut + diff --git a/FHEM/71_XiaomiSmartHome_Device.pm b/FHEM/71_XiaomiSmartHome_Device.pm index e49c0fb..8db21f8 100644 --- a/FHEM/71_XiaomiSmartHome_Device.pm +++ b/FHEM/71_XiaomiSmartHome_Device.pm @@ -27,7 +27,7 @@ use warnings; -my $version = "1.33"; +my $version = "1.36"; sub XiaomiSmartHome_Device_updateSReading($); @@ -38,7 +38,7 @@ sub XiaomiSmartHome_Device_Initialize($) { 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->{SetFn} = "XiaomiSmartHome_Device_Set"; $hash->{UndefFn} = "XiaomiSmartHome_Device_Undef"; @@ -739,3 +739,4 @@ sub XiaomiSmartHome_round { =end html_DE =cut + diff --git a/controls_mish.txt b/controls_mish.txt index 6a117e8..358c111 100644 --- a/controls_mish.txt +++ b/controls_mish.txt @@ -1,2 +1,2 @@ -UPD 2018-09-09 12:43:14 39606 FHEM/71_XiaomiSmartHome.pm -UPD 2018-09-09 12:43:16 29789 FHEM/71_XiaomiSmartHome_Device.pm +UPD 2018-11-23 23:51:54 40279 FHEM/71_XiaomiSmartHome.pm +UPD 2018-11-23 23:51:53 29839 FHEM/71_XiaomiSmartHome_Device.pm