Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Msinn
    antwortet
    Die „praktisch zeitgleichen“ Einträge erfolgen immer, wenn ein aktiver Thread beendet wird und anschlueßend in die Liste der idle Threads aufgenommen wird.

    Einen Kommentar schreiben:


  • knxms
    antwortet
    Das verstehe ich.
    Ich wurde deshalb stutzig, weil zwei Einträge (…bei meiner Datenbank…) praktisch zeitgleich erfolgen. So wie hier:

    image.jpg

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ja, da sich die Anzahl worker Threads und die Anzahl idle Threads unabhängig voneinander ändern können und sich dadurch die Anzahl der aktiven Threads in jedem der beiden Fälle ändern kann.

    Einen Kommentar schreiben:


  • knxms
    antwortet
    Hallo!
    Mir ist bei der Anpassung von DB-Items aufgefallen, dass das Item env.core.scheduler.active_threads in meiner Datenbank praktisch doppelt so viele Einträge hat, wie die anderen Items aus der Gruppe env.core.scheduler....​​

    grafik.png

    Ich kann nachvollziehen, dass die "env_stat"-Logik mit cycle=300 aufgerufen wird. Und, dass die active_threads mit

    (Auszug aus core.yaml)
    Code:
    active_threads:
        type: num
        eval: sh...worker_threads() - sh...idle_threads()
        eval_trigger:
           - ..worker_threads
           - ..idle_threads​
    ​berechnet werden. D.h. die Berechnung wird scheinbar 2x getriggert; damit entstehen 2 DB-Einträge.

    Ist das so gewollt?

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von aldaris Beitrag anzeigen
    Leider habe ich direkt die nächste Frage an die Datenbank :-(. Diese Nacht ist mir ein Wechselrichter in Störung gegangen und hat falsche Werte geliefert. Die versauen mir jetzt meine Visualisierung. Gibt es eine Möglichkeit, den Werte in der Datenbank manuell zu ändern? Es ist NUR der Wert zu ändern, Zeitpunkt und Zeitintervall sollen unverändert bleiben.
    Du könntest den "DB Browser for SQLite" verwenden.
    Siehe auch hier: https://knx-user-forum.de/forum/supp...30#post1961430

    Damit habe ich einzelne Einträge ändern können. Ist m.E. aber nichts, was man häufiger manuell machen möchte ...

    Einen Kommentar schreiben:


  • aldaris
    antwortet
    Hilft das bei Dir nicht auch?
    https://knx-user-forum.de/forum/supp...28#post1988128

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Wenn der Wert normalerweise nicht 0 wird, wäre es ganz einfach mit einem eval. ANsonsten müsstest du mal schauen, welchen Wert das Item nach dem Start von shng hat und woher der Wert kommt (init, database, ...?). Bei database: init sollten keine "falschen" 0-Werte geschrieben werden, da das Item den initialen Wert aus der db bekommt. Irgendwo müsste ja dann eine 0 herkommen. Versuche mal herauszufinden, woher...

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Morg Beitrag anzeigen
    Wenn ihr ansonsten noch was findet, was nicht oder nicht gut läuft, lasst es mich wissen.
    Gerne doch! :-) Wobei das Plugin wirklich toll ist. Ich weiß gar nicht, was ich ohne dem machen würde. Gehört ja quasi zur Grundfunktionalität von SmartHomeNG.

    Mich nervt etwas, dass da 0-Werte reingeschrieben werden, wenn das Item noch nicht initialisiert ist - zumindest vermute ich das. Ich nutze bei "langsamen Items" meist database: init. Das Problem dabei ist dennoch, dass falsche 0-Werte in die DB geschrieben werden. Das hat irgendwas mit dem Neustart von SmartHomeNG zu tun. Ob das daran liegt, dass ich ggf. mehrfach neu gestartet habe und noch nicht initialisiert war, kann ich aber nicht beurteilen. Die Frage ist nur, ob man das irgendwie vermeiden kann. Gerade wenn man min/max-Werte abfragen will ist das besonders störend.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Im WebIf des database-Plugins gibt es jetzt die Möglichkeit, verwaiste Datenreihen aktuellen Items neu zuzuordnen. Bei sehr großen Datenbanken könnte das etwas dauern; da will ich später nochmal ran. Wenn ihr ansonsten noch was findet, was nicht oder nicht gut läuft, lasst es mich wissen.

    Einen Kommentar schreiben:


  • aldaris
    antwortet
    Leider habe ich direkt die nächste Frage an die Datenbank :-(. Diese Nacht ist mir ein Wechselrichter in Störung gegangen und hat falsche Werte geliefert. Die versauen mir jetzt meine Visualisierung. Gibt es eine Möglichkeit, den Werte in der Datenbank manuell zu ändern? Es ist NUR der Wert zu ändern, Zeitpunkt und Zeitintervall sollen unverändert bleiben.

    Einen Kommentar schreiben:


  • aldaris
    antwortet
    Tatsächlich geht es mit den hint von aschwitz. Init und Yes gehen nicht, weil die Intervalle dann nicht passen. Es wird ja ein Wert geschrieben, genau das soll es (z.B. bei Tagessummen) nicht.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Es sollte auch reichen database: init statt database: yes zu verwenden. Dann wird beim Start das Item statt mit 0 mit dem letzten Wert aus der Datenbank initialisiert, Ist auch der Doku zu entnehmen.

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Schau mal in Doku des Plugins. Genau dafür gibt es das Item Attribut

    Code:
    database_write_on_shutdown: False
    Normalerweise wird beim Beenden von smarthomeNG jeder aktuelle Wert der DB nochmal explizit in die DB geschrieben. Mit dem obigen Attribut (False) passiert das nicht.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Wie hast Du das Item definiert?

    Einen Kommentar schreiben:


  • aldaris
    antwortet
    Nabend. Ich habe folgende Challenge: Ich möchte jeden Tag um 0:00 die Differenz eines anderen Items binnen 24h berechnen, das mache ich mit crontab und eval auf anderen item. Das klappt soweit.

    Wenn ich aber shng Neustarte, wird auch zu diesem Zeitpunkt ein Wert geschrieben. Je nach init oder yes der aktuelle Wert oder 0. Ich möchte aber keinen Eintrag. Nachträglich löschen hilft auch nur bedingt, da das Intervall der anderen Werte dann nicht stimmt.


    Was kann ich tun, damit die Werte nur von crontab durchgelesen werden?

    Einen Kommentar schreiben:

Lädt...
X