mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
70_STV: new commands powerCmdOn and powerCmdOff
git-svn-id: https://svn.fhem.de/fhem/trunk@7753 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
29d973b0e2
commit
dd8f0ecae6
@ -49,7 +49,7 @@ STV_Initialize($)
|
|||||||
$hash->{AttrFn} = "STV_Attr";
|
$hash->{AttrFn} = "STV_Attr";
|
||||||
$hash->{ReadFn} = "STV_Read";
|
$hash->{ReadFn} = "STV_Read";
|
||||||
$hash->{ReadyFn} = "STV_Ready";
|
$hash->{ReadyFn} = "STV_Ready";
|
||||||
$hash->{AttrList} = "MAC fork:enable,disable setWhenOffline:execute,ignore " . $readingFnAttributes;;
|
$hash->{AttrList} = "MAC fork:enable,disable setWhenOffline:execute,ignore powerCmdOn powerCmdOff " . $readingFnAttributes;;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub STV_Undefine($$)
|
sub STV_Undefine($$)
|
||||||
@ -208,7 +208,8 @@ sub STV_Define($$)
|
|||||||
"POWEROFF POWERON PRECH PRINT PROGRAM QUICK_REPLAY REC RED REPEAT RESERVED1 RETURN REWIND REWIND_ RIGHT RSS ".
|
"POWEROFF POWERON PRECH PRINT PROGRAM QUICK_REPLAY REC RED REPEAT RESERVED1 RETURN REWIND REWIND_ RIGHT RSS ".
|
||||||
"RSURF SCALE SEFFECT SETUP_CLOCK_TIMER SLEEP SOUND_MODE SOURCE SRS STANDARD STB_MODE STILL_PICTURE STOP ".
|
"RSURF SCALE SEFFECT SETUP_CLOCK_TIMER SLEEP SOUND_MODE SOURCE SRS STANDARD STB_MODE STILL_PICTURE STOP ".
|
||||||
"SUB_TITLE SVIDEO1 SVIDEO2 SVIDEO3 TOOLS TOPMENU TTX_MIX TTX_SUBFACE TURBO TV TV_MODE UP VCHIP VCR_MODE ".
|
"SUB_TITLE SVIDEO1 SVIDEO2 SVIDEO3 TOOLS TOPMENU TTX_MIX TTX_SUBFACE TURBO TV TV_MODE UP VCHIP VCR_MODE ".
|
||||||
"VOLDOWN VOLUP WHEEL_LEFT WHEEL_RIGHT W_LINK YELLOW ZOOM1 ZOOM2 ZOOM_IN ZOOM_MOVE ZOOM_OUT connect";
|
"VOLDOWN VOLUP WHEEL_LEFT WHEEL_RIGHT W_LINK YELLOW ZOOM1 ZOOM2 ZOOM_IN ZOOM_MOVE ZOOM_OUT connect ".
|
||||||
|
"powerCmdOn powerCmdOff";
|
||||||
my $system = $^O;
|
my $system = $^O;
|
||||||
my $result = "";
|
my $result = "";
|
||||||
if($system =~ m/Win/) {
|
if($system =~ m/Win/) {
|
||||||
@ -590,6 +591,21 @@ sub STV_52235($@)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub STV_PowerCmd($$)
|
||||||
|
{
|
||||||
|
my ($hash, $power) = @_;
|
||||||
|
|
||||||
|
my $attrName = $power ? "powerCmdOn" : "powerCmdOff";
|
||||||
|
my $cmdToExec = AttrVal($hash->{NAME}, $attrName, '');
|
||||||
|
|
||||||
|
return "Error: Attribute $attrName not set!" if (length($cmdToExec) == 0);
|
||||||
|
|
||||||
|
# execute the power command
|
||||||
|
fhem($cmdToExec);
|
||||||
|
|
||||||
|
return "Executed command: $cmdToExec";
|
||||||
|
}
|
||||||
|
|
||||||
sub STV_Set($@)
|
sub STV_Set($@)
|
||||||
{
|
{
|
||||||
my ($hash, @a) = @_;
|
my ($hash, @a) = @_;
|
||||||
@ -602,13 +618,23 @@ sub STV_Set($@)
|
|||||||
return $hash->{".validcommands"};
|
return $hash->{".validcommands"};
|
||||||
}
|
}
|
||||||
if ($hash->{".validcommands"} =~ /$cmd/) {
|
if ($hash->{".validcommands"} =~ /$cmd/) {
|
||||||
if ($cmd eq "connect") {
|
if ($cmd eq "powerCmdOn") {
|
||||||
return STV_Connect($hash);
|
return STV_PowerCmd($hash, 1);
|
||||||
}
|
}
|
||||||
|
elsif ($cmd eq "powerCmdOff") {
|
||||||
if ((AttrVal($name, "setWhenOffline", "execute") eq "ignore") and ($hash->{STATE} ne "opened")) {
|
return STV_PowerCmd($hash, 0);
|
||||||
Log3 $name, 3, "[STV] Device seems offline. Set command ignored: $cmd";
|
}
|
||||||
return;
|
|
||||||
|
if ($hash->{STATE} ne "opened") {
|
||||||
|
if ($cmd eq "connect") {
|
||||||
|
return STV_Connect($hash);
|
||||||
|
}
|
||||||
|
elsif ((AttrVal($name, "setWhenOffline", "execute") eq "ignore") and ()) {
|
||||||
|
# problem was that FHEM blocks for about 3 seconds if setting commands when TV is offline
|
||||||
|
# so people might want to block commands when TV is off
|
||||||
|
Log3 $name, 3, "[STV] Device seems offline. Set command ignored: $cmd";
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($Port eq 55000 ){
|
if ($Port eq 55000 ){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user