diff --git a/fhem/docs/commandref_frame.html b/fhem/docs/commandref_frame.html
index 8758fc069..dd5e9d8b1 100644
--- a/fhem/docs/commandref_frame.html
+++ b/fhem/docs/commandref_frame.html
@@ -469,32 +469,38 @@ A line ending with \ will be concatenated with the next one, so long lines
energy1:counters.A { ReadingsVal("myMultiMeter","counters.A",0)/1250.0;; },
energy2:counters.B { ReadingsVal("myMultiMeter","counters.B",0)/1250.0;; }
- <modifier>
can take one of these values:
-
- - none: the same as it would not have been given at all.
- - difference: the reading is set to the difference between the current
- and the previously evaluated value.
- - differential: the reading is set to the difference between the
- current and the previously evaluated value divided by the time in
- seconds between the current and the previous evaluation. Granularity
- of time is one second. No value is calculated if the time past is
- below one second. Useful to calculate rates.
- - offset: if the current evaluated value is smaler than the previously
- evaluated value the reading is incremented by the previous value.
- the reading can then be used as an offset correct for a counter that
- is reset for example due to a power loss.
- - monotonic: if the difference between the current and the previously
- evaluated value is positive the reading is incremented by this difference.
- this allows to derive a monotonic growing counter from an original counter
- even if the original will be rest by a power loss
-
- Example:
- attr myPowerMeter userReadings power
- differential { ReadingsVal("myPowerMeter","counters.A",0)/1250.0;; }
-
- Note: user readings with modifiers difference and differential store the
- calculated values internally. The user reading is set earliest at the
- second evaluation. Beware of stale values when changing definitions!
+ <modifier>
can take one of these values:
+
+ - none: the same as it would not have been given at all.
+ - difference: the reading is set to the difference between the current
+ and the previously evaluated value.
+ - differential: the reading is set to the difference between the
+ current and the previously evaluated value divided by the time in
+ seconds between the current and the previous evaluation. Granularity
+ of time is one second. No value is calculated if the time past is
+ below one second. Useful to calculate rates.
+ - offset: if the current evaluated value is smaler than the previously
+ evaluated value the reading is incremented by the previous value.
+ the reading can then be used as an offset correct for a counter that
+ is reset for example due to a power loss.
+ - monotonic: if the difference between the current and the previously
+ evaluated value is positive the reading is incremented by this difference.
+ this allows to derive a monotonic growing counter from an original counter
+ even if the original will be rest by a power loss
+
+ Example:
+ attr myPowerMeter userReadings power
+ differential { ReadingsVal("myPowerMeter","counters.A",0)/1250.0;; }
+
+ Notes:
+
+ - user readings with modifiers difference and differential store the
+ calculated values internally. The user reading is set earliest at the
+ second evaluation. Beware of stale values when changing
+ definitions!
+ - the name of the defined Readings consists of alphanumeric characters
+ with underscore (_) and the minus (-) sign.
+
diff --git a/fhem/docs/commandref_frame_DE.html b/fhem/docs/commandref_frame_DE.html
index 658828881..bc156b6a6 100644
--- a/fhem/docs/commandref_frame_DE.html
+++ b/fhem/docs/commandref_frame_DE.html
@@ -508,9 +508,13 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.
attr myPowerMeter userReadings power differential
{ ReadingsVal("myPowerMeter","counters.A",0)/1250.0}
- Achtung: Falls difference oder differential spezifiziert ist, dann werden
- für die Berechnung ältere Werte benötigt, d.h. der Wert wird
- frühestens beim zweiten Änderung gesetzt.
+ Achtung:
+ - Falls difference oder differential spezifiziert ist, dann werden
+ für die Berechnung ältere Werte benötigt, d.h. der Wert
+ wird frühestens beim zweiten Änderung gesetzt.
+ - der Name der definierten Readings besteht aus alphanumerischen
+ Zeichen, Unterstrich (_) und Minus-Zeichen (-).
+
diff --git a/fhem/fhem.pl b/fhem/fhem.pl
index f20e53d4e..8d23e6cd6 100755
--- a/fhem/fhem.pl
+++ b/fhem/fhem.pl
@@ -2166,7 +2166,7 @@ CommandAttr($$)
my $arg= $a[2];
# matches myReading1[:trigger2] { codecode1 }
- my $regexi= '\s*(\w+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
+ my $regexi= '\s*([\w-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
my $regexo= '^(' . $regexi . ')(,\s*(.*))*$';
#Log 1, "arg is $arg";