Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: DatabaseAddOn - Erweitere Testphase

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

  • Sisamiwe
    antwortet
    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

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    OnkelandyMir ist im Moment noch nicht klar was nicht geht, bzw. Was Du erreichen möchtest.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    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.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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?

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    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?

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Ich wollte das jetzt mal testen. Da inzwischen alles andere läuft. Das steht hier im Log:

    Code:
    2022-10-25  19:04:04 WARNING  plugins.db_addon    Item 'Zentral.Wetter.pluggit.Temperatur.Gruenlandtemperatursumme' with database_addon_fct=gruenlandtempsumme ignored, since parameter using 'database_addon_params' not given. Item will be ignored.
    2022-10-25  19:04:04 WARNING  plugins.db_addon    Item 'Zentral.Wetter.pluggit.Temperatur.Waermesumme' with database_addon_fct=waermesumme ignored, since parameter using 'database_addon_params' not given. Item will be ignored.​
    Sollte doch so aussehen oder?

    Code:
            pluggit:
                Temperatur:
                    type: num
                    knx_dpt: 9
                    knx_send: 4/0/1
                    knx_reply: 4/0/1
                    database: yes
                    database_maxage: 732
                    visu_acl: ro
                    eval: value
                    eval_trigger: Zentral.pluggit.OutdoorTemperature
                    Gruenlandtemperatursumme:
                        type: num
                        database_addon_fct: gruenlandtempsumme
                    Waermesumme:
                        type: num
                        database_addon_fct: waermesumme    ​

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    kleines Update:

    mittlerweile wurden die Items befüllt

    Das Addon "greift hier" die Werte ab --> direkt aus dem SML-Plugin --> sml_obis: 1-0:1.8.0*255
    verbrauch_strom.zaehlertotal --> 4914257.8 (aktuller Zählerstand) Wh --> für die Visu habe ich mir ein Item
    verbrauch_strom.verbrauch.zaehler --> holt Werte aus eval: round(sh.verbrauch_strom.zaehlertotal() / 1000, 2) gebaut.

    Macht es von der "wieviel Leistung wird vom System verlangt" einen Unterschied bzw. ist eine der beiden Varianten besser?

    Variante A: ich setze die "Structs" unter das verbrauch_strom.verbrauch.zaehler (somit habe ich alle Werte in kWh)

    Variante B: (falls das überhaupt möglich ist) - jeden einzelnen Unterpunkt des Struct --> eval /1000

    Variante C: ???


    Danke Euch

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    bmx

    Danke das wohl der richtige Hinweis...



    auch beim Item "verbrauch_strom" sind die "Unterpunkte" im Item-Baum zu sehen --> ich werde berichten ob die Werte befüllt werden, aktuell überall "Null"

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Maexle einige Erläuterungen die sich nicht unbedingt aus der Doku ergeben könnten:

    1. Private Plugins haben ein prefix priv_ weil sie dann bei git fetch, git pull, git merge etc. übergangen werden. Das ist in der .gitignore im ./smarthome/plugins Verzeichnis enthalten:

    Code:
    # don't upload private plugins
    /priv_*
    ​
    2. Bei der Angabe für struct ist es nicht wichtig welche Konfigurationsnamen Du für Deine Plugin Instanz verwendet hast sondern der Ort wo das struct zu finden ist. In Deinem Fall ist das _priv_db_addon (besser wäre laut 1. dann priv_db_addon​)

    3. Die verfügbaren struct werden im Admin Interface unter Items -> Struktur Templates aufgelistet
    Zuletzt geändert von bmx; 24.10.2022, 10:19.

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    Nachdem ich mir fast die "verbrauch_strom.yaml" zerschossen habe.

    Neues Item angelegt:

    Code:
    # neues_plugin.yaml
    
    
    
    neues_plugin:
        stromkwh:
            type: num
            database: init
            sml_obis: 1-0:1.8.0*255
        
            struct:
                - db_addon_test.verbrauch
                - db_addon_test.zaehlerstand 
    
    
    add_struct_to_item_template: Struct definition for 'db_addon_test.verbrauch' not found (referenced in item neues_plugin.stromkwh)
    add_struct_to_item_template: Struct definition for 'db_addon_test.zaehlerstand' not found (referenced in item neues_plugin.stromkwh)
    
    
    ##############################################
    
    TEST Nummer 2
    
    # neues_plugin.yaml
    
    neues_plugin:
        stromkwh:
            type: num
            database: init
            sml_obis: 1-0:1.8.0*255
        
            struct:
                - db_addon_test.verbrauch_1
                - db_addon_test.zaehlerstand_1
    
    
    
    
    add_struct_to_item_template: Struct definition for 'db_addon_test.verbrauch_1' not found (referenced in item neues_plugin.stromkwh)
    add_struct_to_item_template: Struct definition for 'db_addon_test.zaehlerstand_1' not found (referenced in item neues_plugin.stromkwh)
    
    
    
    ###################################################
    
    TEST Nummer 3
    
    # neues_plugin.yaml
    
    
    
    neues_plugin:
        stromkwh:
            type: num
            database: init
            sml_obis: 1-0:1.8.0*255
        
            struct:
                - db_addon_test.verbrauch_heute
                - db_addon_test.zaehlerstand_heute_minus1
    
     add_struct_to_item_template: Struct definition for 'db_addon_test.verbrauch_heute' not found (referenced in item neues_plugin.stromkwh)
    add_struct_to_item_template: Struct definition for 'db_addon_test.zaehlerstand_heute_minus1' not found (referenced in item neues_plugin.stromkwh)
    jeweils darunter die jeweilige LOG-Meldung. Zuerst hatte ich meine "verbrauch.yaml" im Verdacht, da ja dort schon Auswertungen (auch mit Hilfe des Forums) vorhanden sind. Aber das hat sich jetzt nicht bestätigt.

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    Zitat von Sisamiwe Beitrag anzeigen
    Probier nochmal.
    Leider hat das nicht geklappt...
    "ERROR lib.config add_struct_to_item_template: Struct definition for 'db_addon_test.verbrauch_1' not found (referenced in item verbrauch_strom.zaehlertotal)"

    was mich auch mehr als verwirrt in der "shng-db_addon-plugin/plugin.yaml" gibt es doch überhaupt keine ".verbrauch_1 .zaehlerstand_1"


    Immerhin beim WC geben jetzt alle 4 Items einen Wert aus (Heute min/max & Gestern min/max) --> musste wohl wirklich der "Tag erst vergehen"

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Maexle Beitrag anzeigen
    hab mal die verschiedenen Kombinationen dir mir eingefallen sind probiert --> die richtige war wohl nicht dabei
    Nein.

    Ich habe dir unten mal die Konfig gebaut.
    Du bindest, bei dem Items, die du auswerten willst nur das struct selbst bzw. die structs, die die möchtest, ein.
    Das struct wird aufgerufen mit: Konfig_Name_des_Plugin.Struct_Name

    Damit werden unterhalb der Stelle, an der du das struct definiert hast, alle Items selbst eingefügt.

    Code:
    verbrauch_strom:
            zaehlertotal: # Zaehlerstand Bezug vom Stromzaehler ohne Umwandlung Rundung etc.
                name: Zaehlerstand
                type: num
                database: init
                sml_obis: 1-0:1.8.0*255
                
                
                #### Ab hier Test vom neuen Plugin ####
                
                struct:
                    - db_addon_test.verbrauch_1
                    - db_addon_test.zaehlerstand_1
    Probier nochmal.

    Einen Kommentar schreiben:

Lädt...
X