diff --git a/FHEM/71_XiaomiSmartHome.pm b/FHEM/71_XiaomiSmartHome.pm
index b8d2b13..19e54a5 100644
--- a/FHEM/71_XiaomiSmartHome.pm
+++ b/FHEM/71_XiaomiSmartHome.pm
@@ -45,13 +45,10 @@ return "\nERROR: Please install Net::Ping" if($@);
use Color;
use SetExtensions;
-
-
-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.30";
+my $version = "1.40";
my %XiaomiSmartHome_gets = (
"getDevices" => ["get_id_list", '^.+get_id_list_ack' ],
@@ -76,7 +73,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 +81,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.*",
@@ -107,7 +105,11 @@ sub XiaomiSmartHome_Initialize($) {
"17:XiaomiSmartHome_Device" => "^.+smoke",
"18:XiaomiSmartHome_Device" => "^.+weather.v1",
"19:XiaomiSmartHome_Device" => "^.+sensor_motion.aq2",
- "20:XiaomiSmartHome_Device" => "^.+sensor_wleak.aq1"};
+ "20:XiaomiSmartHome_Device" => "^.+sensor_wleak.aq1",
+ "21:XiaomiSmartHome_Device" => "^.+vibration",
+ "22:XiaomiSmartHome_Device" => "^.*b186acn01",
+ "23:XiaomiSmartHome_Device" => "^.*b286acn01",
+ "24:XiaomiSmartHome_Device" => "^.*b1acn01"};
FHEM_colorpickerInit();
}
#####################################
@@ -130,7 +132,7 @@ sub XiaomiSmartHome_Read($) {
InternalTimer(gettimeofday() + 2, "XiaomiSmartHome_connect", $hash, 0);
return;
}
- my $json = $hash->{helper}{JSON}->incr_parse($buf);
+ my $json = $hash->{helper}{JSON}->incr_parse($buf);
my $decoded = eval{decode_json($buf)};
if ($@) {
Log3 $name, 1, "$name: Read> Error while request: $@";
@@ -145,6 +147,7 @@ sub XiaomiSmartHome_Read($) {
Log3 $name, 5, "$name: Read> [PLAIN] " . $buf;
my $rsid = $decoded->{'sid'};
if ($decoded->{'cmd'} eq 'read_ack' || $decoded->{'cmd'} eq 'report' && $decoded->{'model'} ne 'gateway'|| $decoded->{'cmd'} eq 'heartbeat' && $decoded->{'model'} ne 'gateway' || $decoded->{'cmd'} eq 'write_ack' && $decoded->{'model'} ne 'gateway') {
+ # devices does not exist yet
if (!$modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME}){
Log3 $name, 5, "$name: Read> XiaomiSmartHome_Device unknown trying autocreate" ;
my $def=$modules{XiaomiSmartHome}{defptr};
@@ -155,35 +158,55 @@ sub XiaomiSmartHome_Read($) {
Log3 $value->{NAME}, 5, "$value->{NAME}: $rsid is sensor from $value->{NAME}";
Dispatch($value, $buf, undef);
return;
- }
+ }
}
}
- if ($modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} eq $hash->{NAME}) {
- Log3 $name, 5, "$name: Read> XiaomiSmartHome_Device known! " . "SID: " . $rsid . " " . $modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} . " " . $hash->{NAME};
- }
- elsif ($modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} ne $hash->{NAME}) {
- Log3 $name, 5, "$name: Read> Wrong Modul HASH Trying to find the right one " . $modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} . " <> " . $hash->{NAME} ;
- $hash = $modules{XiaomiSmartHome_Device}{defptr}{$rsid}->{IODev};
- Log3 $name, 5, "$name: Read> Using this GW " . $hash->{NAME};
- }
- Log3 $name, 5, "$name: Read> Dispatching " . $buf . " " . $hash->{NAME};
- Dispatch($hash, $buf, undef);
- }
- elsif (!$modules{XiaomiSmartHome}{defptr}{$rsid}){
- Log3 $name, 1, "$name: Read> GW not defined " . $buf;
+ # devices available with proper and HEARTBEAT gw
+ elsif ($decoded->{'cmd'} eq 'heartbeat' && $modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} eq $hash->{NAME}) {
+ Log3 $name, 5, "$name: Read> Dispatching! " . "SID: " . $rsid . " " . $modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} . " " . $hash->{NAME};
+ Dispatch($hash, $buf, undef);
return;
+ }
+ elsif ($decoded->{'cmd'} eq 'report' && $modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} eq $hash->{NAME}) {
+ Log3 $name, 5, "$name: Read> Dispatching! " . "SID: " . $rsid . " " . $modules{XiaomiSmartHome_Device}{defptr}{$rsid}{IODev}->{NAME} . " " . $hash->{NAME};
+ Dispatch($hash, $buf, undef);
+ return;
+ }
+ # Senosoren check change to right GW
+ elsif ($decoded->{'cmd'} eq 'read_ack') {
+ $hash = $modules{XiaomiSmartHome_Device}{defptr}{$rsid}->{IODev};
+ Log3 $name, 4, "$name: Read> Dispatching using this GW " . $hash->{NAME} ;
+ Dispatch($hash, $buf, undef);
+ return;
+ }
+
+ }
+ # gateway sensor list
+ elsif ($decoded->{'cmd'} eq 'get_id_list_ack'){
+ $self = $modules{XiaomiSmartHome}{defptr}{$rsid};
+ Log3 $name, 5, "$name: Read> Reading Sensorlist with $self->{NAME}" ;
+ XiaomiSmartHome_Reading ($self, $buf);
+ return;
}
+ # gateway not definded
+ elsif (!$modules{XiaomiSmartHome}{defptr}{$rsid}){
+ Log3 $name, 1, "$name: Read> GW not defined " . $buf;
+ return;
+ }
+ # gateway defined but not the right modul instance - change
elsif ( $modules{XiaomiSmartHome}{defptr}{$rsid}->{SID} ne $hash->{SID} ){
$self = $modules{XiaomiSmartHome}{defptr}{$rsid};
- Log3 $name, 5, "$name: Read> Change HASH Ref to $self->{NAME}";
- XiaomiSmartHome_Reading ($self, $buf);
+ Log3 $name, 5, "$name: Read> Wrong Modul HASH skipping $self->{NAME}";
+ #XiaomiSmartHome_Reading ($self, $buf); no reading anymore!
+ return;
}
- else
- {
+ #gateway defined and the right modul instance - nothing to change
+ elsif ( $modules{XiaomiSmartHome}{defptr}{$rsid}->{SID} eq $hash->{SID} ){
Log3 $name, 5, "$name: Read> HASH correctly";
XiaomiSmartHome_Reading ($hash, $buf);
- }
- }
+ return;
+ }
+ }
}
#####################################
sub XiaomiSmartHome_Reading ($@) {
@@ -547,6 +570,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 ) = @_;
@@ -574,7 +613,18 @@ sub XiaomiSmartHome_Notify($$)
{
my ($hash, $dev_hash) = @_;
my $ownName = $hash->{NAME}; # own name / hash
- Log3 $ownName, 5, "$ownName: Notify> NotifyStart";
+ #my $evName = $dev_hash->{NAME}; # triggered device
+ #my $rsid = $dev_hash->{SID};
+ Log3 $ownName, 5, "$ownName: Notify> NotifyStart";# . $rsid . " " . $evName;
+
+ # gateway defined but not the right modul instance
+ #if ( $modules{XiaomiSmartHome}{defptr}{$rsid}->{SID} ne $hash->{SID} ){
+ # Log3 $ownName, 5, "$ownName: Notify> Wrong Event-Modul HASH skipping " . $evName;
+ # #XiaomiSmartHome_Reading ($self, $buf);
+ # return;
+ #}
+
+
return "" if(IsDisabled($ownName)); # Return without any further action if the module is disabled
$attr{$hash->{NAME}}{webCmd} = "pct:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:on:off" if ( ! $attr{$hash->{NAME}}{webCmd} || $attr{$hash->{NAME}}{webCmd} eq "rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:on:off" );
readingsSingleUpdate($hash, "pct", 100, 1) if ( ! $hash->{READINGS}{pct}{VAL});
@@ -921,17 +971,17 @@ sub XiaomiSmartHome_updateAllReadings($)
smoke: smoke alarm detector
- 0: disarm
- - 1: arlarm
- - 8: battery arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 8: battery alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
gas: gas alarm detector
- 0: disarm
- - 1: arlarm
- - 2: analog arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 2: analog alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
@@ -979,9 +1029,9 @@ sub XiaomiSmartHome_updateAllReadings($)
XiaomiSmartHome Steuern des XiaomiSmartHome Gateway und deren verbundener Sensoren.
- Vorraussetzungen
+ Voraussetzungen
- - Diese Pakete müssen installiert sein: apt-get install libio-socket-multicast-perl libjson-perl libcrypt-cbc-perl
+ - Diese Pakete müssen installiert sein: apt-get install libio-socket-multicast-perl libjson-perl libcrypt-cbc-perl
- Und mit CPAN: cpan Crypt::Cipher::AES
@@ -993,11 +1043,11 @@ sub XiaomiSmartHome_updateAllReadings($)
- Entwicklermodus am Gatway setzen!
+ Entwicklermodus am Gateway setzen!
- Ohne Entwicklermodus ist keine Komunikation mit dem Gateway möglich.
-
Zum setzen des Entwicklermoduses braucht man ein android oder ios Gerät mit installierter MI APP.
-
Um das versteckte Menü zu öffnen muss man mehrmals auf die Versionsnummer der MI APP klicken.
+
Ohne Entwicklermodus ist keine Kommunikation mit dem Gateway möglich.
+
Zum setzen des Entwicklermodusses braucht man ein android oder ios Gerät mit installierter MI APP.
+
Um das versteckte Menü zu öffnen muss man mehrmals auf die Versionsnummer der MI APP klicken.
Hier finden Sie eine Anleitung mit Bildern.
Android -> https://louiszl.gitbooks.io/lumi-gateway-local-api/content/device_discover.html
IOS -> https://github.com/fooxy/homeassistant-aqara/wiki/Enable-dev-mode
@@ -1006,33 +1056,33 @@ sub XiaomiSmartHome_updateAllReadings($)
Unterstütze Sensoren
- - magnet: Magnetischer Fenster/Tür Sensor
+ - magnet: Magnetischer Fenster/Tür Sensor
- motion: Bewegungsmelder
- sensor_ht: Temperatur und Luftdruck
- switch: Funkschalter
- plug & 86plug: Schaltbare Funksteckdose
- - cube: Würfel Sensor
+ - cube: Würfel Sensor
- 86sw1: Einfacher Wandfunkschalter
- 86sw2: Wandfunkschalter doppelt
- ctrl_neutral1: Einfacher Wandschalter schaltbar
- ctrl_neutral2: Doppelter Wandschalter schaltbar
- rgbw_light: RBGW Lampe (nur Anzeige)
- - curtain: Vorhangmotor (ohne das das device den curtain_level gemeldet hat ist ein steuern nicht möglich)
+ - curtain: Vorhangmotor (ohne dass das Device den curtain_level gemeldet hat ist ein Steuern nicht möglich)
- water: Wasser Sensor
- smoke: Rauchmelder
- 0: disarm
- - 1: arlarm
- - 8: battery arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 8: battery alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
- gas: Gasmelder
- 0: disarm
- - 1: arlarm
- - 2: analog arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 2: analog alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
@@ -1041,29 +1091,29 @@ sub XiaomiSmartHome_updateAllReadings($)
- Das XiaomiSmartHome Gateway sendet alle 10 seconds einen heartbeat
- Jedes XiaomiSmartHome Devices sendet alle 60 Minuten einen heartbeat
- - Das Reading heartbeat wird mit der SID des jeweiligen Gerätes beim empfang eines Heartbeat aktualisiert
+ - Das Reading heartbeat wird mit der SID des jeweiligen Gerätes beim Empfang eines Heartbeat aktualisiert
Set: Gateway
- - password: Ohne Passwort ist ein Schalten des GATEWAY nicht möglich. Das Passwort findet man in der MI APP
+ - password: Ohne Passwort ist ein Schalten des GATEWAY nicht möglich. Das Passwort findet man in der MI APP
- RGB(Colorpicker): Einstellen der LED Farbe des Gateways
- PCT(Slider): Einstellen der Helligkeit des Gateways
- - intervals: Einschalten des gateway für einen Zeitraum zb. set intervals 07:00-08:00
- - ringtone: Wiedergeben eines Arlarmtones 0-8,13,21-29,10001-.. Benutzerdefinierte| 10000 = aus
- - volume: Einstellen der Lautstärke des Arlarmtones 1-100, (100 ist sehr laut!)
- - ringvol: Wiedergeben eines Arlamtones und gleichzeitiges verändern der Lautstärke set [GWNAME] ringvol 21 10
- - learn: Anlernen neuer Sensoren, nach dem Set an dem neuem Sensor den Button drücken
+ - intervals: Einschalten des Gateways für einen Zeitraum zb. set intervals 07:00-08:00
+ - ringtone: Wiedergeben eines Alarmtones 0-8,13,21-29,10001-.. Benutzerdefinierte| 10000 = aus
+ - volume: Einstellen der Lautstärke des Alarmtones 1-100, (100 ist sehr laut!)
+ - ringvol: Wiedergeben eines Arlamtones und gleichzeitiges verändern der Lautstärke set [GWNAME] ringvol 21 10
+ - learn: Anlernen neuer Sensoren, nach dem Set an dem neuen Sensor den Button drücken
Set: Devices
- motionOffTimer: (nur Bewegungsmelder)
-
Durch setzen des Parameters ist es möglich das das Reading des Bewegungsmelder nach 1, 5 oder 10 Sekunden
+
Durch setzen des Parameters ist es möglich, dass das Reading des Bewegungsmelder nach 1, 5 oder 10 Sekunden
automatisch wieder auf off gestellt wird.
-
Hintergrund: Der Bewegungsmelder sendet kein selber kein off.
-
Der Bewegungsmelder sendet no_motion nach 120, 180, 300, 600, 1200 Sekunden wenn keine Bewegung festgestellt wurde.
- - Power: (nur Funksteckdose) on off Funktsteckdose ein oder ausschalten
+
Hintergrund: Der Bewegungsmelder sendet selber kein off.
+
Der Bewegungsmelder sendet no_motion nach 120, 180, 300, 600, 1200 Sekunden, wenn keine Bewegung festgestellt wurde.
+ - Power: (nur Funksteckdose) on off Funksteckdose ein oder ausschalten
- ctrl: (nur Funkschalter) on off Funkschalter
- channel_0: (nur Doppelter Wandschalter schaltbar) ein oder ausschalten
- channel_1: (nur Doppelter Wandschalter schaltbar) ein oder ausschalten
@@ -1074,3 +1124,4 @@ sub XiaomiSmartHome_updateAllReadings($)
=cut
+
diff --git a/FHEM/71_XiaomiSmartHome_Device.pm b/FHEM/71_XiaomiSmartHome_Device.pm
index 2035e76..6a7ab0c 100644
--- a/FHEM/71_XiaomiSmartHome_Device.pm
+++ b/FHEM/71_XiaomiSmartHome_Device.pm
@@ -27,7 +27,7 @@ use warnings;
-my $version = "1.30";
+my $version = "1.40";
sub XiaomiSmartHome_Device_updateSReading($);
@@ -38,11 +38,12 @@ 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";
+ $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";
$hash->{ParseFn} = "XiaomiSmartHome_Device_Parse";
+ $hash->{FingerprintFn} = "XiaomiSmartHome_Device_Fingerprint";
$hash->{AttrList} = "follow-on-for-timer:1,0 follow-on-timer ".
"do_not_notify:1,0 ignore:1,0 dummy:1,0 showtime:1,0 valueFn:textField-long ".
@@ -359,14 +360,23 @@ sub XiaomiSmartHome_Device_Read($$$){
#curtain start
if (defined $data->{curtain_level}){
Log3 $name, 3, "$name: DEV_Read>" . " Name: " . $hash->{NAME} . " SID: " . $sid . " Type: " . $hash->{MODEL} . " Curtain: " . $data->{curtain_level};
- readingsBulkUpdate($hash, "arlarm", "$data->{curtain_level}", 1 );
+ readingsBulkUpdate($hash, "alarm", "$data->{curtain_level}", 1 );
}
#curtain end
+ #vibration Start
+ if (defined $data->{'coordination'}){
+ Log3 $name, 3, "$name: DEV_Read>" . " Name: " . $hash->{NAME} . " SID: " . $sid . " Type: " . $hash->{MODEL} . " Coordination: " . $data->{coordination};
+ readingsBulkUpdate($hash, "coordination", "$data->{coordination}", 1 );
+ }
+ if (defined $data->{'final_tilt_angle'}){
+ Log3 $name, 3, "$name: DEV_Read>" . " Name: " . $hash->{NAME} . " SID: " . $sid . " Type: " . $hash->{MODEL} . " Final tilt angle: " . $data->{final_tilt_angle};
+ readingsBulkUpdate($hash, "final_tilt_angle", "$data->{final_tilt_angle}", 1 );
+ }
+ #vibration end
if ($decoded->{'cmd'} eq 'heartbeat'){
readingsBulkUpdate($hash, 'heartbeat', $decoded->{'sid'} , 1 );
}
-
readingsEndUpdate( $hash, 1 );
XiaomiSmartHome_Device_update($hash);
return $hash->{NAME};
@@ -477,6 +487,14 @@ sub XiaomiSmartHome_Device_Define($$) {
}
return undef;
}
+#####################################
+sub XiaomiSmartHome_Device_Fingerprint($$){
+ my ($io_name, $msg) = @_;
+ Log3 $io_name, 4, "$io_name: Fingerprint> for $msg";
+ return ($io_name, $msg );
+
+}
+
#####################################
sub XiaomiSmartHome_Device_updateSReading($) {
@@ -578,17 +596,17 @@ sub XiaomiSmartHome_round {
- smoke: smoke alarm detector
- 0: disarm
- - 1: arlarm
- - 8: battery arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 8: battery alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
- gas: gas alarm detector
- 0: disarm
- - 1: arlarm
- - 2: analog arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 2: analog alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
@@ -636,9 +654,9 @@ sub XiaomiSmartHome_round {
XiaomiSmartHome Steuern des XiaomiSmartHome Gateway und deren verbundener Sensoren.
- Vorraussetzungen
+ Voraussetzungen
- - Diese Pakete müssen installiert sein: apt-get install libio-socket-multicast-perl libjson-perl libcrypt-cbc-perl
+ - Diese Pakete müssen installiert sein: apt-get install libio-socket-multicast-perl libjson-perl libcrypt-cbc-perl
- Und mit CPAN: cpan Crypt::Cipher::AES
@@ -650,11 +668,11 @@ sub XiaomiSmartHome_round {
- Entwicklermodus am Gatway setzen!
+ Entwicklermodus am Gateway setzen!
- Ohne Entwicklermodus ist keine Komunikation mit dem Gateway möglich.
-
Zum setzen des Entwicklermoduses braucht man ein android oder ios Gerät mit installierter MI APP.
-
Um das versteckte Menü zu öffnen muss man mehrmals auf die Versionsnummer der MI APP klicken.
+
Ohne Entwicklermodus ist keine Kommunikation mit dem Gateway möglich.
+
Zum setzen des Entwicklermodusses braucht man ein android oder ios Gerät mit installierter MI APP.
+
Um das versteckte Menü zu öffnen muss man mehrmals auf die Versionsnummer der MI APP klicken.
Hier finden Sie eine Anleitung mit Bildern.
Android -> https://louiszl.gitbooks.io/lumi-gateway-local-api/content/device_discover.html
IOS -> https://github.com/fooxy/homeassistant-aqara/wiki/Enable-dev-mode
@@ -663,33 +681,33 @@ sub XiaomiSmartHome_round {
Unterstütze Sensoren
- - magnet: Magnetischer Fenster/Tür Sensor
+ - magnet: Magnetischer Fenster/Tür Sensor
- motion: Bewegungsmelder
- sensor_ht: Temperatur und Luftdruck
- switch: Funkschalter
- plug & 86plug: Schaltbare Funksteckdose
- - cube: Würfel Sensor
+ - cube: Würfel Sensor
- 86sw1: Einfacher Wandfunkschalter
- 86sw2: Wandfunkschalter doppelt
- ctrl_neutral1: Einfacher Wandschalter schaltbar
- ctrl_neutral2: Doppelter Wandschalter schaltbar
- rgbw_light: RBGW Lampe (nur Anzeige)
- - curtain: Vorhangmotor (ohne das das device den curtain_level gemeldet hat ist ein steuern nicht möglich)
+ - curtain: Vorhangmotor (ohne dass das Device den curtain_level gemeldet hat ist ein Steuern nicht öglich)
- water: Wasser Sensor
- smoke: Rauchmelder
- 0: disarm
- - 1: arlarm
- - 8: battery arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 8: battery alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
- gas: Gasmelder
- 0: disarm
- - 1: arlarm
- - 2: analog arlarm
- - 64: arlarm sensitivity
+ - 1: alarm
+ - 2: analog alarm
+ - 64: alarm sensitivity
- 32768: ICC communication failure
@@ -698,29 +716,29 @@ sub XiaomiSmartHome_round {
- Das XiaomiSmartHome Gateway sendet alle 10 seconds einen heartbeat
- Jedes XiaomiSmartHome Devices sendet alle 60 Minuten einen heartbeat
- - Das Reading heartbeat wird mit der SID des jeweiligen Gerätes beim empfang eines Heartbeat aktualisiert
+ - Das Reading heartbeat wird mit der SID des jeweiligen Gerätes beim Empfang eines Heartbeat aktualisiert
Set: Gateway
- - password: Ohne Passwort ist ein Schalten des GATEWAY nicht möglich. Das Passwort findet man in der MI APP
+ - password: Ohne Passwort ist ein Schalten des GATEWAY nicht möglich. Das Passwort findet man in der MI APP
- RGB(Colorpicker): Einstellen der LED Farbe des Gateways
- PCT(Slider): Einstellen der Helligkeit des Gateways
- - intervals: Einschalten des gateway für einen Zeitraum zb. set intervals 07:00-08:00
- - ringtone: Wiedergeben eines Arlarmtones 0-8,13,21-29,10001-.. Benutzerdefinierte| 10000 = aus
- - volume: Einstellen der Lautstärke des Arlarmtones 1-100, (100 ist sehr laut!)
- - ringvol: Wiedergeben eines Arlamtones und gleichzeitiges verändern der Lautstärke set [GWNAME] ringvol 21 10
- - learn: Anlernen neuer Sensoren, nach dem Set an dem neuem Sensor den Button drücken
+ - intervals: Einschalten des Gateways für einen Zeitraum zb. set intervals 07:00-08:00
+ - ringtone: Wiedergeben eines Alarmtones 0-8,13,21-29,10001-.. Benutzerdefinierte| 10000 = aus
+ - volume: Einstellen der Lautstärke des Alarmtones 1-100, (100 ist sehr laut!)
+ - ringvol: Wiedergeben eines Arlamtones und gleichzeitiges verändern der Lautstärke set [GWNAME] ringvol 21 10
+ - learn: Anlernen neuer Sensoren, nach dem Set an dem neuen Sensor den Button drücken
Set: Devices
- motionOffTimer: (nur Bewegungsmelder)
-
Durch setzen des Parameters ist es möglich das das Reading des Bewegungsmelder nach 1, 5 oder 10 Sekunden
+
Durch setzen des Parameters ist es möglich, dass das Reading des Bewegungsmelder nach 1, 5 oder 10 Sekunden
automatisch wieder auf off gestellt wird.
-
Hintergrund: Der Bewegungsmelder sendet kein selber kein off.
-
Der Bewegungsmelder sendet no_motion nach 120, 180, 300, 600, 1200 Sekunden wenn keine Bewegung festgestellt wurde.
- - Power: (nur Funksteckdose) on off Funktsteckdose ein oder ausschalten
+
Hintergrund: Der Bewegungsmelder sendet selber kein off.
+
Der Bewegungsmelder sendet no_motion nach 120, 180, 300, 600, 1200 Sekunden, wenn keine Bewegung festgestellt wurde.
+ - Power: (nur Funksteckdose) on off Funksteckdose ein oder ausschalten
- ctrl: (nur Funkschalter) on off Funkschalter
- channel_0: (nur Doppelter Wandschalter schaltbar) ein oder ausschalten
- channel_1: (nur Doppelter Wandschalter schaltbar) ein oder ausschalten
@@ -730,3 +748,4 @@ sub XiaomiSmartHome_round {
=end html_DE
=cut
+
diff --git a/controls_mish.txt b/controls_mish.txt
index 5cc5954..9554b9f 100644
--- a/controls_mish.txt
+++ b/controls_mish.txt
@@ -1,2 +1,2 @@
-UPD 2018-06-22_13:29:31 38872 FHEM/71_XiaomiSmartHome.pm
-UPD 2018-06-22_12:45:46 29142 FHEM/71_XiaomiSmartHome_Device.pm
+UPD 2019-03-20 11:54:55 40740 FHEM/71_XiaomiSmartHome.pm
+UPD 2019-03-20 11:32:54 30100 FHEM/71_XiaomiSmartHome_Device.pm