Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Neues Plugin: DatabaseAddOn - Erweitere Testphase

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

    #76
    Zitat von Cannon Beitrag anzeigen
    Sollte doch so aussehen oder?
    Nicht ganz bzw. fehlt noch einen weitere Angabe. Für die Temperatursummen musst Du mit "database_addon_params" noch den den Zeitraum angeben.
    Ich könnte "year=current" auch als Standard setzen.


    Code:
                jahreskaeltesumme:
                    name: Jahreskaeltesumme
                    type: num
                    database_addon_fct: kaeltesumme
                    database_addon_params: "year=current"
                    database_addon_startup: yes
                    
                
                jahreswaermesumme:
                    name: Jahreswaermesumme
                    type: num
                    database_addon_fct: waermesumme
                    database_addon_params: "year=current"
                    database_addon_startup: yes
                
                gruenlandtemperatursumme:
                    name: Guenlandtemperatursumme
                    type: num
                    database_addon_fct: gruenlandtempsumme
                    database_addon_params: "year=current"
                    database_addon_startup: yes
    Hilft das, bzw. wie kann ich das besser dokumentieren?

    Kommentar


      #77
      year=current als Standard wäre vielleicht kein Fehler. Im aktuellen Fall wäre es hilfreich, wenn man im plugin.yaml noch Zusatzinfos zu den valid_list Einträgen angeben könnte, die dann in der Doku entsprechend aufscheinen. Die Kommentare im yaml File muss man sich aktuell halt manuell anschauen. Msinn was meinst du? Wäre das machbar/sinnvoll, irgendwie Comments (mit einem Delimiter oder so) im plugin.yaml zu ermöglichen?

      Kommentar


        #78
        Zitat von Sisamiwe Beitrag anzeigen
        Nicht ganz bzw. fehlt noch einen weitere Angabe. Für die Temperatursummen musst Du mit "database_addon_params" noch den den Zeitraum angeben.
        Ich könnte "year=current" auch als Standard setzen.
        Danke. Jetzt geht es soweit. Inwiefern die Werte allerdings plausibel sind, lässt sich derzeit nicht prüfen. Ich freue mich aber riesig über das Plugin.

        Zitat von Sisamiwe Beitrag anzeigen
        Hilft das, bzw. wie kann ich das besser dokumentieren?
        Das hilft auf jeden Fall. Das sollte ggf. als Beispiel in die Doku rein und zu den Parametern fehlt dann noch eine entsprechende Dokumentation.

        Ich muss mir jetzt nur überlegen, was ich mit all den tollen Funktionen anfangen kann.

        Kommentar


          #79
          OnkelandyMir ist im Moment noch nicht klar was nicht geht, bzw. Was Du erreichen möchtest.
          Viele Grüße
          Martin

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

          Kommentar


            #80
            Zitat von Onkelandy Beitrag anzeigen
            year=current als Standard wäre vielleicht kein Fehler.
            Ist drin.

            Zitat von Onkelandy Beitrag anzeigen
            Im aktuellen Fall wäre es hilfreich, wenn man im plugin.yaml noch Zusatzinfos zu den valid_list Einträgen angeben könnte, die dann in der Doku entsprechend aufscheinen. Die Kommentare im yaml File muss man sich aktuell halt manuell anschauen
            In der plugin.yaml steht und stand das bereits, aber nicht im richtigen Format.
            Ich hatte da 'valid_list' benutzt, um die zulässigen Parameterwerte zu definieren. Dahinter stand und steht als Kommentar der notwendige Item-Type, der Berechnungszyklus und eine Beschreibung.

            Code:
                    valid_list:
                        # Verbrauch
                        - 'verbrauch_heute'                             #num    onchange    Verbrauch am heutigen Tag (Differenz zwischen aktuellem Wert und den Wert am Ende des vorherigen Tages)
                        - 'verbrauch_woche'                             #num    onchange    Verbrauch in der aktuellen Woche
                        - 'verbrauch_monat'                             #num    onchange    Verbrauch im aktuellen Monat
                        - 'verbrauch_jahr'                              #num    onchange    Verbrauch im aktuellen Jahr
            Msinn Ich denke, Onkelandy wollte wissen, ob bzw. wie man diese Info ind er Doku verfügbar machen kann.

            Ich habe nun die Beschreibung unter 'valid_list_description' eingetragen und eine neuen Eintrag mit 'valid_list_type' generiert, unter dem der Type des Items, für das der Parameter definiert ist, gelistet ist. Hierfür habe ich in der Doku nichts passendes gefunden.
            Was meint ihr, wie das besser geht?

            BTW: Update ist in meinem Repo

            Kommentar


              #81
              Zitat von Sisamiwe;
              Ich denke, Onkelandy wollte wissen, ob bzw. wie man diese Info ind er Doku verfügbar machen kann.
              Das geht durch die angabe einer weiteren Liste als Attribut valid_list_description, wie in der Doku beschrieben: https://www.smarthomeng.de/user/refe...st_description

              Ein Beispiel findest Du im knx Plugin, wo das genutzt wird.

              In der Dokuseite zur Konfiguration des jeweiligen Plugins werden dann die Beschreibungen mit aufgeführt.
              Zuletzt geändert von Msinn; 26.10.2022, 21:18.
              Viele Grüße
              Martin

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

              Kommentar


                #82
                valid_list_description hatte ich nicht am Schirm, deckt eigentlich eh das ab, was hier benötigt wird. Den Typ kann man dort ja notfalls auch hinterlegen, damit man's zumindest nachlesen kann. Wie oft das vorkommt, dass ein bestimmter Eintrag aus valid_list einen anderen Typ hat als andere sei dahin gestellt.

                Kommentar


                  #83
                  Zitat von Onkelandy Beitrag anzeigen
                  valid_list_description
                  Hallo,

                  in meinen Repo gibt es ein Update. Darin ist zum einen die plugin.yaml bzw. Beschreibung der möglichen Item-Attribute überarbeitet. Zum anderen gibt es nun im WebIF einen Reiter, mit der Darstellung der Plugin Funktionen und ItemAttributes.
                  Bitte mal Testen.

                  Die Entwicklung nähert sich dem Ende. Das Plugin beherrscht nun die Anbindung an mysql als auch sqlite3.
                  er noch Anmerkungen etc hat, bitte per PN an mich.

                  Beste Grüße

                  Kommentar


                    #84
                    Hi,

                    Ich habe folgendes Problem:

                    verbrauch_jahr_minus2: erwarten würde ich mir den Verbrauch zw. 01.01.2020 und 31.12.2020, das Plugin versucht jedoch das Jahr 2019 zu berechnen.

                    Code:
                    WasserZaehler.WasserTotalLiter.Auswertung.verbrauch_jahr_minus2
                    Das Log zeigt folgendes:
                    Code:
                    2022-11-22 20:46:56 WARNING plugins.priv_db_addon _query_item: Requested start time timestamp=1546300800000 / 2019-01-01 00:00:00 of query for Item='WasserZaehler.WasserTotalLiter' is prior to oldest entry with timestamp=1546615263662 / 2019-01-04 15:21:03. Query cancelled.

                    Kommentar


                      #85
                      Zitat von stoner1801 Beitrag anzeigen
                      verbrauch_jahr_minus2: erwarten würde ich mir den Verbrauch zw. 01.01.2020 und 31.12.2020, das Plugin versucht jedoch das Jahr 2019 zu berechnen.
                      Das schaue ich mir gern an.
                      Nutzt Du mysql oder sqlite3?

                      Kommentar


                        #86
                        Zitat von Sisamiwe Beitrag anzeigen

                        Das schaue ich mir gern an.
                        Nutzt Du mysql oder sqlite3?
                        Besten Dank für deine Hilfe. Ich verwende mysql.

                        Kommentar


                          #87
                          Zitat von stoner1801 Beitrag anzeigen
                          Besten Dank für deine Hilfe. Ich verwende mysql.
                          Ich habe das Thema analysiert.
                          Das positive ist, dass die Berechnungen korrekt sind. Aber es gibt Verbesserungspotential.

                          Die Berechnung der Verbrauches läuft immer so:
                          • aus dem Item-Attributwert werden "timeframe" und "timedelta" ermittelt (in diesem Falle timeframe=jahr, timedelta=2)
                          • Der Endwert für den Verbrauch ist immer der maximale Wert im timeframe - timedelta (also der größte Wert vom 1.1.20 bis 31.12.20)
                          • Der Startwert für den Verbrauch ist immer der maximale Wert im timeframe - (timedelta+1) (also der größte Wert vom 1.1.19 bis 31.12.19) und damit der letzte/größte Wert aus dem Jahre 2019.
                          Man könnte die Berechnung des Startwertes ändern in:
                          • Der Endwert für den Verbrauch ist immer der minimale Wert im timeframe - timedelta (also der kleinste Wert vom 1.1.20 bis 31.12.20). Das grenzt zwar den Zeitraum besser ab, sollte aber eine 0 in der DB stehen, nimmt er diese. Dies könnte man unterbinden, in dem man die Option "ignore_value" nutzt.

                          Was ist Dein Vorschalg?

                          Kommentar


                            #88
                            Besten Dank für deine Mühe.

                            In der Tat kommt es vor, dass wenn smarthomeng neu gestartet wird eine 0 in der DB steht.

                            Ein anderer Ansatz wäre nicht den größten Startwert zw. 01.01.19 und 31.12.19 zu nehmen sondern den größten Wert aus allen Einträgen aus 2019.

                            Bsp.:
                            Select max(t.value) from table t where year(t.date)

                            Bin mir nicht sicher, ob die Funktion year mit timestamps funktioniert.

                            Kommentar


                              #89
                              Zitat von stoner1801 Beitrag anzeigen
                              Ein anderer Ansatz wäre nicht den größten Startwert zw. 01.01.19 und 31.12.19 zu nehmen sondern den größten Wert aus allen Einträgen aus 2019.
                              Das macht die Abfrage sehr langsam, da die DB selbst rechnen muss.
                              Fürs erst kannst Du in der Konfig das Plugin die Option so setzten, dass, wenn der Start vor dem ersten Eintrag liegt, immer den ersten (also ältesten) Eintrag nutzt.

                              Zudem kann man auch über eine Option die 0-Werte ignorieren.

                              Ich denke nochmal drauf rum.

                              Kommentar

                              Lädt...
                              X