Hi!
Teilweise kommt es ja vor, dass ein (Mess-)wert zu einem Zeitabschnitt nicht erfasst werden kann. Leider wird da standardmäßig einfach zwischen den jeweils zuletzt bekannten Werten verbunden (ob jetzt 'stair' oder 'line' ist egal). Also z.B. 85°C bei Onewire-Temperaturfühlern oder eben eine "0" für einen anderen Messwert, der niemals 0 sein kann.
Habe das sqlite-plugin von sh.py so weit, dass ich über ein Attribut 'sqlite_null_value' einen Wert definieren kann, welcher dann mit 'null' (String!) ersetzt wird. Laut Highcharts - Area with missing points geht das mit einem "null" in der Series.
Leider bekomme ich den Graph dann nicht mehr angezeigt. Schätze, dass das JS (io_smarthome.py.js oder widget.js) irgendwo zwingend eine Zahl erwartet.
Wenn ich statt 'null' einfach eine Zahl (z.B. 2000) eintrage, funktioniert das ganze (also der Graph geht auf 2000 in dem Bereich).
Grüße
Robert
Teilweise kommt es ja vor, dass ein (Mess-)wert zu einem Zeitabschnitt nicht erfasst werden kann. Leider wird da standardmäßig einfach zwischen den jeweils zuletzt bekannten Werten verbunden (ob jetzt 'stair' oder 'line' ist egal). Also z.B. 85°C bei Onewire-Temperaturfühlern oder eben eine "0" für einen anderen Messwert, der niemals 0 sein kann.
Habe das sqlite-plugin von sh.py so weit, dass ich über ein Attribut 'sqlite_null_value' einen Wert definieren kann, welcher dann mit 'null' (String!) ersetzt wird. Laut Highcharts - Area with missing points geht das mit einem "null" in der Series.
Leider bekomme ich den Graph dann nicht mehr angezeigt. Schätze, dass das JS (io_smarthome.py.js oder widget.js) irgendwo zwingend eine Zahl erwartet.
Wenn ich statt 'null' einfach eine Zahl (z.B. 2000) eintrage, funktioniert das ganze (also der Graph geht auf 2000 in dem Bereich).
Code:
[iAQ_Stick] [[PPM]] type = num sqlite = true sqlite_null_value = 0 iaqstick_info = ppm
Code:
diff --git a/plugins/sqlite/__init__.py b/plugins/sqlite/__init__.py index 85b0fa0..a67780e 100755 --- a/plugins/sqlite/__init__.py +++ b/plugins/sqlite/__init__.py @@ -343,6 +343,11 @@ class SQL(): tuples.append((iend, lval)) # add end entry with last valid entry if update: # remove first entry tuples = tuples[1:] + item = self._sh.return_item(item) + if 'sqlite_null_value' in item.conf: + for i in range(len(tuples)): + if tuples[i][1] == int(item.conf['sqlite_null_value']): + tuples[i] = (tuples[i][0], 'null') reply['series'] = tuples return reply
Robert
Kommentar