From 9c94ee426d1d4678d4255654e5e2d51d994c6a2a Mon Sep 17 00:00:00 2001 From: "klaus.schauer" <> Date: Fri, 5 Aug 2022 12:40:47 +0000 Subject: [PATCH] 02_HTTPAPI.pm: new API action "readtimestamp" git-svn-id: https://svn.fhem.de/fhem/trunk@26287 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/02_HTTPAPI.pm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/fhem/FHEM/02_HTTPAPI.pm b/fhem/FHEM/02_HTTPAPI.pm index 60ed46a43..63c75d0bc 100644 --- a/fhem/FHEM/02_HTTPAPI.pm +++ b/fhem/FHEM/02_HTTPAPI.pm @@ -107,7 +107,7 @@ sub HTTPAPI_CGI($$$) { my $link; return($hash, 503, 'close', "text/plain; charset=utf-8", encode($encoding, "error=503 Service Unavailable")) if(IsDisabled($name)); - if($request =~ m/^(\/$infix)\/(set|get|read|write)\?(.*)$/) { + if($request =~ m/^(\/$infix)\/(set|get|read|readtimestamp|write)\?(.*)$/) { $link = $1; $apiCmd = $2; $apiCmdString = $3; @@ -148,13 +148,13 @@ sub HTTPAPI_CGI($$$) { } else { return($hash, 400, 'close', "text/plain; charset=utf-8", encode($encoding, "error=400 Bad Request, $request > attribute action is missing")) } - } elsif ($apiCmd eq 'read') { + } elsif ($apiCmd =~ /^read|readtimestamp$/) { my $readingName; if ($apiCmdString =~ /&reading(\=[^&]*)?(?=&|$)|^reading(\=[^&]*)?(&|$)/) { $readingName = substr(($1 // $2), 1); # url decoding $readingName =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; - my $readingVal = ReadingsVal($fhemDevName, $readingName, undef); + my $readingVal = $apiCmd eq 'readtimestamp' ? ReadingsTimestamp($fhemDevName, $readingName, undef) : ReadingsVal($fhemDevName, $readingName, undef); #readingsSingleUpdate($defs{$name}, 'reponse', "$readingName=$readingVal", 1); if (defined $readingVal) { return($hash, 200, 'close', "text/plain; charset=utf-8", encode($encoding, "$readingName=$readingVal")); @@ -384,6 +384,8 @@ sub HTTPAPI_Undef($) { Example: +
  • API command line for querying the timestamp of a reading
    + Request: + + Response: + +
  • API command line for deleting a reading
    Request: