InternalTimer(gettimeofday()+0.1, "fhem_cli_exec", $in_command);Um in meinem Schema der Devices zu bleiben werde ich wohl noch ein Übergeordnetes DOIF im Perl Modus verwenden, dass die Steuerung und Darstellung übernehmen wird. Somit werden dann Signal, Babble und Gemini von dort aus als connect Devices getriggert und die Ausführung des gefundenen Kommandos im DOIF durchgeführt.in_sync_analyse_mapping:in_sync_message_sent.* {
my $message;
my $in_source = ReadingsVal("$name","in_sync_sourceUuid","null");
Log3($name,4,sprintf("%-20s ur_02 : %-21s : %s", $name,"in_sync_sourceUuid","$in_source"));
my $in_analyse = lc(ReadingsVal("$name","in_sync_message_sent","null"));
$in_analyse =~ s/^\s+//g; # leerzeichen abschneiden
$in_analyse =~ s/\s+$//g; # leerzeichen abschneiden
$in_analyse =~ s/\s+/ /g; # immer nur ein Leerzeichen zwischen den Worten
Log3($name,3,sprintf("%-20s ur_02 : %-21s : %s", $name,"in_sync_message_sent","$in_analyse"));
if ( $in_source eq "925814d3-c417-4848-bfbf-aaf306b978bd" ) { ## Anwender Kennung
my $in_command = "null";
if ( $in_analyse ne "null") {
my %h=eval "(".(AttrVal("$name","in_commands","n/a")).")";
$in_command = $h{$in_analyse} if defined $h{$in_analyse};
if ($in_command ne "null") {
if ( AttrVal("$name","exec_fhem_cli","null") eq "ja" ) {
Log3($name,3,sprintf("%-20s ur_02 : %-21s : %s", $name,"in_sync_command","$in_command"));
InternalTimer(gettimeofday()+0.1, "fhem_cli_exec", $in_command);
$message = "Kommando wird ausgeführt...";
} else {
$message = "Kommando Ausführung gesperrt";
}
} else {
Log3($name,3,sprintf("%-20s ur_02 : %-21s : %s", $name,"in_sync_command","Not found"));
$message = "Kommando wurde bisher nicht gefunden...";
}
InternalTimer(gettimeofday()+0.2, "fhem_cli_exec", "set $NAME FHEM_group $message");
return "$in_command";
}
} else {
$message = "Absender nicht berechtigt";
InternalTimer(gettimeofday()+0.2, "fhem_cli_exec", "set $NAME FHEM_group $message");
}
return "null";
}
Zitat von: Wzut am 26 Februar 2026, 17:06:00valueFormat {$VALUE += 0} ?
