mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-20 13:26:02 +00:00
added setcmd command
git-svn-id: https://svn.fhem.de/fhem/trunk@4722 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c9e6602817
commit
955fddcc09
@ -386,7 +386,7 @@ LightScene_Set($@)
|
|||||||
|
|
||||||
if( !defined($cmd) ){ return "$name: set needs at least one parameter" };
|
if( !defined($cmd) ){ return "$name: set needs at least one parameter" };
|
||||||
|
|
||||||
if( $cmd eq "?" ){ return "Unknown argument ?, choose one of remove:".join(",", sort keys %{$hash->{SCENES}}) ." save set scene:".join(",", sort keys %{$hash->{SCENES}})};
|
if( $cmd eq "?" ){ return "Unknown argument ?, choose one of remove:".join(",", sort keys %{$hash->{SCENES}}) ." save set setcmd scene:".join(",", sort keys %{$hash->{SCENES}})};
|
||||||
|
|
||||||
if( $cmd eq "save" && !defined( $scene ) ) { return "Usage: set $name save <scene_name>" };
|
if( $cmd eq "save" && !defined( $scene ) ) { return "Usage: set $name save <scene_name>" };
|
||||||
if( $cmd eq "scene" && !defined( $scene ) ) { return "Usage: set $name scene <scene_name>" };
|
if( $cmd eq "scene" && !defined( $scene ) ) { return "Usage: set $name scene <scene_name>" };
|
||||||
@ -395,14 +395,19 @@ LightScene_Set($@)
|
|||||||
if( $cmd eq "remove" ) {
|
if( $cmd eq "remove" ) {
|
||||||
delete( $hash->{SCENES}{$scene} );
|
delete( $hash->{SCENES}{$scene} );
|
||||||
return undef;
|
return undef;
|
||||||
} elsif( $cmd eq "set" ) {
|
} elsif( $cmd eq "set" || $cmd eq "setcmd" ) {
|
||||||
my ($d, @args) = @a;
|
my ($d, @args) = @a;
|
||||||
|
|
||||||
if( !defined( $scene ) || !defined( $d ) || !@args ) { return "Usage: set $name set <scene_name> <device> <cmd>" };
|
if( !defined( $scene ) || !defined( $d ) ) { return "Usage: set $name set <scene_name> <device> [<cmd>]" };
|
||||||
return "no stored scene >$scene<" if( !defined($hash->{SCENES}{$scene} ) );
|
return "no stored scene >$scene<" if( !defined($hash->{SCENES}{$scene} ) );
|
||||||
return "device >$d< is not a member of scene >$scene<" if( !defined($hash->{CONTENT}{$d} ) );
|
#return "device >$d< is not a member of scene >$scene<" if( !defined($hash->{CONTENT}{$d} ) );
|
||||||
|
|
||||||
|
if( !@args ) {
|
||||||
|
delete $hash->{SCENES}{$scene}{$d};
|
||||||
|
} else {
|
||||||
|
$hash->{SCENES}{$scene}{$d} = (($cmd eq "setcmd")?';':''). join(" ", @args);
|
||||||
|
}
|
||||||
|
|
||||||
$hash->{SCENES}{$scene}{$d} = join(" ", @args);
|
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -543,13 +548,17 @@ LightScene_Set($@)
|
|||||||
my $r = "";
|
my $r = "";
|
||||||
foreach my $entry (@{$state}) {
|
foreach my $entry (@{$state}) {
|
||||||
$r .= "," if( $ret );
|
$r .= "," if( $ret );
|
||||||
$r .= CommandSet(undef,"$d $entry");
|
if( $entry =~m/^;/ ) {
|
||||||
|
$r .= AnalyzeCommandChain(undef,"$entry");
|
||||||
|
} else {
|
||||||
|
$r .= CommandSet(undef,"$d $entry");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$ret .= " " if( $ret );
|
$ret .= " " if( $ret );
|
||||||
$ret .= $r;
|
$ret .= $r;
|
||||||
} else {
|
} else {
|
||||||
$ret .= " " if( $ret );
|
$ret .= " " if( $ret );
|
||||||
if( $state =~m/^sleep\s*/ ) {
|
if( $state =~m/^;/ ) {
|
||||||
$ret .= AnalyzeCommandChain(undef,"$state");
|
$ret .= AnalyzeCommandChain(undef,"$state");
|
||||||
} else {
|
} else {
|
||||||
$ret .= CommandSet(undef,"$d $state");
|
$ret .= CommandSet(undef,"$d $state");
|
||||||
@ -660,8 +669,10 @@ LightScene_Get($@)
|
|||||||
save current state for alle devices in this LightScene to <scene_name></li>
|
save current state for alle devices in this LightScene to <scene_name></li>
|
||||||
<li>scene <scene_name><br>
|
<li>scene <scene_name><br>
|
||||||
shows scene <scene_name> - all devices are switched to the previously saved state</li>
|
shows scene <scene_name> - all devices are switched to the previously saved state</li>
|
||||||
<li>set <scene_name> <device> <cmd><br>
|
<li>set <scene_name> <device> [<cmd>]<br>
|
||||||
set the saved state of <device> in <scene_name> to <cmd></li>
|
set the saved state of <device> in <scene_name> to <cmd></li>
|
||||||
|
<li>setcmd <scene_name> <device> [<cmd>]<br>
|
||||||
|
set command to be executed for <device> in <scene_name> to <cmd></li>
|
||||||
<li>remove <scene_name><br>
|
<li>remove <scene_name><br>
|
||||||
remove <scene_name> from list of saved scenes</li>
|
remove <scene_name> from list of saved scenes</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user