mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-08 07:24:21 +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( $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 "scene" && !defined( $scene ) ) { return "Usage: set $name scene <scene_name>" };
|
||||
@ -395,14 +395,19 @@ LightScene_Set($@)
|
||||
if( $cmd eq "remove" ) {
|
||||
delete( $hash->{SCENES}{$scene} );
|
||||
return undef;
|
||||
} elsif( $cmd eq "set" ) {
|
||||
} elsif( $cmd eq "set" || $cmd eq "setcmd" ) {
|
||||
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 "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;
|
||||
}
|
||||
|
||||
@ -543,13 +548,17 @@ LightScene_Set($@)
|
||||
my $r = "";
|
||||
foreach my $entry (@{$state}) {
|
||||
$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 .= $r;
|
||||
} else {
|
||||
$ret .= " " if( $ret );
|
||||
if( $state =~m/^sleep\s*/ ) {
|
||||
if( $state =~m/^;/ ) {
|
||||
$ret .= AnalyzeCommandChain(undef,"$state");
|
||||
} else {
|
||||
$ret .= CommandSet(undef,"$d $state");
|
||||
@ -660,8 +669,10 @@ LightScene_Get($@)
|
||||
save current state for alle devices in this LightScene to <scene_name></li>
|
||||
<li>scene <scene_name><br>
|
||||
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>
|
||||
<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>
|
||||
remove <scene_name> from list of saved scenes</li>
|
||||
</ul><br>
|
||||
|
Loading…
x
Reference in New Issue
Block a user