Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

  • BlackCrow
    antwortet
    YAML will ich demnächst noch umstellen - habe bislang allerdings keinen Vorteil dabei entdeckt, daher ist das ziemlich weit unten auf meiner "To-Do"

    Ich stehe gerde irgendwie auf dem Schlauch - wo nehme ich denn das SQLite raus? Wird das nicht hier festgelegt?:

    PHP-Code:
    #SQL-Treiber, unterstützt auch die SmartVISU 2.8/2.9
    # dazu muß im websocket plugin zwingend die Protokollversion 4 eingetragen sein
    #[sql]
    #    class_name = SQL
    #    class_path = plugins.sqlite_visu2_8 
    Wenn Du das meinst, dann habe ich das ja rausgenommen (#)

    Die Werte werden in die neue Datenbank geschrieben - in der Tabelle "aussen.garage" habe ich einfach dien Temperatur von 15.2 auf 100.1 geändert. Dann habe ich die Garage selbst in der Visu aufgerufen (dort ist dann ein Plot mit den letzten 48 Stunden). Mir scheint es, als würde er aktuell noch beide Datenbanken nutzen. In beide schreiben, aber nur aus der SQLite auslesen?

    Ich bin davon ausgegangen, dass der Plot einmal gewaltig nach oben schießen müsste, wenn die Temperatur über 100 Grad ist.

    Ich hatte, nachdem ich den Wert geändert hatte, smarthome neu gestartet. Dann dürfte er doch nichts mehr im Cache sein? Also das ich die aktuelle Temperatur nicht aus der mySQL auslesen kann, hatte ich mir gedacht. Aber zumindest im Plot müsste sich das doch irgendwie bemerkbar machen?

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hast Du das SQLite rausgenommen? Wenn ja kann er ja eigentlich garnicht Daten aus der SQlite DB nehmen?!

    Konfig sieht richtig aus, würde aber auf YAML umstellen an Deiner Stelle

    wie hast du das mit den 100 grad verifiziert? der aktuelle wert ist ja auch im speicher, ich glaube der kommt defaultmaessig nicht direkt aus der DB so lange SHNG läuft.

    monitore doch mal die sql queries die im mysql ankommen.. ein profiler sollte das können: http://www.profilesql.com/
    Zuletzt geändert von psilo; 27.09.2017, 11:03.

    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    Das ist die config:

    PHP-Code:
    [database]
        
    class_name Database
        class_path 
    plugins.database
        driver 
    pymysql
        connect 
    host:192.168.1.147 user:einuser passwd:sehr_geheim db:einedb
        
    #prefix = log 
    Ich habe in der plugin.conf den die oben genannten Zeilen eingefügt. Testweise habe ich den Bereich [sql] in der Config ausgeklammert.

    Muss ich noch irgendwo etwas anpassen? Dann habe ich das übersehen.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    SmarthomeNG nutzt wie ver Vorgänger eine sqlite - das ist klar.
    Nein ist es nicht, das Database Plugin kann auch andere DBs wie MySQL und MariaDB (bei mir im Einsatz).

    Wie hast Du die Plugins konfiguriert? Hast Du das SQLite rausgenommen? Hast Du im Database Plugin die richtige DB reinkonfiguriert?

    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    Hallo zusammen,

    ich habe mal eine kurze Verständnisfrage, stehe gerade irgendwie auf dem Schlauch.

    Ich habe das Plugin jetzt installiert und nach einigen Startproblemen läuft es jetzt auch. Irgendwie habe ich offensichtlich dieses Prinzip der Datenbank nicht verstanden. SmarthomeNG nutzt wie ver Vorgänger eine sqlite - das ist klar.

    Wenn ich Daten abrufen will (zb. für einen Plot) werden diese ja ebenfalls aus dieser Datenbank gezogen (nachdem sie vorher rein geschrieben wurden).

    Abrufen würde ich jetzt bei mir die Temperaturkurve der letzten 48 Stunden so:

    PHP-Code:
    {{ plot.period('p1''garage.temperatur''avg''48h') }} 
    In der Items sieht es dann jetzt so aus:

    PHP-Code:
    [[temperatur]]
         
    type num
        visu 
    yes
    #  sqlite = true #<<- wenn ihr den Wert in Plots verwenden wollt
        
    knx_dpt 9
        knx_init 
    2/0/12
        database 
    yes 
    Ausgelesen wird es noch immer aus der sqlite, denn ich hatte zum testen die Temperatur in der Garage auf 100 Grad gesetzt (in der mySQL).

    Ich habe allerdings noch die SmarthomeNG 1.2 - weiß nicht, ob das etwas damit zu tun hat?

    Viele Grüße

    Einen Kommentar schreiben:


  • Foxi352
    antwortet
    Zitat von greentux Beitrag anzeigen
    Vielleicht sowas in der Art? Verbrauch pro Tag aus dem Gesamtpelletszähler...
    Hmmm.. So wie ich das beim Überfliegen interpretiere hast Du einen Zähler der einfach incrementiert. Du nimmst dann mit 'max' den höchsten Wert dieses Tages und ziehst ihn vom akuellen Zähler ab und hast mit der Differenz den Verbrauch des Tages.

    Ich habe aber ein Boolean und keinen kontinuirlichen Zähler. Das heisst eine bestimmte Anzahl '1' und '0' pro Tag in der DB. Die 'max' Funktion liefert hier natürlich immer '1' zurück was mir aber nichts bringt. Ich brauche die Anzahl der '1' pro Tag.

    Das heisst es müsste eine "COUNT" Funktion geben oder eine 'SUM' Funktion die die '1' zusammenzählt. Count wäre auch für andere Anwendungen nützlicher als eine SUM denke ich.

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Vielleicht sowas in der Art? Verbrauch pro Tag aus dem Gesamtpelletszähler...

    Code:
           verbrauch_gesamt:
                eta_pu_uri: 112/10021/0/0/12016
    
                n:
                    enforce_update: 'yes'
                    visu_acl: ro
                    eta_pu_type: calc
                    type: num
                    sqlite: init
    
            verbrauch_24:
    
                n:
                    enforce_update: 'yes'
                    visu_acl: ro
                    type: num
                    sqlite: init
                    eval: (int(sh.eta_unit.kessel.verbrauch_gesamt.n()))-(int(sh.eta_unit.kessel.verbrauch_gesamt.n.db('max','2d','1d')))
                    eval_trigger: eta_unit.kessel.verbrauch_gesamt.n

    Einen Kommentar schreiben:


  • Foxi352
    antwortet
    Hat jemand eine Ahnung wie man mit dem DB Plugin aktuell ein "Count" machen könnte ?
    Ich bin dabei eine neue Heizung zu optimieren und hätte gerne einen Plot über eine Woche wo ich für jeden Tag die Anzahl der Brennerstarts / Tag sehen kann. Die "Brenner läuft" Info ist eine Boolean in der DB. Ich bräuchte also eine Funktion dir mir die Anzahl der "1" respektive "True" oder wie auch immer pro Tag zählt, und das für die 7 letzten Tage. Die Summen sollten dann halt in einen Plot.

    Ich habe so direkt keine Lösung dafür gefunden, denn AVG, MIN, MAX e.t.c. helfen da nicht viel denke ich ...

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ok,

    ein todo ist, bedeutet ja nicht notwendigerweise, dass sich bisher jemand gefunden hat der das Thema angeht.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Mir ist nicht bekannt das jemand an einem Migrationsskript arbeitet. Woher hast Du die Info?
    siehe hier: https://github.com/smarthomeNG/smart...-MySQL-MariaDB

    ziemlich unten steht:
    cd /usr/local/smarthome python3 plugins/database/convert ./var/db/smarthome.db .... # gibt es leider noch nicht
    todo: Skript schreiben für die Migration

    Einen Kommentar schreiben:


  • tullsta
    antwortet
    Hallo Psilo,

    danke fuer die schnelle antwort!

    Ich hatte smarthome vor dem nas-restart nicht runtergefahren. Nach dem nas/mariadb-restart hab' ich dann smarthome wieder gestartet nachdem ich gemerkt hab' dass keine daten in die db geschrieben wurden. ehrlich gesagt, hatte ich nicht daran gedacht bzw. war davon ausgegangen, dass das db plugin wieder in die db schreiebn kann sobald mariadb wieder verfuegbar ist.

    bei software-updates des nas ist die db dann so 10-15min nicht erreichbar - koennte man evtl. im plugin die dumps per befehl "suspenden" und die daten zwischenpuffern bis die dumps wieder erlaubt sind?

    danke und lg - tullsta

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Mir ist nicht bekannt das jemand an einem Migrationsskript arbeitet. Woher hast Du die Info?

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,

    gibt es schon eine Idee, wann mit dem Script zum migrieren der sqlite DB zu MariaDB zu rechnen ist?
    Danke für die Rückmeldung

    Einen Kommentar schreiben:


  • psilo
    antwortet
    tullsta hast du smarthome danach neu gestartet? einen reconnect kann das plugin meines wissens nicht. auch solltest du vor dem restarten des nas / maria db dein smarthome herunterfahren, um transaktionssicherheit zu haben.

    Einen Kommentar schreiben:


  • tullsta
    antwortet
    Hallo,

    eine kurze Frage bzgl. dem database plugin und MariaDB: nach einem restart meines NAS (incl. restart von MariaDB) hat das db-plugin nicht wieder in die Datenbank geschrieben. Im log stand dann jede Minute, dass ein dump nicht moeglich sei weil ein anderer dump vom am arbeitete (WARNING Database dump Skipping dump, since other dump running!).

    Ist das Verhalten so gewuenscht und/oder waere es moeglich, die Daten fuer eine bestimmte Zeit zu bewahren bis die db wieder zur Verfuegung steht (15 min oder so)?

    Danke und lg - tullsta
    Zuletzt geändert von tullsta; 21.09.2017, 09:59.

    Einen Kommentar schreiben:

Lädt...
X