From 8e9cf37c9ddcccfbc1cc0c21cf4c5e2e99ceadbc Mon Sep 17 00:00:00 2001 From: jbosecker Date: Wed, 15 Jan 2014 09:48:59 +0000 Subject: [PATCH] Removed dependencies to SSL, HTTP and UserAgent stuff. Added two readings for last message and last result. git-svn-id: https://svn.fhem.de/fhem/trunk@4653 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/70_Pushover.pm | 62 ++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 37 deletions(-) diff --git a/fhem/FHEM/70_Pushover.pm b/fhem/FHEM/70_Pushover.pm index 61c46337d..968534473 100644 --- a/fhem/FHEM/70_Pushover.pm +++ b/fhem/FHEM/70_Pushover.pm @@ -32,8 +32,7 @@ package main; -use HTTP::Request; -use LWP::UserAgent; +use HttpUtils; use utf8; my %sets = ( @@ -205,7 +204,14 @@ sub Pushover_Set_Message $body = $body . "&" . "timestamp=" . time(); } - return Pushover_HTTP_Call($hash, $body); + my $result = Pushover_HTTP_Call($hash, $body); + + readingsBeginUpdate($hash); + readingsBulkUpdate($hash, "last-message", $title . ": " . $message); + readingsBulkUpdate($hash, "last-result", $result); + readingsEndUpdate($hash, 1); + + return $result; } else { @@ -217,28 +223,28 @@ sub Pushover_HTTP_Call($$) { my ($hash,$body) = @_; - my $client = LWP::UserAgent->new(); + my $url = "https://api.pushover.net/1/messages.json"; - my $req = HTTP::Request->new(POST => "https://api.pushover.net/1/messages.json"); - $req->header('Content-Type' => 'application/x-www-form-urlencoded'); - $req->content($body); - - my $response = $client->request($req); + $response = GetFileFromURL($url, 10, $body, 0, 5); - if($response) + if ($response =~ m/"status":(.*),/) { - if ($response->is_error) - { - return "Error: " . $response->status_line; - } - else - { - return "OK"; - } + if ($1 eq "1") + { + return "OK"; + } + elsif ($response =~ m/"errors":\[(.*)\]/) + { + return "Error: " . $1; + } + else + { + return "Error"; + } } else { - return "Status: " . $response->status_line; + return "Error: No known response" } } @@ -255,15 +261,6 @@ sub Pushover_HTTP_Call($$) You need an account to use this module.
For further information about the service see pushover.net.

- You have to install these modules:
- -
- Use 'cpan -i *module-name*' to install them.
- For instructions on QNAP see this thread.
Discuss the module here.


@@ -334,15 +331,6 @@ sub Pushover_HTTP_Call($$) Du brauchst einen Account um dieses Modul zu verwenden.
Für weitere Informationen über den Dienst besuche pushover.net.

- Du musst diese Module installieren:
- -
- Verwende 'cpan -i *module-name*' um sie zu installieren.
- Für Installationsschritte auf einem QNAP-Gerät besuche diesen Thread.
Diskutiere das Modul hier.