2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 12:49:34 +00:00

76_SMAPortal: contrib 3.4.1

git-svn-id: https://svn.fhem.de/fhem/trunk@22626 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2020-08-18 19:27:12 +00:00
parent b2f9eca72f
commit ab0f6fe5a2

View File

@ -1,5 +1,5 @@
######################################################################################################################### #########################################################################################################################
# $Id: 76_SMAPortal.pm 22390 2020-07-12 06:31:29Z DS_Starter $ # $Id: 76_SMAPortal.pm 22573 2020-08-10 16:02:32Z DS_Starter $
######################################################################################################################### #########################################################################################################################
# 76_SMAPortal.pm # 76_SMAPortal.pm
# #
@ -137,6 +137,7 @@ BEGIN {
# Versions History intern # Versions History intern
my %vNotesIntern = ( my %vNotesIntern = (
"3.4.1" => "18.08.2020 add selected providerlevel to deletion blacklist # Forum: https://forum.fhem.de/index.php/topic,102112.msg1078990.html#msg1078990 ",
"3.4.0" => "09.08.2020 attr balanceDay, balanceMonth, balanceYear for data provider balanceDayData, balanceMonthData, balanceYearData ". "3.4.0" => "09.08.2020 attr balanceDay, balanceMonth, balanceYear for data provider balanceDayData, balanceMonthData, balanceYearData ".
"set getData command, update button in header of PortalAsHtml, minor code changes according PBP", "set getData command, update button in header of PortalAsHtml, minor code changes according PBP",
"3.3.4" => "12.07.2020 fix break in header if attribute hourCount was reduced ", "3.3.4" => "12.07.2020 fix break in header if attribute hourCount was reduced ",
@ -2067,7 +2068,7 @@ sub ParseData { ## no critic
@da = split "###", $lc; @da = split "###", $lc;
} }
deleteData($hash, 0) if($getp ne "none"); # Daten nur löschen wenn Datenabruf (kein Verbraucher schalten) deleteData($hash, 1) if($getp ne "none"); # Daten nur löschen wenn Datenabruf (kein Verbraucher schalten)
readingsBeginUpdate($hash); readingsBeginUpdate($hash);
@ -2869,12 +2870,12 @@ sub setVersionInfo {
if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) { if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) {
# META-Daten sind vorhanden # META-Daten sind vorhanden
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}} $modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}}
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 76_SMAPortal.pm 22390 2020-07-12 06:31:29Z DS_Starter $ im Kopf komplett! vorhanden ) if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 76_SMAPortal.pm 22573 2020-08-10 16:02:32Z DS_Starter $ im Kopf komplett! vorhanden )
$modules{$type}{META}{x_version} =~ s/1\.1\.1/$v/gx; $modules{$type}{META}{x_version} =~ s/1\.1\.1/$v/gx;
} else { } else {
$modules{$type}{META}{x_version} = $v; $modules{$type}{META}{x_version} = $v;
} }
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 76_SMAPortal.pm 22390 2020-07-12 06:31:29Z DS_Starter $ im Kopf komplett! vorhanden ) return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 76_SMAPortal.pm 22573 2020-08-10 16:02:32Z DS_Starter $ im Kopf komplett! vorhanden )
if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) { if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) {
# es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen # es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen
# mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden # mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden
@ -2890,7 +2891,7 @@ return;
################################################################ ################################################################
# delete Readings und Hash HELPER-Daten # delete Readings und Hash HELPER-Daten
# $conspl = providerLevel berücksichtigen # $conspl = providerLevel berücksichtigen
################################################################ ################################################################
sub deleteData { sub deleteData {
my $hash = shift; my $hash = shift;
@ -2898,11 +2899,11 @@ sub deleteData {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my @allrds = keys%{$defs{$name}{READINGS}}; my @allrds = keys%{$defs{$name}{READINGS}};
my $bl = "state|lastCycleTime|Counter|loginState"; # Blacklist my $bl = "state|lastCycleTime|Counter|loginState"; # Blacklist
my $pblvl = $stpl{plantLogbook}{level}; # Logbuch Level my $pblvl = $stpl{plantLogbook}{level}; # Logbuch Level
if(!$subs{$name}{forecastData}{doit}) { # wenn forecastData nicht abgerufen werden sollen -> Wetterdaten im HELPER löschen if(!$subs{$name}{forecastData}{doit}) { # wenn forecastData nicht abgerufen werden sollen -> Wetterdaten im HELPER löschen
my $fclvl = $stpl{forecastData}{level}; my $fclvl = $stpl{forecastData}{level};
delete $hash->{HELPER}{"${fclvl}_ThisHour_WeatherId"}; delete $hash->{HELPER}{"${fclvl}_ThisHour_WeatherId"};
for my $i (1..23) { for my $i (1..23) {
@ -2911,22 +2912,32 @@ sub deleteData {
} }
} }
if($conspl) { # Readings löschen wenn nicht im providerLevel enthalten if($conspl) { # Readings löschen wenn nicht im providerLevel enthalten
for my $key(@allrds) { my $pbl = q{};
my ($lvl) = $key =~ m/^(L\d+)_/x; for my $prl (keys %{$mandatory{$name}}) { # mandatory Provider die abgerufen wurden
if($lvl) { my $lvlm = $mandatory{$name}{$prl}{level}; # Forum: https://forum.fhem.de/index.php/topic,102112.msg1078990.html#msg1078990
for my $p (keys %{$subs{$name}}) { if ($lvlm) {
delete($defs{$name}{READINGS}{$key}) if($subs{$name}{$p}{level} eq $lvl && !$subs{$name}{$p}{doit}); $pbl .= "|^".$lvlm."_";
}
} else {
delete($defs{$name}{READINGS}{$key}) if($key !~ /$bl/x);
} }
delete $defs{$name}{READINGS}{$key} if($key =~ /^$pblvl/x); # Logbuchreadings immer löschen
} }
for my $prl (keys %{$subs{$name}}) { # Provider die abgerufen wurden
my $lvl = $subs{$name}{$prl}{level} if($subs{$name}{$prl}{doit}); # Forum: https://forum.fhem.de/index.php/topic,102112.msg1078990.html#msg1078990
if ($lvl) {
$pbl .= "|^".$lvl."_";
}
}
$bl .= $pbl; # Blacklist ergänzen
for my $key(@allrds) {
delete($defs{$name}{READINGS}{$key}) if($key !~ /$bl/x);
delete $defs{$name}{READINGS}{$key} if($key =~ /^$pblvl/x); # Logbuchreadings immer löschen
}
return; return;
} }
for my $key(@allrds) { for my $key(@allrds) { # alle Readings löschen bis auf Standard-Blacklist
delete($defs{$name}{READINGS}{$key}) if($key !~ /$bl/x); delete($defs{$name}{READINGS}{$key}) if($key !~ /$bl/x);
} }