Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

  • yachti
    antwortet
    nein steht nichts komisches drin. So wie gepostet.

    Zitat von psilo Beitrag anzeigen
    geht der direkte db zugriff ?
    Wie meinst das direkter Zugriff bzw wie jann ich das testen? Habe jetzt nochmal den DB User von smarthome@127.0.0.1 auf smarthome@localhost geändert hat aber auch nichts gebracht

    Code:
    mysql -u root -p
    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 89
    Server version: 10.0.32-MariaDB-0+deb8u1 (Debian)
    
    Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> use smarthome_db
    Database changed
    MariaDB [smarthome_db]>
    
    Database changed
    MariaDB [mysql]> select Host, Db, USer from db;                                 +-----------+--------------+------------+
    | Host      | Db           | USer       |
    +-----------+--------------+------------+
    | localhost | phpmyadmin   | phpmyadmin |
    | localhost | smarthome_db | smarthome  |
    +-----------+--------------+------------+

    Einen Kommentar schreiben:


  • psilo
    antwortet
    yachti sind im plugin.yaml evtl komische Zeichen drin? geht der direkte db zugriff ?

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,

    ich bin auch mit der Umstellung von sqlite nach mariadb beschäftigt und habe dazu noch ein paar Fragen bzw Ungereimtheiten:
    siehe hier im Post #77: https://knx-user-forum.de/forum/supp...42#post1146242
    und hier im Post #78: https://knx-user-forum.de/forum/supp...56#post1146256

    Nun ist mir aufgefallen, dass es unterschiedlichen Beschreibungen zur Verwendung der Datenbank in den item gibt:
    hier https://github.com/smarthomeNG/smart...-MySQL-MariaDB steht:
    In den jeweiligen Items muss dann ein database@mysqldb: init erfolgen (oder das alte sqlite: init ersetzen).
    und hier http://smarthomeng.de/v1_3/plugins/database/README.html steht:
    database: This attribute enables the database logging when set (just use value yes).
    Bedeutet "yes" nur loggen und "init" Rücklesen des letzten Wertes beim Start so ähnlich wie cache?

    Danke für Eure Klarstellung!


    Einen Kommentar schreiben:


  • yachti
    antwortet
    Zitat von psilo Beitrag anzeigen
    landen in der datenbank werte?
    nein nichts zu sehen auch keine Tabellen vorhanden

    Zitat von psilo Beitrag anzeigen
    Sieht für mich aber eher nach konfigurationsfehler in der plugin.yaml aus
    ist exakt nach deiner Anleitung gemacht.
    Code:
    #sql:
    #    class_name: SQL
    #    class_path: plugins.sqlite_visu2_8
    
    database:
        class_name: Database
        class_path: plugins.database
        driver: pymysql
        connect:
          - host:127.0.0.1
          - user:smarthome
          - passwd: geheim
          - db:smarthome_db
        instance: mysqldb

    Einen Kommentar schreiben:


  • psilo
    antwortet
    landen in der datenbank werte? Sieht für mich aber eher nach konfigurationsfehler in der plugin.yaml aus. nicht zwingend beim database plugin

    database@mysqldb: init ist schon richtig.. geht hier einwandfrei.

    ist das leerzeichen vor den passwort auch im original?
    Zuletzt geändert von psilo; 22.10.2017, 17:14.

    Einen Kommentar schreiben:


  • yachti
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Was für Zugriffsrechte?
    sorry war ein Trugschluß. Hatte mir vorher zu Testen nen clone gezogen.
    Hatte gesehen das mein apache log vollgelaufen ist mit jede Menge Zugriffsfehler änlich wie diesen:
    Code:
    [Sun Oct 22 13:25:52.407513 2017] [:error] [pid 25982] [client 10.2.2.130:50826] PHP Warning:  fopen(/var/www/html/smartVISU_2_9/temp/offline_msr.var): failed to open stream: No such file or directory in /var/www/html/smartVISU2_9/driver/io_offline.php on line 50, referer: http://host/smartVISU2_9/index.php?page=device/widget_device.blind&pages=docu
    Habe dann die Berechtigungen für www-data neu gesetzt.
    Code:
    sudo chown -R www-data:www-data smartVISU2_9
    sudo chmod -R 775 smartVISU2_9
    Nach einem SH neustart war die Warnung nicht mehr im log
    Code:
    2017-10-22 11:58:15 WARNING Main Client 10.2.2.130:55013 requested invalid series: heizung.wohnen.stellwert.
    ist jetzt aber wieder drin.Problem besteht weiterhin

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Was für Zugriffsrechte? Vielleicht kann man den Fehler anders abfangen, damit andere nicht das gleiche Fragezeichen in der Frisur haben müssen wie Du.


    Einen Kommentar schreiben:


  • yachti
    antwortet
    Zitat von yachti Beitrag anzeigen
    Im item habe ich mehrere Varianten versucht:
    erledigt. Waren Zugriffsrechte

    Einen Kommentar schreiben:


  • yachti
    antwortet
    Ich hänge mich hier mal rein
    Meine Testumgebung SH1.3 ,SV2.9

    bekomme beim sh start im log:
    Code:
    2017-10-22  11:44:19 ERROR    Main         Plugin database exception: name 'OrderedDict' is not defined
    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>
    NameError: name 'OrderedDict' is not defined
    2017-10-22  11:58:15 WARNING  Main         Client 10.2.2.130:55013 requested invalid series: heizung.wohnen.stellwert.
    plugin.yaml
    Code:
    #sql:
    #    class_name: SQL
    #    class_path: plugins.sqlite_visu2_8
    
    database:
        class_name: Database
        class_path: plugins.database
        driver: pymysql
        connect:
          - host:127.0.0.1
          - user:smarthome
          - passwd: geheim
          - db:smarthome_db
        instance: mysqldb
    item:
    Code:
            stellwert:
                type: num
                visu: 'true'
                knx_dpt: 5001
                knx_cache: 2/4/0
                database@mysqldb: init
    Im item habe ich mehrere varianten versucht:
    Code:
    database@mysqldb: init
    database@mysqldb: yes
    database@mysqldb: 'yes'
    Zuletzt geändert von yachti; 22.10.2017, 11:08. Grund: Item Ergänzung

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    noch eine Frage:

    Wie ist Eurer Meinung nach der beste Übertrag von sqlite(num) nach mariaDB (log)?

    _start --> time
    _dur --> duration
    _max --> val_num
    _on (bzw der bool Werte davon) --> val_bool

    val_str bleibt leer
    Die item_id muss man ermitteln, das ist klar.
    bei changed bin ich mir unsicher.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,

    ich habe eine Frage zu der SQL Datenbankstruktur insbesondere in der Tabelle LOG.
    Im Wiki steht:
    The log table contains the following columns:
    • Column time - the unix timestamp in microseconds of value
    • Column item_id - the reference to the unique ID in item table
    • Column val_str - the string value if type is str
    • Column val_num - the number value if type is num
    • Column val_bool - the boolean value if type is bool or num
    • Column changed - the unix timestamp in microseconds of record change
    Bei mir gibt es zwischen der "item_id" und "val-str" noch die "duration".

    Ist meine DB falsch oder fehlt das im WIKI?
    Was bedeutet die Spalte (vielleicht Differenz zwischen "time" und "changed".

    Danke für die Rückmeldung.

    Einen Kommentar schreiben:


  • smai
    antwortet
    Ja klar, wenn du in dem SQL-Script wie oben die Items durch deren ID ersetzt.
    Es wäre ja ein leichtes, ein kleines Python-Script zu erstellen, welchem man beide DB-Verbindungen angibt und das dann automatisch macht. Ich persönlich habe nur grad keine Zeit dafür.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Würde es auch gehen, wenn man mit dem DB Browser für SQlite einen Export direkt nach SQL macht und dann diese als MariaDB mit dem Plugin nutzt?

    Einen Kommentar schreiben:


  • alex78
    antwortet
    Zum Thema Datenimport habe ich folgendes gemacht: Ich habe die smarthome.db rausgezogen und mit DB Browser für SQlite ein Export gemacht (als CSV).

    Mit dem phpmyadmin habe ich ein Export der item Datenbank gemacht. Die Quelldaten aus der SQlite DB rausgezogen (also die Daten, die auch wirklich interessieren.
    Man muss nur den Item Namen durch die richtige ID ersetzen und danach kann man die Daten per phpMyadmin oder CLI importieren.

    Datenstruktur aus der Quelle (Export aus Sqlite):
    Code:
    1472708061467,visu.zaehler.haus_gesamtverbrauch,3914064,12900.0,12900.0,12900.0,1.0
    Item Zuordnung aus item Datenbank:
    Code:
    "93","visu.zaehler.haus_gesamtverbrauch","1507015445150",NULL,"17125","1","1507015493414"
    Datenstruktur vorbereitet für Import:
    Code:
    1472708061467,93,3914064,12900.0,12900.0,12900.0,1.0
    Dann importieren. Fertig.

    Ist vielleicht nicht die eleganteste Art, aber es funktioniert. Soviel historische Daten habe ich nicht. Aufwand ca. 1 Stunde. Letztendlich muss man sich erstmal Gedanken machen, welche Daten man wirklich benötigt.

    Gruß
    Alex

    Einen Kommentar schreiben:


  • alex78
    antwortet
    Sehr gut !!
    Vielen Dank

    Einen Kommentar schreiben:

Lädt...
X