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:
DS_Starter
2020-08-18 19:27:12 +00:00
parent 8f78bac1e5
commit e36347ab45

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
@@ -2912,21 +2913,31 @@ 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
my $lvlm = $mandatory{$name}{$prl}{level}; # Forum: https://forum.fhem.de/index.php/topic,102112.msg1078990.html#msg1078990
if ($lvlm) {
$pbl .= "|^".$lvlm."_";
}
}
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) { if ($lvl) {
for my $p (keys %{$subs{$name}}) { $pbl .= "|^".$lvl."_";
delete($defs{$name}{READINGS}{$key}) if($subs{$name}{$p}{level} eq $lvl && !$subs{$name}{$p}{doit});
} }
} else { }
$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 !~ /$bl/x);
}
delete $defs{$name}{READINGS}{$key} if($key =~ /^$pblvl/x); # Logbuchreadings immer löschen 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);
} }