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:
-