mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
49_SSCam: Telegram send attributes: new key option => silent, peer can be fetched from r:<reading>
git-svn-id: https://svn.fhem.de/fhem/trunk@27242 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
ff973d0a6b
commit
de901959c8
@ -1,5 +1,7 @@
|
|||||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
# 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.
|
# Do not insert empty lines here, update check depends on it.
|
||||||
|
- feature: 49_SSCam: Telegram send attributes: new key option => silent,
|
||||||
|
peer can be fetched from r:<reading>
|
||||||
- feature: 72_FRITZBOX: Anzeigen aus luaInfo verschönert
|
- feature: 72_FRITZBOX: Anzeigen aus luaInfo verschönert
|
||||||
Fehlh. Lod-Eintrag gefixed
|
Fehlh. Lod-Eintrag gefixed
|
||||||
- feature: 76_SMAInverter: read PV-Power (Hybridinverter)
|
- feature: 76_SMAInverter: read PV-Power (Hybridinverter)
|
||||||
|
@ -31,6 +31,12 @@
|
|||||||
# Example of defining a Cam-device: define CamCP1 SSCAM Carport 192.168.2.20 [5000] [HTTP(S)]
|
# Example of defining a Cam-device: define CamCP1 SSCAM Carport 192.168.2.20 [5000] [HTTP(S)]
|
||||||
# Example of defining a SVS-device: define SDS1 SSCAM SVS 192.168.2.20 [5000] [HTTP(S)]
|
# Example of defining a SVS-device: define SDS1 SSCAM SVS 192.168.2.20 [5000] [HTTP(S)]
|
||||||
#
|
#
|
||||||
|
#########################################################################################################################
|
||||||
|
#
|
||||||
|
# Leerzeichen entfernen: sed -i 's/[[:space:]]*$//' FHEM/49_SSCam.pm
|
||||||
|
# Commandref prüfen: sudo perl contrib/commandref_join.pl FHEM/49_SSCam.pm
|
||||||
|
#
|
||||||
|
#########################################################################################################################
|
||||||
|
|
||||||
package FHEM::SSCam; ## no critic 'package'
|
package FHEM::SSCam; ## no critic 'package'
|
||||||
|
|
||||||
@ -186,6 +192,7 @@ BEGIN {
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
my %vNotesIntern = (
|
my %vNotesIntern = (
|
||||||
|
"9.11.0" => "14.02.2023 Telegram send attributes extended by key option => silent, peer can be fetch from r:<reading> ",
|
||||||
"9.10.9" => "22.01.2023 substitution of \$#TIME corrected ",
|
"9.10.9" => "22.01.2023 substitution of \$#TIME corrected ",
|
||||||
"9.10.8" => "14.01.2023 add blank line in setter runView, goPreset, runPatrol ",
|
"9.10.8" => "14.01.2023 add blank line in setter runView, goPreset, runPatrol ",
|
||||||
"9.10.7" => "02.08.2022 allow placeholders #CAM, #DATE, #TIME, #FILE, #CTIME (also for Email) ",
|
"9.10.7" => "02.08.2022 allow placeholders #CAM, #DATE, #TIME, #FILE, #CTIME (also for Email) ",
|
||||||
@ -1786,6 +1793,7 @@ return;
|
|||||||
################################################################
|
################################################################
|
||||||
sub _setsnap { ## no critic "not used"
|
sub _setsnap { ## no critic "not used"
|
||||||
my $paref = shift;
|
my $paref = shift;
|
||||||
|
|
||||||
my $hash = $paref->{hash};
|
my $hash = $paref->{hash};
|
||||||
my $name = $paref->{name};
|
my $name = $paref->{name};
|
||||||
my $prop = $paref->{prop} // q{};
|
my $prop = $paref->{prop} // q{};
|
||||||
@ -9589,9 +9597,10 @@ sub prepareSendData {
|
|||||||
|
|
||||||
### Schnappschüsse mit Telegram versenden
|
### Schnappschüsse mit Telegram versenden
|
||||||
# snapTelegramTxt aus $hash->{HELPER}{TELEMSG}
|
# snapTelegramTxt aus $hash->{HELPER}{TELEMSG}
|
||||||
# Format in $hash->{HELPER}{TELEMSG} muss sein: tbot => <teleBot Device>,
|
#
|
||||||
# peers => <peer1 peer2 ..>, subject => <Beschreibungstext>
|
# Format in $hash->{HELPER}{TELEMSG} muss sein:
|
||||||
############################################################################
|
# tbot => <teleBot Device>, peers => <peer1 peer2 ..>, subject => <Beschreibungstext>
|
||||||
|
################################################################################################
|
||||||
if($OpMode =~ /^getsnap/x && $hash->{HELPER}{CANTELESNAP}) {
|
if($OpMode =~ /^getsnap/x && $hash->{HELPER}{CANTELESNAP}) {
|
||||||
delete $hash->{HELPER}{CANTELESNAP};
|
delete $hash->{HELPER}{CANTELESNAP};
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac}++;
|
$data{SSCam}{$name}{SENDCOUNT}{$tac}++;
|
||||||
@ -9617,6 +9626,7 @@ sub prepareSendData {
|
|||||||
'tac' => $tac,
|
'tac' => $tac,
|
||||||
'telebot' => $telemsg->{tbot},
|
'telebot' => $telemsg->{tbot},
|
||||||
'peers' => $telemsg->{peers},
|
'peers' => $telemsg->{peers},
|
||||||
|
'option' => $telemsg->{option}, # Versandoptionen
|
||||||
'MediaStream' => '-1', # Code für MediaStream im TelegramBot (png/jpg = -1)
|
'MediaStream' => '-1', # Code für MediaStream im TelegramBot (png/jpg = -1)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -9626,9 +9636,10 @@ sub prepareSendData {
|
|||||||
|
|
||||||
### Aufnahmen mit Telegram versenden
|
### Aufnahmen mit Telegram versenden
|
||||||
# recTelegramTxt aus $hash->{HELPER}{TELERECMSG}
|
# recTelegramTxt aus $hash->{HELPER}{TELERECMSG}
|
||||||
# Format in $hash->{HELPER}{TELEMSG} muss sein: tbot => <teleBot Device>,
|
#
|
||||||
# peers => <peer1 peer2 ..>, subject => <Beschreibungstext>
|
# Format in $hash->{HELPER}{TELEMSG} muss sein:
|
||||||
###########################################################################
|
# tbot => <teleBot Device>, peers => <peer1 peer2 ..>, subject => <Beschreibungstext>
|
||||||
|
#################################################################################################
|
||||||
if($OpMode =~ /^GetRec/x && $hash->{HELPER}{CANTELEREC}) {
|
if($OpMode =~ /^GetRec/x && $hash->{HELPER}{CANTELEREC}) {
|
||||||
delete $hash->{HELPER}{CANTELEREC};
|
delete $hash->{HELPER}{CANTELEREC};
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac}++;
|
$data{SSCam}{$name}{SENDCOUNT}{$tac}++;
|
||||||
@ -9653,6 +9664,7 @@ sub prepareSendData {
|
|||||||
'opmode' => $OpMode,
|
'opmode' => $OpMode,
|
||||||
'telebot' => $telemsg->{tbot},
|
'telebot' => $telemsg->{tbot},
|
||||||
'peers' => $telemsg->{peers},
|
'peers' => $telemsg->{peers},
|
||||||
|
'option' => $telemsg->{option}, # Versandoptionen
|
||||||
'tac' => $tac,
|
'tac' => $tac,
|
||||||
'MediaStream' => '-30', # Code für MediaStream im TelegramBot (png/jpg = -1)
|
'MediaStream' => '-30', # Code für MediaStream im TelegramBot (png/jpg = -1)
|
||||||
}
|
}
|
||||||
@ -9810,7 +9822,7 @@ sub _sendChat {
|
|||||||
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = delete $extparamref->{$key} if(exists $extparamref->{$key});
|
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = delete $extparamref->{$key} if(exists $extparamref->{$key});
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3($name, 4, "$name - param $key is set to \"".($data{SSCam}{$name}{PARAMS}{$tac}{$key} // "")."\" ") if($key !~ /[sv]dat/x);
|
Log3($name, 4, "$name - param $key is set to >".($data{SSCam}{$name}{PARAMS}{$tac}{$key} // "")."< ") if($key !~ /[sv]dat/x);
|
||||||
Log3($name, 4, "$name - param $key is set") if($key =~ /[sv]dat/x && $data{SSCam}{$name}{PARAMS}{$tac}{$key} ne '');
|
Log3($name, 4, "$name - param $key is set") if($key =~ /[sv]dat/x && $data{SSCam}{$name}{PARAMS}{$tac}{$key} ne '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10062,21 +10074,25 @@ return ($subject,$fname);
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
sub _prepSendTelegram {
|
sub _prepSendTelegram {
|
||||||
my $paref = shift;
|
my $paref = shift;
|
||||||
|
|
||||||
my $hash = $paref->{hash};
|
my $hash = $paref->{hash};
|
||||||
my $calias = $paref->{calias};
|
my $calias = $paref->{calias};
|
||||||
my $mt = $paref->{mt};
|
my $mt = $paref->{mt};
|
||||||
my $date = $paref->{date};
|
my $date = $paref->{date};
|
||||||
my $time = $paref->{time};
|
my $time = $paref->{time};
|
||||||
|
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
my ($tbott,$peert,$subjt);
|
my ($tbott,$peert,$subjt,$optt);
|
||||||
|
|
||||||
$mt =~ s/['"]//gx;
|
$mt =~ s/['"]//gx;
|
||||||
|
|
||||||
my ($telebot,$peers,$subj) = split(",", $mt, 3 );
|
my ($telebot, $peers, $subj, $opt) = split ",", $mt, 4;
|
||||||
$tbott = (split("=>", $telebot))[1] if($telebot);
|
|
||||||
$peert = (split("=>", $peers ))[1] if($peers);
|
$tbott = (split "=>", $telebot)[1] if($telebot);
|
||||||
$subjt = (split("=>", $subj ))[1] if($subj);
|
$peert = (split "=>", $peers )[1] if($peers);
|
||||||
|
$subjt = (split "=>", $subj )[1] if($subj);
|
||||||
|
$optt = (split "=>", $opt )[1] if($opt);
|
||||||
|
|
||||||
$tbott = trim ($tbott) if($tbott);
|
$tbott = trim ($tbott) if($tbott);
|
||||||
$peert = trim ($peert) if($peert);
|
$peert = trim ($peert) if($peert);
|
||||||
@ -10092,6 +10108,7 @@ sub _prepSendTelegram {
|
|||||||
$telemsg{tbot} = "$tbott" if($tbott);
|
$telemsg{tbot} = "$tbott" if($tbott);
|
||||||
$telemsg{peers} = "$peert" if($peert);
|
$telemsg{peers} = "$peert" if($peert);
|
||||||
$telemsg{subject} = "$subjt" if($subjt);
|
$telemsg{subject} = "$subjt" if($subjt);
|
||||||
|
$telemsg{option} = "$optt" if($optt);
|
||||||
|
|
||||||
return \%telemsg;
|
return \%telemsg;
|
||||||
}
|
}
|
||||||
@ -10110,33 +10127,34 @@ sub _sendTelegram {
|
|||||||
Log3($name, 4, "$name - ####################################################");
|
Log3($name, 4, "$name - ####################################################");
|
||||||
|
|
||||||
my %teleparams = (
|
my %teleparams = (
|
||||||
'subject' => { 'default'=>'', 'required'=>0, 'set'=>1},
|
'subject' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1},
|
||||||
'part1type' => { 'default'=>'text/html; charset=UTF-8', 'required'=>1, 'set'=>1},
|
'part1type' => {'attr'=>'', 'default'=>'text/html; charset=UTF-8', 'required'=>1, 'set'=>1},
|
||||||
'part1txt' => { 'default'=>'', 'required'=>0, 'set'=>1},
|
'part1txt' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1},
|
||||||
'part2type' => { 'default'=>'', 'required'=>0, 'set'=>1},
|
'part2type' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1},
|
||||||
'sdat' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Hashref der Bilddaten (Bilddaten base64 codiert), wenn gesetzt muss 'part2type' auf 'image/jpeg' gesetzt sein
|
'sdat' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # Hashref der Bilddaten (Bilddaten base64 codiert), wenn gesetzt muss 'part2type' auf 'image/jpeg' gesetzt sein
|
||||||
'image' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Daten als File, wenn gesetzt muss 'part2type' auf 'image/jpeg' gesetzt sein
|
'image' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # Daten als File, wenn gesetzt muss 'part2type' auf 'image/jpeg' gesetzt sein
|
||||||
'fname' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Filename für "image"
|
'fname' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # Filename für "image"
|
||||||
'lsnaptime' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Zeitstempel der Bilddaten
|
'lsnaptime' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # Zeitstempel der Bilddaten
|
||||||
'opmode' => { 'default'=>'', 'required'=>1, 'set'=>1}, # OpMode muss gesetzt sein
|
'opmode' => {'attr'=>'', 'default'=>'', 'required'=>1, 'set'=>1}, # OpMode muss gesetzt sein
|
||||||
'tac' => { 'default'=>'', 'required'=>0, 'set'=>1}, # übermittelter Transaktionscode der ausgewerteten Transaktion
|
'tac' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # übermittelter Transaktionscode der ausgewerteten Transaktion
|
||||||
'vdat' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Hashref der Videodaten
|
'vdat' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # Hashref der Videodaten
|
||||||
'telebot' => { 'default'=>'', 'required'=>1, 'set'=>1}, # TelegramBot-Device welches zum Senden verwendet werden soll
|
'telebot' => {'attr'=>'', 'default'=>'', 'required'=>1, 'set'=>1}, # TelegramBot-Device welches zum Senden verwendet werden soll
|
||||||
'peers' => { 'default'=>'', 'required'=>0, 'set'=>1}, # TelegramBot Peers
|
'peers' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # TelegramBot Peers
|
||||||
'MediaStream' => { 'default'=>'', 'required'=>0, 'set'=>1}, # Code für MediaStream im TelegramBot (png/jpg = -1)
|
'option' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # TelegramBot Sendeoptionen
|
||||||
|
'MediaStream' => {'attr'=>'', 'default'=>'', 'required'=>0, 'set'=>1}, # Code für MediaStream im TelegramBot (png/jpg = -1)
|
||||||
);
|
);
|
||||||
|
|
||||||
my $tac = $extparamref->{tac};
|
my $tac = $extparamref->{tac};
|
||||||
|
|
||||||
for my $key (keys %teleparams) {
|
for my $key (keys %teleparams) {
|
||||||
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = AttrVal ($name, $teleparams{$key}->{attr}, $teleparams{$key}->{default})
|
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = AttrVal ($name, $teleparams{$key}->{attr}, $teleparams{$key}->{default})
|
||||||
if(exists $teleparams{$key}->{attr});
|
if($teleparams{$key}->{attr});
|
||||||
if($teleparams{$key}->{set}) {
|
if($teleparams{$key}->{set}) {
|
||||||
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = $teleparams{$key}->{default} if(!$extparamref->{$key} && !$teleparams{$key}->{attr});
|
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = $teleparams{$key}->{default} if(!$extparamref->{$key} && !$teleparams{$key}->{attr});
|
||||||
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = delete $extparamref->{$key} if(exists $extparamref->{$key});
|
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = delete $extparamref->{$key} if($extparamref->{$key});
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3($name, 4, "$name - param $key is set to \"".($data{SSCam}{$name}{PARAMS}{$tac}{$key} // "")."\" ") if($key !~ /[sv]dat/x);
|
Log3 ($name, 4, "$name - param $key is set to >".($data{SSCam}{$name}{PARAMS}{$tac}{$key} // '')."< ") if($key !~ /[sv]dat/x);
|
||||||
Log3 ($name, 4, "$name - param $key is set") if($key =~ /[sv]dat/x && $data{SSCam}{$name}{PARAMS}{$tac}{$key} ne '');
|
Log3 ($name, 4, "$name - param $key is set") if($key =~ /[sv]dat/x && $data{SSCam}{$name}{PARAMS}{$tac}{$key} ne '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10146,33 +10164,52 @@ sub _sendTelegram {
|
|||||||
for my $key (keys(%teleparams)) {
|
for my $key (keys(%teleparams)) {
|
||||||
push(@err, $key) if ($teleparams{$key}->{required} && !$data{SSCam}{$name}{PARAMS}{$tac}{$key});
|
push(@err, $key) if ($teleparams{$key}->{required} && !$data{SSCam}{$name}{PARAMS}{$tac}{$key});
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($#err >= 0) {
|
if ($#err >= 0) {
|
||||||
$ret = "Missing at least one required parameter or attribute: ".join(', ',@err);
|
$ret = "Missing at least one required parameter or attribute: ".join(', ',@err);
|
||||||
|
|
||||||
Log3 ($name, 2, "$name - $ret");
|
Log3 ($name, 2, "$name - $ret");
|
||||||
|
|
||||||
readingsBeginUpdate ($hash);
|
readingsBeginUpdate ($hash);
|
||||||
readingsBulkUpdate($hash,"sendTeleState",$ret);
|
readingsBulkUpdate ($hash, 'sendTeleState', $ret);
|
||||||
readingsEndUpdate ($hash, 1);
|
readingsEndUpdate ($hash, 1);
|
||||||
|
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $telebot = $data{SSCam}{$name}{PARAMS}{$tac}{telebot};
|
my $telebot = $data{SSCam}{$name}{PARAMS}{$tac}{telebot};
|
||||||
my $peers = $data{SSCam}{$name}{PARAMS}{$tac}{peers};
|
|
||||||
|
|
||||||
if(!$defs{$telebot}) {
|
if(!$defs{$telebot}) {
|
||||||
$ret = "No TelegramBot device \"$telebot\" available";
|
$ret = "No TelegramBot device \"$telebot\" available";
|
||||||
|
|
||||||
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
||||||
|
|
||||||
Log3 ($name, 2, "$name - $ret");
|
Log3 ($name, 2, "$name - $ret");
|
||||||
|
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $peers = $data{SSCam}{$name}{PARAMS}{$tac}{peers};
|
||||||
|
|
||||||
|
if ($peers =~ /^r:/xs) { # Reading mit Empfängern ist hinterlegt
|
||||||
|
my $pr = (split ':', $peers)[1];
|
||||||
|
$peers = ReadingsVal ($name, $pr, '');
|
||||||
|
|
||||||
|
Log3 ($name, 4, "$name - peers was fetched from reading >$pr<: $peers");
|
||||||
|
}
|
||||||
|
|
||||||
if(!$peers) {
|
if(!$peers) {
|
||||||
$peers = AttrVal($telebot,"defaultPeer", "");
|
$peers = AttrVal ($telebot, 'defaultPeer', '');
|
||||||
|
|
||||||
if(!$peers) {
|
if(!$peers) {
|
||||||
$ret = "No peers of TelegramBot device \"$telebot\" found";
|
$ret = "No peers of TelegramBot device \"$telebot\" found";
|
||||||
|
|
||||||
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
||||||
|
|
||||||
Log3 ($name, 2, "$name - $ret");
|
Log3 ($name, 2, "$name - $ret");
|
||||||
|
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -10180,39 +10217,60 @@ sub _sendTelegram {
|
|||||||
|
|
||||||
if(!$data{SSCam}{$name}{PARAMS}{$tac}{sdat} && !$data{SSCam}{$name}{PARAMS}{$tac}{vdat}) {
|
if(!$data{SSCam}{$name}{PARAMS}{$tac}{sdat} && !$data{SSCam}{$name}{PARAMS}{$tac}{vdat}) {
|
||||||
$ret = "no video or image data existing for send process by TelegramBot \"$telebot\" ";
|
$ret = "no video or image data existing for send process by TelegramBot \"$telebot\" ";
|
||||||
|
|
||||||
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
||||||
|
|
||||||
Log3 ($name, 2, "$name - $ret");
|
Log3 ($name, 2, "$name - $ret");
|
||||||
|
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $options = '';
|
||||||
|
my @opta = split ' ', $data{SSCam}{$name}{PARAMS}{$tac}{option};
|
||||||
|
|
||||||
|
if (@opta) {
|
||||||
|
for my $o (@opta) {
|
||||||
|
$options .= " -$o-"
|
||||||
|
}
|
||||||
|
|
||||||
|
$options .= ' ';
|
||||||
|
}
|
||||||
|
|
||||||
my ($msg,$subject,$MediaStream,$fname,@as,%seen,@unique);
|
my ($msg,$subject,$MediaStream,$fname,@as,%seen,@unique);
|
||||||
|
|
||||||
$cache = cache($name, "c_init"); # Cache initialisieren
|
$cache = cache($name, "c_init"); # Cache initialisieren
|
||||||
|
|
||||||
Log3 ($name, 1, "$name - Fall back to internal Cache due to preceding failure.") if(!$cache);
|
Log3 ($name, 1, "$name - Fall back to internal Cache due to preceding failure.") if(!$cache);
|
||||||
|
|
||||||
if(!$cache || $cache eq "internal" ) {
|
if(!$cache || $cache eq "internal" ) {
|
||||||
if($data{SSCam}{$name}{PARAMS}{$tac}{sdat}) { # Images liegen in einem Hash (Ref in $sdat) base64-codiert vor
|
if($data{SSCam}{$name}{PARAMS}{$tac}{sdat}) { # Images liegen in einem Hash (Ref in $sdat) base64-codiert vor
|
||||||
@as = sort{$b<=>$a}keys%{$data{SSCam}{$name}{PARAMS}{$tac}{sdat}};
|
@as = sort{$b<=>$a}keys%{$data{SSCam}{$name}{PARAMS}{$tac}{sdat}};
|
||||||
} elsif($data{SSCam}{$name}{PARAMS}{$tac}{vdat}) { # Aufnahmen liegen in einem Hash-Ref in $vdat vor
|
}
|
||||||
|
elsif($data{SSCam}{$name}{PARAMS}{$tac}{vdat}) { # Aufnahmen liegen in einem Hash-Ref in $vdat vor
|
||||||
@as = sort{$b<=>$a}keys%{$data{SSCam}{$name}{PARAMS}{$tac}{vdat}};
|
@as = sort{$b<=>$a}keys%{$data{SSCam}{$name}{PARAMS}{$tac}{vdat}};
|
||||||
}
|
}
|
||||||
|
|
||||||
for my $key (@as) {
|
for my $key (@as) {
|
||||||
($msg,$subject,$MediaStream,$fname) = __extractForTelegram($name,$key,$data{SSCam}{$name}{PARAMS}{$tac});
|
($msg,$subject,$MediaStream,$fname) = __extractForTelegram($name,$key,$data{SSCam}{$name}{PARAMS}{$tac});
|
||||||
$ret = __TBotSendIt($defs{$telebot}, $name, $fname, $peers, $msg, $subject, $MediaStream, undef, "");
|
$ret = __TBotSendIt($defs{$telebot}, $name, $fname, $peers, $msg, $subject, $MediaStream, undef, $options);
|
||||||
|
|
||||||
if($ret) {
|
if($ret) {
|
||||||
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
||||||
|
|
||||||
Log3 ($name, 2, "$name - ERROR: $ret");
|
Log3 ($name, 2, "$name - ERROR: $ret");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$ret = "Telegram message [$key] of transaction \"$tac\" sent to \"$peers\" by \"$telebot\" ";
|
$ret = "Telegram message [$key] of transaction \"$tac\" sent to \"$peers\" by \"$telebot\" ";
|
||||||
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
||||||
|
|
||||||
Log3 ($name, 3, "$name - $ret");
|
Log3 ($name, 3, "$name - $ret");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
|
||||||
Log3($name, 1, "$name - Send Counter transaction \"$tac\": ".$data{SSCam}{$name}{SENDCOUNT}{$tac}) if(AttrVal($name,"debugactivetoken",0));
|
|
||||||
|
|
||||||
|
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
||||||
|
|
||||||
|
Log3 ($name, 1, "$name - Send Counter transaction \"$tac\": ".$data{SSCam}{$name}{SENDCOUNT}{$tac}) if(AttrVal($name,"debugactivetoken",0));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# alle Serial Numbers "{$sn}" der Transaktion ermitteln
|
# alle Serial Numbers "{$sn}" der Transaktion ermitteln
|
||||||
@ -10224,8 +10282,8 @@ sub _sendTelegram {
|
|||||||
aref => \@as
|
aref => \@as
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
}
|
||||||
} elsif($data{SSCam}{$name}{PARAMS}{$tac}{vdat}) { # Aufnahmen liegen in einem Hash-Ref in $vdat vor
|
elsif($data{SSCam}{$name}{PARAMS}{$tac}{vdat}) { # Aufnahmen liegen in einem Hash-Ref in $vdat vor
|
||||||
extractTIDfromCache ( { name => $name,
|
extractTIDfromCache ( { name => $name,
|
||||||
tac => $tac,
|
tac => $tac,
|
||||||
media => "SENDRECS",
|
media => "SENDRECS",
|
||||||
@ -10239,18 +10297,24 @@ sub _sendTelegram {
|
|||||||
|
|
||||||
for my $key (@unique) {
|
for my $key (@unique) {
|
||||||
($msg,$subject,$MediaStream,$fname) = __extractForTelegram($name,$key,$data{SSCam}{$name}{PARAMS}{$tac});
|
($msg,$subject,$MediaStream,$fname) = __extractForTelegram($name,$key,$data{SSCam}{$name}{PARAMS}{$tac});
|
||||||
$ret = __TBotSendIt($defs{$telebot}, $name, $fname, $peers, $msg, $subject, $MediaStream, undef, "");
|
$ret = __TBotSendIt($defs{$telebot}, $name, $fname, $peers, $msg, $subject, $MediaStream, undef, $options);
|
||||||
|
|
||||||
if($ret) {
|
if($ret) {
|
||||||
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
||||||
|
|
||||||
Log3 ($name, 2, "$name - ERROR: $ret");
|
Log3 ($name, 2, "$name - ERROR: $ret");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$ret = "Telegram message [$key] of transaction \"$tac\" sent to \"$peers\" by \"$telebot\" ";
|
$ret = "Telegram message [$key] of transaction \"$tac\" sent to \"$peers\" by \"$telebot\" ";
|
||||||
|
|
||||||
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
readingsSingleUpdate($hash, "sendTeleState", $ret, 1);
|
||||||
|
|
||||||
Log3 ($name, 3, "$name - $ret");
|
Log3 ($name, 3, "$name - $ret");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
$data{SSCam}{$name}{SENDCOUNT}{$tac} -= 1;
|
||||||
|
|
||||||
Log3 ($name, 1, "$name - Send Counter transaction \"$tac\": ".$data{SSCam}{$name}{SENDCOUNT}{$tac}) if(AttrVal($name,"debugactivetoken",0));
|
Log3 ($name, 1, "$name - Send Counter transaction \"$tac\": ".$data{SSCam}{$name}{SENDCOUNT}{$tac}) if(AttrVal($name,"debugactivetoken",0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10628,11 +10692,13 @@ return (0,undef);
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
sub _prepSendMail {
|
sub _prepSendMail {
|
||||||
my $paref = shift;
|
my $paref = shift;
|
||||||
|
|
||||||
my $hash = $paref->{hash};
|
my $hash = $paref->{hash};
|
||||||
my $calias = $paref->{calias};
|
my $calias = $paref->{calias};
|
||||||
my $mt = $paref->{mt};
|
my $mt = $paref->{mt};
|
||||||
my $date = $paref->{date};
|
my $date = $paref->{date};
|
||||||
my $time = $paref->{time};
|
my $time = $paref->{time};
|
||||||
|
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
$mt =~ s/['"]//gx;
|
$mt =~ s/['"]//gx;
|
||||||
@ -10748,7 +10814,8 @@ sub _sendEmail {
|
|||||||
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = $mailparams{$key}->{default} if (!$extparamref->{$key} && !$mailparams{$key}->{attr});
|
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = $mailparams{$key}->{default} if (!$extparamref->{$key} && !$mailparams{$key}->{attr});
|
||||||
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = delete $extparamref->{$key} if (exists $extparamref->{$key});
|
$data{SSCam}{$name}{PARAMS}{$tac}{$key} = delete $extparamref->{$key} if (exists $extparamref->{$key});
|
||||||
}
|
}
|
||||||
Log3($name, 4, "$name - param $key is now \"".$data{SSCam}{$name}{PARAMS}{$tac}{$key}."\" ") if($key !~ /sdat/x);
|
|
||||||
|
Log3 ($name, 4, "$name - param $key is now >".$data{SSCam}{$name}{PARAMS}{$tac}{$key}."< ") if($key !~ /sdat/x);
|
||||||
Log3 ($name, 4, "$name - param $key is set") if($key =~ /sdat/x && $data{SSCam}{$name}{PARAMS}{$tac}{$key} ne '');
|
Log3 ($name, 4, "$name - param $key is set") if($key =~ /sdat/x && $data{SSCam}{$name}{PARAMS}{$tac}{$key} ne '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10758,6 +10825,7 @@ sub _sendEmail {
|
|||||||
for my $key (keys(%mailparams)) {
|
for my $key (keys(%mailparams)) {
|
||||||
push(@err, $key) if ($mailparams{$key}->{required} && !$data{SSCam}{$name}{PARAMS}{$tac}{$key});
|
push(@err, $key) if ($mailparams{$key}->{required} && !$data{SSCam}{$name}{PARAMS}{$tac}{$key});
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($#err >= 0) {
|
if ($#err >= 0) {
|
||||||
$ret = "Missing at least one required parameter or attribute: ".join(', ',@err);
|
$ret = "Missing at least one required parameter or attribute: ".join(', ',@err);
|
||||||
Log3($name, 2, "$name - $ret");
|
Log3($name, 2, "$name - $ret");
|
||||||
@ -12501,9 +12569,9 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>set <name> on [<rectime>] <br>
|
<li><b> on [<rectime>] <br>
|
||||||
[recEmailTxt:"subject => <subject text>, body => <message text>"] <br>
|
[recEmailTxt:"subject => <subject text>, body => <message text>"] <br>
|
||||||
[recTelegramTxt:"tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]"] <br>
|
[recTelegramTxt:"tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>], option => [silent]"] <br>
|
||||||
[recChatTxt:"chatbot => <SSChatBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]"] <br>
|
[recChatTxt:"chatbot => <SSChatBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]"] <br>
|
||||||
</b> (valid for CAM)</li> <br>
|
</b> (valid for CAM)</li> <br>
|
||||||
|
|
||||||
@ -12560,13 +12628,17 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
|
|
||||||
<b>Examples: </b> <br><br>
|
<b>Examples: </b> <br><br>
|
||||||
set <name> on [rectime] <br>
|
set <name> on [rectime] <br>
|
||||||
# starts a recording, stops automatically after [rectime] <br>
|
# starts a recording, stops automatically after [rectime] <br><br>
|
||||||
|
|
||||||
<code> set <name> on 0 </code><br>
|
<code> set <name> on 0 </code><br>
|
||||||
# starts a permanent record which must be stopped with the "off"-command. <br>
|
# starts a permanent record which must be stopped with the "off"-command. <br><br>
|
||||||
|
|
||||||
<code> set <name> on recEmailTxt:"subject => New recording for $CAM created, body => The last recording of $CAM is atteched." </code><br>
|
<code> set <name> on recEmailTxt:"subject => New recording for $CAM created, body => The last recording of $CAM is atteched." </code><br>
|
||||||
# starts a recording and send it after completion by Email. <br>
|
# starts a recording and send it after completion by Email. <br><br>
|
||||||
<code> set <name> on recTelegramTxt:"tbot => teleBot, peers => @xxxx , subject => Movement alarm by $CAM. The snapshot $FILE was created at $CTIME" </code><br>
|
|
||||||
# starts a recording and send it after completion by Telegram. <br>
|
<code> set <name> on recTelegramTxt:"tbot => teleBot, peers => @xxxx , subject => Movement alarm by $CAM. The snapshot $FILE was created at $CTIME, option => silent" </code><br>
|
||||||
|
# starts a recording and send it after completion by Telegram in silent-mode. <br><br>
|
||||||
|
|
||||||
<code> set <name> on recChatTxt:"chatbot => SynChatBot, peers => , subject => Movement alarm by $CAM. The snapshot $FILE was created at $CTIME." </code><br>
|
<code> set <name> on recChatTxt:"chatbot => SynChatBot, peers => , subject => Movement alarm by $CAM. The snapshot $FILE was created at $CTIME." </code><br>
|
||||||
# starts a recording and send it after completion by Synology Chat. <br>
|
# starts a recording and send it after completion by Synology Chat. <br>
|
||||||
</ul>
|
</ul>
|
||||||
@ -12731,7 +12803,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
<li><b> snap [<number>] [<time difference>] <br>
|
<li><b> snap [<number>] [<time difference>] <br>
|
||||||
|
|
||||||
[snapEmailTxt:"subject => <subject text>, body => <message text>"] <br>
|
[snapEmailTxt:"subject => <subject text>, body => <message text>"] <br>
|
||||||
[snapTelegramTxt:"tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]"] <br>
|
[snapTelegramTxt:"tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>], option => [silent]"] <br>
|
||||||
[snapChatTxt:"chatbot => <SSChatBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]"] <br>
|
[snapChatTxt:"chatbot => <SSChatBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>]"] <br>
|
||||||
</b> (valid for CAM)</li> <br>
|
</b> (valid for CAM)</li> <br>
|
||||||
|
|
||||||
@ -12771,7 +12843,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
set <name> snap
|
set <name> snap
|
||||||
set <name> snap 4
|
set <name> snap 4
|
||||||
set <name> snap 3 3 snapEmailTxt:"subject => Movement alarm $CAM, body => A movement was recognised at Carport"
|
set <name> snap 3 3 snapEmailTxt:"subject => Movement alarm $CAM, body => A movement was recognised at Carport"
|
||||||
set <name> snap 2 snapTelegramTxt:"tbot => teleBot, peers => , subject => Movement alarm by $CAM. The snapshot $FILE was created at $CTIME"
|
set <name> snap 2 snapTelegramTxt:"tbot => teleBot, peers => , subject => Movement alarm by $CAM. The snapshot $FILE was created at $CTIME, option => silent"
|
||||||
set <name> snap 2 snapChatTxt:"chatbot => SynChatBot , peers => Frodo Sam, subject => Movement alarm by $CAM. At $CTIME the snapshot $FILE was created. Now it is: $TIME."
|
set <name> snap 2 snapChatTxt:"chatbot => SynChatBot , peers => Frodo Sam, subject => Movement alarm by $CAM. At $CTIME the snapshot $FILE was created. Now it is: $TIME."
|
||||||
</pre>
|
</pre>
|
||||||
</ul>
|
</ul>
|
||||||
@ -13484,13 +13556,26 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<a name="recTelegramTxt"></a>
|
<a name="recTelegramTxt"></a>
|
||||||
<li><b>recTelegramTxt tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>] </b><br>
|
<li><b>recTelegramTxt tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Text>], option => [silent] </b><br>
|
||||||
Activates the permanent shipping of recordings by TelegramBot after their creation. <br>
|
Enables permanent sending of recordings after their creation via TelegramBot. <br>
|
||||||
The attribute has to be definied in the form as described. With key "tbot" the TelegramBot device is specified,
|
The attribute must be defined in the specified form.
|
||||||
which is used for shipping the data. Of course, the <a href="http://fhem.de/commandref.html#TelegramBot">TelegramBot device</a>
|
For optional specifications, the key must be specified >empty<. <br><br>
|
||||||
must be available and has to be running well. <br>
|
|
||||||
The setting of "peers" and "subject" is optional, but the keys must (empty) specified.
|
Meaning of the keys: <br><br>
|
||||||
If "peer" is empty, the default peer of the TelegramBot device is used. <br><br>
|
|
||||||
|
<ul>
|
||||||
|
<table>
|
||||||
|
<colgroup> <col width=20%> <col width=80%> </colgroup>
|
||||||
|
<tr><td> tbot </td><td> Name of the <a href="http://fhem.de/commandref.html#TelegramBot">TelegramBot-Device</a> </td></tr>
|
||||||
|
<tr><td> peers </td><td> List of recipients separated by spaces (optional). </td></tr>
|
||||||
|
<tr><td> </td><td> It can be specified <b>r:<Reading></b> to read the recipients from the <Reading>. </td></tr>
|
||||||
|
<tr><td> </td><td> If peers is not specified, the default peer of the TelegramBot device is used. </td></tr>
|
||||||
|
<tr><td> subject </td><td> the text to be transmitted (optional) </td></tr>
|
||||||
|
<tr><td> option </td><td> possible TelegramBot sending options described below (optional) </td></tr>
|
||||||
|
<tr><td> </td><td> <b>silent</b> : the signaling at the receiver is suppressed </td></tr>
|
||||||
|
</table>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
|
||||||
You can use the following placeholders within "subject". <br><br>
|
You can use the following placeholders within "subject". <br><br>
|
||||||
|
|
||||||
@ -13512,6 +13597,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
attr <device> recTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
||||||
attr <device> recTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
||||||
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => <br>
|
||||||
|
attr <device> recTelegramTxt tbot => teleBot, peers => r:peerTelegram, subject => <br>
|
||||||
|
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => without signalization, option => silent <br>
|
||||||
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the recording $FILE was created. Now it is $TIME. <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the recording $FILE was created. Now it is $TIME. <br>
|
||||||
<br>
|
<br>
|
||||||
</li><br>
|
</li><br>
|
||||||
@ -13651,14 +13738,27 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<a name="snapTelegramTxt"></a>
|
<a name="snapTelegramTxt"></a>
|
||||||
<li><b>snapTelegramTxt tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>] </b><br>
|
<li><b>snapTelegramTxt tbot => <TelegramBot device>, peers => [<peer1 peer2 ...>], subject => [<subject text>], option => [silent] </b><br>
|
||||||
Activates the permanent shipping of snapshots by TelegramBot after their creation. If several snapshots were triggert,
|
Enables permanent sending of snapshots after their creation via TelegramBot.
|
||||||
they will be sequentially delivered.<br>
|
If several snapshots were triggered, they are sent sequentially. <br>
|
||||||
The attribute has to be defined in the form as described. With key "tbot" the TelegramBot device is specified,
|
The attribute must be defined in the specified form.
|
||||||
which is used for shipping the data. Of course, the <a href="http://fhem.de/commandref.html#TelegramBot">TelegramBot device</a>
|
For optional specifications, the key must be specified >empty<. <br><br>
|
||||||
must be available and has to be running well. <br>
|
|
||||||
The setting of "peers" and "subject" is optional, but the keys must (empty) specified.
|
Meaning of the keys: <br><br>
|
||||||
If "peer" is empty, the default peer of the TelegramBot device is used. <br><br>
|
|
||||||
|
<ul>
|
||||||
|
<table>
|
||||||
|
<colgroup> <col width=20%> <col width=80%> </colgroup>
|
||||||
|
<tr><td> tbot </td><td> Name of the <a href="http://fhem.de/commandref.html#TelegramBot">TelegramBot-Device</a> </td></tr>
|
||||||
|
<tr><td> peers </td><td> List of recipients separated by spaces (optional). </td></tr>
|
||||||
|
<tr><td> </td><td> It can be specified <b>r:<Reading></b> to read the recipients from the <Reading>. </td></tr>
|
||||||
|
<tr><td> </td><td> If peers is not specified, the default peer of the TelegramBot device is used. </td></tr>
|
||||||
|
<tr><td> subject </td><td> the text to be transmitted (optional) </td></tr>
|
||||||
|
<tr><td> option </td><td> possible TelegramBot sending options described below (optional) </td></tr>
|
||||||
|
<tr><td> </td><td> <b>silent</b> : the signaling at the receiver is suppressed </td></tr>
|
||||||
|
</table>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
|
||||||
You can use the following placeholders within "subject". <br><br>
|
You can use the following placeholders within "subject". <br><br>
|
||||||
|
|
||||||
@ -13680,6 +13780,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => <br>
|
||||||
|
attr <device> snapTelegramTxt tbot => teleBot, peers => r:peerTelegram, subject => <br>
|
||||||
|
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => without signalization, option => silent <br>
|
||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the snapshot $FILE was created <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Motion alarm from $CAM. At $CTIME the snapshot $FILE was created <br>
|
||||||
<br>
|
<br>
|
||||||
</li><br>
|
</li><br>
|
||||||
@ -14494,7 +14596,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
<ul>
|
<ul>
|
||||||
<li><b> on [<rectime>] <br>
|
<li><b> on [<rectime>] <br>
|
||||||
[recEmailTxt:"subject => <Betreff-Text>, body => <Mitteilung-Text>"] <br>
|
[recEmailTxt:"subject => <Betreff-Text>, body => <Mitteilung-Text>"] <br>
|
||||||
[recTelegramTxt:"tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br>
|
[recTelegramTxt:"tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>], option => [silent]"] <br>
|
||||||
[recChatTxt:"chatbot => <SSChatBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] </b> <br>
|
[recChatTxt:"chatbot => <SSChatBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] </b> <br>
|
||||||
(gilt für CAM)
|
(gilt für CAM)
|
||||||
</li>
|
</li>
|
||||||
@ -14554,13 +14656,17 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
<b>Beispiele </b>: <br>
|
<b>Beispiele </b>: <br>
|
||||||
<code> set <name> on [rectime] </code><br>
|
<code> set <name> on [rectime] </code><br>
|
||||||
# startet die Aufnahme der Kamera <name>, automatischer Stop der Aufnahme nach Ablauf der Zeit [rectime]
|
# startet die Aufnahme der Kamera <name>, automatischer Stop der Aufnahme nach Ablauf der Zeit [rectime]
|
||||||
(default 15s oder wie im <a href="#SSCamattr">Attribut</a> "rectime" angegeben) <br>
|
(default 15s oder wie im <a href="#SSCamattr">Attribut</a> "rectime" angegeben) <br><br>
|
||||||
|
|
||||||
<code> set <name> on 0 </code><br>
|
<code> set <name> on 0 </code><br>
|
||||||
# startet eine Daueraufnahme die mit "off" gestoppt werden muss. <br>
|
# startet eine Daueraufnahme die mit "off" gestoppt werden muss. <br><br>
|
||||||
|
|
||||||
<code> set <name> on recEmailTxt:"subject => Neue Aufnahme $CAM, body => Die aktuelle Aufnahme von $CAM ist angehängt." </code><br>
|
<code> set <name> on recEmailTxt:"subject => Neue Aufnahme $CAM, body => Die aktuelle Aufnahme von $CAM ist angehängt." </code><br>
|
||||||
# startet eine Aufnahme und versendet sie nach Beendigung per Email. <br>
|
# startet eine Aufnahme und versendet sie nach Beendigung per Email. <br><br>
|
||||||
<code> set <name> on recTelegramTxt:"tbot => teleBot, peers => @xxxx , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt" </code><br>
|
|
||||||
# startet eine Aufnahme und versendet sie nach Beendigung per Telegram. <br>
|
<code> set <name> on recTelegramTxt:"tbot => teleBot, peers => @xxxx , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt, option => silent" </code><br>
|
||||||
|
# startet eine Aufnahme und versendet sie nach Beendigung per Telegram im Silent-Mode. <br><br>
|
||||||
|
|
||||||
<code> set <name> on recChatTxt:"chatbot => SynChatBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt. Jetzt ist es $TIME." </code><br>
|
<code> set <name> on recChatTxt:"chatbot => SynChatBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt. Jetzt ist es $TIME." </code><br>
|
||||||
# startet eine Aufnahme und versendet sie nach Beendigung per Synology Chat. <br>
|
# startet eine Aufnahme und versendet sie nach Beendigung per Synology Chat. <br>
|
||||||
|
|
||||||
@ -14738,7 +14844,7 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
<ul>
|
<ul>
|
||||||
<li><b> snap [<Anzahl>] [<Zeitabstand>] <br>
|
<li><b> snap [<Anzahl>] [<Zeitabstand>] <br>
|
||||||
[snapEmailTxt:"subject => <Betreff-Text>, body => <Mitteilung-Text>"] <br>
|
[snapEmailTxt:"subject => <Betreff-Text>, body => <Mitteilung-Text>"] <br>
|
||||||
[snapTelegramTxt:"tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br>
|
[snapTelegramTxt:"tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>], option => [silent]"] <br>
|
||||||
[snapChatTxt:"chatbot => <SSChatBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br>
|
[snapChatTxt:"chatbot => <SSChatBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>]"] <br>
|
||||||
</b> (gilt für CAM)</li> <br>
|
</b> (gilt für CAM)</li> <br>
|
||||||
|
|
||||||
@ -14766,19 +14872,21 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
gezeigt, temporär überschrieben bzw. geändert werden. Sollte das Attribut "snapEmailTxt" nicht gesetzt sein, wird durch Angabe dieses Tags
|
gezeigt, temporär überschrieben bzw. geändert werden. Sollte das Attribut "snapEmailTxt" nicht gesetzt sein, wird durch Angabe dieses Tags
|
||||||
der Email-Versand einmalig aktiviert. (die Tag-Syntax entspricht dem "snapEmailTxt"-Attribut) <br><br>
|
der Email-Versand einmalig aktiviert. (die Tag-Syntax entspricht dem "snapEmailTxt"-Attribut) <br><br>
|
||||||
|
|
||||||
Ein <b>Telegram-Versand</b> der Schnappschüsse kann durch Setzen des Attributs <a href="#snapTelegramTxt">snapTelegramTxt</a> permanent aktiviert
|
Ein <b>Telegram-Versand</b> der Schnappschüsse kann durch Setzen des Attributs
|
||||||
werden. Das zu verwendende <a href="http://fhem.de/commandref_DE.html#TelegramBot">TelegramBot-Device</a> muss natürlich
|
<a href="#snapTelegramTxt">snapTelegramTxt</a> permanent aktiviert werden.
|
||||||
|
Das zu verwendende <a href="http://fhem.de/commandref_DE.html#TelegramBot">TelegramBot-Device</a> muss natürlich
|
||||||
funktionstüchtig eingerichtet sein. <br>
|
funktionstüchtig eingerichtet sein. <br>
|
||||||
Der Text im Attribut "snapTelegramTxt" kann durch die Spezifikation des optionalen "snapTelegramTxt:"-Tags, wie oben
|
Der Text im Attribut "snapTelegramTxt" kann durch die Spezifikation des optionalen "snapTelegramTxt:"-Tags, wie oben
|
||||||
gezeigt, temporär überschrieben bzw. geändert werden. Sollte das Attribut "snapTelegramTxt" nicht gesetzt sein, wird durch Angabe dieses Tags
|
gezeigt, temporär überschrieben bzw. geändert werden. Sollte das Attribut "snapTelegramTxt" nicht gesetzt sein, wird
|
||||||
der Telegram-Versand einmalig aktiviert. (die Tag-Syntax entspricht dem "snapTelegramTxt"-Attribut) <br><br>
|
durch Angabe dieses Tags der Telegram-Versand einmalig aktiviert.
|
||||||
|
(die Tag-Syntax entspricht dem "snapTelegramTxt"-Attribut) <br><br>
|
||||||
|
|
||||||
<b>Beispiele:</b>
|
<b>Beispiele:</b>
|
||||||
<pre>
|
<pre>
|
||||||
set <name> snap
|
set <name> snap
|
||||||
set <name> snap 4
|
set <name> snap 4
|
||||||
set <name> snap 3 3 snapEmailTxt:"subject => Bewegungsalarm $CAM, body => Eine Bewegung wurde am Carport registriert"
|
set <name> snap 3 3 snapEmailTxt:"subject => Bewegungsalarm $CAM, body => Eine Bewegung wurde am Carport registriert"
|
||||||
set <name> snap 2 snapTelegramTxt:"tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt"
|
set <name> snap 2 snapTelegramTxt:"tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt, option => silent"
|
||||||
set <name> snap 2 snapChatTxt:"chatbot => SynChatBot , peers => Frodo Sam, subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt. Jetzt ist es: $TIME."
|
set <name> snap 2 snapChatTxt:"chatbot => SynChatBot , peers => Frodo Sam, subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt. Jetzt ist es: $TIME."
|
||||||
</pre>
|
</pre>
|
||||||
</ul>
|
</ul>
|
||||||
@ -15518,13 +15626,26 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<a name="recTelegramTxt"></a>
|
<a name="recTelegramTxt"></a>
|
||||||
<li><b>recTelegramTxt tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>] </b><br>
|
<li><b>recTelegramTxt tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Text>], option => [silent] </b><br>
|
||||||
Aktiviert den permanenten Versand von Aufnahmen nach deren Erstellung per TelegramBot. <br>
|
Aktiviert den permanenten Versand von Aufnahmen nach deren Erstellung per TelegramBot. <br>
|
||||||
Das Attribut muß in der angegebenen Form definiert werden. Im Schlüssel "tbot" ist das TelegramBot-Device
|
Das Attribut muß in der angegebenen Form definiert werden.
|
||||||
anzugeben, welches für den Versand der Daten verwendet werden soll.
|
Bei optionalen Angaben muß der Schlüssel >leer< angegeben werden. <br><br>
|
||||||
Das <a href="http://fhem.de/commandref_DE.html#TelegramBot">TelegramBot-Device</a> muss natürlich vorhanden und funktionstüchtig sein. <br>
|
|
||||||
Die Angabe von "peers" und "subject" ist optional, jedoch muß der Schlüssel (leer) angegeben werden.
|
Bedeutung der Schlüssel: <br><br>
|
||||||
Wurde "peers" leer gelassen, wird der Default-Peer des TelegramBot-Device verwendet. <br><br>
|
|
||||||
|
<ul>
|
||||||
|
<table>
|
||||||
|
<colgroup> <col width=20%> <col width=80%> </colgroup>
|
||||||
|
<tr><td> tbot </td><td> Name des <a href="http://fhem.de/commandref_DE.html#TelegramBot">TelegramBot-Device</a> </td></tr>
|
||||||
|
<tr><td> peers </td><td> Durch Leerzeichen getrennte Liste der Empfänger (optional). </td></tr>
|
||||||
|
<tr><td> </td><td> Es kann <b>r:<Reading></b> angegeben werden um die Empfänger aus dem <Reading> zu lesen. </td></tr>
|
||||||
|
<tr><td> </td><td> Ist peers nicht angegeben, wird der Default-Peer des TelegramBot-Device verwendet. </td></tr>
|
||||||
|
<tr><td> subject </td><td> der zu übermittelnde Text (optional) </td></tr>
|
||||||
|
<tr><td> option </td><td> mögliche nachfolgend beschriebene TelegramBot Sendeoptionen (optional) </td></tr>
|
||||||
|
<tr><td> </td><td> <b>silent</b> : die Signalisierung beim Empfänger wird unterdrückt </td></tr>
|
||||||
|
</table>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
|
||||||
Es können die folgenden Platzhalter im subject verwendet werden. <br><br>
|
Es können die folgenden Platzhalter im subject verwendet werden. <br><br>
|
||||||
|
|
||||||
@ -15546,6 +15667,8 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
attr <device> recTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
||||||
attr <device> recTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
||||||
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => <br>
|
||||||
|
attr <device> recTelegramTxt tbot => teleBot, peers => r:peerTelegram, subject => <br>
|
||||||
|
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => ohne Signalisierung, option => silent <br>
|
||||||
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt. Jetzt ist es $TIME. <br>
|
attr <device> recTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE erstellt. Jetzt ist es $TIME. <br>
|
||||||
<br>
|
<br>
|
||||||
</li><br>
|
</li><br>
|
||||||
@ -15687,14 +15810,27 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<a name="snapTelegramTxt"></a>
|
<a name="snapTelegramTxt"></a>
|
||||||
<li><b>snapTelegramTxt tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>] </b><br>
|
<li><b>snapTelegramTxt tbot => <TelegramBot-Device>, peers => [<peer1 peer2 ...>], subject => [<Betreff-Text>], option => [silent] </b><br>
|
||||||
Aktiviert den permanenten Versand von Schnappschüssen nach deren Erstellung per TelegramBot. Wurden mehrere Schnappschüsse ausgelöst,
|
Aktiviert den permanenten Versand von Schnappschüssen nach deren Erstellung per TelegramBot.
|
||||||
werden sie sequentiell versendet.<br>
|
Wurden mehrere Schnappschüsse ausgelöst, werden sie sequentiell versendet.<br>
|
||||||
Das Attribut muß in der angegebenen Form definiert werden. Im Schlüssel "tbot" ist das TelegramBot-Device
|
Das Attribut muß in der angegebenen Form definiert werden.
|
||||||
anzugeben, welches für den Versand der Daten verwendet werden soll.
|
Bei optionalen Angaben muß der Schlüssel >leer< angegeben werden. <br><br>
|
||||||
Das <a href="http://fhem.de/commandref_DE.html#TelegramBot">TelegramBot-Device</a> muss natürlich vorhanden und funktionstüchtig sein. <br>
|
|
||||||
Die Angabe von "peers" und "subject" ist optional, jedoch muß der Schlüssel (leer) angegeben werden.
|
Bedeutung der Schlüssel: <br><br>
|
||||||
Wurde "peer" leer gelassen, wird der Default-Peer des TelegramBot-Devices verwendet. <br><br>
|
|
||||||
|
<ul>
|
||||||
|
<table>
|
||||||
|
<colgroup> <col width=20%> <col width=80%> </colgroup>
|
||||||
|
<tr><td> tbot </td><td> Name des <a href="http://fhem.de/commandref_DE.html#TelegramBot">TelegramBot-Device</a> </td></tr>
|
||||||
|
<tr><td> peers </td><td> Durch Leerzeichen getrennte Liste der Empfänger (optional). </td></tr>
|
||||||
|
<tr><td> </td><td> Es kann <b>r:<Reading></b> angegeben werden um die Empfänger aus dem <Reading> zu lesen. </td></tr>
|
||||||
|
<tr><td> </td><td> Ist peers nicht angegeben, wird der Default-Peer des TelegramBot-Device verwendet. </td></tr>
|
||||||
|
<tr><td> subject </td><td> der zu übermittelnde Text (optional) </td></tr>
|
||||||
|
<tr><td> option </td><td> mögliche nachfolgend beschriebene TelegramBot Sendeoptionen (optional) </td></tr>
|
||||||
|
<tr><td> </td><td> <b>silent</b> : die Signalisierung beim Empfänger wird unterdrückt </td></tr>
|
||||||
|
</table>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
|
||||||
Es können folgende Platzhalter im subject verwendet werden. <br><br>
|
Es können folgende Platzhalter im subject verwendet werden. <br><br>
|
||||||
|
|
||||||
@ -15716,9 +15852,12 @@ attr <name> genericStrmHtmlTag <img $HTMLATTR
|
|||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => #nabugroup, subject => <br>
|
||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => -123456, subject => <br>
|
||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => <br>
|
||||||
|
attr <device> snapTelegramTxt tbot => teleBot, peers => r:peerTelegram, subject => <br>
|
||||||
|
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => ohne Signalisierung, option => silent <br>
|
||||||
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt <br>
|
attr <device> snapTelegramTxt tbot => teleBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt <br>
|
||||||
<br>
|
<br>
|
||||||
</li><br>
|
<br>
|
||||||
|
</li>
|
||||||
|
|
||||||
<a name="snapGalleryBoost"></a>
|
<a name="snapGalleryBoost"></a>
|
||||||
<li><b>snapGalleryBoost</b><br>
|
<li><b>snapGalleryBoost</b><br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user