2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 16:56:54 +00:00

49_SSCAM: change to new RemoveInternalTimer for functions

git-svn-id: https://svn.fhem.de/fhem/trunk@11167 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2016-04-02 07:19:50 +00:00
parent f378caefea
commit 57aeb1bd56
2 changed files with 57 additions and 23 deletions

View File

@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
- change: 49_SSCAM: change to new RemoveInternalTimer for functions
- feature: new module 52_I2C_K30.pm added
- bugfix: 98_weekprofile: send reference profile to device
- feature: 10_pilight_ctrl | 30_pilight_switch: support protocol daycom

View File

@ -27,8 +27,9 @@
##########################################################################################################
# Versions History:
#
# 1.23 02.04.2016 change to RemoveInternalTimer for functions
# 1.22 27.03.2016 bugfix "link_open" doesn't work after last update
# 1.21 23.03.2016 added "lastrec","lastrec_open" to playback last recording
# 1.21 23.03.2016 added "lastrec"," lastrec_open" to playback last recording
# 1.20.3 19.03.2016 change: delay of InternalTimer(s) changed
# "ptzlistpresets" - "id" changed to "position" according to Synology-ticket
# run "geteventlist" automatically after recording-stop
@ -114,11 +115,10 @@
package main;
use JSON qw( decode_json ); # From CPAN,, Debian libjson-perl
use JSON qw( decode_json ); # from CPAN, Debian: apt-get install libperl-JSON
use Data::Dumper; # Perl Core module
use strict;
use warnings;
use Time::HiRes qw(gettimeofday);
use MIME::Base64;
use HttpUtils;
@ -201,9 +201,9 @@ sub SSCam_Define {
readingsEndUpdate($hash,1);
getcredentials($hash,1); # Credentials lesen und in RAM laden ($boot=1)
RemoveInternalTimer($hash); # alle Timer löschen
# initiale Rotinen nach Restart ausführen , verzögerter zufälliger Start
# initiale Routinen nach Restart ausführen , verzögerter zufälliger Start
RemoveInternalTimer($hash, "initonboot");
InternalTimer(gettimeofday()+int(rand(30)), "initonboot", $hash, 0);
return undef;
@ -541,6 +541,8 @@ sub initonboot ($) {
if ($init_done == 1) {
RemoveInternalTimer($hash); # alle Timer löschen
# check ob alle Recordings = "Stop" nach Reboot -> sonst stoppen
if (ReadingsVal($hash->{NAME}, "Record", "Stop") eq "Start") {
$logstr = "Recording of $hash->{CAMNAME} seems to be still active after FHEM restart - try to stop it now";
@ -565,16 +567,18 @@ sub initonboot ($) {
}
# Subroutine Watchdog-Timer starten (sollen Cam-Infos regelmäßig abgerufen werden ?), verzögerter zufälliger Start 0-60s
# Subroutine Watchdog-Timer starten (sollen Cam-Infos regelmäßig abgerufen werden ?), verzögerter zufälliger Start 0-30s
RemoveInternalTimer($hash, "watchdogpollcaminfo");
InternalTimer(gettimeofday()+int(rand(30)), "watchdogpollcaminfo", $hash, 0);
}
else
{
RemoveInternalTimer($hash, "initonboot");
InternalTimer(gettimeofday()+1, "initonboot", $hash, 0);
}
return undef;
return;
}
@ -745,6 +749,7 @@ sub watchdogpollcaminfo ($) {
$hash->{HELPER}{OLDVALPOLLNOLOGGING} = "0";
}
}
RemoveInternalTimer($hash, "watchdogpollcaminfo");
InternalTimer(gettimeofday()+$watchdogtimer, "watchdogpollcaminfo", $hash, 0);
return undef;
}
@ -808,13 +813,20 @@ sub camstartrec ($) {
}
else
{
InternalTimer(gettimeofday()+1, "camstartrec", $hash, 0);
RemoveInternalTimer($hash, "camstartrec");
InternalTimer(gettimeofday()+1, "camstartrec", $hash);
}
}
###############################################################################
### Kamera Aufnahme stoppen
sub stoprec ($) {
# Hilfsroutine Rückkehr aus Webaufruf Stopfunktion
my ($hash) = @_;
return camstoprec($hash);
}
sub camstoprec ($) {
my ($hash) = @_;
my $camname = $hash->{CAMNAME};
@ -862,6 +874,7 @@ sub camstoprec ($) {
}
else
{
RemoveInternalTimer($hash, "camstoprec");
InternalTimer(gettimeofday()+1, "camstoprec", $hash, 0);
}
}
@ -916,6 +929,7 @@ sub camexpmode ($) {
}
else
{
RemoveInternalTimer($hash, "camexpmode");
InternalTimer(gettimeofday()+1, "camexpmode", $hash, 0);
}
}
@ -971,6 +985,7 @@ sub cammotdetsc ($) {
}
else
{
RemoveInternalTimer($hash, "cammotdetsc");
InternalTimer(gettimeofday()+1, "cammotdetsc", $hash, 0);
}
}
@ -1026,6 +1041,7 @@ sub camsnap ($) {
}
else
{
RemoveInternalTimer($hash, "camsnap");
InternalTimer(gettimeofday()+1, "camsnap", $hash, 0);
}
}
@ -1082,6 +1098,7 @@ sub runliveview ($) {
}
else
{
RemoveInternalTimer($hash, "runliveview");
InternalTimer(gettimeofday()+1, "runliveview", $hash, 0);
}
}
@ -1136,6 +1153,7 @@ sub stopliveview ($) {
}
else
{
RemoveInternalTimer($hash, "stopliveview");
InternalTimer(gettimeofday()+1, "stopliveview", $hash, 0);
}
}
@ -1166,6 +1184,7 @@ sub getsnapfilename ($) {
}
else
{
RemoveInternalTimer($hash, "getsnapfilename");
InternalTimer(gettimeofday()+1, "getsnapfilename", $hash, 0);
}
}
@ -1197,6 +1216,7 @@ sub extevent ($) {
}
else
{
RemoveInternalTimer($hash, "extevent");
InternalTimer(gettimeofday()+1, "extevent", $hash, 0);
}
}
@ -1318,6 +1338,7 @@ sub doptzaction ($) {
}
else
{
RemoveInternalTimer($hash, "doptzaction");
InternalTimer(gettimeofday()+1, "doptzaction", $hash, 0);
}
}
@ -1347,6 +1368,7 @@ sub movestop ($) {
}
else
{
RemoveInternalTimer($hash, "movestop");
InternalTimer(gettimeofday()+1, "movestop", $hash, 0);
}
}
@ -1379,6 +1401,7 @@ sub camenable ($) {
}
else
{
RemoveInternalTimer($hash, "camenable");
InternalTimer(gettimeofday()+1, "camenable", $hash, 0);
}
}
@ -1411,6 +1434,7 @@ sub camdisable ($) {
}
else
{
RemoveInternalTimer($hash, "camdisable");
InternalTimer(gettimeofday()+1, "camdisable", $hash, 0);
}
}
@ -1486,6 +1510,7 @@ sub getsvsinfo ($) {
}
else
{
RemoveInternalTimer($hash, "getsvsinfo");
InternalTimer(gettimeofday()+1, "getsvsinfo", $hash, 0);
}
@ -1517,6 +1542,7 @@ sub getcaminfo ($) {
}
else
{
RemoveInternalTimer($hash, "getcaminfo");
InternalTimer(gettimeofday()+1, "getcaminfo", $hash, 0);
}
@ -1549,6 +1575,7 @@ sub geteventlist ($) {
}
else
{
RemoveInternalTimer($hash, "geteventlist");
InternalTimer(gettimeofday()+1, "geteventlist", $hash, 0);
}
@ -1579,6 +1606,7 @@ sub getmotionenum ($) {
}
else
{
RemoveInternalTimer($hash, "getmotionenum");
InternalTimer(gettimeofday()+1, "getmotionenum", $hash, 0);
}
@ -1610,6 +1638,7 @@ sub getcapabilities ($) {
}
else
{
RemoveInternalTimer($hash, "getcapabilities");
InternalTimer(gettimeofday()+1, "getcapabilities", $hash, 0);
}
@ -1647,6 +1676,7 @@ sub getptzlistpreset ($) {
}
else
{
RemoveInternalTimer($hash, "getptzlistpreset");
InternalTimer(gettimeofday()+1, "getptzlistpreset", $hash, 0);
}
@ -1685,6 +1715,7 @@ sub getptzlistpatrol ($) {
}
else
{
RemoveInternalTimer($hash, "getptzlistpatrol");
InternalTimer(gettimeofday()+1, "getptzlistpatrol", $hash, 0);
}
@ -2718,7 +2749,8 @@ sub camret_nonbl ($) {
if ($rectime != 0) {
# Stop der Aufnahme nach Ablauf $rectime, wenn rectime = 0 -> endlose Aufnahme
InternalTimer(gettimeofday()+$rectime, "camstoprec", $hash, 0);
RemoveInternalTimer($hash, "stoprec");
InternalTimer(gettimeofday()+$rectime, "stoprec", $hash );
}
}
@ -2902,7 +2934,8 @@ sub camret_nonbl ($) {
$logstr = "--- End Function cam: $OpMode nonblocking ---";
&printlog($hash,$logstr,"4");
InternalTimer(gettimeofday()+($hash->{HELPER}{GOMOVETIME}), "movestop", $hash, 0);
RemoveInternalTimer($hash, "movestop");
InternalTimer(gettimeofday()+($hash->{HELPER}{GOMOVETIME}), "movestop", $hash);
}
elsif ($OpMode eq "movestop")
{