diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm
index 22f1eae8e..77de5cbca 100644
--- a/fhem/contrib/DS_Starter/76_SolarForecast.pm
+++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm
@@ -162,7 +162,8 @@ BEGIN {
my %vNotesIntern = (
"1.53.0" => "25.06.2025 new battery style (batcontainer), new key setupBatteryDevXX->label, new reading Battery_ChargeUnrestricted_XX ".
"attribute graphicShowDiff replaced by graphicControl->showDiff ".
- "check local coordinates are set in global device and fill message system if failure ",
+ "check local coordinates are set in global device and fill message system if failure ".
+ "consumer Attr key noshow new possible value '9' ",
"1.52.18"=> "23.06.2025 ctrlSpecialReadings: new option conForecastComingNight, fix last hour of remainingSurplsHrsMinPwrBat_ ".
"some more minor fixes ",
"1.52.17"=> "22.06.2025 remainingSurplsHrsMinPwrBat_: calculate with two decimal places ",
@@ -14777,7 +14778,7 @@ sub _readSystemMessages {
$midx++;
$data{$name}{preparedmessages}{$midx}{SV} = 3;
$data{$name}{preparedmessages}{$midx}{DE} = "ACHTUNG: Im global Device sind diese wichtigen Parameter nicht vorhanden: $noloc
";
- $data{$name}{preparedmessages}{$midx}{DE} .= 'Bitte diese Attribute unbedingt im global Device setzen!';
+ $data{$name}{preparedmessages}{$midx}{DE} .= 'Bitte unbedingt diese Attribute im global Device setzen!';
$data{$name}{preparedmessages}{$midx}{EN} = "CAUTION: These important parameters are not available in the global device: $noloc
";
$data{$name}{preparedmessages}{$midx}{EN} .= 'Please be sure to set these attributes in the global device!';
}
@@ -16306,7 +16307,9 @@ sub _graphicConsumerLegend {
my $tro = 0;
for my $c (@consumers) {
- next if(isConsumerNoshow ($hash, $c) =~ /^[12]$/xs); # Consumer ausblenden
+ my $noshow = isConsumerNoshow ($hash, $c);
+
+ next if($noshow =~ /[12]/xs); # Consumer ausblenden
my $caicon = $paref->{caicon}; # Consumer AdviceIcon
my ($err, $cname, $dswname) = getCDnames ($hash, $c); # Consumer und Switch Device Name
@@ -16402,27 +16405,29 @@ sub _graphicConsumerLegend {
$auicon = " $staticon";
}
- if (isConsumerPhysOff($hash, $c)) { # Schaltzustand des Consumerdevices off
- if ($cmdon) {
- $staticon = FW_makeImage('ios_off_fill@red', $htitles{iave}{$lang});
- $swicon = " $staticon";
- }
- else {
- $staticon = FW_makeImage('ios_off_fill@grey', $htitles{ians}{$lang});
- $swicon = " $staticon";
- }
- }
+ if ($noshow !~ /[9]/xs) { # mit $noshow '9' die Schalter im Paneel ausblenden
+ if (isConsumerPhysOff($hash, $c)) { # Schaltzustand des Consumerdevices off
+ if ($cmdon) {
+ $staticon = FW_makeImage('ios_off_fill@red', $htitles{iave}{$lang});
+ $swicon = " $staticon";
+ }
+ else {
+ $staticon = FW_makeImage('ios_off_fill@grey', $htitles{ians}{$lang});
+ $swicon = " $staticon";
+ }
+ }
- if (isConsumerPhysOn($hash, $c)) { # Schaltzustand des Consumerdevices on
- if($cmdoff) {
- $staticon = FW_makeImage('ios_on_fill@green', $htitles{ieva}{$lang});
- $swicon = " $staticon";
- }
- else {
- $staticon = FW_makeImage('ios_on_fill@grey', $htitles{iens}{$lang});
- $swicon = " $staticon";
- }
- }
+ if (isConsumerPhysOn($hash, $c)) { # Schaltzustand des Consumerdevices on
+ if($cmdoff) {
+ $staticon = FW_makeImage('ios_on_fill@green', $htitles{ieva}{$lang});
+ $swicon = " $staticon";
+ }
+ else {
+ $staticon = FW_makeImage('ios_on_fill@grey', $htitles{iens}{$lang});
+ $swicon = " $staticon";
+ }
+ }
+ }
if ($clstyle eq 'icon') {
$cicon = FW_makeImage($cicon);
@@ -17685,7 +17690,7 @@ sub _flowGraphic {
my $cnsmr = {}; # Hashref Consumer current power
for my $c (sort{$a<=>$b} keys %{$data{$name}{consumers}}) { # definierte Verbraucher ermitteln
- next if(isConsumerNoshow ($hash, $c) =~ /^[13]$/xs); # auszublendende Consumer nicht berücksichtigen
+ next if(isConsumerNoshow ($hash, $c) =~ /[13]/xs); # auszublendende Consumer nicht berücksichtigen
$cnsmr->{$c}{p} = ReadingsNum ($name, "consumer${c}_currentPower", 0);
$cnsmr->{$c}{ptyp} = 'consumer';
}
@@ -22662,6 +22667,7 @@ return 0;
# 1 - ausblenden
# 2 - nur in Consumerlegende ausblenden
# 3 - nur in Flowgrafik ausblenden
+# 9 - Schaltersysmbol im Consumerpanel ausblenden
################################################################
sub isConsumerNoshow {
my $hash = shift;
@@ -22680,7 +22686,7 @@ sub isConsumerNoshow {
$noshow = ReadingsNum ($dev, $rdg, 0);
}
- if ($noshow !~ /^[0123]$/xs) { # nur Ergebnisse 0..3 zulassen
+ if ($noshow !~ /[01239]/xs) { # nur Ergebnisse 0..X zulassen
$noshow = 0;
}
@@ -25980,12 +25986,13 @@ to ensure that the system configuration is correct.