diff --git a/FHEM/37_harmony.pm b/FHEM/37_harmony.pm index d0380016c..386aafccb 100644 --- a/FHEM/37_harmony.pm +++ b/FHEM/37_harmony.pm @@ -304,6 +304,14 @@ harmony_Set($$@) harmony_sendEngineGet($hash, "startactivity", "activityId=$param:timestamp=0"); return undef; + } elsif( $cmd eq "channel" ) { + return "no current activity" if( !defined($hash->{currentActivityID}) || $hash->{currentActivityID} == -1 ); + return "missing channel" if( !$param ); + + harmony_sendEngineGet($hash, "changeChannel", "channel=$param:timestamp=0"); + + return undef; + } elsif( $cmd eq "command" ) { my $action; @@ -494,6 +502,8 @@ harmony_Set($$@) } + $list .= " channel" if( defined($hash->{currentActivityID}) && $hash->{currentActivityID} != -1 ); + $list .= " command getConfig:noArg getCurrentActivity:noArg off:noArg reconnect:noArg sleeptimer sync:noArg text cursor:up,down,left,right,pageUp,pageDown,home,end special:previousTrack,nextTrack,stop,playPause,volumeUp,volumeDown,mute"; return "Unknown argument $cmd, choose one of $list"; @@ -587,7 +597,7 @@ harmony_CDATA2hash($) $value .= ":". $next; } - $params{$name} = $value; + $params{$name} = $value if( $name ); } return \%params; @@ -913,6 +923,8 @@ harmony_Read($) harmony_sendEngineGet($hash, "config", ""); + } elsif( $content =~ m/engine\?changeChannel/ && $decoded ) { + } elsif( $content =~ m/engine\?gettimerinterval/ && $decoded ) { $hash->{sleeptimer} = FmtDateTime( gettimeofday() + $decoded->{interval} ); @@ -1571,8 +1583,10 @@ harmony_Attr($$$)