plugins icon indicating copy to clipboard operation
plugins copied to clipboard

database: Enhancements collection of links and opinions

Open bmxp opened this issue 5 years ago • 9 comments

  • https://knx-user-forum.de/forum/supportforen/smarthome-py/1278859-update-von-gleichbleibenden-messwerten-in-die-datenbank
  • https://github.com/smarthomeNG/smarthome/issues/165#issuecomment-280458728
  • https://knx-user-forum.de/forum/supportforen/smarthome-py/1273010-verbrauch-gas-etc-ungewolltes-item-trigger-bei-neustart

New attributes:

  • database_write: on_update to enable writing of a recurrent value without a change -> behaviour has been implemented in v1.7.2 through the standard attribute enforce_change
  • database_maxage: <days> maximum age of entries within a database for an item -> has alreedy been implemented

New feature wishes:

  • compacting data --> discuss several strategies
  • display orphaned items in database and offer to merge them into another item log
  • When changing item names there will be a new id which is often not really wanted. --> provide a fixed database id for items

Webinterface:

  • select a datetime range for csv export
  • optionally select local time or UTC for csv export
  • format datetime as such instead of time since epoch in milliseconds like 2021:11:07 12:15:12.180 instead of 1636243430180

bmxp avatar May 08 '20 13:05 bmxp

Erledigt:

Update von gleichbleibenden Messwerten in die Datenbank

has been implemented in SmartHomeNG v1.7.2 -> new item Attribute enforce_change

smarthomeNG/smarthome#165 (comment)

Issue has been closed on July, 9th 2017

New attributes

database_write: on_update Das ist über das neue Standard-Attribut enforce_chane abgedeckt database_maxageIst implementiert

Offen:

https://knx-user-forum.de/forum/supportforen/smarthome-py/1273010-verbrauch-gas-etc-ungewolltes-item-trigger-bei-neustart https://knx-user-forum.de/forum/supportforen/smarthome-py/1668877-database-wert-nach-neustart https://knx-user-forum.de/forum/supportforen/smarthome-py/1428215-database-plugin-und-sh-py-neustart

Ist ein Thema, aber vielleicht keines für das database Plugin. Das triggern betrifft ja nicht nur das Schreiben in die Datenbank, sondern auch die Neuberechnung anderer Items und das Triggern von Logiken

New feature wishes:

  • compacting data discuss several strategies

Das Verdichten der Daten ist problematisch, da bisher jeder mit dem ich darüber diskutierte andere Wünsche hatte und diese Wünsche sich häufig gegenseitis ausschlossen.

msinn avatar Jun 24 '20 15:06 msinn

Für mich ist in diesem Zusammenhang immer noch das uralte Thema "kaputte Visu-Linien" offen, siehe hier. Von mir aus auch gern optional pro Item einstellbar.

Meines Wissens kann das Database-Modul immer noch keine kompletten Zeitverläufe inkl. Ausfälle / shNG Restarts abbilden.

Als Workaround schleppe ich mittlerweile für alle wichtigen (numerischen/boolschen) Items ein 'alive'-Item (0/1) mit, mit dem ich den Item-Wert multipliziere. Dadurch erhalte ich den Effekt, dass ich bei Ausfall eines Gerätes oder Sensors die gewünschte "0" in der Datenbank zu stehen habe, und kann auch 'sonderbare' Werte beim Initialisieren von shNG unterdrücken, und sehe sogar, wann das Gerät ausfiel und wieder 'hochkam' (z.B. ESP-Reboot nach WLAN-Verbindungsfehler).

Das hab ich damals schon ergebnislos mit Markus und einigen anderen diskutiert. Markus' Ansicht war damals, "0" könnte ja auch ein gültiger Meßwert sein und dürfe deshalb auf keinen Fall verwendet werden (nach dem Motto: Wenn nichts gemessen wird, darf auch nichts in der Datenbank stehen). Das mag streng logisch richtig sein, hilft aber nicht, vernünftige Plots zu erzeugen.

Außerdem möchte ich gern selbst festlegen können, wie sich ein Item bzw. der zugehörige Plot bei Ausfall verhalten soll.

/tom

Tom-Bom-badil avatar Sep 01 '20 12:09 Tom-Bom-badil

@Tom-Bom-badil löst bei Dir ein database: init das Problem mit den Nullwerten?

bmxp avatar Nov 07 '21 16:11 bmxp

Nein, die Items stehen bereits auf database: init - für den Plot im oben konkret verlinkten Beispiel siehe hier.

init ist aber auch nicht die Lösung für das genannte Problem - denn das Ziel ist es, Ausfallzeiten zu visualisieren. Und nicht, den Plot einfach vom letzten bekannten Zustand des Messwertes beim nächsten shNG-Reboot bzw. dem nächsten Wiedereinschalten der Gerätes als gerade Linie weiterzuziehen. Das suggeriert dem Anwender, alles wäre in Ordnung gewesen, was ja nicht stimmt.

/tom

Tom-Bom-badil avatar Nov 23 '21 11:11 Tom-Bom-badil