Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

    Zitat von psilo Beitrag anzeigen

    Theoretisch müsste man auch beim Entfernen einzelner Werte in den historischen Daten die Duration des folgenden Items erhöhen.
    Kann man nicht davon ausgehen, dass die Werte an sich stimmen und nur die Durations nicht geschrieben worden sind? Ich würde die Werte daher nicht löschen, sondern die Durations reparieren (aus dem Zeitstempel des folgenden Eintrags).

    Gruß
    Wolfram

    Kommentar


      wvhn ich glaube wir meinen hier was anderes. mein use case ist ja genau werte rauszunehmen. in dem fall muss man um ganz sauber zu sein eigentlich die durations anpassen. ich spreche nicht von werten wo die duration fehlt. k.a. wie die genau zustande kommen, hab ich bisher nicht untersucht

      Kommentar


        OK. Da habe ich Dich falsch verstanden. Dennoch wäre die Reparatur von fehlenden durations ein wichtiger Beitrag zur Verbesserung der Plots.
        Beim Herausnehmen von Werten würde ich eher die durations der vorherigen Werte verlängern, so dass bei allen verbleibenden Werten der Zeitstempel immer stimmt.

        Kommentar


          Kann es sein, dass sich beim Versuch die nicht kompletten Datenbank Einträge zu beseitigen ein Fehler eingeschlichen hat?

          Ich habe aktuell (seit kurzem) mit dem develop Plugin folgendes Problem: Ich schreibe von einem Regler die Stellgröße weg. Die Stellgröße geht dabei irgendwann schlagartig auf 0. Ca. einen halben Tag später geht die Stellgröße langsam wieder hoch. Das wird auch im Plot in der smartVISU so dargestellt.

          Nach einem Neustart von SmartHomeNG sieht die Darstellung im Plot jedoch deutlich anders aus. Die mehrstündigen Perioden in denen die Stellgröße 0 ist, werden nicht als Wert 0 dargestellt, sondern in der Höhe des letzten Wertes vor der 0-Stellung:

          Capto_Capture 2020-11-18_02-17-51_PM.jpg

          Die beiden Plateau Flächen der grünen Linie waren vor dem Neustart auf Höhe 0, so wie die letzte (aktuelle) Plateaufläche der Linie ist.

          Ich interpretiere das so, dass der 0-Wert aus der Datenbank "verschwunden" ist.
          Viele Grüße
          Martin

          There is no cloud. It's only someone else's computer.

          Kommentar


            Hi psilo


            nicht nur der letzte Eintrag in der DB (welcher normalerweise die Duration None hat) sondern auch der vorletzte Eintrag darf nicht via WebIf gelöscht werden. Beim Löschen des vorletzten Iitems wird dieses sonst erstmal gelöscht, wird aber periodisch neu in die DB geschrieben. Ich habe daher für Items mit tndex 1 UND 2 die Löschen Buttons entsprechend ausgegraut. Ändeung ist im Develop.

            Msinn : Das ist ein anderes Thema, als das von Dir und betrifft nur das WebIf.
            Zuletzt geändert von aschwith; 18.11.2020, 19:23.

            Kommentar


              Ich hatte im Web Interface nichts getan. Das Verhalten tritt beim mir bei einem einfachen Restart von SmartHomeNG auf.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                Msinn ich habe am plugin nichts gemacht, ausser den button im webif deaktiviert? hat sonst wer was gemacht?

                Kommentar


                  Ich bin mir nicht sicher. Es gab in den letzen Tagen nur die Diskussion über das Beseitigen fehlerhafter Timestamps.

                  Ich möchte auch nicht völlig ausschließen, dass das Problem schon länger besteht. Es ist mir nur erst jetzt aufgefallen.
                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar


                    Hallo zusammen,

                    ich komme nicht mehr auf das WebIf. Ich habe auf die aktuelle SHNG Version geupdatet. Ich kann nicht 100% sagen ob der Fehler vorher schon da war.

                    Das Log spuckt folgendes aus:
                    2021-01-20 07:35:23 ERROR cherrypy.error.140029424407552 [20/Jan/2021:07:35:23] HTTP
                    > Traceback (most recent call last):
                    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 638, in respond
                    > self._do_respond(path_info)
                    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond
                    > response.body = self.handler()
                    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/lib/encoding.py", line 219, in __call__
                    > self.body = self.oldhandler(*args, **kwargs)
                    > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__
                    > return self.callable(*self.args, **self.kwargs)
                    > File "/usr/local/smarthome/plugins/database/webif/__init__.py", line 122, in index
                    > language=self.plugin.get_sh().get_defaultlanguage( ))
                    > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/environment.py", line 1090, in render
                    > self.environment.handle_exception()
                    > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/environment.py", line 832, in handle_exception
                    > reraise(*rewrite_traceback_stack(source=source))
                    > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/_compat.py", line 28, in reraise
                    > raise value.with_traceback(tb)
                    > File "/usr/local/smarthome/plugins/database/webif/templates/index.html", line 3, in top-level template code
                    > {% set tab1title = _('Database Items') %}
                    > File "/usr/local/smarthome/plugins/database/webif/templates/base_database.html", line 50, in top-level template code
                    > {% set tab2title = _('Plugin-API') %}
                    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 183, in top-level template code
                    > {% if scroll_heading is not defined %}
                    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 1, in top-level template code
                    > {% block doc -%}
                    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 4, in block "doc"
                    > {%- block html %}
                    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 76, in block "html"
                    > {% block body -%}
                    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 79, in block "body"
                    > {% block content -%}
                    > File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 150, in block "content"
                    > {% block bodytab1 %}
                    > File "/usr/local/smarthome/plugins/database/webif/templates/index.html", line 67, in block "bodytab1"
                    > <td class="py-1">{{ p.id(item, create=False) }}</td>
                    > File "/usr/local/smarthome/plugins/database/__init__.py", line 316, in id
                    > if (COL_ITEM_ID >= len(id)) or (id == None):
                    > TypeError: object of type 'NoneType' has no len()

                    Kommentar


                      Das hat n ihts mit dem Web Interface zu tun. Der Bug wird im kommenden Bugfix Release gefixt. Im Moment hilft nur ein wenig zu warten, bis Daten in den Datenbank geschrieben wurden und erst dann das Web Interface aufzurufen.
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        Hallo Msinn

                        Dann haben diese beiden Fehler, die ich kurz nach der Installation und den ersten (Neu-) Starts bekam, auch damit zu tun? Die Database war noch nicht so weit?
                        Denn seitdem sehe ich keinerlei Probleme mit dem Database Plugin.

                        Code:
                        2021-01-17  14:51:19 ERROR    lib.db              Can not execute query: SELECT MAX(version) FROM database_version; (args []): no such table: database_version
                        2021-01-17  14:51:35 CRITICAL plugins.database    remove_older_than_maxage: no id for item env.core.memory

                        Kommentar


                          Ich vermute ja
                          Viele Grüße
                          Martin

                          There is no cloud. It's only someone else's computer.

                          Kommentar


                            Hallo,

                            ich würde gern bei diversen meiner Items, die den Verbrauch bzw. Zählerstand loggen, ein Schreiben in die DB um 24.00 Uhr erzwingen, wenn sich im Laufe des aktuellen Tages keine Wertänderung ergeben hat.
                            Wenn der Wert immer um 24.00 Uhr geschrieben werden würde, wäre das auch ok.

                            Eine beispielhafte Itemkonfig ist:
                            Code:
                                    betriebsstunden_knx:
                                        name: Betriebsstundenzähler Brenner in Stunden
                                        type: num
                                        visu_acl: ro
                                        database: init
                                        eval: round(sh..betriebsstunden_knx_sek() / 60 / 60, 2)
                                        eval_trigger: .betriebsstunden_knx_sek
                                        enforce_updates: yes
                                        struct: wertehistorie_total
                                            
                                        betriebsstunden_knx_sek:
                                            name: Betriebsstundenzähler Brenner in Sekunden
                                            type: num
                                            visu_acl: ro
                                            database: init
                                            database_maxage: 200
                                            eval: sh...betriebsstunden_knx_sek() + sh....property.prev_update_age * int(sh....property.last_value)
                                            eval_trigger: ...
                            Crontab kann ich zwar die Berechnung des Items um eine gewisse Uhrzeit anstoßen, aber der Wert (da scheinbar der gleiche ist) wird nicht in die DB geschrieben.

                            Wie kann ich das erreichen?

                            Danke für die Tipps?

                            Kommentar




                              Hallo zusammen,

                              ist bestimmt wieder nur ein kleines Häckchen... aber finden


                              Ich würde gerne vermeiden, dass bei einem Neustart eine Null für die Temperatur geschrieben wird.
                              Vgl. Bild

                              Temp.PNG



                              Danke
                              Zuletzt geändert von Maexle; 24.01.2021, 17:47. Grund: Bild hinzu

                              Kommentar


                                Ist die "Nullvermeidung" möglich? Wenn ja wo?

                                Kommentar

                                Lädt...
                                X