From 4bdea876261bbedd5745514b4d8d764ee7d2fd52 Mon Sep 17 00:00:00 2001 From: markusbloch Date: Fri, 7 Dec 2012 19:20:16 +0000 Subject: [PATCH] reverse search fix, adding get command for reverse searching git-svn-id: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem@2276 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/72_FB_CALLMONITOR.pm | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/FHEM/72_FB_CALLMONITOR.pm b/FHEM/72_FB_CALLMONITOR.pm index 973708ecf..4e267b698 100755 --- a/FHEM/72_FB_CALLMONITOR.pm +++ b/FHEM/72_FB_CALLMONITOR.pm @@ -85,9 +85,10 @@ FB_CALLMONITOR_Initialize($) # Provider $hash->{ReadFn} = "FB_CALLMONITOR_Read"; $hash->{ReadyFn} = "FB_CALLMONITOR_Ready"; + $hash->{GetFn} = "FB_CALLMONITOR_Get"; $hash->{DefFn} = "FB_CALLMONITOR_Define"; $hash->{UndefFn} = "FB_CALLMONITOR_Undef"; - $hash->{AttrList}= "do_not_notify:0,1 remove-leading-zero:0,1 reverse-search-cache-file reverse-search:all,klicktel.de,dasoertliche.de,none reverse-search-cache:0,1 event-on-update-reading event-on-change-reading"; + $hash->{AttrList}= "do_not_notify:0,1 loglevel:1,2,3,4,5 remove-leading-zero:0,1 reverse-search-cache-file reverse-search:all,klicktel.de,dasoertliche.de,none reverse-search-cache:0,1 event-on-update-reading event-on-change-reading"; } @@ -140,10 +141,32 @@ FB_CALLMONITOR_Undef($$) ##################################### # No get commands possible, as we just receive the events from the FritzBox. sub -FB_CALLMONITOR_ReadAnswer($$$) +FB_CALLMONITOR_Get($@) { -return "Get command is not supported by this module"; +my ($hash, @arguments) = @_; + + +return "argument missing" if(int(@arguments) < 2); + +if($arguments[1] eq "search") +{ + if($arguments[2] =~ /^\d+$/) + { + return FB_CALLMONITOR_reverseSearch($hash, $arguments[2]); + } + else + { + return "given argument is not a telephone number"; + } +} +else +{ + + return "unknown argument"; + + +} } @@ -171,7 +194,7 @@ FB_CALLMONITOR_Read($) $external_number =~ s/^0// if(AttrVal($name, "remove-leading-zero", "0") eq "1"); - $reverse_search = FB_CALLMONITOR_reverseSearch($hash, $external_number) if(AttrVal($name, "reverse-search", "none") ne "none"); + $reverse_search = FB_CALLMONITOR_reverseSearch($hash, $external_number) if(defined($external_number) and AttrVal($name, "reverse-search", "none") ne "none"); readingsBeginUpdate($hash); readingsBulkUpdate($hash, "event", lc($array[1]));