2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-19 18:56:03 +00:00

70_Pushover: interpret glance return messages

git-svn-id: https://svn.fhem.de/fhem/trunk@12647 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2016-11-24 11:33:19 +00:00
parent e22a1267fd
commit a8742ed92b

View File

@ -620,6 +620,32 @@ sub Pushover_ReceiveCommand($$$) {
} }
} }
# glances.json
elsif ( $service eq "glances.json" ) {
readingsBulkUpdate( $hash, "lastTitle", $values->{title} );
readingsBulkUpdate( $hash, "lastText",
urlDecode( $values->{text} ) )
if ( $values->{text} ne "" );
readingsBulkUpdate( $hash, "lastSubtext",
urlDecode( $values->{subtext} ) )
if ( $values->{subtext} ne "" );
readingsBulkUpdate( $hash, "lastCount", $values->{count} )
if ( $values->{count} ne "" );
readingsBulkUpdate( $hash, "lastPercent", $values->{percent} )
if ( $values->{percent} ne "" );
readingsBulkUpdate( $hash, "lastDevice", $values->{device} )
if ( $values->{device} ne "" );
readingsBulkUpdate( $hash, "lastDevice",
ReadingsVal( $name, "devices", "all" ) )
if ( $values->{device} eq "" );
if ( ref($return) eq "HASH" ) {
readingsBulkUpdate( $hash, "lastRequest", $return->{request} )
if ( defined $return->{request} );
}
}
# users/validate.json # users/validate.json
elsif ( $service eq "users/validate.json" ) { elsif ( $service eq "users/validate.json" ) {
if ( ref($return) eq "HASH" ) { if ( ref($return) eq "HASH" ) {
@ -833,8 +859,7 @@ sub Pushover_SetMessage {
# check if we got a user or group key as device and use it as # check if we got a user or group key as device and use it as
# user-key instead of hash->USER_KEY # user-key instead of hash->USER_KEY
if ( $values{device} =~ /^(([A-Za-z0-9]{30}):)?([A-Za-z0-9,_-]*)(.*)$/ ) if ( $values{device} =~ /^(([A-Za-z0-9]{30}):)?([A-Za-z0-9,_-]*)(.*)$/ ) {
{
$values{USER_KEY} = $2 if ( $2 ne "" ); $values{USER_KEY} = $2 if ( $2 ne "" );
$values{device} = $3; $values{device} = $3;
@ -872,7 +897,7 @@ sub Pushover_SetMessage {
&& $values{message} !~ /^nohtml:.*/ ) && $values{message} !~ /^nohtml:.*/ )
{ {
Log3 $name, 4, "Pushover $name: handling message with HTML content"; Log3 $name, 4, "Pushover $name: handling message with HTML content";
$body = $body . "&html=1"; $body .= "&html=1";
# replace \n by <br /> but ignore \\n # replace \n by <br /> but ignore \\n
$values{message} =~ s/(?<!\\)(\\n)/<br \/>/g; $values{message} =~ s/(?<!\\)(\\n)/<br \/>/g;
@ -894,28 +919,28 @@ sub Pushover_SetMessage {
# replace any URL-encoded \\n by \n # replace any URL-encoded \\n by \n
$values{message} =~ s/%5c%5cn/%5cn/g; $values{message} =~ s/%5c%5cn/%5cn/g;
$body = $body . "&message=" . $values{message}; $body .= "&message=" . $values{message};
if ( $values{device} ne "" ) { if ( $values{device} ne "" ) {
$body = $body . "&device=" . $values{device}; $body .= "&device=" . $values{device};
} }
if ( $values{priority} ne "" ) { if ( $values{priority} ne "" ) {
$values{priority} = 2 if ( $values{priority} > 2 ); $values{priority} = 2 if ( $values{priority} > 2 );
$values{priority} = -2 if ( $values{priority} < -2 ); $values{priority} = -2 if ( $values{priority} < -2 );
$body = $body . "&priority=" . $values{priority}; $body .= "&priority=" . $values{priority};
} }
if ( $values{sound} ne "" ) { if ( $values{sound} ne "" ) {
$body = $body . "&sound=" . $values{sound}; $body .= "&sound=" . $values{sound};
} }
if ( $values{retry} ne "" ) { if ( $values{retry} ne "" ) {
$body = $body . "&retry=" . $values{retry}; $body .= "&retry=" . $values{retry};
} }
if ( $values{expire} ne "" ) { if ( $values{expire} ne "" ) {
$body = $body . "&expire=" . $values{expire}; $body .= "&expire=" . $values{expire};
$values{cbNr} = int( time() ) + $values{expire}; $values{cbNr} = int( time() ) + $values{expire};
my $cbReading = "cb_" . $values{cbNr}; my $cbReading = "cb_" . $values{cbNr};
@ -926,13 +951,13 @@ sub Pushover_SetMessage {
} }
if ( 1 == AttrVal( $hash->{NAME}, "timestamp", 0 ) ) { if ( 1 == AttrVal( $hash->{NAME}, "timestamp", 0 ) ) {
$body = $body . "&timestamp=" . int( time() ); $body .= "&timestamp=" . int( time() );
} }
if ( $callback ne "" && $values{priority} > 1 ) { if ( $callback ne "" && $values{priority} > 1 ) {
Log3 $name, 5, Log3 $name, 5,
"Pushover $name: Adding emergency callback URL $callback"; "Pushover $name: Adding emergency callback URL $callback";
$body = $body . "&callback=" . $callback; $body .= "&callback=" . $callback;
} }
if ( $values{url_title} ne "" if ( $values{url_title} ne ""
@ -1079,8 +1104,7 @@ sub Pushover_SetMessage2 ($$$$) {
# check if we got a user or group key as device and use it as # check if we got a user or group key as device and use it as
# user-key instead of hash->USER_KEY # user-key instead of hash->USER_KEY
if ( $values{device} =~ /^(([A-Za-z0-9]{30}):)?([A-Za-z0-9,_-]*)(.*)$/ ) if ( $values{device} =~ /^(([A-Za-z0-9]{30}):)?([A-Za-z0-9,_-]*)(.*)$/ ) {
{
$values{USER_KEY} = $2 if ( $2 ne "" ); $values{USER_KEY} = $2 if ( $2 ne "" );
$values{device} = $3; $values{device} = $3;
@ -1125,7 +1149,7 @@ sub Pushover_SetMessage2 ($$$$) {
&& $values{message} !~ /^nohtml:.*/ ) && $values{message} !~ /^nohtml:.*/ )
{ {
Log3 $name, 4, "Pushover $name: handling message with HTML content"; Log3 $name, 4, "Pushover $name: handling message with HTML content";
$body = $body . "&html=1"; $body .= "&html=1";
# replace \n by <br /> but ignore \\n # replace \n by <br /> but ignore \\n
$values{message} =~ s/(?<!\\)(\\n)/<br \/>/g; $values{message} =~ s/(?<!\\)(\\n)/<br \/>/g;
@ -1149,7 +1173,7 @@ sub Pushover_SetMessage2 ($$$$) {
# replace any URL-encoded \\n by \n # replace any URL-encoded \\n by \n
$values{message} =~ s/%5c%5cn/%5cn/g; $values{message} =~ s/%5c%5cn/%5cn/g;
$body = $body . "&message=" . $values{message}; $body .= "&message=" . $values{message};
} }
elsif ( $values{text} ) { elsif ( $values{text} ) {
@ -1164,7 +1188,7 @@ sub Pushover_SetMessage2 ($$$$) {
# replace any URL-encoded \\n by \n # replace any URL-encoded \\n by \n
$values{text} =~ s/%5c%5cn/%5cn/g; $values{text} =~ s/%5c%5cn/%5cn/g;
$body = $body . "&text=" . $values{text}; $body .= "&text=" . $values{text};
} }
if ( $values{subtext} ) { if ( $values{subtext} ) {
@ -1179,13 +1203,13 @@ sub Pushover_SetMessage2 ($$$$) {
# replace any URL-encoded \\n by \n # replace any URL-encoded \\n by \n
$values{subtext} =~ s/%5c%5cn/%5cn/g; $values{subtext} =~ s/%5c%5cn/%5cn/g;
$body = $body . "&subtext=" . $values{subtext}; $body .= "&subtext=" . $values{subtext};
} }
if ( defined( $values{count} ) if ( defined( $values{count} )
&& looks_like_number( $values{count} ) ) && looks_like_number( $values{count} ) )
{ {
$body = $body . "&count=" . $values{count}; $body .= "&count=" . $values{count};
} }
if ( defined( $values{percent} ) if ( defined( $values{percent} )
@ -1193,29 +1217,29 @@ sub Pushover_SetMessage2 ($$$$) {
&& $values{percent} >= 0 && $values{percent} >= 0
&& $values{percent} <= 100 ) && $values{percent} <= 100 )
{ {
$body = $body . "&percent=" . $values{percent}; $body .= "&percent=" . $values{percent};
} }
if ( $values{device} ne "" ) { if ( $values{device} ne "" ) {
$body = $body . "&device=" . $values{device}; $body .= "&device=" . $values{device};
} }
if ( $values{priority} ne "" ) { if ( $values{priority} ne "" ) {
$values{priority} = 2 if ( $values{priority} > 2 ); $values{priority} = 2 if ( $values{priority} > 2 );
$values{priority} = -2 if ( $values{priority} < -2 ); $values{priority} = -2 if ( $values{priority} < -2 );
$body = $body . "&priority=" . $values{priority}; $body .= "&priority=" . $values{priority};
} }
if ( $values{sound} ne "" ) { if ( $values{sound} ne "" ) {
$body = $body . "&sound=" . $values{sound}; $body .= "&sound=" . $values{sound};
} }
if ( $values{retry} ne "" ) { if ( $values{retry} ne "" ) {
$body = $body . "&retry=" . $values{retry}; $body .= "&retry=" . $values{retry};
} }
if ( $values{expire} ne "" ) { if ( $values{expire} ne "" ) {
$body = $body . "&expire=" . $values{expire}; $body .= "&expire=" . $values{expire};
$values{cbNr} = int( time() ) + $values{expire}; $values{cbNr} = int( time() ) + $values{expire};
my $cbReading = "cb_" . $values{cbNr}; my $cbReading = "cb_" . $values{cbNr};
@ -1226,13 +1250,13 @@ sub Pushover_SetMessage2 ($$$$) {
} }
if ( 1 == AttrVal( $hash->{NAME}, "timestamp", 0 ) ) { if ( 1 == AttrVal( $hash->{NAME}, "timestamp", 0 ) ) {
$body = $body . "&timestamp=" . int( time() ); $body .= "&timestamp=" . int( time() );
} }
if ( $callback ne "" && $values{priority} > 1 ) { if ( $callback ne "" && $values{priority} > 1 ) {
Log3 $name, 5, Log3 $name, 5,
"Pushover $name: Adding emergency callback URL $callback"; "Pushover $name: Adding emergency callback URL $callback";
$body = $body . "&callback=" . $callback; $body .= "&callback=" . $callback;
} }
if ( $values{url_title} ne "" if ( $values{url_title} ne ""