include /etc/fhem/*.cfgsub
CommandInclude($$)
{
my ($cl, $arg) = @_;
my $fh;
my @ret;
my $oldcfgfile;
my @files = ();
my $type = ($unicodeEncoding ? "< :encoding(UTF-8)" : "<");
if(!open($fh, $type, $arg)) {
@files = sort grep $_ ne $arg, glob($arg); # e.g. /etc/fhem/*.cfg
return "Can't open $arg: $!" unless @files;
}
Log 1, "Including $arg";
my @t = localtime(gettimeofday());
my $gcfg = ResolveDateWildcards(AttrVal("global", "configfile", ""), @t);
my $stf = ResolveDateWildcards(AttrVal("global", "statefile", ""), @t);
if(!$init_done && $arg ne $stf && $arg ne $gcfg) {
my $nr = $devcount++;
$comments{$nr}{TEXT} = "include $arg";
$comments{$nr}{CFGFN} = $currcfgfile if($currcfgfile ne $gcfg);
}
$oldcfgfile = $currcfgfile;
do {
if ( @files ) {
$arg = shift @files;
next if ($rcvdquit) or ($arg eq $gcfg) or ($arg eq $stf); # ignore globs matching configfile or statefile
if(!open($fh, $type, $arg)) {
push @ret, "Can't open $arg: $!";
next;
}
Log 1, "Including $arg";
}
$currcfgfile = $arg;
my $bigcmd = "";
my $lineno = 0;
$rcvdquit = 0;
while(my $l = <$fh>) {
$lineno++;
$l =~ s/[\r\n]//g;
if($l =~ m/^(.*)\\ *$/) { # Multiline commands
$bigcmd .= "$1\n";
} else {
my $tret = AnalyzeCommandChain($cl, $bigcmd . $l);
if(defined($tret)) {
Log 5, "$arg line $lineno returned >$tret<";
push @ret, $tret;
}
$bigcmd = "";
}
last if($rcvdquit);
}
close($fh);
} while @files;
$currcfgfile = $oldcfgfile;
return join("\n", @ret) if(@ret);
return undef;
}
98_vitoconnect.pm:v1.0.1-s30569/2025-11-29
# cat log/vitoconnect_7571381609484203.err
$VAR1 = {
'statusCode' => 500,
'message' => 'Internal server error occurs',
'errorType' => 'INTERNAL_SERVER_ERROR',
'viErrorId' => '00-aae014924afe2cc760171b4af2d7fa26-aacccd6f9122ee37-00',
'extendedPayload' => {}
};
Ich muss mich bezüglich des "Access Token: nicht definiert" korrigieren. Das kommt minütlich, wenn ich gerade unauth bin. Gestern Abend nach 23:50 Uhr hab ich den api-key wieder reingetan. Seitdem läufts. Somit kann ich den Fehler auch gerade nicht reproduzieren. Aber trotzdem schafft er es bei mir ja früher oder später nicht den Token zu freshen. Den Fehlerlog kann ich dann vrmtl. erst morgen liefern. Provozieren kann ich das ja nicht, oder?

statusCode: 401 errorType: UNAUTHORIZED message: Token provided in request is expired or invalid. error: EXPIRED TOKEN reason: undef
fhem | 2025.12.13 23:41:38 1: Heizung - Access Token: nicht definiert
fhem | 2025.12.13 23:43:09 1: Heizung - Access Token: nicht definiert
fhem | 2025.12.13 23:44:39 1: Heizung - Access Token: nicht definiert
fhem | 2025.12.13 23:46:10 1: Heizung - Access Token: nicht definiert
fhem | 2025.12.13 23:47:40 1: Heizung - Access Token: nicht definiert
fhem | 2025.12.13 23:49:10 1: Heizung - Access Token: nicht definiert
fhem | 2025.12.13 23:50:36 1: Heizung - Access Token: nicht definiert
defmod Heizung vitoconnect mein-user@meine-domain.net meinpw 90
