Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: DatabaseAddOn - Erweitere Testphase

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

  • Cannon
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Kannst doch manuell die requirements ändern..?
    Klar kann ich. Aber wird es nicht einen Grund haben, warum die Mindestversion seitens der Entwickler der Plugins vorgegeben ist? :-)

    Zitat von Onkelandy Beitrag anzeigen
    Aber spiel keine Rolle, Plugin und neuer Master kommen in Kürze ins github.
    Ich freue mich schon!

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Kannst doch manuell die requirements ändern..? Aber spiel keine Rolle, Plugin und neuer Master kommen in Kürze ins github.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Sisamiwe Beitrag anzeigen
    der PR für das Plugin folgt alsbald.
    Ich freue mich schon. Allerdings setzt das laut den requirements auch eine neue Version von SmartHomeNG voraus, die es noch nicht als Master gibt. Ich habe mir das aktuelle db_addon gerade mal reinkopiert in meine Master-Installation. Eine Kopie habe ich nicht gemacht, deshalb kann ich das db_addon bis zum Master gar nicht mehr nutzen.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,

    der PR für das Plugin folgt alsbald.
    Dann geht es hier weiter: https://knx-user-forum.de/forum/supp...seaddon-plugin

    Beste Grüße

    Einen Kommentar schreiben:


  • startrix
    antwortet
    Hallo Michael,

    vielen Dank für die Anpassung, kam gerade dazu das Update einzuspielen und es funktioniert auf Anhieb.

    Die Doku finde ich generell gut, finde auf Anhieb erstmal nichts was da zwingend ergänzt werden muss. Am Ende der Doku sollen zwei Bilder sein, da scheinen aber die Links verwaist zu sein.

    Viele Grüße Jannis

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von startrix Beitrag anzeigen
    Falls nicht, wäre es natürlich cool wenn in einer der nächsten Versionen (falls du es weiter entwickelst) die Funktion mit aufgenommen wird.
    Hallo,

    ich habe das eben noch mit eingebaut. Das Update ist in meinem Repo verfügbar.

    Hintergrund: Das Plugin selbst ist aktuell nicht multi-instancefähig, bedeudet, dass nur eine Instance des database-plugins unterstützt wird. Bei der Konfiguration des Plugins muss die Konfiguration des database-Plugins angegeben werden, für die das DatabaseAddon-Pluging wirken soll. Mit der Angabe der Konfiguration ist auch automatisch die Instance definiert. Diese wird nun eingelesen und bei der Suche nach dem jeweiligen Database-Item mit genutzt.

    Bitte: Ich habe noch eine Bitte. Ich werden in den kommenden Tage den PR stellen, so dass das Plugin beim nächsten Release mit dabei ist. Es wäre schon, wenn Du dir die Doku dazu mal anschaust und ggf. Ergänzungen etc erstellen kannst. Ich bin dazu schon "betriebsblind".

    Danke und beste Grüße

    Einen Kommentar schreiben:


  • startrix
    antwortet
    Hallo Michael,

    danke für den Wink in die richtige Richtung, du lagst komplett richtig.

    Zitat von Sisamiwe Beitrag anzeigen
    Hallo,

    ich habe eine Vermutung: Es hat mit den Instanzen zu tun.[LIST][*]Für das database Attribut ist eine Instanz gesetzt: database@mariadb[*]Für das struct und damit die db_addon Attribute hingegen nicht.
    Wenn ich die Instanz entferne bei der Database und im Item, dann klappt es auf anhieb.

    Kann ich deinem Plugin (was übrigens ziemlich genial ist - Danke dafür) denn die Instanz beibringen?

    Falls nicht, wäre es natürlich cool wenn in einer der nächsten Versionen (falls du es weiter entwickelst) die Funktion mit aufgenommen wird.

    Viele Grüße
    Jannis

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von startrix Beitrag anzeigen
    Wo liegt mein Fehler? Jemand einen Tipp für mich?
    Hallo,

    ich habe eine Vermutung: Es hat mit den Instanzen zu tun.
    • Für das database Attribut ist eine Instanz gesetzt: database@mariadb
    • Für das struct und damit die db_addon Attribute hingegen nicht.
    Ich stelle das bei mir heute mal nach und melde mich.

    Michael

    Einen Kommentar schreiben:


  • startrix
    antwortet
    Hallo Zusammen,

    ich probiere mich nun leider auch seit 2 Tagen erfolglos an dem Addon. Vielleicht seht ihr ja meinen Fehler direkt. Ich bin etwas ratlos und nachdem ich den Thread hier durch habe seit ihr meine letzte Hoffnung erstmal.

    Im WebIf des Plugins werden mir keine Items angezeigt und die Items, welche über struct angelegt werden, bleiben verständlicher weise leer. Im Log meckert er jedes mal beim starten folgendes, was wohl auch mein Problem ist:

    2023-02-15 15:24:27 CET WARNING __init__ Main No database item found for Sensoren.Schlafzimmer.Temperatur.verbrauch_heute: Item ignored. -- (__init__.pyarse_item:371)
    Das Item ist wie folgt angelegt:

    # Sensoren.yaml
    Sensoren:
    Schlafzimmer:
    Temperatur:
    name: Temperatur Schlafzimmer
    type: num
    knx_dpt: 9
    knx_listen: 0/2/3
    database@mariadb: init
    struct: priv_db_addon.verbrauch_1​
    Wo liegt mein Fehler? Jemand einen Tipp für mich?

    Danke & Viele Grüße
    Jannis
    Zuletzt geändert von startrix; 15.02.2023, 16:54.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von jonny7792 Beitrag anzeigen
    Der Parameter use oldest entry wurde gesetzt.
    Was soll ich aus der Tabelle erkennen?

    Zitat von jonny7792 Beitrag anzeigen
    wenig verwundert da
    Was sagt denn das Log?

    Einen Kommentar schreiben:


  • jonny7792
    antwortet
    Der Parameter use oldest entry wurde gesetzt.
    use_oldest_entry bool falsetruefalse

    true


    Dementsprechend sollte doch auch etwas kommen .. ab dem 05.02 - dies geschieht jedoch nicht - deswegen habe ich mich noch mal gemeldet

    Für die Items welche ich nachträglich hinzugefügt habe wie zmb den Eigenverbrauch sowie die Ersparnis ist klar das er noch keinen wert hat , aber ich bin wie gesagt ein wenig verwundert da es ja mit dem Tages Bezug ebenfalls funktioniert
    Zuletzt geändert von jonny7792; 08.02.2023, 18:54.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von jonny7792 Beitrag anzeigen
    Wenn ich die Doku richtig verstanden habe sollte er doch den Monats und Wochenverbrauch täglich auf Basis des Vortages berechnen - korrekt?
    Naja. Wie ich oben schon geschrieben habe, rechnet Plugin standardmäßig nur, wenn der Abfragezeitraum komplett in der Datenbank seht.
    Sprich: Die Monatsberechnung wird dann ausgeführt wenn auch für den 1. des Monats Daten vorliegen. Da deine Datenbank erst ab 5.2. beginnt, überspringt das Plugin die Berechnung. Seht so auch im Logfile.

    Alternativ kannst Du den Parameter "use_oldest_entry​" nutzen. Das bedeutet: "Verwendung des ältesten Eintrags des Items in der Datenbank, falls der Start des Abfragezeitraums zeitlich vor diesem Eintrag liegt". Sprich hier würde er den Monatswert errechnen und dafür den "oldest_entry" nutzen.

    Hatte ich aber ober schon mal geschrieben.
    Zitat von Sisamiwe Beitrag anzeigen
    B) Wie soll das Plugin den Tagesverbrauch berechnen, wenn noch kein Tag in der DB ist? Deine DB beginnt doch erst heute gegen 9.00 Uhr. Damit das Plugin bei solchen Fällen den ältesten Eintrag der DB nimmt, kann man das in den Plugin Parametern konfigurieren. Der Parameter "use_oldest_entry" ist dafür gedacht.

    Einen Kommentar schreiben:


  • jonny7792
    antwortet
    Zitat von Sisamiwe Beitrag anzeigen
    Damit das Plugin bei solchen Fällen den ältesten Eintrag der DB nimmt, kann man das in den Plugin Parametern konfigurieren. Der Parameter "use_oldest_entry" ist dafür gedacht.

    Hallo Sisamiwe

    habe nun den entsprechenden Parameter gesetzt.

    Das klappt soweit auch, jedoch musste ich feststellen das der Monatsverbrauch nicht addiert wird.
    Dieser Eintrag bleibt nach wie vor leer obwohl 2 Tage in der DB hinterlegt sind.

    Das gleiche bei den beiden folgenden Items:


    PHP-Code:
       Item Pfad Messung.Strom.Eigenverbrauch  ​Wert 18722.604   Messung.Strom.Eigenverbrauch.verbrauch_heute num verbrauch_heute on-change Nein 0 08.02.2023 10:47:46 08.02.2023 10:47:46  ​


    Ebenso 
    die MonatsverbräucheImport und Export   Messung.Strom.Bezug.verbrauch_heute num verbrauch_heute on-change Nein 25 08.02.2023 12:49:49 08.02.2023 12:49:34 Messung.Strom.Bezug.verbrauch_jahr num verbrauch_jahr on-change Nein 0 08.02.2023 10:47:46 08.02.2023 10:47:46 Messung.Strom.Bezug.verbrauch_monat num verbrauch_monat on-change Nein 0 08.02.2023 10:47:46  ​   Messung.Strom.Bezug.verbrauch_gestern num verbrauch_heute_minus1 täglich Ja 53.2 08.02.2023 12:31:37 08.02.2023 10:52:50 Messung.Strom.Bezug.verbrauch_gestern_minus1 num verbrauch_heute_minus2 täglich Ja 50.4 08.02.2023 12:31:37 08.02.2023 10:52:51  ​ 

    Wenn ich die Doku richtig verstanden habe sollte er doch den Monats und Wochenverbrauch täglich auf Basis des Vortages berechnen - korrekt?

    Die Items sind wie folgt definiert:

    Code:
    ​Messung:
        Strom:
            Bezug:
                type: num
                knx_dpt: 13
                knx_listen: 1/6/21
                eval: value/1000
                database: 'init'
                struct:
                  - dbdevelop.verbrauch_1
                  - dbdevelop.verbrauch_2
                  - dbdevelop.zaehlerstand_1
            Lieferung:
                type: num
                knx_dpt: 13
                knx_listen: 1/6/23
                eval: value/1000
                database: 'init'
                struct:
                  - dbdevelop.verbrauch_1
                  - dbdevelop.verbrauch_2
                  - dbdevelop.zaehlerstand_1
    
            Eigenverbrauch:
                type: num
                #eval: value/1000
                database: 'init'
                cache: true
                struct:
                  - dbdevelop.verbrauch_1
            Einsparung:
                type: num
                database: 'init'
                cache: true
                struct:
                  - dbdevelop.verbrauch_1
    ....
    ....
    ....
    
        M_Export:
            type: num
            name: M_Exported
            enforce_updates: 'True'
            eval: value*10**sh.Photovoltaik.M_Export_sf()
            modBusAddress: '40226'
            modBusFactor: '0.001'
            modBusDataType: uint32
            database: 'init'
            struct:
                - dbdevelop.verbrauch_1
                - dbdevelop.verbrauch_2
                - dbdevelop.zaehlerstand_1
        M_Export_sf:
            type: num
            name: M_Energy_W_sf
            enforce_updates: 'True'
            modBusAddress: '40242'
            modBusFactor: '0.001'
            modBusDataType: int16
        M_Import:
            type: num
            name: M_Imported
            enforce_updates: 'True'
            eval: value*10**sh.Photovoltaik.M_Import_sf()
            modBusAddress: '40234'
            modBusFactor: '0.001'
            modBusDataType: uint32
            database: 'init'
            struct:
                - dbdevelop.verbrauch_1
                - dbdevelop.verbrauch_2
                - dbdevelop.zaehlerstand_1
        Produktion2:
            type: num
            name: I_AC_Energy_WH
            enforce_updates: 'True'
            eval: value*10**sh.Photovoltaik.Produktion_sf2()/1000
            modBusAddress: '40093'
            modBusFactor: '1'
            modBusDataType: uint32
            modBusUnit: '2'
            struct:
                - dbdevelop.verbrauch_1
                - dbdevelop.verbrauch_2
                - dbdevelop.zaehlerstand_1
    Eigenverbrauch und Einsparung werden durch eine Logik berechnet:

    Code:
    #!/usr/bin/env python3
    # eigenverbrauch.py
    #Berechne anhand von Erzeugter sowie und Exportierter Energie den Eigenverbrauch und schreibe das Ergebniss in ein Item
    sh.Messung.Strom.Eigenverbrauch(sh.Photovoltaik.Produktion2() - sh.Photovoltaik.M_Export())
    #Berechne ebenfalls die Eingesparten Kosten aufgrund vom Eigenverbrauch
    sh.Messung.Strom.Einsparung(round(sh.Messung.Strom.Eigenverbrauch()*0.32 + (144/365)),2)

    Einen Kommentar schreiben:


  • jonny7792
    antwortet
    Dementsprechend werde ich wohl den ein oder anderen Tag vergehen lassen und anschliessend schauen was sich ändert

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von jonny7792 Beitrag anzeigen
    Ja ich musste sie löschen da sie teilweise unbrauchbar war , aber trotzalledessen sollte der tagesverbauch doch berechnet werden.
    Hier sind 2 Dinge relevant:
    A) Wie ich bereits mehrfach schrieb, führt das Plugin erst seine Berechnungen nach einer gewissen Zeit nach dem Start aus.
    B) Wie soll das Plugin den Tagesverbrauch berechnen, wenn noch kein Tag in der DB ist? Deine DB beginnt doch erst heute gegen 9.00 Uhr. Damit das Plugin bei solchen Fällen den ältesten Eintrag der DB nimmt, kann man das in den Plugin Parametern konfigurieren. Der Parameter "use_oldest_entry" ist dafür gedacht.

    Einen Kommentar schreiben:

Lädt...
X