diff --git a/FHEM/33_readingsGroup.pm b/FHEM/33_readingsGroup.pm index 90a241a6c..cbff7f4b7 100644 --- a/FHEM/33_readingsGroup.pm +++ b/FHEM/33_readingsGroup.pm @@ -1109,6 +1109,7 @@ readingsGroup_2html($;$) ($informid,$v,$devStateIcon) = readingsGroup_value2html($hash,$calc,$name,$name2,$n,$v,$cell_row,$cell_column,$type); next if( !defined($informid) ); #$informid = "informId=\"$d-item:$cell_row:$item\"" if( $format ); + $informid =~ s/"$/:$format"/ if( $format ); my $cell_style0 = lookup2($hash->{helper}{cellStyle},$name,$n,$v,$cell_row,0); my $cell_style = lookup2($hash->{helper}{cellStyle},$name,$n,$v,$cell_row,$cell_column); @@ -1218,8 +1219,6 @@ readingsGroup_Update($$$) my ($hash, $item, $value) = @_; my $name = $hash->{NAME}; - #Log 1, "$name, $item, $value"; - $hash->{changed} = 1; if( $hash->{alwaysTrigger} ) { @@ -1234,7 +1233,13 @@ readingsGroup_Update($$$) $ntfy->{inform}{type} ne "status"); next if( !$ntfy->{inform}{devices}{$name} ); if(!FW_addToWritebuffer($ntfy, - FW_longpollInfo($ntfy->{inform}{fmt}, "$name-$item", "", $value )."\n" )) { + FW_longpollInfo($ntfy->{inform}{fmt}, "$name-$item", "", $value ) ."\n" )) { + my $name = $ntfy->{NAME}; + Log3 $name, 4, "Closing connection $name due to full buffer in FW_Notify"; + TcpServer_Close($ntfy, 1); + } + if(!FW_addToWritebuffer($ntfy, + FW_longpollInfo($ntfy->{inform}{fmt}, "$name-$item-ts", "", TimeNow() ) ."\n" )) { my $name = $ntfy->{NAME}; Log3 $name, 4, "Closing connection $name due to full buffer in FW_Notify"; TcpServer_Close($ntfy, 1); @@ -1298,8 +1303,10 @@ readingsGroup_Notify($$) $hash->{DEF} =~ s/ $//; } readingsGroup_updateDevices($hash); + } elsif( $dev->{NAME} eq "global" && $s =~ m/^DEFINED ([^ ]*)$/) { readingsGroup_updateDevices($hash); + } else { next if(AttrVal($name,"disable", undef)); @@ -1511,7 +1518,11 @@ readingsGroup_Notify($$) $value = "
$value
" if( $value_style ); #FIXME: create {'$n.$reading'} = $value hash to avaid multiple events and calculations if same reading is included multiple times - $triggers{"$n.$reading"} = $value; + if( $format ) { + $triggers{"$n.$reading:$format"} = $value; + } else { + $triggers{"$n.$reading"} = $value; + } if( my $cells = $hash->{helper}{positions}{"$n.$reading"} ) { foreach my $cell ( split( ',', $cells ) ) { @@ -2143,14 +2154,14 @@ readingsGroup_Attr($$$;$)
  • notime
    Wenn der Wert auf 1 gesetzt, wird der Readings-Timestamp nicht angezeigt.

  • mapping
    - Kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zurückgibt, der den Reading-Name dem angezeigten Namen zuordnet. + Kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zurückgibt, der den Reading-Name dem angezeigten Namen zuordnet. Der Schlüssel kann entweder der Name des Readings oder <device>.<reading> oder <reading>.<value> oder <device>.<reading>.<value> sein. %DEVICE, %ALIAS, %ROOM, %GROUP, %ROW und %READING werden durch den Gerätenamen, Gerätealias, Raumattribut ersetzt. Sie können diesen Keywords auch ein Präfix voranstellen $ anstatt von %. Beispiele:
    attr temperatures mapping $DEVICE-$READING
    attr temperatures mapping {temperature => "%DEVICE Temperatur"}

  • separator
    - Das zu verwendende Trennzeichen zwischen dem Gerätealias und dem Reading-Namen, wenn keine Zuordnung angegeben ist, standardgemäß ':' + Das zu verwendende Trennzeichen zwischen dem Gerätealias und dem Reading-Namen, wenn keine Zuordnung angegeben ist, standardgemäß ':' Ein Leerzeichen wird so dargestellt &nbsp;

  • setList
    Eine durch Leerzeichen getrennte Liste von Befehlen, die zurückgegeben werden "set name ?", @@ -2163,7 +2174,7 @@ readingsGroup_Attr($$$;$) attr temperatures style style="font-size:20px"

  • cellStyle
    Geben Sie einen HTML-Stil für eine Zelle der Readings-Tabelle an. Normale Zeilen und Spalten werden gezählt beginnend mit 1, - Die Zeilenüberschriften beginnt mit der Spaltennummer 0. Perl-Code hat Zugriff auf $ROW und $COLUMN. Schlüssel für Hash-Lookup können sein: + Die Zeilenüberschriften beginnt mit der Spaltennummer 0. Perl-Code hat Zugriff auf $ROW und $COLUMN. Schlüssel für Hash-Lookup können sein: r:#, c:# oder r:#,c:# , z.Bsp:
    attr temperatures cellStyle { "c:0" => 'style="text-align:right"' }

  • nameStyle
    @@ -2179,7 +2190,7 @@ readingsGroup_Attr($$$;$) Geben Sie einen HTML-Colspan für die Readings-Werte an, z.Bsp:
    attr wzReceiverRG valueColumns { eventdescription => 'colspan="4"' }

  • valueFormat
    - Geben Sie eine Sprintf-Stilformat-Zeichenfolge an, die zum Anzeigen der Readings-Werte verwendet wird. Wenn die Formatzeichenfolge undef ist + Geben Sie eine Sprintf-Stilformat-Zeichenfolge an, die zum Anzeigen der Readings-Werte verwendet wird. Wenn die Formatzeichenfolge undef ist wird dieser Messwert übersprungen. Es kann als String angegeben werden, ein Perl-Ausdruck, der einen Hash- oder Perl-Ausdruck zurückgibt, der einen String zurückgibt, z.Bsp:
    attr temperatures valueFormat %.1f °C
    attr temperatures valueFormat { temperature => "%.1f °C", humidity => "%i %" }
    @@ -2244,12 +2255,12 @@ readingsGroup_Attr($$$;$) attr temperatures valueStyle {($DEVICE =~ m/aussen/)?'style="color:green"':'style="color:red"'}
    - Hinweis: Nur valueStyle, valueFomat, valueIcon und <{...}@reading> werden bei Longpoll-Updates ausgewertet und valueStyle muss für jeden möglichen Wert einen nicht leeren Stil zurückgeben. Alle anderen Perl-Ausdrücke werden nur einmal während der HTML-Erstellung ausgewertet und geben keine Wertupdates mit longpoll wieder. + Hinweis: Nur valueStyle, valueFomat, valueIcon und <{...}@reading> werden bei Longpoll-Updates ausgewertet und valueStyle muss für jeden möglichen Wert einen nicht leeren Stil zurückgeben. Alle anderen Perl-Ausdrücke werden nur einmal während der HTML-Erstellung ausgewertet und geben keine Wertupdates mit longpoll wieder. Aktualisieren Sie die Seite, um den dynamischen Stil zu aktualisieren. Für nameStyle funktioniert das Farbattribut momentan nicht, die font -... und background Attribute funktionieren.

    Berechnung: Bitte sehen Sie sich dafür diese Beschreibung an in der Wiki.
    z.Bsp: define rg readingsGroup .*:temperature rg:$avg - + =end html_DE