2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-13 11:16:36 +00:00

update on ON/OFF handling and bugfixing

git-svn-id: https://svn.fhem.de/fhem/trunk@6306 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
fhemrocks 2014-07-23 09:01:39 +00:00
parent b349c629e0
commit 912df334cb

View File

@ -80,6 +80,7 @@ sub SB_SERVER_Initialize( $ ) {
$hash->{GetFn} = "SB_SERVER_Get"; $hash->{GetFn} = "SB_SERVER_Get";
$hash->{SetFn} = "SB_SERVER_Set"; $hash->{SetFn} = "SB_SERVER_Set";
$hash->{AttrFn} = "SB_SERVER_Attr"; $hash->{AttrFn} = "SB_SERVER_Attr";
$hash->{NotifyFn} = "SB_SERVER_Notify";
$hash->{AttrList} = "alivetimer maxfavorites "; $hash->{AttrList} = "alivetimer maxfavorites ";
$hash->{AttrList} .= "doalivecheck:true,false "; $hash->{AttrList} .= "doalivecheck:true,false ";
@ -406,19 +407,13 @@ sub SB_SERVER_Attr( @ ) {
my $name = shift( @_ ); my $name = shift( @_ );
my @args = @_; my @args = @_;
Log( 4, "SB_SERVER_Attr: called with @args" ); Log( 4, "SB_SERVER_Attr($name): called with @args" );
if( $cmd eq "set" ) { if( $cmd eq "set" ) {
if( $args[ 0 ] eq "alivetimer" ) { if( $args[ 0 ] eq "alivetimer" ) {
} }
} }
# do an update of the status
# InternalTimer( gettimeofday() + AttrVal( $name, "alivetimer", 120 ),
# "SB_SERVER_Alive",
# $hash,
# 0 );
} }
@ -429,6 +424,8 @@ sub SB_SERVER_Set( $@ ) {
my ($hash, @a) = @_; my ($hash, @a) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
Log( 4, "SB_SERVER_Set($name): called" );
if( @a < 2 ) { if( @a < 2 ) {
return( "at least one parameter is needed" ) ; return( "at least one parameter is needed" ) ;
} }
@ -495,11 +492,12 @@ sub SB_SERVER_Set( $@ ) {
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
sub SB_SERVER_Read( $ ) { sub SB_SERVER_Read( $ ) {
my ($hash) = @_; my ($hash) = @_;
my $name = $hash->{NAME};
Log3( $hash, 4, "SB_SERVER_Read($name): called" );
Log3( $hash, 5, "+++++++++++++++++++++++++++++++++++++++++++++++++++++" ); Log3( $hash, 5, "+++++++++++++++++++++++++++++++++++++++++++++++++++++" );
Log3( $hash, 5, "New Squeezebox Server Read cycle starts here" ); Log3( $hash, 5, "New Squeezebox Server Read cycle starts here" );
Log3( $hash, 5, "+++++++++++++++++++++++++++++++++++++++++++++++++++++" ); Log3( $hash, 5, "+++++++++++++++++++++++++++++++++++++++++++++++++++++" );
Log3( $hash, 5, "SB_SERVER_Read: called" );
my $buf = DevIo_SimpleRead( $hash ); my $buf = DevIo_SimpleRead( $hash );
@ -507,8 +505,6 @@ sub SB_SERVER_Read( $ ) {
return( "" ); return( "" );
} }
my $name = $hash->{NAME};
# if we have data, the server is on again # if we have data, the server is on again
if( ReadingsVal( $name, "power", "off" ) ne "on" ) { if( ReadingsVal( $name, "power", "off" ) ne "on" ) {
readingsSingleUpdate( $hash, "power", "on", 1 ); readingsSingleUpdate( $hash, "power", "on", 1 );
@ -573,12 +569,12 @@ sub SB_SERVER_Write( $$$ ) {
my ( $hash, $fn, $msg ) = @_; my ( $hash, $fn, $msg ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
Log3( $hash, 4, "SB_SERVER_Write($name): called with FN:$fn" );
if( !defined( $fn ) ) { if( !defined( $fn ) ) {
return( undef ); return( undef );
} }
Log3( $hash, 4, "SB_SERVER_Write($name): called with FN:$fn" );
if( defined( $msg ) ) { if( defined( $msg ) ) {
Log3( $hash, 4, "SB_SERVER_Write: MSG:$msg" ); Log3( $hash, 4, "SB_SERVER_Write: MSG:$msg" );
} }
@ -614,7 +610,7 @@ sub SB_SERVER_DoInit( $ ) {
my ($hash) = @_; my ($hash) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
Log3( $hash, 4, "SB_SERVER_DoInit: called" ); Log3( $hash, 4, "SB_SERVER_DoInit($name): called" );
if( !$hash->{TCPDev} ) { if( !$hash->{TCPDev} ) {
Log3( $hash, 5, "SB_SERVER_DoInit: no TCPDev available?" ); Log3( $hash, 5, "SB_SERVER_DoInit: no TCPDev available?" );
@ -706,9 +702,10 @@ sub SB_SERVER_DispatchCommandLine( $$ ) {
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
sub SB_SERVER_ParseCmds( $$ ) { sub SB_SERVER_ParseCmds( $$ ) {
my ( $hash, $instr ) = @_; my ( $hash, $instr ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
Log3( $hash, 4, "SB_SERVER_ParseCmds($name): called" );
my @args = split( " ", $instr ); my @args = split( " ", $instr );
$hash->{LASTANSWER} = "@args"; $hash->{LASTANSWER} = "@args";
@ -799,6 +796,8 @@ sub SB_SERVER_Alive( $ ) {
# close our ping mechanism again # close our ping mechanism again
$p->close( ); $p->close( );
Log3( $hash, 5, "SB_SERVER_Alive($name): " .
"RCC:" . $rccstatus . " Ping:" . $pingstatus );
# set the status of the server accordingly # set the status of the server accordingly
if( ( $rccstatus eq "on" ) || ( $pingstatus eq "on" ) ) { if( ( $rccstatus eq "on" ) || ( $pingstatus eq "on" ) ) {
@ -892,7 +891,7 @@ sub SB_SERVER_Broadcast( $$@ ) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $iodevhash; my $iodevhash;
Log3( $hash, 4, "SB_SERVER_Broadcast: called" ); Log3( $hash, 4, "SB_SERVER_Broadcast($name): called" );
if( !defined( $bin ) ) { if( !defined( $bin ) ) {
$bin = 0; $bin = 0;
@ -931,8 +930,10 @@ sub SB_SERVER_Broadcast( $$@ ) {
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
sub SB_SERVER_ParseServerStatus( $$ ) { sub SB_SERVER_ParseServerStatus( $$ ) {
my( $hash, $dataptr ) = @_; my( $hash, $dataptr ) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
Log3( $hash, 4, "SB_SERVER_ParseServerStatus($name): called " );
# typically the start index being a number # typically the start index being a number
if( $dataptr->[ 0 ] =~ /^([0-9])*/ ) { if( $dataptr->[ 0 ] =~ /^([0-9])*/ ) {
@ -1177,6 +1178,8 @@ sub SB_SERVER_FavoritesParse( $$ ) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
Log3( $hash, 5, "SB_SERVER_FavoritesParse($name): called" );
# flush the existing list # flush the existing list
foreach my $titi ( keys %{$favorites{$name}} ) { foreach my $titi ( keys %{$favorites{$name}} ) {
delete( $favorites{$name}{$titi} ); delete( $favorites{$name}{$titi} );
@ -1438,6 +1441,8 @@ sub SB_SERVER_ParseServerPlaylists( $$ ) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
Log3( $hash, 4, "SB_SERVER_ParseServerPlaylists($name): called" );
my $namebuf = ""; my $namebuf = "";
my $uniquename = ""; my $uniquename = "";
my $idbuf = -1; my $idbuf = -1;
@ -1507,6 +1512,21 @@ sub SB_SERVER_ParseServerPlaylists( $$ ) {
} }
# ----------------------------------------------------------------------------
# the Notify function
# ----------------------------------------------------------------------------
sub SB_SERVER_Notify( $$ ) {
my ( $hash, $dev_hash ) = @_;
my $name = $hash->{NAME}; # own name / hash
my $devName = $dev_hash->{NAME}; # Device that created the events
Log3( $hash, 4, "SB_SERVER_Notify($name): called" .
"Own:" . $name . " Device:" . $devName );
return( "" );
}
1; 1;
=pod =pod