Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

  • blubbs99
    antwortet
    Hi Knx fan ,

    aus der README sollte hervorgehen, dass es sich um ein Python (DB-API2) Modul handelt, welches bei der "driver" Einstellung angegeben werden sollte. D.h. dort muss ein Modulname hin, wie es auch schon von MaHe erlaeutert wurde.

    Ich habe das Error-Handling noch etwas erweitert so dass nun eine ERROR-Log geschrieben wird und die Original-Exception im Log auftaucht. Beides sollte darauf hinweisen, dass es sich hierbei um ein fehlendes Modul handelt. Ausserdem steht in der README jetzt auch das entsprechende Beispiel fuer die `driver` Einstellung fuer die jeweiligen Treiber (bisher allerdings nur SQLite und PyMySQL - falls das Plugin mit anderen auch bereits laeuft, bitte Bescheid sagen, dann ergaenze ich das gerne).

    Gruss

    Einen Kommentar schreiben:


  • Knx fan
    antwortet
    Danke, das hatte auch nichts gebracht.
    mysql hat doch den Verweis in der Smarthome conf. Meine Vorstellung ist, das du diesen Verweis nicht hattest und deshalb pymysql, dann bei dir lief.

    Nach der Doku sollte in der smarthome.conf

    Code:
     
     db = sqlite:sqlite3 | mysql:pymysql
    stehen. Damit sollte man dann sqlite sowie auch database nutzen können.

    Einen Kommentar schreiben:


  • MaHe
    antwortet
    Hallo,

    hast vielleicht den ersten Satz von psilo übersehen: Da muss "driver = pymysql" hin.
    Bei mir hat es damit geklappt, SH hat was in die Datenbank geschrieben. Hatte aber nicht abschließend getestet aus Zeitmangel und wieder auf sqlite umgestellt.

    Einen Kommentar schreiben:


  • Knx fan
    antwortet
    Hallo,

    ja das "database" hatte ich von hier, weil ich mein Fehler gesucht habe. Es zu ändern in db brachte nichts, es war vorher schon db.
    Das Readme habe ich gelesen, deshalb die Frage!

    pymysql ist installiert mit pypy, sowie mysql-server. Auf der NAS ist Maria DB. Datenbank ist mit User und Passwd angelegt.

    Was kann das noch sein? Im yaml steht ein "instance" braucht man das in der plugin.conf nicht?

    Achja, meine NG Version ist die aktuellste 1.4.e202d7f.dev
    Zuletzt geändert von Knx fan; 02.08.2017, 20:13.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Knx fan als driver muss das python paket rein, dass du nutzt. bspw pymysql.

    hast du dir meine anleitung durchgelesen?
    sehe gerade, dass der link nicht mehr gepasst hat.. dieser ist korrekt: https://github.com/smarthomeNG/smart...-MySQL-MariaDB

    wobei es noch gut wäre, dass blubbs99 hier ggf eine entsprechende fehlermeldung ausgibt und nur auf valide "driver" prüft.

    im connectstring habe ich auch db:smarthome und nicht database:smarthome stehen. das könnte auch etwas ausmachen. im readme steht das korrekt drin:
    Code:
    connect - specifies the connection parameters which is directly used to invoke the connect() function of the DB API 2 implementation
    (for SQLite lookup here, other databases depends on implementation). An example connect string for pymysql could be connect =
    host:127.0.0.1 | user:db_user | passwd:db_password | db:smarthome
    Zuletzt geändert von psilo; 02.08.2017, 16:26.

    Einen Kommentar schreiben:


  • Knx fan
    antwortet
    Ich versuche mich gerade an diesem Plugin, scheitere aber an dieser Fehlermeldung:

    Code:
    2017-08-02  16:03:49 ERROR    Main         Plugin database exception: 'str' object has no attribute 'paramstyle'
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/plugin.py", line 90, in __init__
        plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance)
      File "/usr/local/smarthome/lib/plugin.py", line 144, in __init__
        exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring))
      File "<string>", line 1, in <module>
      File "/usr/local/smarthome/plugins/database/__init__.py", line 83, in __init__
        self._db = lib.db.Database(("" if prefix == "" else prefix.capitalize() + "_") + "Database", driver, connect)
      File "/usr/local/smarthome/lib/db.py", line 171, in __init__
        self._format_output = self._dbapi.paramstyle
    AttributeError: 'str' object has no attribute 'paramstyle'
    Code:
    [database]
        class_name = Database
        class_path = plugins.database
        driver = mysql
        connect = host:host.de | port:3306 | user:user  | passwd:passwort | database:smarthome
        prefix = smarthome
    Kann mir einer sagen woran das liegt? Habe schon driver auf sqlite3 gehabt aber ohne Änderung.
    Ich möchte das auf eine Synology NAS loggen mit einer Maria DB

    VG knx fan

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Danke sehr, probiere ich mal aus. Vielleicht sollte man kurz noch ausführen das beim Wechsel von Debian Jessie zu Debian Stretch auch von MySQL auf MariaDB gewechselt wurde. Die beiden Datenbanken sind nicht binärkompatibel so daß bei einem Systemwechsel verstärkt auf einen korrekten Dump geachtet werden sollte...

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich habe unter https://github.com/smarthomeNG/smart...-MySQL-MariaDB mal angefangen, eine Anleitung zur Einrichtung von MariaDB zu schreiben. Allerdings fehlt mir das Setting, um das vernünftig zu testen. Bitte mal nachstellen und ggf ergänzen.
    Zuletzt geändert von psilo; 02.08.2017, 16:24.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hallo,

    jeder der das Plugin schon ausprobiert hat ist eingeladen, unter https://github.com/smarthomeNG/smarthome/issues/208 noch seine Meinung abzugeben, wie die Integration in Zukunft aussehen sollte.

    VG,
    René

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    Danke für die Info.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    wenn sie bald released wird dann ohne database plugin ;-) das ist gerade in einem sep. branch und zerschiesst mir aktuell fast alles ;-) ansonsten wird es noch dauern, eine planung kenne ich nicht.

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    Darf man Fragen wann 1.3 ca. released wird? das neue database plugin kling sehr interessant.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    psilo
    DANKE.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ich würde das Plugin aktuell noch nicht nutzen an Deiner Stelle, wir versuchen es gerade über einen Branch zu finalisieren. Auch greift es aktuell in den Core ein, so dass Du 1.2 und DEV Database nicht mischen kannst.

    SQL heißt für Dich vermutlich SQLite.. In meiner Sicht kommt MySQL mit größeren Datenmengen bessser klar, als eine leichtgewichtige SQLite DB.Auch scheint das alte SQLite Plugin bei historischen Daten gelegentlich aufzuräumen. Ich habe aber gerne alle Daten vorliegen.

    Für eine begrenzte Menge Daten, wie bspw. Konfigurationsdaten etc wäre für mich SQlite ok, aber nicht für große Datenreihen und Operationen darauf. Vorteil ist halt, dass Python standardmäßig SQlite kann..

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,
    ich würde gern (noch mit SH1.2) auf das neue Plugin weiterhin mit SQL umstellen und idealerweise die exisitierende Datenbank weiter nutzen bzw. die Werte übernehmen.
    Ich nutze mit SH1.2 bereits einige Plugins aus dem Dev-Zweig. Habe dafür ein eigenes Verzeichnis, was nicht via GitHub kommt, sondern manuell.

    Wie gehe ich dabei am besten vor?
    Wo liegen die Vor- und oder Nachteile von SQL und MySQL?

    DANKE

    Einen Kommentar schreiben:

Lädt...
X