mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-07 22:29:19 +00:00
49_SSCam: contrib 9.3.0
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@22256 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
164fcdb12b
commit
c84e99a4d5
@ -358,6 +358,14 @@ my %SSCAM_imc = ( # disbled String m
|
|||||||
1 => { 0 => "off", 1 => "inactive" },
|
1 => { 0 => "off", 1 => "inactive" },
|
||||||
);
|
);
|
||||||
|
|
||||||
|
my %zd = ( # Hash der Zoomsteuerung
|
||||||
|
".++" => {dir => "in", sttime => 6, moveType => "Start", panimg => "CAMLEFTFAST.png", },
|
||||||
|
"+" => {dir => "in", sttime => 0.1, moveType => "Start", panimg => "CAMLEFT.png", },
|
||||||
|
"stop" => {dir => undef, sttime => undef, moveType => "Stop" , panimg => undef, },
|
||||||
|
"-" => {dir => "out", sttime => 0.1, moveType => "Start", panimg => "CAMRIGHT.png", },
|
||||||
|
"--." => {dir => "out", sttime => 6, moveType => "Start", panimg => "CAMRIGHTFAST.png", }
|
||||||
|
);
|
||||||
|
|
||||||
# Standardvariablen und Forward-Deklaration
|
# Standardvariablen und Forward-Deklaration
|
||||||
my $SSCam_slim = 3; # default Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
my $SSCam_slim = 3; # default Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
||||||
my $SSCAM_snum = "1,2,3,4,5,6,7,8,9,10"; # mögliche Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
my $SSCAM_snum = "1,2,3,4,5,6,7,8,9,10"; # mögliche Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
||||||
@ -2882,14 +2890,6 @@ sub SSCam_setZoom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($hash->{HELPER}{ACTIVE} eq "off") {
|
if ($hash->{HELPER}{ACTIVE} eq "off") {
|
||||||
my %zd = (
|
|
||||||
"+" => {dir => "in", sttime => 0.5, moveType => "Start" },
|
|
||||||
".++" => {dir => "in", sttime => 6, moveType => "Start" },
|
|
||||||
"stop" => {dir => undef, sttime => undef, moveType => "Stop" },
|
|
||||||
"-" => {dir => "out", sttime => 0.5, moveType => "Start" },
|
|
||||||
"--." => {dir => "out", sttime => 6, moveType => "Start" }
|
|
||||||
);
|
|
||||||
|
|
||||||
$hash->{HELPER}{ZOOM}{DIR} = $zd{$op}{dir} // $hash->{HELPER}{ZOOM}{DIR}; # Richtung (in / out)
|
$hash->{HELPER}{ZOOM}{DIR} = $zd{$op}{dir} // $hash->{HELPER}{ZOOM}{DIR}; # Richtung (in / out)
|
||||||
$hash->{HELPER}{ZOOM}{MOVETYPE} = $zd{$op}{moveType}; # Start / Stop
|
$hash->{HELPER}{ZOOM}{MOVETYPE} = $zd{$op}{moveType}; # Start / Stop
|
||||||
$hash->{HELPER}{ZOOM}{STOPTIME} = $zd{$op}{sttime}; # Stopzeit -> Verzögerungszeit für Stop nach Start
|
$hash->{HELPER}{ZOOM}{STOPTIME} = $zd{$op}{sttime}; # Stopzeit -> Verzögerungszeit für Stop nach Start
|
||||||
@ -7384,6 +7384,9 @@ sub SSCam_ptzpanel {
|
|||||||
$ptz_ret .= "<style>TD.ptzcontrol {padding: 5px 7px;}</style>";
|
$ptz_ret .= "<style>TD.ptzcontrol {padding: 5px 7px;}</style>";
|
||||||
$ptz_ret .= "<style>TD.pcenter {text-align: center;} </style>";
|
$ptz_ret .= "<style>TD.pcenter {text-align: center;} </style>";
|
||||||
$ptz_ret .= "<style>.defsize { font-size:16px; } </style>";
|
$ptz_ret .= "<style>.defsize { font-size:16px; } </style>";
|
||||||
|
|
||||||
|
### PTZ-Elemente
|
||||||
|
#########################
|
||||||
$ptz_ret .= '<table class="rc_body defsize">';
|
$ptz_ret .= '<table class="rc_body defsize">';
|
||||||
|
|
||||||
for my $rownr (0..9) {
|
for my $rownr (0..9) {
|
||||||
@ -7397,8 +7400,7 @@ sub SSCam_ptzpanel {
|
|||||||
for my $btnnr (0..$#btn) {
|
for my $btnnr (0..$#btn) {
|
||||||
$ptz_ret .= "<td class='ptzcontrol'>";
|
$ptz_ret .= "<td class='ptzcontrol'>";
|
||||||
if ($btn[$btnnr] ne "") {
|
if ($btn[$btnnr] ne "") {
|
||||||
my $cmd;
|
my ($cmd,$img);
|
||||||
my $img;
|
|
||||||
|
|
||||||
if ($btn[$btnnr] =~ /(.*?):(.*)/) { # enthält Komando -> <command>:<image>
|
if ($btn[$btnnr] =~ /(.*?):(.*)/) { # enthält Komando -> <command>:<image>
|
||||||
$cmd = $1;
|
$cmd = $1;
|
||||||
@ -7435,8 +7437,57 @@ sub SSCam_ptzpanel {
|
|||||||
}
|
}
|
||||||
$ptz_ret .= "</table>";
|
$ptz_ret .= "</table>";
|
||||||
|
|
||||||
|
### Zoom
|
||||||
|
###############################
|
||||||
|
if(SSCam_IsCapZoom($hash)) { # wenn Zoom Eigenschaft
|
||||||
|
|
||||||
|
$ptz_ret .= '<table class="rc_body defsize">';
|
||||||
|
$ptz_ret .= "<tr>";
|
||||||
|
$ptz_ret .= "<td class='ptzcontrol pcenter'; colspan=4>";
|
||||||
|
$ptz_ret .= 'Zoom: ';
|
||||||
|
$ptz_ret .= "</td>";
|
||||||
|
$ptz_ret .= "</tr>";
|
||||||
|
$ptz_ret .= "<tr>";
|
||||||
|
|
||||||
|
my @za = qw(.++ + - --.);
|
||||||
|
|
||||||
|
for my $cmd (@za) {
|
||||||
|
$ptz_ret .= "<td class='ptzcontrol'>";
|
||||||
|
|
||||||
|
my $img = $zd{$cmd}{panimg};
|
||||||
|
if(!$img) {
|
||||||
|
$ptz_ret .= $cmd;
|
||||||
|
$ptz_ret .= "</td>";
|
||||||
|
$ptz_ret .= "</tr>";
|
||||||
|
$ptz_ret .= "<tr>";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($img =~ m/\.svg/x) { # Verwendung für SVG's
|
||||||
|
$img = FW_makeImage($img, $cmd, "rc-button");
|
||||||
|
|
||||||
|
} else { # $FW_ME = URL-Pfad unter dem der FHEMWEB-Server via HTTP erreichbar ist, z.B. /fhem
|
||||||
|
if($ftui) {
|
||||||
|
$img = "<img src=\"$FW_ME/$iconpath/$iconprefix$img\" height=\"$pbsf%\" width=\"$pbsf%\">";
|
||||||
|
} else {
|
||||||
|
$img = "<img src=\"$FW_ME/$iconpath/$iconprefix$img\" height=\"$pbs%\" width=\"$pbs%\">";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
my $cmd1 = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name setZoom $cmd')"; # $FW_subdir = Sub-path in URL, used by FLOORPLAN/weblink
|
||||||
|
$cmd1 = "ftui.setFhemStatus('set $name setZoom $cmd')" if($ftui);
|
||||||
|
|
||||||
|
$ptz_ret .= "<a onClick=\"$cmd1\">$img</a>";
|
||||||
|
|
||||||
|
$ptz_ret .= "</td>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$ptz_ret .= "</tr>";
|
||||||
|
$ptz_ret .= "</table>";
|
||||||
|
}
|
||||||
|
|
||||||
|
### add Preset / Patrols
|
||||||
###############################
|
###############################
|
||||||
# add Preset / Patrols / Zoom
|
|
||||||
if(!$ftui) {
|
if(!$ftui) {
|
||||||
my ($Presets,$Patrols,$zoom,$fn);
|
my ($Presets,$Patrols,$zoom,$fn);
|
||||||
my $cmdPreset = "goPreset";
|
my $cmdPreset = "goPreset";
|
||||||
@ -7470,20 +7521,6 @@ sub SSCam_ptzpanel {
|
|||||||
$Patrols = FW_pH "cmd.$name=set $name $cmdPatrol", $cmdPatrol, 0, "", 1, 1;
|
$Patrols = FW_pH "cmd.$name=set $name $cmdPatrol", $cmdPatrol, 0, "", 1, 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
## Zoom
|
|
||||||
for $fn (sort keys %{$data{webCmdFn}}) {
|
|
||||||
no strict "refs";
|
|
||||||
$zoom = &{$data{webCmdFn}{$fn}}($FW_wname,$name,"",$cmdZoom,$SSCam_valZoom);
|
|
||||||
use strict "refs";
|
|
||||||
last if(defined($zoom));
|
|
||||||
}
|
|
||||||
|
|
||||||
if($zoom) {
|
|
||||||
$zoom =~ s,^<td[^>]*>(.*)</td>$,$1,;
|
|
||||||
} else {
|
|
||||||
$zoom = FW_pH "cmd.$name=set $name $cmdZoom", $cmdZoom, 0, "", 1, 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
## Ausgabe
|
## Ausgabe
|
||||||
$ptz_ret .= '<table class="rc_body defsize">';
|
$ptz_ret .= '<table class="rc_body defsize">';
|
||||||
|
|
||||||
@ -7499,12 +7536,6 @@ sub SSCam_ptzpanel {
|
|||||||
$ptz_ret .= "</tr>";
|
$ptz_ret .= "</tr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(SSCam_IsCapZoom($hash)) {
|
|
||||||
$ptz_ret .= "<tr>";
|
|
||||||
$ptz_ret .= "<td>Zoom: </td><td class='pcenter'>$zoom</td>";
|
|
||||||
$ptz_ret .= "</tr>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$ptz_ret .= "</table>";
|
$ptz_ret .= "</table>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user