2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-19 00:26:03 +00:00

76_SolarForecast: contrib 0.82.0

git-svn-id: https://svn.fhem.de/fhem/trunk@27921 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2023-09-03 16:19:58 +00:00
parent 70a4db53e4
commit 2fcc46f101

View File

@ -1251,8 +1251,8 @@ sub Set {
; ;
} }
else { else {
$setlist .= #"aiAddInstance:noArg ". $setlist .= "aiAddInstance:noArg ".
#"aiTrain:noArg ". "aiTrain:noArg ".
"moduleDirection ". "moduleDirection ".
"moduleTiltAngle " "moduleTiltAngle "
; ;
@ -2078,7 +2078,7 @@ sub _setreset { ## no critic "not used"
} }
delete $data{$type}{$name}{current}{aitrainstate}; delete $data{$type}{$name}{current}{aitrainstate};
delete $data{$type}{$name}{current}{aiworkstate}; delete $data{$type}{$name}{current}{aiaddistate};
return; return;
} }
@ -8523,7 +8523,7 @@ sub _graphicHeader {
############## ##############
my $aiist = CurrentVal ($hash, 'aiinitstate', ''); my $aiist = CurrentVal ($hash, 'aiinitstate', '');
my $aitst = CurrentVal ($hash, 'aitrainstate', 'ok'); my $aitst = CurrentVal ($hash, 'aitrainstate', 'ok');
my $aiwst = CurrentVal ($hash, 'aiworkstate', 'ok'); my $aiast = CurrentVal ($hash, 'aiaddistate', 'ok');
my $aitit = $aidtabs ? $hqtxt{aimstt}{$lang} : my $aitit = $aidtabs ? $hqtxt{aimstt}{$lang} :
$aiist ne 'ok' ? $hqtxt{ainuse}{$lang} : $aiist ne 'ok' ? $hqtxt{ainuse}{$lang} :
@ -8532,7 +8532,7 @@ sub _graphicHeader {
my $aiimg = $aidtabs ? FW_makeImage ('--', $aitit) : my $aiimg = $aidtabs ? FW_makeImage ('--', $aitit) :
$aiist ne 'ok' ? FW_makeImage ('-', $aitit) : $aiist ne 'ok' ? FW_makeImage ('-', $aitit) :
$aitst ne 'ok' ? FW_makeImage ('10px-kreis-rot.png', $aitst) : $aitst ne 'ok' ? FW_makeImage ('10px-kreis-rot.png', $aitst) :
$aiwst ne 'ok' ? FW_makeImage ('10px-kreis-rot.png', $aiwst) : $aiast ne 'ok' ? FW_makeImage ('10px-kreis-rot.png', $aiast) :
FW_makeImage ('10px-kreis-gruen.png', $hqtxt{aiwook}{$lang}); FW_makeImage ('10px-kreis-gruen.png', $hqtxt{aiwook}{$lang});
my $aiicon = qq{<a title="$aitit">$aiimg</a>}; my $aiicon = qq{<a title="$aitit">$aiimg</a>};
@ -10478,6 +10478,8 @@ sub aiAddInstance { ## no critic "not used"
if (!$dtree) { if (!$dtree) {
my $err = aiInit ($paref); my $err = aiInit ($paref);
return if($err); return if($err);
$dtree = AiDetreeVal ($hash, undef);
} }
my ($pvrl, $temp, $wcc, $wrp, $rad1h); my ($pvrl, $temp, $wcc, $wrp, $rad1h);
@ -10510,11 +10512,11 @@ sub aiAddInstance { ## no critic "not used"
) )
} }
or do { Log3 ($name, 1, "$name - aiAddInstance ERROR: $@"); or do { Log3 ($name, 1, "$name - aiAddInstance ERROR: $@");
$data{$type}{$name}{current}{aiworkstate} = $@; $data{$type}{$name}{current}{aiaddistate} = $@;
return; return;
}; };
$data{$type}{$name}{current}{aiworkstate} = 'ok'; $data{$type}{$name}{current}{aiaddistate} = 'ok';
debugLog ($paref, 'aiProcess', qq{AI Instance added - day: $pvd, hod: $hod, rad1h: $rad1h, pvrl: $pvrl, wcc: $wcc, wrp: $wrp, temp: $temp}); debugLog ($paref, 'aiProcess', qq{AI Instance added - day: $pvd, hod: $hod, rad1h: $rad1h, pvrl: $pvrl, wcc: $wcc, wrp: $wrp, temp: $temp});
} }
@ -10544,6 +10546,8 @@ sub aiTrain { ## no critic "not used"
if (!$dtree) { if (!$dtree) {
$err = aiInit ($paref); $err = aiInit ($paref);
return if($err); return if($err);
$dtree = AiDetreeVal ($hash, undef);
} }
eval { $dtree->train eval { $dtree->train
@ -10582,6 +10586,8 @@ sub aiGetResult { ## no critic "not used"
if (!$dtree) { if (!$dtree) {
my $err = aiInit ($paref); my $err = aiInit ($paref);
return if($err); return if($err);
$dtree = AiDetreeVal ($hash, undef);
} }
for my $idx (sort keys %{$data{$type}{$name}{nexthours}}) { for my $idx (sort keys %{$data{$type}{$name}{nexthours}}) {
@ -10597,7 +10603,7 @@ sub aiGetResult { ## no critic "not used"
my $pvfc; my $pvfc;
$pvfc = eval { $dtree->get_result (attributes => { rad1h => $rad1h, eval { $pvfc = $dtree->get_result (attributes => { rad1h => $rad1h,
temp => $temp, temp => $temp,
wcc => $wcc, wcc => $wcc,
wrp => $wrp, wrp => $wrp,
@ -10608,12 +10614,10 @@ sub aiGetResult { ## no critic "not used"
if ($@) { if ($@) {
Log3 ($name, 1, "$name - aiGetResult ERROR: $@"); Log3 ($name, 1, "$name - aiGetResult ERROR: $@");
$data{$type}{$name}{current}{aiworkstate} = $@;
return; return;
} }
if (defined $pvfc) { if (defined $pvfc) {
$data{$type}{$name}{current}{aiworkstate} = 'ok';
debugLog ($paref, 'aiProcess', qq{result AI: pvfc: $pvfc (hod: $hod, rad1h: $rad1h, wcc: $wcc, wrp: $wrp, temp: $temp)}); debugLog ($paref, 'aiProcess', qq{result AI: pvfc: $pvfc (hod: $hod, rad1h: $rad1h, wcc: $wcc, wrp: $wrp, temp: $temp)});
} }
} }
@ -12918,7 +12922,7 @@ return $def;
# $key: generation - aktuelle PV Erzeugung # $key: generation - aktuelle PV Erzeugung
# aiinitstate - Initialisierungsstatus der KI # aiinitstate - Initialisierungsstatus der KI
# aitrainstate - Traisningsstatus der KI # aitrainstate - Traisningsstatus der KI
# aiworkstate - aktueller Arbeitstatus der KI # aiaddistate - Add Instanz Status der KI
# genslidereg - Schieberegister PV Erzeugung (Array) # genslidereg - Schieberegister PV Erzeugung (Array)
# h4fcslidereg - Schieberegister 4h PV Forecast (Array) # h4fcslidereg - Schieberegister 4h PV Forecast (Array)
# consumption - aktueller Verbrauch (W) # consumption - aktueller Verbrauch (W)