diff --git a/fhem/CHANGED b/fhem/CHANGED
index 45bffd3ea..212f48ef3 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,7 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
+ - change: 98_dewpoint: Don't manipulate STATE of target device if has
+ stateFormat defined.
- new: 55_DWD_OpenData: weather and alerts from DWD
- bugfix: 74_Unifi: Cookies for UnifiController 5.9.4
- bugfix: 74_GardenaSmartDevice: fix uninitialized value $abilities
diff --git a/fhem/FHEM/98_dewpoint.pm b/fhem/FHEM/98_dewpoint.pm
index 57ba30c5e..b6cd91bb1 100644
--- a/fhem/FHEM/98_dewpoint.pm
+++ b/fhem/FHEM/98_dewpoint.pm
@@ -311,7 +311,9 @@ dewpoint_Notify($$)
}
$sensor = $new_name;
- if ($temp_name ne "T") {
+
+ my $has_state_format = defined(AttrVal($dev->{NAME}, "stateFormat", undef));
+ if ($temp_name ne "T" || $has_state_format) {
$current = $dewpoint;
readingsBulkUpdate($dev, $sensor, $current);
readingsEndUpdate($dev, 1);
@@ -547,9 +549,11 @@ dewpoint_absFeuchte ($$)
If optional <temp_name>, <hum_name> and <new_name> is specified
then read temperature from reading <temp_name>, humidity from reading <hum_name>
and write the calculated dewpoint to reading <new_name>.
- If <temp_name> is T then use temperature from state T: H:, add <new_name> to the state.
+ Obsolete, avoid for new definitions
+ If <temp_name> is T then use temperature from state T: H:, add <new_name> to the STATE.
+ The addition to STATE only occurs if the target device does not define attribute "stateFormat".
-
+
Example:
# Compute the dewpoint for the temperature/humidity @@ -565,12 +569,13 @@ dewpoint_absFeuchte ($$) # Compute the dewpoint for the temperature/humidity # events of the device Aussen_1 offering temperature and humidity - # and insert is into STATE. + # and insert is into STATE unless Aussen_1 has attribute "stateFormat" defined. + # If "stateFormat" is defined then a reading D will be generated. define dew_state dewpoint dewpoint Aussen_1 T H D # Compute the dewpoint for the temperature/humidity # events of all devices offering temperature and humidity - # and insert the result into the STATE. + # and insert the result into the STATE. (See example above). # Example STATE: "T: 10 H: 62.5" will change to # "T: 10 H: 62.5 D: 3.2" define dew_state dewpoint dewpoint .* T H D @@ -699,9 +704,11 @@ dewpoint_absFeuchte ($$) und Luftfeuchte und erzeugt daraus ein neues Reading namens dewpoint.
Wenn <temp_name>, <hum_name> und <new_name> angegeben sind, werden die Temperatur aus dem Reading <temp_name>, die Luftfeuchte aus dem - Reading <hum_name> gelesen und als berechneter Taupunkt ins Reading <new_name> geschrieben.
- Wenn <temp_name> T lautet, wird die Temperatur aus state T: H: benutzt - und <new_name> zu state hinzugefügt. + Reading <hum_name> gelesen und als berechneter Taupunkt ins Reading <new_name> geschrieben.
+ Veraltet, für neue Definitionen nicht mehr benutzen
+ Wenn <temp_name> T lautet, wird die Temperatur aus state T: H: benutzt + und <new_name> zu STATE hinzugefügt. Das hinzufügen zu STATE erfolgt nur, falls im Zielgerät + das Attribut "stateFormat" nicht definiert ist.
Beispiele:@@ -718,12 +725,13 @@ dewpoint_absFeuchte ($$) # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte # in Ereignissen, die vom Gerät Aussen_1 erzeugt wurden und ergänzt - # mit diesem Wert den Status STATE. + # mit diesem Wert den Status STATE, falls in Aussen_1 das Attribut "stateFormat" nicht definiert ist. + # Falls "stateFormat" definiert ist, wird das reading "D" angelegt. define dew_state dewpoint dewpoint Aussen_1 T H D # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte # in Ereignissen, die von allen Geräten erzeugt wurden die diese Werte ausgeben - # und ergänzt mit diesem Wert den Status STATE. + # und ergänzt mit diesem Wert den Status STATE. (Siehe Beispiel oben). # Beispiel STATE: "T: 10 H: 62.5" wird verändert nach # "T: 10 H: 62.5 D: 3.2" define dew_state dewpoint dewpoint .* T H D