mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-22 08:11:44 +00:00
50_SSChatBot: use evaljson from SMUtils
git-svn-id: https://svn.fhem.de/fhem/trunk@22881 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c410919bbf
commit
1e49a48f10
@ -46,6 +46,7 @@ use FHEM::SynoModules::SMUtils qw(
|
|||||||
showModuleInfo
|
showModuleInfo
|
||||||
completeAPI
|
completeAPI
|
||||||
showAPIinfo
|
showAPIinfo
|
||||||
|
evaljson
|
||||||
setReadingErrorNone
|
setReadingErrorNone
|
||||||
setReadingErrorState
|
setReadingErrorState
|
||||||
addSendqueueEntry
|
addSendqueueEntry
|
||||||
@ -128,6 +129,7 @@ BEGIN {
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
my %vNotesIntern = (
|
my %vNotesIntern = (
|
||||||
|
"1.11.1" => "28.09.2020 use evaljson from SMUtils ",
|
||||||
"1.11.0" => "27.09.2020 optimize getApiSites_Parse, new getter apiInfo ",
|
"1.11.0" => "27.09.2020 optimize getApiSites_Parse, new getter apiInfo ",
|
||||||
"1.10.7" => "26.09.2020 more subs to SMUtils and common optimization ",
|
"1.10.7" => "26.09.2020 more subs to SMUtils and common optimization ",
|
||||||
"1.10.6" => "25.09.2020 use module FHEM::SynoModules::API ",
|
"1.10.6" => "25.09.2020 use module FHEM::SynoModules::API ",
|
||||||
@ -489,7 +491,9 @@ sub _setasyncSendItem {
|
|||||||
my $aref = $paref->{aref};
|
my $aref = $paref->{aref};
|
||||||
|
|
||||||
delete $hash->{HELPER}{RESENDFORCE}; # Option 'force' löschen (könnte durch restartSendqueue gesetzt sein)
|
delete $hash->{HELPER}{RESENDFORCE}; # Option 'force' löschen (könnte durch restartSendqueue gesetzt sein)
|
||||||
return if(!$hash->{HELPER}{USERFETCHED});
|
if(!$hash->{HELPER}{USERFETCHED}) {
|
||||||
|
return qq{The registered Synology Chat users are unknown. Please retrieve them first with "get $name chatUserlist".};
|
||||||
|
}
|
||||||
|
|
||||||
my ($text,$users,$svg);
|
my ($text,$users,$svg);
|
||||||
|
|
||||||
@ -656,8 +660,6 @@ sub _getapiInfo {
|
|||||||
delClHash ($name);
|
delClHash ($name);
|
||||||
getClHash ($hash,1);
|
getClHash ($hash,1);
|
||||||
|
|
||||||
$hash->{HELPER}{API}{PARSET} = 0; # erzwinge Abruf API
|
|
||||||
|
|
||||||
# Eintrag zur SendQueue hinzufügen
|
# Eintrag zur SendQueue hinzufügen
|
||||||
my $params = {
|
my $params = {
|
||||||
name => $name,
|
name => $name,
|
||||||
@ -871,17 +873,22 @@ sub addSendqueue {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
################################################################
|
#############################################################################################
|
||||||
# asynchrone Queue starten
|
# asynchrone Queue starten
|
||||||
# $rst = resend Timer
|
# $rst = restart Timer
|
||||||
################################################################
|
# $startfn = Funktion deren Timer gelöscht und neu gestartet werdene soll
|
||||||
sub startQueue {
|
# $arg = Argument für die Timer Funktion
|
||||||
|
#############################################################################################
|
||||||
|
sub startSendqueue {
|
||||||
my $name = shift // return;
|
my $name = shift // return;
|
||||||
my $rst = shift // return;
|
my $rst = shift // return;
|
||||||
|
my $startfn = shift // return;
|
||||||
|
my $arg = shift // return;
|
||||||
|
|
||||||
my $hash = $defs{$name};
|
my $hash = $defs{$name};
|
||||||
|
|
||||||
RemoveInternalTimer ($hash, "FHEM::SSChatBot::getApiSites");
|
RemoveInternalTimer ($hash, $startfn);
|
||||||
InternalTimer ($rst, "FHEM::SSChatBot::getApiSites", "$name", 0);
|
InternalTimer ($rst, $startfn, $arg, 0);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -893,14 +900,20 @@ return;
|
|||||||
# $retry = 0 -> Opmode erfolgreich (DS löschen),
|
# $retry = 0 -> Opmode erfolgreich (DS löschen),
|
||||||
# 1 -> Opmode nicht erfolgreich (Abarbeitung nach ckeck errorcode
|
# 1 -> Opmode nicht erfolgreich (Abarbeitung nach ckeck errorcode
|
||||||
# eventuell verzögert wiederholen)
|
# eventuell verzögert wiederholen)
|
||||||
|
# $startfnref = Referenz zur Funktion die nach Check ggf. gestartet werden soll
|
||||||
#############################################################################################
|
#############################################################################################
|
||||||
sub checkRetry {
|
sub checkRetry {
|
||||||
my ($name,$retry) = @_;
|
my $name = shift;
|
||||||
|
my $retry = shift;
|
||||||
|
my $startfn = shift;
|
||||||
my $hash = $defs{$name};
|
my $hash = $defs{$name};
|
||||||
my $idx = $hash->{OPIDX};
|
my $idx = $hash->{OPIDX};
|
||||||
my $forbidSend = "";
|
my $type = $hash->{TYPE};
|
||||||
|
|
||||||
if(!keys %{$data{SSChatBot}{$name}{sendqueue}{entries}}) {
|
my $forbidSend = "";
|
||||||
|
my $startfnref = \&{$startfn};
|
||||||
|
|
||||||
|
if(!keys %{$data{$type}{$name}{sendqueue}{entries}}) {
|
||||||
Log3($name, 4, "$name - SendQueue is empty. Nothing to do ...");
|
Log3($name, 4, "$name - SendQueue is empty. Nothing to do ...");
|
||||||
updQueueLength ($hash);
|
updQueueLength ($hash);
|
||||||
return;
|
return;
|
||||||
@ -908,19 +921,23 @@ sub checkRetry {
|
|||||||
|
|
||||||
if(!$retry) { # Befehl erfolgreich, Senden nur neu starten wenn weitere Einträge in SendQueue
|
if(!$retry) { # Befehl erfolgreich, Senden nur neu starten wenn weitere Einträge in SendQueue
|
||||||
delete $hash->{OPIDX};
|
delete $hash->{OPIDX};
|
||||||
delete $data{SSChatBot}{$name}{sendqueue}{entries}{$idx};
|
delete $data{$type}{$name}{sendqueue}{entries}{$idx};
|
||||||
Log3($name, 4, qq{$name - Opmode "$hash->{OPMODE}" finished successfully, Sendqueue index "$idx" deleted.});
|
Log3($name, 4, qq{$name - Opmode "$hash->{OPMODE}" finished successfully, Sendqueue index "$idx" deleted.});
|
||||||
updQueueLength ($hash);
|
updQueueLength ($hash);
|
||||||
return getApiSites($name); # nächsten Eintrag abarbeiten (wenn SendQueue nicht leer)
|
|
||||||
|
if(keys %{$data{$type}{$name}{sendqueue}{entries}}) {
|
||||||
|
Log3($name, 4, "$name - Start next SendQueue entry...");
|
||||||
|
return &$startfnref ($name); # nächsten Eintrag abarbeiten (wenn SendQueue nicht leer)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else { # Befehl nicht erfolgreich, (verzögertes) Senden einplanen
|
else { # Befehl nicht erfolgreich, (verzögertes) Senden einplanen
|
||||||
$data{SSChatBot}{$name}{sendqueue}{entries}{$idx}{retryCount}++;
|
$data{$type}{$name}{sendqueue}{entries}{$idx}{retryCount}++;
|
||||||
my $rc = $data{SSChatBot}{$name}{sendqueue}{entries}{$idx}{retryCount};
|
my $rc = $data{$type}{$name}{sendqueue}{entries}{$idx}{retryCount};
|
||||||
|
|
||||||
my $errorcode = ReadingsVal($name, "Errorcode", 0);
|
my $errorcode = ReadingsVal($name, "Errorcode", 0);
|
||||||
if($errorcode =~ /100|101|117|120|407|409|410|800|900/x) { # bei diesen Errorcodes den Queueeintrag nicht wiederholen, da dauerhafter Fehler !
|
if($errorcode =~ /100|101|117|120|407|409|410|800/x) { # bei diesen Errorcodes den Queueeintrag nicht wiederholen, da dauerhafter Fehler !
|
||||||
$forbidSend = expErrors($hash,$errorcode); # Fehlertext zum Errorcode ermitteln
|
$forbidSend = expErrors($hash,$errorcode); # Fehlertext zum Errorcode ermitteln
|
||||||
$data{SSChatBot}{$name}{sendqueue}{entries}{$idx}{forbidSend} = $forbidSend;
|
$data{$type}{$name}{sendqueue}{entries}{$idx}{forbidSend} = $forbidSend;
|
||||||
|
|
||||||
Log3($name, 2, "$name - ERROR - \"$hash->{OPMODE}\" SendQueue index \"$idx\" not executed. It seems to be a permanent error. Exclude it from new send attempt !");
|
Log3($name, 2, "$name - ERROR - \"$hash->{OPMODE}\" SendQueue index \"$idx\" not executed. It seems to be a permanent error. Exclude it from new send attempt !");
|
||||||
|
|
||||||
@ -929,7 +946,7 @@ sub checkRetry {
|
|||||||
|
|
||||||
updQueueLength ($hash); # updaten Länge der Sendequeue
|
updQueueLength ($hash); # updaten Länge der Sendequeue
|
||||||
|
|
||||||
return getApiSites($name); # nächsten Eintrag abarbeiten (wenn SendQueue nicht leer);
|
return &$startfnref ($name); # nächsten Eintrag abarbeiten (wenn SendQueue nicht leer);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$forbidSend) {
|
if(!$forbidSend) {
|
||||||
@ -946,7 +963,7 @@ sub checkRetry {
|
|||||||
|
|
||||||
my $rst = gettimeofday()+$rs; # resend Timer
|
my $rst = gettimeofday()+$rs; # resend Timer
|
||||||
updQueueLength ($hash,$rst); # updaten Länge der Sendequeue mit resend Timer
|
updQueueLength ($hash,$rst); # updaten Länge der Sendequeue mit resend Timer
|
||||||
startQueue ($name,$rst);
|
startSendqueue ($name, $rst, $startfn, $name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -965,11 +982,6 @@ sub getApiSites {
|
|||||||
|
|
||||||
my ($url,$param,$idxset,$ret);
|
my ($url,$param,$idxset,$ret);
|
||||||
|
|
||||||
Log3($name, 4, "$name - ####################################################");
|
|
||||||
Log3($name, 4, "$name - ### start Chat operation Send ");
|
|
||||||
Log3($name, 4, "$name - ####################################################");
|
|
||||||
Log3($name, 4, "$name - Send Queue force option is set, send also messages marked as 'forbidSend'") if($hash->{HELPER}{RESENDFORCE});
|
|
||||||
|
|
||||||
if(!keys %{$data{SSChatBot}{$name}{sendqueue}{entries}}) {
|
if(!keys %{$data{SSChatBot}{$name}{sendqueue}{entries}}) {
|
||||||
$ret = "Sendqueue is empty. Nothing to do ...";
|
$ret = "Sendqueue is empty. Nothing to do ...";
|
||||||
Log3($name, 4, "$name - $ret");
|
Log3($name, 4, "$name - $ret");
|
||||||
@ -986,12 +998,21 @@ sub getApiSites {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log3($name, 4, "$name - ####################################################");
|
||||||
|
Log3($name, 4, "$name - ### start Chat operation $hash->{OPMODE} ");
|
||||||
|
Log3($name, 4, "$name - ####################################################");
|
||||||
|
Log3($name, 4, "$name - Send Queue force option is set, send also messages marked as 'forbidSend'") if($hash->{HELPER}{RESENDFORCE});
|
||||||
|
|
||||||
if(!$idxset) {
|
if(!$idxset) {
|
||||||
$ret = "Only entries with \"forbidSend\" are in Sendqueue. Escaping ...";
|
$ret = "Only entries with \"forbidSend\" are in Sendqueue. Escaping ...";
|
||||||
Log3($name, 4, "$name - $ret");
|
Log3($name, 4, "$name - $ret");
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($hash->{OPMODE} eq "apiInfo") {
|
||||||
|
$hash->{HELPER}{API}{PARSET} = 0; # erzwinge Abruf API
|
||||||
|
}
|
||||||
|
|
||||||
if ($hash->{HELPER}{API}{PARSET}) { # API-Hashwerte sind bereits gesetzt -> Abruf überspringen
|
if ($hash->{HELPER}{API}{PARSET}) { # API-Hashwerte sind bereits gesetzt -> Abruf überspringen
|
||||||
Log3($name, 4, "$name - API hashvalues already set - ignore get apisites");
|
Log3($name, 4, "$name - API hashvalues already set - ignore get apisites");
|
||||||
return chatOp($name);
|
return chatOp($name);
|
||||||
@ -1049,23 +1070,22 @@ sub getApiSites_parse {
|
|||||||
my $inaddr = $hash->{INADDR};
|
my $inaddr = $hash->{INADDR};
|
||||||
my $inport = $hash->{INPORT};
|
my $inport = $hash->{INPORT};
|
||||||
|
|
||||||
my $external = $hash->{HELPER}{API}{EXTERNAL}{NAME};
|
|
||||||
|
|
||||||
my ($error,$errorcode,$success);
|
my ($error,$errorcode,$success);
|
||||||
|
|
||||||
if ($err ne "") { # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
|
if ($err ne "") { # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
|
||||||
Log3($name, 2, "$name - ERROR message: $err");
|
Log3($name, 2, "$name - ERROR message: $err");
|
||||||
|
|
||||||
setReadingErrorState ($hash, $err);
|
setReadingErrorState ($hash, $err);
|
||||||
checkRetry ($name,1);
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
elsif ($myjson ne "") { # Evaluiere ob Daten im JSON-Format empfangen wurden
|
elsif ($myjson ne "") { # Evaluiere ob Daten im JSON-Format empfangen wurden
|
||||||
($hash, $success) = evalJSON($hash,$myjson);
|
($success) = evaljson($hash,$myjson);
|
||||||
unless ($success) {
|
|
||||||
|
if (!$success) {
|
||||||
Log3($name, 4, "$name - Data returned: ".$myjson);
|
Log3($name, 4, "$name - Data returned: ".$myjson);
|
||||||
checkRetry ($name,1);
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1076,17 +1096,26 @@ sub getApiSites_parse {
|
|||||||
$success = $jdata->{'success'};
|
$success = $jdata->{'success'};
|
||||||
|
|
||||||
if ($success) {
|
if ($success) {
|
||||||
completeAPI ($jdata, $hash->{HELPER}{API}); # übergibt Referenz zum instanziierten API-Hash
|
my $completed = completeAPI ($jdata, $hash->{HELPER}{API}); # übergibt Referenz zum instanziierten API-Hash
|
||||||
|
|
||||||
|
if(!$completed) {
|
||||||
|
$errorcode = "9001";
|
||||||
|
$error = expErrors($hash,$errorcode); # Fehlertext zum Errorcode ermitteln
|
||||||
|
|
||||||
|
setReadingErrorState ($hash, $error, $errorcode);
|
||||||
|
Log3($name, 2, "$name - ERROR - $error");
|
||||||
|
|
||||||
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setReadingErrorNone($hash, 1);
|
setReadingErrorNone($hash, 1);
|
||||||
|
|
||||||
$hash->{HELPER}{API}{PARSET} = 1; # API Hash values sind gesetzt
|
Log3 ($name, 4, "$name - API completed:\n".Dumper $hash->{HELPER}{API});
|
||||||
|
|
||||||
Log3 ($name, 4, "$name - API completed after retrieval and adaption:\n".Dumper $hash->{HELPER}{API});
|
|
||||||
|
|
||||||
if ($opmode eq "apiInfo") { # API Infos in Popup anzeigen
|
if ($opmode eq "apiInfo") { # API Infos in Popup anzeigen
|
||||||
showAPIinfo ($hash, $hash->{HELPER}{API}); # übergibt Referenz zum instanziierten API-Hash)
|
showAPIinfo ($hash, $hash->{HELPER}{API}); # übergibt Referenz zum instanziierten API-Hash)
|
||||||
checkRetry ($name,0);
|
checkRetry ($name,0,"FHEM::SSChatBot::getApiSites");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1095,9 +1124,9 @@ sub getApiSites_parse {
|
|||||||
$error = expErrors($hash,$errorcode); # Fehlertext zum Errorcode ermitteln
|
$error = expErrors($hash,$errorcode); # Fehlertext zum Errorcode ermitteln
|
||||||
|
|
||||||
setReadingErrorState ($hash, $error, $errorcode);
|
setReadingErrorState ($hash, $error, $errorcode);
|
||||||
Log3($name, 2, "$name - ERROR - the API-Query couldn't be executed successfully");
|
Log3($name, 2, "$name - ERROR - $error");
|
||||||
|
|
||||||
checkRetry ($name,1);
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1128,7 +1157,7 @@ sub chatOp {
|
|||||||
setReadingErrorState ($hash, $error, $errorcode);
|
setReadingErrorState ($hash, $error, $errorcode);
|
||||||
Log3($name, 2, "$name - ERROR - $error");
|
Log3($name, 2, "$name - ERROR - $error");
|
||||||
|
|
||||||
checkRetry ($name,1);
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1212,16 +1241,16 @@ sub chatOp_parse {
|
|||||||
$errorcode = "800" if($err =~ /:\smalformed\sor\sunsupported\sURL$/xs);
|
$errorcode = "800" if($err =~ /:\smalformed\sor\sunsupported\sURL$/xs);
|
||||||
|
|
||||||
setReadingErrorState ($hash, $err, $errorcode);
|
setReadingErrorState ($hash, $err, $errorcode);
|
||||||
checkRetry ($name,1);
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
return;
|
return;
|
||||||
|
|
||||||
} elsif ($myjson ne "") {
|
} elsif ($myjson ne "") {
|
||||||
# wenn die Abfrage erfolgreich war ($data enthält die Ergebnisdaten des HTTP Aufrufes)
|
# wenn die Abfrage erfolgreich war ($data enthält die Ergebnisdaten des HTTP Aufrufes)
|
||||||
# Evaluiere ob Daten im JSON-Format empfangen wurden
|
# Evaluiere ob Daten im JSON-Format empfangen wurden
|
||||||
($hash,$success) = evalJSON ($hash,$myjson);
|
($success) = evaljson ($hash,$myjson);
|
||||||
unless ($success) {
|
unless ($success) {
|
||||||
Log3($name, 4, "$name - Data returned: ".$myjson);
|
Log3 ($name, 4, "$name - Data returned: ".$myjson);
|
||||||
checkRetry ($name,1);
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1238,7 +1267,7 @@ sub chatOp_parse {
|
|||||||
&{$hmodep{$opmode}{fn}} ($hash, $data);
|
&{$hmodep{$opmode}{fn}} ($hash, $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRetry ($name,0);
|
checkRetry ($name,0,"FHEM::SSChatBot::getApiSites");
|
||||||
|
|
||||||
readingsBeginUpdate ($hash);
|
readingsBeginUpdate ($hash);
|
||||||
readingsBulkUpdateIfChanged ($hash, "Errorcode", "none" );
|
readingsBulkUpdateIfChanged ($hash, "Errorcode", "none" );
|
||||||
@ -1259,7 +1288,7 @@ sub chatOp_parse {
|
|||||||
setReadingErrorState ($hash, $error, $errorcode);
|
setReadingErrorState ($hash, $error, $errorcode);
|
||||||
Log3($name, 2, "$name - ERROR - Operation $opmode was not successful. Errorcode: $errorcode - $error");
|
Log3($name, 2, "$name - ERROR - Operation $opmode was not successful. Errorcode: $errorcode - $error");
|
||||||
|
|
||||||
checkRetry ($name,1);
|
checkRetry ($name,1,"FHEM::SSChatBot::getApiSites");
|
||||||
}
|
}
|
||||||
|
|
||||||
undef $data;
|
undef $data;
|
||||||
@ -1408,27 +1437,6 @@ sub _parseSendItem {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Test ob JSON-String empfangen wurde
|
|
||||||
###############################################################################
|
|
||||||
sub evalJSON {
|
|
||||||
my ($hash,$myjson) = @_;
|
|
||||||
my $OpMode = $hash->{OPMODE};
|
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $success = 1;
|
|
||||||
my ($error,$errorcode);
|
|
||||||
|
|
||||||
eval {decode_json($myjson)} or do {
|
|
||||||
$success = 0;
|
|
||||||
$errorcode = "900";
|
|
||||||
$error = expErrors($hash,$errorcode); # Fehlertext zum Errorcode ermitteln
|
|
||||||
|
|
||||||
setReadingErrorState ($hash, $error, $errorcode);
|
|
||||||
};
|
|
||||||
|
|
||||||
return($hash,$success,$myjson);
|
|
||||||
}
|
|
||||||
|
|
||||||
######################################################################################
|
######################################################################################
|
||||||
# botToken speichern
|
# botToken speichern
|
||||||
######################################################################################
|
######################################################################################
|
||||||
@ -1857,8 +1865,8 @@ sub __botCGIcheckToken {
|
|||||||
channel => "",
|
channel => "",
|
||||||
attachment => ""
|
attachment => ""
|
||||||
};
|
};
|
||||||
addSendqueue($params);
|
addSendqueue ($params);
|
||||||
startQueue ($name, $rst);
|
startSendqueue ($name,$rst,"FHEM::SSChatBot::getApiSites",$name);
|
||||||
|
|
||||||
return ("text/plain; charset=utf-8", "400 Bad Request");
|
return ("text/plain; charset=utf-8", "400 Bad Request");
|
||||||
}
|
}
|
||||||
@ -1887,7 +1895,7 @@ sub __botCGIcheckPayload {
|
|||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
my $pldata = $h->{payload};
|
my $pldata = $h->{payload};
|
||||||
my (undef, $success) = evalJSON($hash,$pldata);
|
my ($success) = evaljson($hash,$pldata);
|
||||||
|
|
||||||
if (!$success) {
|
if (!$success) {
|
||||||
Log3($name, 1, "$name - ERROR - invalid JSON data received:\n".Dumper $pldata);
|
Log3($name, 1, "$name - ERROR - invalid JSON data received:\n".Dumper $pldata);
|
||||||
@ -2009,7 +2017,7 @@ sub __botCGIdataInterprete {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($do) { # Wenn Kommando ausgeführt wurde -> Queue übertragen
|
if($do) { # Wenn Kommando ausgeführt wurde -> Queue übertragen
|
||||||
startQueue ($name, $rst);
|
startSendqueue ($name,$rst,"FHEM::SSChatBot::getApiSites",$name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($command, $cr, $text);
|
return ($command, $cr, $text);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user