Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter sql 2.0.0

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Test Adapter sql 2.0.0

Geplant Angeheftet Gesperrt Verschoben Tester
30 Beiträge 6 Kommentatoren 2.9k Aufrufe 10 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • apollon77A Online
    apollon77A Online
    apollon77
    schrieb am zuletzt editiert von apollon77
    #1
    Aktuelle Test Version 2.0.0
    Veröffentlichungsdatum 02.05.2022
    Github Link https://github.com/ioBroker/ioBroker.sql

    Hallo lieber Tester,

    nach dem großen Update von History kommt nun ein ebenfalls seeeehr großes Update für SQL zum testen für Euch. Diese Version bringt SQL auf den gleichen Stand wie History 2.0.0, welcher ebenfalls aktuell als Alpha verfügbar ist. Wenn das soweit passt wird das "gleiche" auch für InfluxDB noch kommen.

    Diese neue (Major!) Version des SQL Adapters räumt einige Dinge auf und sorgt bei einigen Themen für mehr Transparenz und Klarheit und bringt noch dazu einige Features mit. Der Adapter wird sich an einigen Stellen was die aufgezeichneten Daten angeht künftig anders verhalten als bisher!
    Ebenso haben sich Einstellungen geändert - es sollten die Einstellungen der alten Version übernommen werden und sollten auch bei einem Downgrade noch vorhanden sein wie vorher eingestellt, dennoch ist diese Version ein Breaking change. Also stellt bitte sicher Backups der Datenfiles und des Systems zu haben! An den Daten in der Datenbank bzw deren Strukturen ändert sich nichts!

    Da dies jetzt einiges an Änderungen ist starten wir erst einmal mit einem Alpha Test von GitHub. Bitte als im Admin den Expertenmodus aktivieren und vom GitHub installieren.

    Bei Fehlern bitte ggf hier schreiben und dann GitHub Issues anlegen.

    Auf die wichtigsten Änderungen will ich gern jetzt noch genauer eingehen.

    Wichtige Änderungen erklärt

    Konfiguration ausschliesslich in der neuen Admin UI verfügbar!

    Die Konfiguration ist ausschliesslich in der neuen Admin5 UI verfügbar

    Debounce vs "Aufzeichnung zeitlich blockieren"

    In der Konfiguration kann man eine sog. "Debounce-Zeit" angeben. Debounce bedeutet an sich, dass ein neuer Wert erst dann als "stabil" gilt wenn er sich für die angegebene Zeit nicht geändert hat. So war es auch (von komischen Effekten mit "Nur Änderungen aufzeichnen mal abgesehen", dazu später mehr) implementiert. Leider hat die Readme davon gesprochen das der Wert sofort geloggt wird aber dann für die angegebene Zeit kein weiterer Wert. Hier herrschte also Verwirrung.

    Mit dieser Version gibt es jetzt zwei Werte die man setzen kann:

    • Debounce-Zeit: Der Wert wird wirklich erst aufgezeichnet, wenn er sich für die hier angegebene Zeit nicht geändert hat! Wird hier also ein Wert eingetragen der höher ist als die übliche Änderungsfrequenz des States, dann wird faktisch NIE etwas geloggt! Also Achtung hier!
    • Block-Zeit: Dieser Wert entspricht dem was die Doku bisher zum "Debounce" gesagt hat und erlaubt es, erst frühestens nach Ablauf dieser Zeit neue Werte zu loggen. Wichtig hier ist das die obige "Debounce-Zeit" vorher geprüft wird, und auch das ein "Gleiche Werte nochmals loggen" diesen Check nicht macht.

    Aus Kompatibilitätsgründen wird der frühere "debounce"-Wert als "Block-Wert" übernommen. Also bitte die Einstellungen prüfen falls dies keinen Sinn macht!

    "Nur Änderungen aufzeichnen" vs "Debounce"

    In dieser Kombination hatten sich einige Bugs und Effekte eingeschlichen, welche dafür gesorgt haben das teilweise Werte geloggt wurden die nicht den Regeln entsprachen. Dies ist jetzt aufgeräumt.

    "Nur Änderungen aufzeichnen" und Aufzeichnung zusätzlicher Werte zur besseren Grafischen Darstellung

    Ein weiterer großer Verwirrungspunkt war öfters, warum denn noch zusätzliche Werte aufgezeichnet werden, die an sich durch die Regeln (vor allem "Minimale Differenz") gar nicht hätten aufgezeichnet werden dürfen. Dies kam daher, dass der Adapter versucht die Werte so aufzuzeichnen das eine Grafische Darstellung sinnvoll möglich ist, weil in vielen Fällen die Werte nur zur grafischen Darstellung genutzt werden. Vor allem dabei ist es aber ein potentiell größerer Unterschied ob ein Wert der sich mit 1h Abstand geändert hat sich zu einem Zeitpunkt schlagartig geändert hat oder über die gesamte Zeit langsam geändert hat. Die automatisch gewählten zusätzlichen Werte stellen hier eine bessere Darstellung sicher.

    Die neue Version nutzt diese darstellungsoptimierte Aufzeichnung immer noch standardmäßig, kann allerdings pro Datenpunkt deaktiviert werden! Dann werden nur wirklich die Werte aufgezeichnet die laut den angegebenen Regeln definiert waren.

    Neue Features

    Zusätzlich zu den oben genannten Änderungen gibt es einige neue Features in der neuen Version:

    • Buffering und Massen-Inserts: Pro Datenpunkt (und ein Default) kann nun angegeben werden wie viele Datenpunkt erst einmal im RAM gehalten werden sollen und dann wenn die Anzahl erreicht ist (spätestens aber alle 10 Minuten) zusammen in die Datenbank geschrieben werden. Wer also viele Datenpunkte nutzt kann so die Anzahl der parallelen Queries auf die Datenbank verringern. Falls der Adapter allerdings abstürzen sollte sind die Daten weg, also sinnvoll nutzen. Im Standard wird kein Buffering genutzt wie bisher auch.

    • Mittels zwei neuer Einstellungen pro Datenpunkt ("Nicht loggen wenn kleiner als" und "Nicht loggen wenn größer als") können noch besser Fehlerwerte ausgeklammert werden. Die Einstellung "Nicht loggen wenn kleiner als" ersetzt das vor kurzem hinzugefügte "Keine Werte kleiner als 0 loggen", die Einstellung wird aber automatisch konvertiert.

    • Eine Einstellung pro Datenpunkt ist dazugekommen, mit der man angeben kann auf wie viele Stellen nach dem Komma die Werte beim lesen (GetHistory) gerundet werden.

    • Neue Aggregationsmethoden "percentile" und "quartile" wurden hinzugefügt, um das n-te Percentile bzw. das 0.x Quartile zu ermitteln. Ohne weitere Infos wird das 50er Percentile bzw. das 0.5er Quartile (Mean) zurückgegeben, was ein besserer Average ist.

    • Neue Aggregationsmethode "integral" wurde hinzugefügt, um das Integral (Fläche unter den Werten) zu errechnen. Im Standard ist die Integral-Unit 1s und eine schrittweise Interpolation wird genutzt (also quasi keine, weil die werte für die ganze Zeit konstant berechnet werden). Alternativ kann eine lineare Interpolation genutzt werden. Mit einem Integral und zB Unit von 3600s kann man aus einem Stromverbrauch in Watt die Wh ermitteln,

    • Standardmäßig ermitteln die Aggregationsmethoden immer auch zwei Randwerte und geben diese im Ergebnis zurück um die grafische Darstellung zu optimieren. Mittels der neuen Option "removeBorderValues" bei einem GetHistory Aufruf können die zurückgegebenen Werte so limitiert werden wie Sie per step bzw. count angefordert wurden und diese Randwerte entfernt werden. Dies ist vor allem Hilfreich wenn ein Skript die Daten verarbeiten soll. Mit dem (kommenden!) Admin 5.3.8 ist auch die Darstellung der Werte bei den Datenpunkt-Einstellungen wieder korrekt, wenn man Zeitbereiche von mehr als 24 gewählt hat und mehr als 500 Werte in dem Zeitraum geloggt wurden.

    • Da das schreiben von Debug Logs vor allem bei schwächeren Systemen ziemlich auf die performance drückt und auch ein Debug Log immer sehr unübersichtlich wurde, weil alles oder nichts geloggt wurde, kann nun zusätzliches Debug pro Datenpunkt aktiviert werden! Dies wird aber nur dann ausgegeben wenn der Loglevel der Instanz auch auch Debug steht.

    • Die Aufbewahrungszeit kann nun neben den vorgeschlagenen zeiträumen auch selbst in tagen definiert werden (Custom)

    • Die 1.x des Adapters hat Probleme mit der MySQL8, welche jetzt behoben sein sollten.

    • Der SSL-Connection Support hat jetzt die Option bekommen Zertifikatsfehler durch selbstsignierte Zertifikate zu ignorieren und generell wurde Datenbankübergreifend der SSL Support geprüft und aktualisiert.

    Die neuen Aggregationsmethoden sind (natürlich) noch nicht in flot oder echarts verfügbar und können daher nur in Skripten genutzt werden. Hierzu müssten, wenn alles geht dann noch Issues an den relevanten Stellen angelegt werden.

    Die neuen Optionen für getHistory sind in https://github.com/ioBroker/ioBroker.history/blob/master/docs/en/README.md#access-values-from-javascript-adapter auch alle erklärt

    Weitere Änderungen

    Weiterhin gibt es folgende relevante Änderungen im Verhalten

    • GetHistory-Anfragen müssen nun bei start/end Angaben in ms erfolgen! Zeitangaben in Sekunden werden nicht mehr umgerechnet! Bitte sicherstellen das alle UIs und Charting-Adapter aktuell sind!
    • Die Objekt-ID wird nun immer wenn angefordert mit in den Ergebnissen von GetHistory zurückgegeben
    • Spezielle Behandlung von früher aufgezeichneten Daten mit Timestamps in Sekunden bzw. Logiken die verhindert haben Werte vor 1.1.2010 zu verarbeiten wurden entfernt.

    Neue Aufzeichnungslogik erklärt

    Am Ende gilt jetzt folgende Reihenfolge der Checks:

    • Ein Wert ist erst nach Debounce-zeit stabil. Unstabile werte werden nicht aufgezeichnet
    • Wenn die Blockzeit seit dem zuletzt regulär aufgezeichneten Wert nicht erreicht ist, wird der Wert nicht aufgezeichnet
    • Wenn "Null-Werte" ignoriert werden und der Wert 0 ist, dann wird der Wert nicht aufgezeichnet
    • Wenn Grenzen der Werte definiert sind (Nicht loggen wenn kleiner/größer als) und der Wert ist ausserhalb der Grenzen, wird der Wert nicht aufgezeichnet
    • Wenn "Nur Änderungen aufzeichnen" definiert ist:
      • Wenn der Wert seit letzter Aufzeichnung unverändert war und "gleichen Wert aufzeichnen" deaktiviert ist, wird der Wert nicht aufgezeichnet. Der Wert wird ggf. erinnert für spätere Aufzeichnung zur Darstellungsoptimierung.
      • Wenn der Wert seit letzter Aufzeichnung unverändert war und "gleichen Wert aufzeichnen" aktiviert ist und das angegebene "Nochmals Aufzeichnen Interval" noch nicht erreicht ist, wird der Wert nicht aufgezeichnet. Der Wert wird ggf. erinnert für spätere Aufzeichnung zur Darstellungsoptimierung.
    • Wenn der Wert eine Zahl ist und eine "Minimale Differenz" definiert ist, diese aber nicht erreicht ist, wird der Wert nicht aufgezeichnet. Der Wert wird ggf. erinnert für spätere Aufzeichnung zur Darstellungsoptimierung.

    Der zuletzt erinnerte Wert wird geschrieben sobald auch der nächste reguläre Wert geschrieben wird, allerdings mit seinem alten Zeitstempel - und nur wenn die Darstellungsoptimierung nicht deaktiviert wurde..

    Vielen Spass beim testen und vielen Dank für Euer Feedback und Eure Erfahrungen,

    Ingo

    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
    Dr. BakteriusD 1 Antwort Letzte Antwort
    2
    • FeuersturmF Online
      FeuersturmF Online
      Feuersturm
      schrieb am zuletzt editiert von
      #2

      @apollon77 Ich hab gerade einmal versucht mit der 2.0.0 Verbindungstest zu machen. In diesem Fall kommt aber immer die Meldung "Fehler: invalid config"

      Wenn ich die Adapterversion auf 1.6.2 downgrade und mit den noch hinterlegten Verbindungsdaten den Verbindungstest mache ist alles ok.

      FeuersturmF 1 Antwort Letzte Antwort
      0
      • FeuersturmF Feuersturm

        @apollon77 Ich hab gerade einmal versucht mit der 2.0.0 Verbindungstest zu machen. In diesem Fall kommt aber immer die Meldung "Fehler: invalid config"

        Wenn ich die Adapterversion auf 1.6.2 downgrade und mit den noch hinterlegten Verbindungsdaten den Verbindungstest mache ist alles ok.

        FeuersturmF Online
        FeuersturmF Online
        Feuersturm
        schrieb am zuletzt editiert von
        #3

        @apollon77 Die Daten werden aber auch mit der Version 2.0.0 in die sql Datenbank geschrieben auch wenn der Verbindungstest nicht funktioniert.

        apollon77A 1 Antwort Letzte Antwort
        0
        • FeuersturmF Feuersturm

          @apollon77 Die Daten werden aber auch mit der Version 2.0.0 in die sql Datenbank geschrieben auch wenn der Verbindungstest nicht funktioniert.

          apollon77A Online
          apollon77A Online
          apollon77
          schrieb am zuletzt editiert von
          #4

          @feuersturm Bitte nochmal GitHub versuchen

          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
          FeuersturmF 1 Antwort Letzte Antwort
          0
          • apollon77A apollon77

            @feuersturm Bitte nochmal GitHub versuchen

            FeuersturmF Online
            FeuersturmF Online
            Feuersturm
            schrieb am zuletzt editiert von
            #5

            @apollon77 Auch mit der neuen Version von github kommt die gleiche Fehlermeldung.

            apollon77A 1 Antwort Letzte Antwort
            0
            • FeuersturmF Feuersturm

              @apollon77 Auch mit der neuen Version von github kommt die gleiche Fehlermeldung.

              apollon77A Online
              apollon77A Online
              apollon77
              schrieb am zuletzt editiert von
              #6

              @feuersturm Haste bitte mal ein Debug log von dem Call?

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              FeuersturmF 1 Antwort Letzte Antwort
              0
              • apollon77A apollon77

                @feuersturm Haste bitte mal ein Debug log von dem Call?

                FeuersturmF Online
                FeuersturmF Online
                Feuersturm
                schrieb am zuletzt editiert von
                #7

                @apollon77 Wenn ich auf den Button drücke kommen keine neuen Einträge im Log. So sieht es kurze Zeit vorher und nachher aus:

                2022-05-03 19:50:56.773 - debug: sql.0 (1968) pushValueIntoDB called for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.67,"ack":true,"ts":1651600256755,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600256755}
                2022-05-03 19:50:56.773 - debug: sql.0 (1968) prepareTaskCheckTypeAndDbId CALLED for proxmox.0.lxc_ioBrokerTestsystem.cpu
                2022-05-03 19:50:56.774 - debug: sql.0 (1968) pushValueIntoDB-prepareTaskCheckTypeAndDbId RESULT for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.67,"ack":true,"ts":1651600256755,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600256755}: undefined
                2022-05-03 19:51:56.992 - debug: sql.0 (1968) pushValueIntoDB called for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.27,"ack":true,"ts":1651600316889,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600316889}
                2022-05-03 19:51:56.993 - debug: sql.0 (1968) prepareTaskCheckTypeAndDbId CALLED for proxmox.0.lxc_ioBrokerTestsystem.cpu
                2022-05-03 19:51:56.994 - debug: sql.0 (1968) pushValueIntoDB-prepareTaskCheckTypeAndDbId RESULT for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.27,"ack":true,"ts":1651600316889,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600316889}: undefined
                
                apollon77A 1 Antwort Letzte Antwort
                0
                • FeuersturmF Feuersturm

                  @apollon77 Wenn ich auf den Button drücke kommen keine neuen Einträge im Log. So sieht es kurze Zeit vorher und nachher aus:

                  2022-05-03 19:50:56.773 - debug: sql.0 (1968) pushValueIntoDB called for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.67,"ack":true,"ts":1651600256755,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600256755}
                  2022-05-03 19:50:56.773 - debug: sql.0 (1968) prepareTaskCheckTypeAndDbId CALLED for proxmox.0.lxc_ioBrokerTestsystem.cpu
                  2022-05-03 19:50:56.774 - debug: sql.0 (1968) pushValueIntoDB-prepareTaskCheckTypeAndDbId RESULT for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.67,"ack":true,"ts":1651600256755,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600256755}: undefined
                  2022-05-03 19:51:56.992 - debug: sql.0 (1968) pushValueIntoDB called for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.27,"ack":true,"ts":1651600316889,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600316889}
                  2022-05-03 19:51:56.993 - debug: sql.0 (1968) prepareTaskCheckTypeAndDbId CALLED for proxmox.0.lxc_ioBrokerTestsystem.cpu
                  2022-05-03 19:51:56.994 - debug: sql.0 (1968) pushValueIntoDB-prepareTaskCheckTypeAndDbId RESULT for proxmox.0.lxc_ioBrokerTestsystem.cpu (type: 0, ID: 3) and state: {"val":4.27,"ack":true,"ts":1651600316889,"q":0,"from":"system.adapter.proxmox.0","user":"system.user.admin","lc":1651600316889}: undefined
                  
                  apollon77A Online
                  apollon77A Online
                  apollon77
                  schrieb am zuletzt editiert von
                  #8

                  @feuersturm bitte nochmal versuchen. Habe den Fehler gefunden

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  FeuersturmF 1 Antwort Letzte Antwort
                  0
                  • apollon77A apollon77

                    @feuersturm bitte nochmal versuchen. Habe den Fehler gefunden

                    FeuersturmF Online
                    FeuersturmF Online
                    Feuersturm
                    schrieb am zuletzt editiert von
                    #9

                    @apollon77 Wohooo. Jetzt kommt ein Ok :checkered_flag:

                    1 Antwort Letzte Antwort
                    1
                    • apollon77A apollon77
                      Aktuelle Test Version 2.0.0
                      Veröffentlichungsdatum 02.05.2022
                      Github Link https://github.com/ioBroker/ioBroker.sql

                      Hallo lieber Tester,

                      nach dem großen Update von History kommt nun ein ebenfalls seeeehr großes Update für SQL zum testen für Euch. Diese Version bringt SQL auf den gleichen Stand wie History 2.0.0, welcher ebenfalls aktuell als Alpha verfügbar ist. Wenn das soweit passt wird das "gleiche" auch für InfluxDB noch kommen.

                      Diese neue (Major!) Version des SQL Adapters räumt einige Dinge auf und sorgt bei einigen Themen für mehr Transparenz und Klarheit und bringt noch dazu einige Features mit. Der Adapter wird sich an einigen Stellen was die aufgezeichneten Daten angeht künftig anders verhalten als bisher!
                      Ebenso haben sich Einstellungen geändert - es sollten die Einstellungen der alten Version übernommen werden und sollten auch bei einem Downgrade noch vorhanden sein wie vorher eingestellt, dennoch ist diese Version ein Breaking change. Also stellt bitte sicher Backups der Datenfiles und des Systems zu haben! An den Daten in der Datenbank bzw deren Strukturen ändert sich nichts!

                      Da dies jetzt einiges an Änderungen ist starten wir erst einmal mit einem Alpha Test von GitHub. Bitte als im Admin den Expertenmodus aktivieren und vom GitHub installieren.

                      Bei Fehlern bitte ggf hier schreiben und dann GitHub Issues anlegen.

                      Auf die wichtigsten Änderungen will ich gern jetzt noch genauer eingehen.

                      Wichtige Änderungen erklärt

                      Konfiguration ausschliesslich in der neuen Admin UI verfügbar!

                      Die Konfiguration ist ausschliesslich in der neuen Admin5 UI verfügbar

                      Debounce vs "Aufzeichnung zeitlich blockieren"

                      In der Konfiguration kann man eine sog. "Debounce-Zeit" angeben. Debounce bedeutet an sich, dass ein neuer Wert erst dann als "stabil" gilt wenn er sich für die angegebene Zeit nicht geändert hat. So war es auch (von komischen Effekten mit "Nur Änderungen aufzeichnen mal abgesehen", dazu später mehr) implementiert. Leider hat die Readme davon gesprochen das der Wert sofort geloggt wird aber dann für die angegebene Zeit kein weiterer Wert. Hier herrschte also Verwirrung.

                      Mit dieser Version gibt es jetzt zwei Werte die man setzen kann:

                      • Debounce-Zeit: Der Wert wird wirklich erst aufgezeichnet, wenn er sich für die hier angegebene Zeit nicht geändert hat! Wird hier also ein Wert eingetragen der höher ist als die übliche Änderungsfrequenz des States, dann wird faktisch NIE etwas geloggt! Also Achtung hier!
                      • Block-Zeit: Dieser Wert entspricht dem was die Doku bisher zum "Debounce" gesagt hat und erlaubt es, erst frühestens nach Ablauf dieser Zeit neue Werte zu loggen. Wichtig hier ist das die obige "Debounce-Zeit" vorher geprüft wird, und auch das ein "Gleiche Werte nochmals loggen" diesen Check nicht macht.

                      Aus Kompatibilitätsgründen wird der frühere "debounce"-Wert als "Block-Wert" übernommen. Also bitte die Einstellungen prüfen falls dies keinen Sinn macht!

                      "Nur Änderungen aufzeichnen" vs "Debounce"

                      In dieser Kombination hatten sich einige Bugs und Effekte eingeschlichen, welche dafür gesorgt haben das teilweise Werte geloggt wurden die nicht den Regeln entsprachen. Dies ist jetzt aufgeräumt.

                      "Nur Änderungen aufzeichnen" und Aufzeichnung zusätzlicher Werte zur besseren Grafischen Darstellung

                      Ein weiterer großer Verwirrungspunkt war öfters, warum denn noch zusätzliche Werte aufgezeichnet werden, die an sich durch die Regeln (vor allem "Minimale Differenz") gar nicht hätten aufgezeichnet werden dürfen. Dies kam daher, dass der Adapter versucht die Werte so aufzuzeichnen das eine Grafische Darstellung sinnvoll möglich ist, weil in vielen Fällen die Werte nur zur grafischen Darstellung genutzt werden. Vor allem dabei ist es aber ein potentiell größerer Unterschied ob ein Wert der sich mit 1h Abstand geändert hat sich zu einem Zeitpunkt schlagartig geändert hat oder über die gesamte Zeit langsam geändert hat. Die automatisch gewählten zusätzlichen Werte stellen hier eine bessere Darstellung sicher.

                      Die neue Version nutzt diese darstellungsoptimierte Aufzeichnung immer noch standardmäßig, kann allerdings pro Datenpunkt deaktiviert werden! Dann werden nur wirklich die Werte aufgezeichnet die laut den angegebenen Regeln definiert waren.

                      Neue Features

                      Zusätzlich zu den oben genannten Änderungen gibt es einige neue Features in der neuen Version:

                      • Buffering und Massen-Inserts: Pro Datenpunkt (und ein Default) kann nun angegeben werden wie viele Datenpunkt erst einmal im RAM gehalten werden sollen und dann wenn die Anzahl erreicht ist (spätestens aber alle 10 Minuten) zusammen in die Datenbank geschrieben werden. Wer also viele Datenpunkte nutzt kann so die Anzahl der parallelen Queries auf die Datenbank verringern. Falls der Adapter allerdings abstürzen sollte sind die Daten weg, also sinnvoll nutzen. Im Standard wird kein Buffering genutzt wie bisher auch.

                      • Mittels zwei neuer Einstellungen pro Datenpunkt ("Nicht loggen wenn kleiner als" und "Nicht loggen wenn größer als") können noch besser Fehlerwerte ausgeklammert werden. Die Einstellung "Nicht loggen wenn kleiner als" ersetzt das vor kurzem hinzugefügte "Keine Werte kleiner als 0 loggen", die Einstellung wird aber automatisch konvertiert.

                      • Eine Einstellung pro Datenpunkt ist dazugekommen, mit der man angeben kann auf wie viele Stellen nach dem Komma die Werte beim lesen (GetHistory) gerundet werden.

                      • Neue Aggregationsmethoden "percentile" und "quartile" wurden hinzugefügt, um das n-te Percentile bzw. das 0.x Quartile zu ermitteln. Ohne weitere Infos wird das 50er Percentile bzw. das 0.5er Quartile (Mean) zurückgegeben, was ein besserer Average ist.

                      • Neue Aggregationsmethode "integral" wurde hinzugefügt, um das Integral (Fläche unter den Werten) zu errechnen. Im Standard ist die Integral-Unit 1s und eine schrittweise Interpolation wird genutzt (also quasi keine, weil die werte für die ganze Zeit konstant berechnet werden). Alternativ kann eine lineare Interpolation genutzt werden. Mit einem Integral und zB Unit von 3600s kann man aus einem Stromverbrauch in Watt die Wh ermitteln,

                      • Standardmäßig ermitteln die Aggregationsmethoden immer auch zwei Randwerte und geben diese im Ergebnis zurück um die grafische Darstellung zu optimieren. Mittels der neuen Option "removeBorderValues" bei einem GetHistory Aufruf können die zurückgegebenen Werte so limitiert werden wie Sie per step bzw. count angefordert wurden und diese Randwerte entfernt werden. Dies ist vor allem Hilfreich wenn ein Skript die Daten verarbeiten soll. Mit dem (kommenden!) Admin 5.3.8 ist auch die Darstellung der Werte bei den Datenpunkt-Einstellungen wieder korrekt, wenn man Zeitbereiche von mehr als 24 gewählt hat und mehr als 500 Werte in dem Zeitraum geloggt wurden.

                      • Da das schreiben von Debug Logs vor allem bei schwächeren Systemen ziemlich auf die performance drückt und auch ein Debug Log immer sehr unübersichtlich wurde, weil alles oder nichts geloggt wurde, kann nun zusätzliches Debug pro Datenpunkt aktiviert werden! Dies wird aber nur dann ausgegeben wenn der Loglevel der Instanz auch auch Debug steht.

                      • Die Aufbewahrungszeit kann nun neben den vorgeschlagenen zeiträumen auch selbst in tagen definiert werden (Custom)

                      • Die 1.x des Adapters hat Probleme mit der MySQL8, welche jetzt behoben sein sollten.

                      • Der SSL-Connection Support hat jetzt die Option bekommen Zertifikatsfehler durch selbstsignierte Zertifikate zu ignorieren und generell wurde Datenbankübergreifend der SSL Support geprüft und aktualisiert.

                      Die neuen Aggregationsmethoden sind (natürlich) noch nicht in flot oder echarts verfügbar und können daher nur in Skripten genutzt werden. Hierzu müssten, wenn alles geht dann noch Issues an den relevanten Stellen angelegt werden.

                      Die neuen Optionen für getHistory sind in https://github.com/ioBroker/ioBroker.history/blob/master/docs/en/README.md#access-values-from-javascript-adapter auch alle erklärt

                      Weitere Änderungen

                      Weiterhin gibt es folgende relevante Änderungen im Verhalten

                      • GetHistory-Anfragen müssen nun bei start/end Angaben in ms erfolgen! Zeitangaben in Sekunden werden nicht mehr umgerechnet! Bitte sicherstellen das alle UIs und Charting-Adapter aktuell sind!
                      • Die Objekt-ID wird nun immer wenn angefordert mit in den Ergebnissen von GetHistory zurückgegeben
                      • Spezielle Behandlung von früher aufgezeichneten Daten mit Timestamps in Sekunden bzw. Logiken die verhindert haben Werte vor 1.1.2010 zu verarbeiten wurden entfernt.

                      Neue Aufzeichnungslogik erklärt

                      Am Ende gilt jetzt folgende Reihenfolge der Checks:

                      • Ein Wert ist erst nach Debounce-zeit stabil. Unstabile werte werden nicht aufgezeichnet
                      • Wenn die Blockzeit seit dem zuletzt regulär aufgezeichneten Wert nicht erreicht ist, wird der Wert nicht aufgezeichnet
                      • Wenn "Null-Werte" ignoriert werden und der Wert 0 ist, dann wird der Wert nicht aufgezeichnet
                      • Wenn Grenzen der Werte definiert sind (Nicht loggen wenn kleiner/größer als) und der Wert ist ausserhalb der Grenzen, wird der Wert nicht aufgezeichnet
                      • Wenn "Nur Änderungen aufzeichnen" definiert ist:
                        • Wenn der Wert seit letzter Aufzeichnung unverändert war und "gleichen Wert aufzeichnen" deaktiviert ist, wird der Wert nicht aufgezeichnet. Der Wert wird ggf. erinnert für spätere Aufzeichnung zur Darstellungsoptimierung.
                        • Wenn der Wert seit letzter Aufzeichnung unverändert war und "gleichen Wert aufzeichnen" aktiviert ist und das angegebene "Nochmals Aufzeichnen Interval" noch nicht erreicht ist, wird der Wert nicht aufgezeichnet. Der Wert wird ggf. erinnert für spätere Aufzeichnung zur Darstellungsoptimierung.
                      • Wenn der Wert eine Zahl ist und eine "Minimale Differenz" definiert ist, diese aber nicht erreicht ist, wird der Wert nicht aufgezeichnet. Der Wert wird ggf. erinnert für spätere Aufzeichnung zur Darstellungsoptimierung.

                      Der zuletzt erinnerte Wert wird geschrieben sobald auch der nächste reguläre Wert geschrieben wird, allerdings mit seinem alten Zeitstempel - und nur wenn die Darstellungsoptimierung nicht deaktiviert wurde..

                      Vielen Spass beim testen und vielen Dank für Euer Feedback und Eure Erfahrungen,

                      Ingo

                      Dr. BakteriusD Online
                      Dr. BakteriusD Online
                      Dr. Bakterius
                      Most Active
                      schrieb am zuletzt editiert von Dr. Bakterius
                      #10

                      @apollon77 sagte in Test Adapter sql 2.0.0:

                      Im Standard wird kein Buffering genutzt wie bisher auch.

                      Bedeutet das, dass man jeden aufzuzeichnenden Datenpunkt dafür öffnen (gegebenenfalls umstellen) und wieder speichern muss? Oder sind die 10 Änderungen (Standard) bereits aktiv?

                      Edit: Dürfte schon aktiv sein. Meine Disk-IO sieht auch gleich ganz anders aus. Alle 10 Minuten wird ein Pulk geschrieben. Auch für die SSD bzw. SD kein Nachteil. Bei CPU und RAM hat sich nicht wirklich was geändert.

                      io.png

                      apollon77A 1 Antwort Letzte Antwort
                      0
                      • Dr. BakteriusD Dr. Bakterius

                        @apollon77 sagte in Test Adapter sql 2.0.0:

                        Im Standard wird kein Buffering genutzt wie bisher auch.

                        Bedeutet das, dass man jeden aufzuzeichnenden Datenpunkt dafür öffnen (gegebenenfalls umstellen) und wieder speichern muss? Oder sind die 10 Änderungen (Standard) bereits aktiv?

                        Edit: Dürfte schon aktiv sein. Meine Disk-IO sieht auch gleich ganz anders aus. Alle 10 Minuten wird ein Pulk geschrieben. Auch für die SSD bzw. SD kein Nachteil. Bei CPU und RAM hat sich nicht wirklich was geändert.

                        io.png

                        apollon77A Online
                        apollon77A Online
                        apollon77
                        schrieb am zuletzt editiert von
                        #11

                        @dr-bakterius Also wenn du in den Default-Settings 10 gesetzt hast wird das als Default Wert überall da angewendet wo sonst kein Wert konfiguriert ist. Kannst es aber auf Datenpunktbasis überschreiben

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        B Dr. BakteriusD 2 Antworten Letzte Antwort
                        0
                        • apollon77A apollon77

                          @dr-bakterius Also wenn du in den Default-Settings 10 gesetzt hast wird das als Default Wert überall da angewendet wo sonst kein Wert konfiguriert ist. Kannst es aber auf Datenpunktbasis überschreiben

                          B Offline
                          B Offline
                          bommel_030
                          schrieb am zuletzt editiert von
                          #12

                          @apollon77
                          Hab mal ein wenig mit der 2.0 rumgespielt. Sieht bis jetzt ganz gut aus. Insbesondere die "Blockierfunktion" hilft mir bei meiner Zisterne ungemein.
                          Allerdings hab ich noch eine Frage zum Buffering. Wenn ich es richtig verstehe werden so oder so alle 10 Minuten die Daten geschrieben, sollten nicht vorher die definierte Anzahl im RAM überschritten werden. Sind das alle Werte die reinkommen, oder nur die durch die diversen Filter auch in der Datenbank landen sollen? Füllstand meiner Zisterne kommt via Shelly UNI rein. Der sendet quasi im Sekundentakt den Füllstand (ist mir bis jetzt nicht bekannt wie ich die Abtastrate verlängern kann). Bei 4000 L Volumen interessiert mich das natürlich nicht so genau, also werden mit der Blockierfunktion nur alle 30 s die Werte geschrieben. Wenn ich den Datapoint Count auf 10 setze, wird dann nach 10s oder nach 5 min geschrieben?
                          Und einen optischen Punkt habe ich noch. Kann man die Spaltenbreite irgendwo anpassen? Oder ist das ne Admin Sache?
                          a81f2ae7-0681-417d-b301-f5906422021b-image.png

                          apollon77A 1 Antwort Letzte Antwort
                          1
                          • B bommel_030

                            @apollon77
                            Hab mal ein wenig mit der 2.0 rumgespielt. Sieht bis jetzt ganz gut aus. Insbesondere die "Blockierfunktion" hilft mir bei meiner Zisterne ungemein.
                            Allerdings hab ich noch eine Frage zum Buffering. Wenn ich es richtig verstehe werden so oder so alle 10 Minuten die Daten geschrieben, sollten nicht vorher die definierte Anzahl im RAM überschritten werden. Sind das alle Werte die reinkommen, oder nur die durch die diversen Filter auch in der Datenbank landen sollen? Füllstand meiner Zisterne kommt via Shelly UNI rein. Der sendet quasi im Sekundentakt den Füllstand (ist mir bis jetzt nicht bekannt wie ich die Abtastrate verlängern kann). Bei 4000 L Volumen interessiert mich das natürlich nicht so genau, also werden mit der Blockierfunktion nur alle 30 s die Werte geschrieben. Wenn ich den Datapoint Count auf 10 setze, wird dann nach 10s oder nach 5 min geschrieben?
                            Und einen optischen Punkt habe ich noch. Kann man die Spaltenbreite irgendwo anpassen? Oder ist das ne Admin Sache?
                            a81f2ae7-0681-417d-b301-f5906422021b-image.png

                            apollon77A Online
                            apollon77A Online
                            apollon77
                            schrieb am zuletzt editiert von apollon77
                            #13

                            @bommel_030 Er sammelt nur die Werte die in der DB landen sollen - und die kommen nach Erreichen von X oder spätestens nach 10 Mins dran.

                            Spaltenbreite -> Admin. Da gern Issue als Enhancement anlegen

                            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                            1 Antwort Letzte Antwort
                            1
                            • apollon77A apollon77

                              @dr-bakterius Also wenn du in den Default-Settings 10 gesetzt hast wird das als Default Wert überall da angewendet wo sonst kein Wert konfiguriert ist. Kannst es aber auf Datenpunktbasis überschreiben

                              Dr. BakteriusD Online
                              Dr. BakteriusD Online
                              Dr. Bakterius
                              Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @apollon77 Danke für das tolle Update. Läuft bei mir nun seit zwei Tagen ohne Probleme. Ich habe nichts groß konfiguriert nur das Buffering (reduziert die Disk IO deutlich). Es funktioniert bei mir alles out of the box.

                              1 Antwort Letzte Antwort
                              1
                              • apollon77A Online
                                apollon77A Online
                                apollon77
                                schrieb am zuletzt editiert von
                                #15

                                So GitHub Verison 2.0.0 hat ein neues Feature bekommen (@Diginix) ... Die Retention time kann nun auch Custom in tagen definiert werden.

                                Bitte checken

                                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                1 Antwort Letzte Antwort
                                0
                                • apollon77A Online
                                  apollon77A Online
                                  apollon77
                                  schrieb am zuletzt editiert von
                                  #16

                                  Vielen Dank an alle tester. Die 2.09.1 geht gerade ins Beta/Latest Repo
                                  --> https://forum.iobroker.net/topic/54833/sql-2-0-0-zusammenfassung

                                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                  1 Antwort Letzte Antwort
                                  0
                                  • N Offline
                                    N Offline
                                    neunteufels
                                    schrieb am zuletzt editiert von
                                    #17

                                    Hallo.

                                    Ich habe Datenpunkte gelöscht, zuvor aber das SQL-Logging nicht deaktiviert. Jetzt bekomme ich immer wieder folgendes im Log:

                                     warn: sql.0 (774) Cannot get index of "web-speedy.0.Results.speeds.download_Mb": id not found
                                    

                                    Die Datenpunkte kann ich leider nicht händisch anlegen und der Adapter funktioniert momentan nicht und die DPs werden somit nicht erstellt.

                                    Was kann ich machen, damit ich die Meldungen wegbekomme?

                                    Danke!

                                    apollon77A 1 Antwort Letzte Antwort
                                    0
                                    • N Offline
                                      N Offline
                                      neunteufels
                                      schrieb am zuletzt editiert von
                                      #18

                                      Und dann habe ich noch folgende Meldungen, obwohl ich hier das Logging vor dem Löschen deaktiviert habe:

                                      2022-09-05 18:14:59.601	warn	getOneCachedData: got null states 1 times for hs100.0.10_10_10_72.power
                                      
                                      apollon77A 1 Antwort Letzte Antwort
                                      0
                                      • N neunteufels

                                        Hallo.

                                        Ich habe Datenpunkte gelöscht, zuvor aber das SQL-Logging nicht deaktiviert. Jetzt bekomme ich immer wieder folgendes im Log:

                                         warn: sql.0 (774) Cannot get index of "web-speedy.0.Results.speeds.download_Mb": id not found
                                        

                                        Die Datenpunkte kann ich leider nicht händisch anlegen und der Adapter funktioniert momentan nicht und die DPs werden somit nicht erstellt.

                                        Was kann ich machen, damit ich die Meldungen wegbekomme?

                                        Danke!

                                        apollon77A Online
                                        apollon77A Online
                                        apollon77
                                        schrieb am zuletzt editiert von
                                        #19

                                        @neunteufels was hast du wie gelöscht? Direkt in de Datenbank? Oder in iobroker? Die meldung sagt das er Meta Daten in der sql dB nicht findet.

                                        Mehr Details bitte

                                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                        N 1 Antwort Letzte Antwort
                                        0
                                        • N neunteufels

                                          Und dann habe ich noch folgende Meldungen, obwohl ich hier das Logging vor dem Löschen deaktiviert habe:

                                          2022-09-05 18:14:59.601	warn	getOneCachedData: got null states 1 times for hs100.0.10_10_10_72.power
                                          
                                          apollon77A Online
                                          apollon77A Online
                                          apollon77
                                          schrieb am zuletzt editiert von
                                          #20

                                          @neunteufels also da scheint wohl noch irgendwas Statistiken lesen zu wollen für den Datenpunkt. Noch irgendwo eine flot Grafik? Oder echarts?

                                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                          N 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          255

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe