mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-01 20:20:10 +00:00
73_DoorBird: Feature: Manual Video_Request
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@21418 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
92d1f17337
commit
958cba7563
@ -427,13 +427,17 @@ sub DoorBird_Attr(@)
|
|||||||
### Check whether SessionIdSec is 0 = disabled
|
### Check whether SessionIdSec is 0 = disabled
|
||||||
if ($a[3] == int($a[3]) && ($a[3] == 0)) {
|
if ($a[3] == int($a[3]) && ($a[3] == 0)) {
|
||||||
### Save attribute as internal
|
### Save attribute as internal
|
||||||
$hash->{helper}{SessionIdSec} = 0;
|
$hash->{helper}{SessionIdSec} = 0;
|
||||||
|
$hash->{helper}{SessionId} = 0;
|
||||||
}
|
}
|
||||||
### If KeepAliveTimeout is numeric and greater than 9s
|
### If KeepAliveTimeout is numeric and greater than 9s
|
||||||
elsif ($a[3] == int($a[3]) && ($a[3] > 9)) {
|
elsif ($a[3] == int($a[3]) && ($a[3] > 9)) {
|
||||||
|
|
||||||
### Save attribute as internal
|
### Save attribute as internal
|
||||||
$hash->{helper}{SessionIdSec} = $a[3];
|
$hash->{helper}{SessionIdSec} = $a[3];
|
||||||
|
|
||||||
|
### Obtain SessionId
|
||||||
|
DoorBird_RenewSessionID($hash);
|
||||||
|
|
||||||
### Re-Initiate the timer
|
### Re-Initiate the timer
|
||||||
InternalTimer(gettimeofday()+$hash->{helper}{SessionIdSec}, "DoorBird_RenewSessionID", $hash, 0);
|
InternalTimer(gettimeofday()+$hash->{helper}{SessionIdSec}, "DoorBird_RenewSessionID", $hash, 0);
|
||||||
@ -443,6 +447,9 @@ sub DoorBird_Attr(@)
|
|||||||
### Save standard interval as internal
|
### Save standard interval as internal
|
||||||
$hash->{helper}{SessionIdSec} = 540;
|
$hash->{helper}{SessionIdSec} = 540;
|
||||||
|
|
||||||
|
### Obtain SessionId
|
||||||
|
DoorBird_RenewSessionID($hash);
|
||||||
|
|
||||||
### Re-Initiate the timer
|
### Re-Initiate the timer
|
||||||
InternalTimer(gettimeofday()+$hash->{helper}{SessionIdSec}, "DoorBird_RenewSessionID", $hash, 0);
|
InternalTimer(gettimeofday()+$hash->{helper}{SessionIdSec}, "DoorBird_RenewSessionID", $hash, 0);
|
||||||
}
|
}
|
||||||
@ -452,6 +459,9 @@ sub DoorBird_Attr(@)
|
|||||||
### Save standard interval as internal
|
### Save standard interval as internal
|
||||||
$hash->{helper}{SessionIdSec} = 540;
|
$hash->{helper}{SessionIdSec} = 540;
|
||||||
|
|
||||||
|
### Obtain SessionId
|
||||||
|
DoorBird_RenewSessionID($hash);
|
||||||
|
|
||||||
### Re-Initiate the timer
|
### Re-Initiate the timer
|
||||||
InternalTimer(gettimeofday()+$hash->{helper}{SessionIdSec}, "DoorBird_RenewSessionID", $hash, 0);
|
InternalTimer(gettimeofday()+$hash->{helper}{SessionIdSec}, "DoorBird_RenewSessionID", $hash, 0);
|
||||||
}
|
}
|
||||||
@ -641,7 +651,7 @@ sub DoorBird_Get($@)
|
|||||||
|
|
||||||
### If DoorBird has a Camera installed
|
### If DoorBird has a Camera installed
|
||||||
if ($hash->{helper}{CameraInstalled} == true) {
|
if ($hash->{helper}{CameraInstalled} == true) {
|
||||||
$usage .= "Image_Request:noArg History_Request:noArg "
|
$usage .= "Image_Request:noArg History_Request:noArg Video_Request "
|
||||||
}
|
}
|
||||||
### If DoorBird has NO Camera installed
|
### If DoorBird has NO Camera installed
|
||||||
else {
|
else {
|
||||||
@ -658,11 +668,21 @@ sub DoorBird_Get($@)
|
|||||||
### Call Subroutine and hand back return value
|
### Call Subroutine and hand back return value
|
||||||
return DoorBird_Info_Request($hash, $option);
|
return DoorBird_Info_Request($hash, $option);
|
||||||
}
|
}
|
||||||
### LIVE IMAGE REQUEST
|
### IMAGE REQUEST
|
||||||
elsif ($command eq "Image_Request") {
|
elsif ($command eq "Image_Request") {
|
||||||
### Call Subroutine and hand back return value
|
### Call Subroutine and hand back return value
|
||||||
return DoorBird_Image_Request($hash, $option);
|
return DoorBird_Image_Request($hash, $option);
|
||||||
}
|
}
|
||||||
|
### VIDEO REQUEST
|
||||||
|
elsif ($command eq "Video_Request") {
|
||||||
|
my $VideoDuration = 10;
|
||||||
|
### If the duration has been given use it. Otherwise use 10s
|
||||||
|
if ( $optionString == int($optionString) and $optionString eq int($optionString) and $optionString > 0 ) {
|
||||||
|
$VideoDuration = $optionString;
|
||||||
|
}
|
||||||
|
### Call Subroutine and hand back return value
|
||||||
|
return DoorBird_Video_Request($hash, $VideoDuration, "manual", time());
|
||||||
|
}
|
||||||
### HISTORY IMAGE REQUEST
|
### HISTORY IMAGE REQUEST
|
||||||
elsif ($command eq "History_Request") {
|
elsif ($command eq "History_Request") {
|
||||||
if ($hash->{helper}{HistoryDownloadActive} == false) {
|
if ($hash->{helper}{HistoryDownloadActive} == false) {
|
||||||
@ -734,6 +754,7 @@ sub DoorBird_Set($@)
|
|||||||
my $usage = "Unknown argument, choose one of";
|
my $usage = "Unknown argument, choose one of";
|
||||||
#$usage .= " Test";
|
#$usage .= " Test";
|
||||||
$usage .= " Open_Door:" . join(",", @RelayAdresses) . " OpsMode:" . join(",", @OpsModeList) . " Restart:noArg Transmit_Audio";
|
$usage .= " Open_Door:" . join(",", @RelayAdresses) . " OpsMode:" . join(",", @OpsModeList) . " Restart:noArg Transmit_Audio";
|
||||||
|
$usage .= " Receive_Audio";
|
||||||
|
|
||||||
### If the OpsModeList is not empty
|
### If the OpsModeList is not empty
|
||||||
if ((defined(${$hash->{helper}{OpsModeList}}[0])) && (${$hash->{helper}{OpsModeList}}[0] ne "")) {
|
if ((defined(${$hash->{helper}{OpsModeList}}[0])) && (${$hash->{helper}{OpsModeList}}[0] ne "")) {
|
||||||
@ -866,7 +887,6 @@ sub DoorBird_Set($@)
|
|||||||
### Call Subroutine and hand back return value
|
### Call Subroutine and hand back return value
|
||||||
return DoorBird_Light_On($hash, $option)
|
return DoorBird_Light_On($hash, $option)
|
||||||
}
|
}
|
||||||
|
|
||||||
### RESTART
|
### RESTART
|
||||||
elsif ($command eq "Restart") {
|
elsif ($command eq "Restart") {
|
||||||
### Call Subroutine and hand back return value
|
### Call Subroutine and hand back return value
|
||||||
@ -877,18 +897,16 @@ sub DoorBird_Set($@)
|
|||||||
### Call Subroutine and hand back return value
|
### Call Subroutine and hand back return value
|
||||||
return DoorBird_Live_Audio($hash, $option)
|
return DoorBird_Live_Audio($hash, $option)
|
||||||
}
|
}
|
||||||
### LIVE AUDIO TRANSMIT
|
### AUDIO RECEIVE
|
||||||
|
elsif ($command eq "Receive_Audio") {
|
||||||
|
### Call Subroutine and hand back return value
|
||||||
|
return DoorBird_Receive_Audio($hash, $option)
|
||||||
|
}
|
||||||
|
### AUDIO TRANSMIT
|
||||||
elsif ($command eq "Transmit_Audio") {
|
elsif ($command eq "Transmit_Audio") {
|
||||||
### Call Subroutine and hand back return value
|
### Call Subroutine and hand back return value
|
||||||
return DoorBird_Transmit_Audio($hash, $option)
|
return DoorBird_Transmit_Audio($hash, $option)
|
||||||
}
|
}
|
||||||
### TEST
|
|
||||||
elsif ($command eq "Test") {
|
|
||||||
### Call Subroutine and hand back return value
|
|
||||||
DoorBird_Video_Request($hash, 10, "doorbell_001", 1571506485);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
### ADD OR CHANGE FAVORITE
|
### ADD OR CHANGE FAVORITE
|
||||||
### DELETE FAVORITE
|
### DELETE FAVORITE
|
||||||
### ADD OR UPDATE SCHEDULE ENTRY
|
### ADD OR UPDATE SCHEDULE ENTRY
|
||||||
@ -2352,7 +2370,7 @@ sub DoorBird_Live_Video($$) {
|
|||||||
}
|
}
|
||||||
####END####### Define Subfunction for LIVE VIDEO REQUEST #######################################################END#####
|
####END####### Define Subfunction for LIVE VIDEO REQUEST #######################################################END#####
|
||||||
|
|
||||||
###START###### Define Subfunction for LIVE AUDIO REQUEST ######################################################START####
|
###START###### Define Subfunction for LIVE VIDEO REQUEST ######################################################START####
|
||||||
sub DoorBird_Live_Audio($$) {
|
sub DoorBird_Live_Audio($$) {
|
||||||
my ($hash, $option) = @_;
|
my ($hash, $option) = @_;
|
||||||
|
|
||||||
@ -2361,7 +2379,7 @@ sub DoorBird_Live_Audio($$) {
|
|||||||
my $url = $hash->{helper}{URL};
|
my $url = $hash->{helper}{URL};
|
||||||
|
|
||||||
### Create complete command URL for DoorBird depending on whether SessionIdSecurity has been enabled (>0) or disabled (=0)
|
### Create complete command URL for DoorBird depending on whether SessionIdSecurity has been enabled (>0) or disabled (=0)
|
||||||
my $UrlPrefix = "http://" . $url . "/bha-api/";
|
my $UrlPrefix = "http://" . $url . "/bha-api/audio-receive.cgi";
|
||||||
my $UrlPostfix;
|
my $UrlPostfix;
|
||||||
if ($hash->{helper}{SessionIdSec} > 0) {
|
if ($hash->{helper}{SessionIdSec} > 0) {
|
||||||
$UrlPostfix = "?sessionid=" . $hash->{helper}{SessionId};
|
$UrlPostfix = "?sessionid=" . $hash->{helper}{SessionId};
|
||||||
@ -2371,7 +2389,7 @@ sub DoorBird_Live_Audio($$) {
|
|||||||
my $password = DoorBird_credential_decrypt($hash->{helper}{".PASSWORD"});
|
my $password = DoorBird_credential_decrypt($hash->{helper}{".PASSWORD"});
|
||||||
$UrlPostfix = "?http-user=". $username . "&http-password=" . $password;
|
$UrlPostfix = "?http-user=". $username . "&http-password=" . $password;
|
||||||
}
|
}
|
||||||
my $AudioURL = $UrlPrefix . "audio-receive.cgi" . $UrlPostfix;
|
my $AudioURL = $UrlPrefix . $UrlPostfix;
|
||||||
|
|
||||||
### Log Entry for debugging purposes
|
### Log Entry for debugging purposes
|
||||||
Log3 $name, 5, $name. " : DoorBird_Live_Audio - AudioURL : " . $AudioURL ;
|
Log3 $name, 5, $name. " : DoorBird_Live_Audio - AudioURL : " . $AudioURL ;
|
||||||
@ -2403,6 +2421,7 @@ sub DoorBird_Live_Audio($$) {
|
|||||||
}
|
}
|
||||||
####END####### Define Subfunction for LIVE VIDEO REQUEST #######################################################END#####
|
####END####### Define Subfunction for LIVE VIDEO REQUEST #######################################################END#####
|
||||||
|
|
||||||
|
|
||||||
###START###### Define Subfunction for LIVE IMAGE REQUEST ######################################################START####
|
###START###### Define Subfunction for LIVE IMAGE REQUEST ######################################################START####
|
||||||
sub DoorBird_Image_Request($$) {
|
sub DoorBird_Image_Request($$) {
|
||||||
my ($hash, $option) = @_;
|
my ($hash, $option) = @_;
|
||||||
@ -2947,7 +2966,7 @@ sub DoorBird_Light_On($$) {
|
|||||||
}
|
}
|
||||||
####END####### Define Subfunction for LIGHT ON #################################################################END#####
|
####END####### Define Subfunction for LIGHT ON #################################################################END#####
|
||||||
|
|
||||||
###START###### Define Subfunction for LIVE AUDIO TRANSMIT #####################################################START####
|
###START###### Define Subfunction for TRANSMIT AUDIO REQUEST ##################################################START####
|
||||||
sub DoorBird_Transmit_Audio($$) {
|
sub DoorBird_Transmit_Audio($$) {
|
||||||
my ($hash, $option) = @_;
|
my ($hash, $option) = @_;
|
||||||
|
|
||||||
@ -3009,12 +3028,21 @@ sub DoorBird_Transmit_Audio($$) {
|
|||||||
Log3 $name, 5, $name. " : DoorBird_Transmit_Audio - AudioLength in seconds : " . $AudioLength;
|
Log3 $name, 5, $name. " : DoorBird_Transmit_Audio - AudioLength in seconds : " . $AudioLength;
|
||||||
Log3 $name, 5, $name. " : DoorBird_Transmit_Audio - New Filesize : " . $AudioDataSizeNew;
|
Log3 $name, 5, $name. " : DoorBird_Transmit_Audio - New Filesize : " . $AudioDataSizeNew;
|
||||||
|
|
||||||
### Create complete command URL for DoorBird depending on whether SessionIdSecurity has been enabled (>0) or disabled (=0)
|
### Create complete command URL for DoorBird depending on whether SessionIdSecurity has been enabled (>0) or disabled (=0)
|
||||||
my $UrlPrefix = "http://" . $Url . "/bha-api/";
|
my $UrlPrefix = "http://" . $Url . "/bha-api/audio-transmit.cgi";
|
||||||
my $username = DoorBird_credential_decrypt($hash->{helper}{".USER"});
|
my $UrlPostfix;
|
||||||
my $password = DoorBird_credential_decrypt($hash->{helper}{".PASSWORD"});
|
|
||||||
my $UrlPostfix = " content-type=\"audio/basic\" use-content-length=true user=". $username . " passwd=" . $password;
|
### If SessionIdSec is enabled
|
||||||
my $CommandURL = $UrlPrefix . "audio-transmit.cgi" . $UrlPostfix;
|
if ($hash->{helper}{SessionIdSec} != 0) {
|
||||||
|
$UrlPostfix = "?sessionid=" . $hash->{helper}{SessionId} . " content-type=\"audio/basic\" use-content-length=true";
|
||||||
|
}
|
||||||
|
### Id SessionID Security is disabled
|
||||||
|
else {
|
||||||
|
my $username = DoorBird_credential_decrypt($hash->{helper}{".USER"});
|
||||||
|
my $password = DoorBird_credential_decrypt($hash->{helper}{".PASSWORD"});
|
||||||
|
$UrlPostfix = " content-type=\"audio/basic\" use-content-length=true user=" . $username . " passwd=" . $password;
|
||||||
|
}
|
||||||
|
my $CommandURL = $UrlPrefix . $UrlPostfix;
|
||||||
|
|
||||||
### Log Entry for debugging purposes
|
### Log Entry for debugging purposes
|
||||||
Log3 $name, 5, $name. " : DoorBird_Transmit_Audio - CommandURL : " . $CommandURL ;
|
Log3 $name, 5, $name. " : DoorBird_Transmit_Audio - CommandURL : " . $CommandURL ;
|
||||||
@ -3051,7 +3079,89 @@ sub DoorBird_Transmit_Audio($$) {
|
|||||||
return "The audio file: " . $AudioDataPathOrig . " does not exist!"
|
return "The audio file: " . $AudioDataPathOrig . " does not exist!"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
####END####### Define Subfunction for LIVE AUDIO TRANSMIT ######################################################END#####
|
####END####### Define Subfunction for TRANSMIT AUDIO REQUEST ###################################################END#####
|
||||||
|
|
||||||
|
###START###### Define Subfunction for RECEIVE AUDIO REQUEST ###################################################START####
|
||||||
|
sub DoorBird_Receive_Audio($$) {
|
||||||
|
my ($hash, $option) = @_;
|
||||||
|
|
||||||
|
### Obtain values from hash
|
||||||
|
my $name = $hash->{NAME};
|
||||||
|
my $Username = DoorBird_credential_decrypt($hash->{helper}{".USER"});
|
||||||
|
my $Password = DoorBird_credential_decrypt($hash->{helper}{".PASSWORD"});
|
||||||
|
my $Url = $hash->{helper}{URL};
|
||||||
|
my $Sox = $hash->{helper}{SOX};
|
||||||
|
my $AudioDataPathOrig = $option;
|
||||||
|
|
||||||
|
### For Test only
|
||||||
|
my $AudioLength = 7;
|
||||||
|
|
||||||
|
### Log Entry for debugging purposes
|
||||||
|
Log3 $name, 5, $name. " : DoorBird_Live_Audio - ---------------------------------------------------------------";
|
||||||
|
|
||||||
|
### If file does not exist already
|
||||||
|
if ((-e $AudioDataPathOrig) == false) {
|
||||||
|
### Create new filepath from old filepath
|
||||||
|
my $AudioDataNew;
|
||||||
|
my $AudioDataSizeNew;
|
||||||
|
my $AudioDataPathNew = $AudioDataPathOrig;
|
||||||
|
$AudioDataPathNew =~ s/\..*//;
|
||||||
|
$AudioDataPathNew .= ".mp3";
|
||||||
|
|
||||||
|
### Create complete command URL for DoorBird depending on whether SessionIdSecurity has been enabled (>0) or disabled (=0)
|
||||||
|
my $UrlPrefix = "http://" . $Url . "/bha-api/audio-receive.cgi";
|
||||||
|
my $UrlPostfix;
|
||||||
|
|
||||||
|
### If SessionIdSec is enabled
|
||||||
|
if ($hash->{helper}{SessionIdSec} != 0) {
|
||||||
|
$UrlPostfix = "?sessionid=" . $hash->{helper}{SessionId};
|
||||||
|
}
|
||||||
|
### Id SessionID Security is disabled
|
||||||
|
else {
|
||||||
|
my $username = DoorBird_credential_decrypt($hash->{helper}{".USER"});
|
||||||
|
my $password = DoorBird_credential_decrypt($hash->{helper}{".PASSWORD"});
|
||||||
|
$UrlPostfix = " user=" . $username . " passwd=" . $password;
|
||||||
|
}
|
||||||
|
my $CommandURL = $UrlPrefix . $UrlPostfix;
|
||||||
|
|
||||||
|
|
||||||
|
### Log Entry for debugging purposes
|
||||||
|
Log3 $name, 1, $name. " : DoorBird_Live_Audio - CommandURL : " . $CommandURL ;
|
||||||
|
|
||||||
|
### Create the gst-lauch command
|
||||||
|
my $GstCommand = "gst-launch-1.0 filesrc location=<";
|
||||||
|
$GstCommand .= $CommandURL;
|
||||||
|
$GstCommand .= "> ! wavparse ! audioconvert ! lame ! filesink location=";
|
||||||
|
$GstCommand .= $AudioDataPathNew;
|
||||||
|
|
||||||
|
### Log Entry for debugging purposes
|
||||||
|
Log3 $name, 1, $name. " : DoorBird_Live_Audio - GstCommand : " . $GstCommand;
|
||||||
|
|
||||||
|
### Create command for shell
|
||||||
|
my $ShellCommand = "timeout " . ($AudioLength + 3) . " " . $GstCommand . " &";
|
||||||
|
|
||||||
|
### Log Entry for debugging purposes
|
||||||
|
Log3 $name, 1, $name. " : DoorBird_Live_Audio - ShellCommand : " . $ShellCommand;
|
||||||
|
|
||||||
|
### Pass shell command to shell and continue with the code below
|
||||||
|
eval {
|
||||||
|
system($ShellCommand) or die "Could not execute" . $ShellCommand . " ". $@;
|
||||||
|
};
|
||||||
|
|
||||||
|
Log3 $name, 1, $name. " : DoorBird_Live_Audio - File streamed successf. : " . $AudioDataPathOrig;
|
||||||
|
Log3 $name, 1, $name. " : DoorBird_Live_Audio - ---------------------------------------------------------------";
|
||||||
|
return "The audio file: " . $AudioDataPathOrig . " has been streamed to the DoorBird";
|
||||||
|
}
|
||||||
|
### If Filepath does not exist
|
||||||
|
else {
|
||||||
|
### Log Entry
|
||||||
|
Log3 $name, 1, $name. " : DoorBird_Live_Audio - Path doesn't exist : " . $AudioDataPathOrig;
|
||||||
|
Log3 $name, 1, $name. " : DoorBird_Live_Audio - ---------------------------------------------------------------";
|
||||||
|
return "The audio file: " . $AudioDataPathOrig . " does not exist!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
####END####### Define Subfunction for RECEIVE VIDEO REQUEST ####################################################END#####
|
||||||
|
|
||||||
|
|
||||||
###START###### Define Subfunction for HISTORY IMAGE REQUEST ###################################################START####
|
###START###### Define Subfunction for HISTORY IMAGE REQUEST ###################################################START####
|
||||||
### https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_NonblockingGet
|
### https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_NonblockingGet
|
||||||
@ -3484,6 +3594,9 @@ sub DoorBird_Video_Request($$$$) {
|
|||||||
elsif ($event =~ m/keypad/ ){
|
elsif ($event =~ m/keypad/ ){
|
||||||
$ReadingVideo = "keypad_video";
|
$ReadingVideo = "keypad_video";
|
||||||
}
|
}
|
||||||
|
elsif ($event =~ m/manual/ ){
|
||||||
|
$ReadingVideo = "manual_video";
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
### Create Log entry
|
### Create Log entry
|
||||||
Log3 $name, 2, $name. " : DoorBird_LastEvent_Image - Unknown event. Breaking up";
|
Log3 $name, 2, $name. " : DoorBird_LastEvent_Image - Unknown event. Breaking up";
|
||||||
@ -4221,6 +4334,7 @@ sub DoorBird_findNewestFWVersion($$$)
|
|||||||
<table>
|
<table>
|
||||||
<tr><td><ul><code>get History_Request </code></ul></td><td> : Downloads the pictures of the last events of the doorbell and motion sensor. (Refer to attribute <code>MaxHistory</code>) </td></tr>
|
<tr><td><ul><code>get History_Request </code></ul></td><td> : Downloads the pictures of the last events of the doorbell and motion sensor. (Refer to attribute <code>MaxHistory</code>) </td></tr>
|
||||||
<tr><td><ul><code>get Image_Request </code></ul></td><td> : Downloads the current Image of the camera of DoorBird unit. </td></tr>
|
<tr><td><ul><code>get Image_Request </code></ul></td><td> : Downloads the current Image of the camera of DoorBird unit. </td></tr>
|
||||||
|
<tr><td><ul><code>get Video_Request <Value> </code></ul></td><td> : Downloads the current Video of the camera of DoorBird unit for th etime in seconds given. </td></tr>
|
||||||
<tr><td><ul><code>get Info_Request </code></ul></td><td> : Downloads the current internal setup such as relay configuration, firmware version etc. of the DoorBird unit. The obtained relay adresses will be used as options for the <code>Open_Door</code> command. </td></tr>
|
<tr><td><ul><code>get Info_Request </code></ul></td><td> : Downloads the current internal setup such as relay configuration, firmware version etc. of the DoorBird unit. The obtained relay adresses will be used as options for the <code>Open_Door</code> command. </td></tr>
|
||||||
</table>
|
</table>
|
||||||
<table>
|
<table>
|
||||||
@ -4399,6 +4513,7 @@ sub DoorBird_findNewestFWVersion($$$)
|
|||||||
<table>
|
<table>
|
||||||
<tr><td><ul><code>get History_Request </code></ul></td><td> : Lädt die Bilder der letzten Ereignisse durch die Türklingel und dem Bewegungssensor herunter. (Siehe auch Attribut <code>MaxHistory</code>)</td></tr>
|
<tr><td><ul><code>get History_Request </code></ul></td><td> : Lädt die Bilder der letzten Ereignisse durch die Türklingel und dem Bewegungssensor herunter. (Siehe auch Attribut <code>MaxHistory</code>)</td></tr>
|
||||||
<tr><td><ul><code>get Image_Request </code></ul></td><td> : Lädt das gegenwärtige Bild der DoorBird - Kamera herunter.</td></tr>
|
<tr><td><ul><code>get Image_Request </code></ul></td><td> : Lädt das gegenwärtige Bild der DoorBird - Kamera herunter.</td></tr>
|
||||||
|
<tr><td><ul><code>get Video_Request <Value> </code></ul></td><td> : Lädt das gegenwärtige Video der DoorBird - Kamera für die gegebene Zeit in Sekunden herunter.</td></tr>
|
||||||
<tr><td><ul><code>get Info_Request </code></ul></td><td> : Lädt das interne Setup (Firmware Version, Relais Konfiguration etc.) herunter. Die übermittelten Relais-Adressen werden als Option für das Kommando <code>Open_Door</code> verwendet.</td></tr>
|
<tr><td><ul><code>get Info_Request </code></ul></td><td> : Lädt das interne Setup (Firmware Version, Relais Konfiguration etc.) herunter. Die übermittelten Relais-Adressen werden als Option für das Kommando <code>Open_Door</code> verwendet.</td></tr>
|
||||||
</table>
|
</table>
|
||||||
<table>
|
<table>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user