diff --git a/restricted/deviceDiscovery/device_discovery.py b/restricted/deviceDiscovery/device_discovery.py index 3817569..ef11b6b 100644 --- a/restricted/deviceDiscovery/device_discovery.py +++ b/restricted/deviceDiscovery/device_discovery.py @@ -413,7 +413,15 @@ class DatabaseManager: VALUES (%s, %s, %s, %s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE state_type = VALUES(state_type), - current_value = VALUES(current_value), + -- COALESCE und nicht VALUES() allein: ein Modul, das + -- keinen Startwert kennt, liefert hier NULL, und das + -- loeschte bisher den laufenden Messwert. Der Runner + -- schrieb ihn auch nicht zurueck - er merkt sich, was er + -- zuletzt in die Datenbank geschrieben hat, und der + -- naechste gleiche Wert galt damit als unveraendert. Im + -- Editor stand danach "Regen heute (= )", bis sich der + -- Wert zufaellig einmal aenderte. + current_value = COALESCE(VALUES(current_value), current_value), possible_values = VALUES(possible_values), unit = VALUES(unit), url = VALUES(url), @@ -485,7 +493,9 @@ class DatabaseManager: VALUES (%s, %s, %s, %s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE state_type = VALUES(state_type), - current_value = VALUES(current_value), + -- Siehe insert_actor: NULL heisst "kein Startwert", + -- nicht "Messwert loeschen". + current_value = COALESCE(VALUES(current_value), current_value), unit = VALUES(unit), url = VALUES(url), value_path = VALUES(value_path),