diff --git a/fhem/CHANGED b/fhem/CHANGED
index 5e8813f5b..a6b5a821f 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
+ - feature: 72_XiaomiDevice: added zone and goto
- bugfix: 57_Calendar: fix weekly events, get full all, defaultTimeFormat
- change: 93_DbLog: V3.10.0, addLog considers DbLogExclude in Devices,
keyword "!useExcludes" to switch off considering
diff --git a/fhem/FHEM/72_XiaomiDevice.pm b/fhem/FHEM/72_XiaomiDevice.pm
index a54f90f67..bae226b72 100755
--- a/fhem/FHEM/72_XiaomiDevice.pm
+++ b/fhem/FHEM/72_XiaomiDevice.pm
@@ -530,7 +530,7 @@ sub XiaomiDevice_Set($$@) {
$list .= " on:noArg off:noArg";
}
elsif( defined($attr{$name}) && defined($attr{$name}{subType}) && $attr{$name}{subType} eq "VacuumCleaner"){
- $list .= ' start:noArg stop:noArg pause:noArg spot:noArg charge:noArg locate:noArg dnd_enabled:on,off dnd_start dnd_end move remotecontrol:start,stop,forward,left,right reset_consumable:filter,mainbrush,sidebrush,sensors timezone volume:slider,0,1,100 volume_test:noArg';
+ $list .= ' start:noArg stop:noArg pause:noArg spot:noArg zone charge:noArg locate:noArg dnd_enabled:on,off dnd_start dnd_end goto move remotecontrol:start,stop,forward,left,right reset_consumable:filter,mainbrush,sidebrush,sensors timezone volume:slider,0,1,100 volume_test:noArg';
$list .= ' carpet_mode:on,off' if($hash->{model} ne "rockrobo.vacuum.v1");
$list .= ' sleep:noArg wakeup:noArg';
@@ -702,6 +702,21 @@ sub XiaomiDevice_Set($$@) {
$hash->{helper}{packet}{$packetid} = "app_spot";
XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"app_spot","params":[""]}' );
}
+ elsif ($cmd eq 'zone')
+ {
+ my $packetid = $hash->{helper}{packetid};
+ $hash->{helper}{packetid} = $packetid+1;
+ $hash->{helper}{packet}{$packetid} = "app_zoned_clean";
+ my $zone = join("],[", @arg);
+ XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"app_zoned_clean","params":['.$zone.']}' );
+ }
+ elsif ($cmd eq 'goto')
+ {
+ my $packetid = $hash->{helper}{packetid};
+ $hash->{helper}{packetid} = $packetid+1;
+ $hash->{helper}{packet}{$packetid} = "app_goto_target";
+ XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"app_goto_target","params":['.$arg[0].']}' );
+ }
elsif ($cmd eq 'pause')
{
my $packetid = $hash->{helper}{packetid};
@@ -2771,6 +2786,10 @@ sub XiaomiDevice_DbLog_splitFn($) {
Start spot cleaning
+
zone
pointA1,pointA2,pointA3,pointA4 [pointB1,pointB2,pointB3,pointB4](VacuumCleaner)
+ pause
(VacuumCleaner)
goto
pointX,pointY (VacuumCleaner)
+ locate
(VacuumCleaner)