From 339610edd8c52a7dc95dbe92d40806181dc2274e Mon Sep 17 00:00:00 2001 From: loredo Date: Sat, 14 Nov 2015 11:36:29 +0000 Subject: [PATCH] 50_HP1000: update commandref and make infix more flexible git-svn-id: https://svn.fhem.de/fhem/trunk@9887 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/50_HP1000.pm | 66 ++++++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/fhem/FHEM/50_HP1000.pm b/fhem/FHEM/50_HP1000.pm index 9aa55a602..2d0af5043 100755 --- a/fhem/FHEM/50_HP1000.pm +++ b/fhem/FHEM/50_HP1000.pm @@ -86,12 +86,12 @@ sub HP1000_Define($$) { return "Device already defined: " . $modules{HP1000}{defptr}{NAME} if (defined($modules{HP1000}{defptr})); - $hash->{fhem}{infix} = "updateweatherstation.php"; + $hash->{fhem}{infix} = "updateweatherstation"; # create global unique device definition $modules{HP1000}{defptr} = $hash; - HP1000_addExtension( $name, "HP1000_CGI", "updateweatherstation.php" ); + HP1000_addExtension( $name, "HP1000_CGI", "updateweatherstation" ); return undef; } @@ -128,16 +128,16 @@ sub HP1000_CGI() { my $webArgs; # data received - if ( $request =~ m,^(/[^/]+?)(?:\&|\?)(.*)?$, ) { - $link = $1; - $URI = $2; + if ( $request =~ /^\/updateweatherstation\.\w{3}\?(.+=.+)/ ) { + $URI = $1; # get device name - $name = $data{FWEXT}{$link}{deviceName} if ( $data{FWEXT}{$link} ); + $name = $data{FWEXT}{"/updateweatherstation"}{deviceName} + if (defined($data{FWEXT}{"/updateweatherstation"})); # return error if no such device return ( "text/plain; charset=utf-8", - "No HP1000 device for webhook $link" ) + "No HP1000 device for webhook /updateweatherstation" ) unless ($name); # extract values from URI @@ -200,8 +200,8 @@ sub HP1000_CGI() { $result .= " " if ($result ne ""); $result .= "T:$v" if ($p eq "temperature"); $result .= "H:$v" if ($p eq "humidity"); - $result .= "Tin:$v" if ($p eq "temperature_indoor"); - $result .= "Hin:$v" if ($p eq "humidity_indoor"); + $result .= "Ti:$v" if ($p eq "temperature_indoor"); + $result .= "Hi:$v" if ($p eq "humidity_indoor"); $result .= "P:$v" if ($p eq "pressure"); $result .= "R:$v" if ($p eq "rain"); $result .= "L:$v" if ($p eq "light"); @@ -232,17 +232,29 @@ sub HP1000_CGI() {

HP1000

- + # protected instance: Weather Station needs to be configured
+ # to send this ID and PASSWORD for data to be accepted
+ define WeatherStation HP1000 MyHouse SecretPassword
+
+ IMPORTANT: In your HP1000 device, make sure you use a DNS name as most revisions cannot handle IP addresses directly.
+
+ =end html @@ -254,17 +266,29 @@ sub HP1000_CGI() {

HP1000

- + # geschützte Instanz: Die Wetterstation muss so konfiguriert sein, dass sie
+ # diese ID und PASSWORD sendet, damit Daten akzeptiert werden
+ define WeatherStation HP1000 MyHouse SecretPassword
+
+ WICHTIG: Im HP1000 Gerä muss sichergestellt sein, dass ein DNS Name statt einer IP Adresse verwendet wird, da einige Revisionen damit nicht umgehen können.
+
+ =end html_DE