Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: DatabaseAddOn - Erweitere Testphase

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

  • Maexle
    antwortet
    Hier noch ein Bildchen

    DB.png

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    Zitat von Sisamiwe Beitrag anzeigen
    Das verstehe ich nicht! Hast das das Plugin 2x aktiviert
    nein - in der Zeile darüber ist die "Tabelle" ich sehe aber da hat es die Formatierung zerlegt --> db_addon_test ist der "Konfig Name" und _priv_db_addon ist "Plugin"

    habe jetzt noch beim Stromzähler getestet ---> auch ohne Erfolg

    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_strom.zaehlertotal.verbrauch_heute                            
                    - verbrauch_strom.zaehlertotal.db_addon_test.verbrauch_woche                            
                    - _priv_db_addon.verbrauch_monat                            
                    - db_addon_test.verbrauch_jahr                              
                    - db_addon_test.verbrauch_heute_minus1
    hab mal die verschiedenen Kombinationen dir mir eingefallen sind probiert --> die richtige war wohl nicht dabei

    Das Log ist ziemlich eindeutig --> Maschine kann damit nichts anfangen ... nur halt nicht für mich

    " lib.config add_struct_to_item_template: Struct definition for 'db_addon_test.verbrauch_strom.zaehlertotal.verbra uch_heute' not found (referenced in item verbrauch_strom.zaehlertotal)
    "

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Maexle Beitrag anzeigen
    habe ich schon mehrmals versucht zu verstehen...
    Das ist nicht so schwer:
    an der Stelle, an der du in deiner item.yaml das struct 'aufrufst', werden die Items, die im struct selbst definiert sind, beim Start von shNG eingesetzt.

    Zitat von Maexle Beitrag anzeigen
    Konfig Name Plugin

    admin/plugins_list --> db_addon_test und _priv_db_addon
    Das verstehe ich nicht! Hast das das Plugin 2x aktiviert

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    Zitat von Sisamiwe Beitrag anzeigen
    Nein, die Werte werden angezeigt, sobald das erste mal neue Werte ins Item geschrieben werden.
    hmmm, komisch entweder habe ich mich gestern vertippt --> auf jeden Fall zeigt "wc.temperatur.auswertung.gestern_max sowie min" eine Null an. Heute min/max funktionieren --> weiter beobachten

    Structs sind hier erklärt
    habe ich schon mehrmals versucht zu verstehen...

    Konfig Name Plugin

    admin/plugins_list --> db_addon_test und _priv_db_addon

    D.h. im meinem Fall !?

    Code:
    wc:
      temperatur:
       type: num
       database: init
       knx_dpt: 9
       knx_listen: 6/2/23
       knx_init: 6/2/23​
       struct:
         - db_addon_test.minmax_1
         - db_addon_test.minmax_2
         - db_addon_test.minmax_was auch immer

    Das ist ja quasi der "live Mittelwert"
    stimmt 👍

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Maexle Beitrag anzeigen
    Heute Min/Max zeigt noch nichts an... denke ich erst ein Tag vergehen muss, richtig?
    Nein, die Werte werden angezeigt, sobald das erste mal neue Werte ins Item geschrieben werden.

    Zitat von Maexle Beitrag anzeigen
    struct:
    Structs sind hier erklärt

    Zitat von Maexle Beitrag anzeigen
    struct:
    - db_addon.minmax_1
    - db_addon.minmax_2​​
    Du musst den Teil vor dem . an deine Plugin Konfiguration anpassen. Mein bsp. geht das von aus, dass das Plugin als "db_addon" gestartet wurde.
    Du kannst das auch im AdminIF unter "Items" und "Struktur Templates" einsehen.

    Zitat von Maexle Beitrag anzeigen
    Meinen bisherigen Temperaturmittelwert ermittle ich folgendermaßen.
    Das ist ja quasi der "live Mittelwert". Das kann die Datenbank nicht. Allerdings könntest Du beide Items (also Mittelwert und mittelwert_rund) zu einem Item zusammenfassen.

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    Ich hätte darüber hinaus noch eine Frage.

    Meinen bisherigen Temperaturmittelwert ermittle ich folgendermaßen.

    ITEM temperatur_mittelwert bzw. die gerundete Variante davon

    Code:
    temperatur:
        mittelwert:
            type: num      
            eval: avg        
            eval_trigger:
                - raum_1_temp
                - raum_2_temp                  
                - ...        
                - ...
                - ...
                - raum_731_temp                                      :D
                
            database: init
                
            mittelwert_rund:
                type: num
                eval: round(sh.temperatur.mittelwert(), 2)
                eval_trigger: temperatur.mittelwert
                database: init​

    Sollte ich das anderseweitig lösen?

    Einen Kommentar schreiben:


  • Maexle
    antwortet
    Ich habs zum Laufen bekommen, denke ich zumindest....

    Zum Test:
    Die Temperatur im WC

    Heute Min/Max zeigt noch nichts an... denke ich erst ein Tag vergehen muss, richtig?

    Der Code:

    Code:
    wc:
            temperatur:
                type: num
            #    visu_acl: rw
                database: init
                knx_dpt: 9
                knx_listen: 6/2/23
                knx_init: 6/2/23
                
                # Ab hier TEST von Neues Plugin: DatabaseAddOn - Erweitere Testphase
                
                auswertung:
                    type: foo
                    
                    heute_min:
                        type: num
                        database_addon_fct: minmax_heute_min
                        
                    heute_max:
                        type: num
                        database_addon_fct: minmax_heute_max
                
                    gestern_min:
                        type: num
                        database_addon_fct: minmax_heute_minus1_min
                        
                    gestern_max:
                        type: num
                        database_addon_fct: minmax_heute_minus1_max​

    In deinem Beispiel unter: https://github.com/sisamiwe/shng-db_addon-plugin
    Code:
    temperature:
    aussen:
    nord:
    name: Außentemp Nordseite
    type: num
    visu_acl: ro
    knx_dpt: 9
    knx_cache: 6/5/1
    database: init
    struct:
    - db_addon.minmax_1
    - db_addon.minmax_2​

    hast du
    struct:
    - db_addon.minmax_1
    - db_addon.minmax_2​​

    verwendet, dies taucht bei den "item_attributes:​" "valid_list:​" nicht auf... werden dadurch alle Unterpunkte bei "
    minmax_1:
    name: Struct für Auswertung der Wertehistorie bei schwankenden Werten wie bspw. Temperatur oder Leistung (Teil 1)​ " automatisch verwendet?

    Danke schon mal für die Erklärung

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von bmx Beitrag anzeigen
    Du brauchst für die Features zwingend Python 3.8. Welche Version läuft bei Dir? 3.7.x?
    Aktuell 3.7.9. Bin gerade dabei auf 3.9.15 zu updaten.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von Sisamiwe Beitrag anzeigen
    Nun ist "py_minversion: 3.8" drin.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Ist die minimal benötigte Python Version nicht in den Metadaten (plugin.yaml) angegeben?
    Ich hatte das noch nicht gepflegt. Nun ist "py_minversion: 3.8" drin.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von bmx Beitrag anzeigen
    Du brauchst für die Features zwingend Python 3.8.
    Ist die minimal benötigte Python Version nicht in den Metadaten (plugin.yaml) angegeben?

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Du brauchst für die Features zwingend Python 3.8. Welche Version läuft bei Dir? 3.7.x?

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Sisamiwe Beitrag anzeigen
    und im Ordner "SmartHomeNG\plugins\_priv_db_addon" sieht es so aus
    Ja mein Ordnername heißt ja nur anders. Aber im wesentlichen sieht es gleich aus. Ein paar Ordner/Dateien, die unnötig sind und auch nicht bei deinem Repositpory dabei waren sind da nicht drin, also __pycache_ usw.

    Der Code aus der plugin.yaml sieht natürlich ganz anders bei mir aus, siehe oben.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Cannon Beitrag anzeigen
    So habe ichs eingebunden:
    Und was genau liegt im Ordner plugins/databaseaddon?

    meine config sieht so aus:
    Code:
    db_addon:
        plugin_name: _priv_db_addon
        startup_run_delay: '10'
        ignore_0_at_temp_items: true
        webif_pagelength: 0
        database_plugin_config: sqlite_test
    und im Ordner "SmartHomeNG\plugins\_priv_db_addon" sieht es so aus:
    Screenshot 2022-10-21 100102.jpg

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Ich kriegs nicht zum laufen:

    So habe ichs eingebunden:

    Code:
    databaseaddon:
        plugin_name: databaseaddon
        startup_run_delay: '300'
    Und die Dateien in plugins/databaseaddon kopiert. Sieht auch alles richtig aus.

    Auch mit der alternativen Schreibweise klappt es genauso wenig:

    Code:
    databaseaddon:
        class_name: DatabaseAddOn
        class_path: plugins.databaseaddon
        startup_run_delay: '300'
    Das steht im Log:

    Code:
    2022-10-21  09:41:57 ERROR    lib.plugin          Plugin 'databaseaddon' exception during import of __init__.py: invalid syntax (<fstring>, line 1)
    > Traceback (most recent call last):
    >   File "/usr/local/smarthome/lib/plugin.py", line 548, in __init__
    >     exec("import {0}".format(classpath))
    >   File "<string>", line 1, in <module>
    >   File "<fstring>", line 1
    >     (value=)
    >           ^
    > SyntaxError: invalid syntax​

    Einen Kommentar schreiben:

Lädt...
X