Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

  • Onkelandy
    antwortet
    fuxl66
    ​​​​​​​Mein Link von weiter oben kann schon auch helfen, selbst wenn man nicht ansible nutzt. Zumindest die ersten 4 Befehle sind relevant fürs Installieren und Anlegen der Datenbank.
    Man muss die Befehle nur "übersetzen". Also wenn dort steht:
    apt: name=mysql-server -> apt-get install mysql-server
    blockinfile: path: "/root/mysqlinit" block: | -> Inhalt unter "block" in eine neue Datei namens /root/mysqlinit schreiben
    shell: "mysql -uroot -proot mysql < /root/mysqlinit" -> Diesen Befehl im CLI ausführen

    Copy und replace dürften auch selbsterklärend sein.. Also wenn du mit dem Wiki nicht weiter kommst, schau dir das nochmals an

    Eventuell sinnvolle/nötige Files wie Services, etc. findest du hier: https://github.com/smarthomeNG/ansib...aster/raspbian

    Einen Kommentar schreiben:


  • psilo
    antwortet
    fuxl66 ich habe meine DB direkt auf der Synology, SHNG ist dort im Docker Container. Da die Festplatten 6 TB haben, habe ich keine Probleme mit der Datenbank

    PS: die Anleitung ist auf einem "nativen" Debian erstellt worden. Am Raspi kann das durchaus abweichen. Kannst Du mit dem User root einloggen? Ohne Passwort? Evtl ist Root auch nur auf localhost erlaubt, dann ist es nicht ganz so dramatisch. Da in der Anleitung ein eigener User für SHNG angelegt wird, solltest Du trotzdem fortfahren können.

    Achja: für die Plugin READMEs sind die jew Plugin Autoren verantwortlich.
    Achja 2: ein bischen google hilft auch, wenn man dem db-root ein Passwort geben will: https://kofler.info/root-login-problem-mit-mariadb/
    Zuletzt geändert von psilo; 06.01.2018, 11:32.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Meine Datenbank hat etwa 700MB. Ich speichere sie direkt auf dem USB-Stick am Raspi und mache täglich/stündlich Backups aufs NAS.
    Sollte es platzmäßig mal knapp werden, könnt man ja noch einen eigenen Stick nur für die DB dran hängen. Bei mir jedenfalls besser, als mit einer remote db zu verbinden.

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    psilo Danke für den Hinweis. Diesen Guide kannte ich noch nicht. Hab mich am Plugin Wiki orientiert. Vielleicht könnte man dort einen Hinweis setzen?! Nur so als Vorschlag.

    Hast du deine db direkt am Raspi (falls du einen verwendest) liegen oder im Netzwerk ausgelagert?

    Hab gleich mal eine Frage zum Guide.
    Ich versuche MariaDB auf meinem Raspi einzurichten.
    Code:
     
     sudo apt-get install mariadb-server
    Im Guide heißt es:
    Die Installationsroutine fordert dabei zur Eingabe eines Passworts für den User "root" auf.
    Die Installation wird zwar abgeschlossen aber zu einer Eingabe eine Passworts kommt es nicht. Bin via SSH mit dem user "smarthome" eingelogged.
    Zuletzt geändert von fuxl66; 06.01.2018, 11:18.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    fuxl66 https://github.com/smarthomeNG/smart...-MySQL-MariaDB kanntest Du??

    meine db hat nach ca 0,5 jahr mehr als 2gb

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    Danke für deine Antwort Onkelandy
    Mit deinem link kann ich leider wenig anfangen....
    Reicht es am Raspi einen mysql server/client am laufen zu haben und den Rest erledigt das Plugin? Zb Database erstellen?

    welchen speicherbedarf hat eine database ca? Liegt deine direkt auf der SD vom Raspi oder wie löst du das?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Das mit dem Fehler am besten selbst ausprobieren Das Plugin kommt ja mit den neuen smarthome Versionen direkt mit, also einfach nur von sqlite darauf umstellen. Am besten dann bei deinem solar.total definieren, dass es das neue Plugin nutzt (Also database: 'init' statt sqlite: 'init' - wobei ich glaub das kann man sogar konfigurieren)

    Zu 2: sqlite komprimiert die Daten deutlich. Das heißt, dass mehrere Nullen am Stück zusammengefasst werden. Dadurch stimmen dann va. Serien von boolschen Werten nicht mehr.
    MySQL braucht halt deutlich mehr Platz und einen dedizierten MySQL Server. Falls du eh schon einen hast, ist alles ganz easy. Falls nicht, kannst du dich hieran orientieren: https://github.com/smarthomeNG/ansib...ian/18_SQL.yml

    Wenn Performance und Speicherplatz kein Thema sind, würde ich MySQL nutzen. Ich hatte bei mir im Netzwerk leider immer wieder Probleme, wenn der SQL Server auf einem anderen Rechner war. Seither hab ich ihn direkt auf dem Raspi, wo auch Smarthome läuft und alles klappt wunderbar.

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    Hallo ich hab ein paar Fragen zum Plugin,

    1)
    Sind solche LOG Einträge mit dem Database Plugin nun Geschichte?
    Code:
    2018-01-03  00:30:00 WARNING  solar.total.Heute-eval Item solar.total.Heute: problem evaluating sh.solar.total() - sh.solar.total.db('max', sh.minute.since.midnight.dbstr(), sh.minute.since.midnight.dbstr()): unsupported operand type(s) for -: 'int' and 'NoneType'
    2018-01-03  00:30:00 WARNING  EZ.E_Minus.Heute-eval Item EZ.E_Minus.Heute: problem evaluating sh.EZ.E_Minus() - sh.EZ.E_Minus.db('max', sh.minute.since.midnight.dbstr(), sh.minute.since.midnight.dbstr()): unsupported operand type(s) for -: 'int' and 'NoneType'
    2018-01-03  01:00:00 WARNING  solar.total.Heute-eval Item solar.total.Heute: problem evaluating sh.solar.total() - sh.solar.total.db('max', sh.minute.since.midnight.dbstr(), sh.minute.since.midnight.dbstr()): unsupported operand type(s) for -: 'int' and 'NoneType'
    2018-01-03  01:00:00 WARNING  EZ.E_Minus.Heute-eval Item EZ.E_Minus.Heute: problem evaluating sh.EZ.E_Minus() - sh.EZ.E_Minus.db('max', sh.minute.since.midnight.dbstr(), sh.minute.since.midnight.dbstr()): unsupported operand type(s) for -: 'int' and 'NoneType'
    2)
    welcher driver ist wofür zu empfehlen? sqlite3 oder PyMySQL?

    Danke für eure Hilfe?

    mfg
    Markus

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Hätte jemand noch einen Tipp, wie ich die Betriebsstunden aus den Datenbankdaten errechnen kann? Das scheint aktuell wohl nur mit einem readlog und Auseinanderdröseln des ersten Eintrags zu gehen, braucht aber sehr lange. Cool wäre generell, wenn man statt timestamp auch den x.ten Eintrag wählen könnte, also halt zumindest first und last +- x oder so.. Oder lässt sich das eh anders lösen?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Hi Leute!

    Habe mich gerade wieder mal ein bisschen mit der Datenabfrage aus einer Visu beschäftigt und habe sehr sonderbare Phänomene. Getestet sowohl mit der Master als auch der aktuellsten Develop-Version.

    Ich frage ein Bool Item mit dem Intervall 2 Tage bis 1 Tag ab, dann von 1 Tag bis jetzt. Müsste dann nicht 2 Tage bis jetzt den Durchschnitt der beiden Werte ergeben? Tut es nicht...
    Code:
    2017-12-02  11:20:48 INFO     visucache    on, 2d, 1d: 0.61
    2017-12-02  11:20:49 INFO     visucache    on, 1d, now: 0.64
    2017-12-02  11:20:49 INFO     visucache    on, 2d, now: 0.69
    Richtig heftig wird es aber bei einem num Item:
    Code:
    sh.licht.og.essen.warm.dimmen.db('on', '2d', '1d') ergibt 0.71 (wobei es laut Grafik maximal 50% gewesen sein dürften..)
    sh.licht.og.essen.warm.dimmen.db('on', '1d', 'now') ergibt 0.16
    sh.licht.og.essen.warm.dimmen.db('on', '2d', 'now') ergibt 0.69
    Ähnliches Phänomen mit Average:
    Code:
    2017-12-02  11:59:01 INFO     visucache    avg, 48h, 25h: 156.3
    2017-12-02  11:59:01 INFO     visucache    avg, 24h: 33.57
    2017-12-02  11:59:01 INFO     visucache    avg, 48h: 134.57
    Hab ich hier einen Denkfehler oder gibts da ein gröberes Problem?

    Bei der Summenabfrage gibt es übrigens einen Rundungsfehler oder was auch immer. Aber nur bei nem boolschen Item... 2d-1d = 11, 1d-now = 20, 2d-now = 30
    Wobei ich ohnehin nicht verstehe, woher diese Werte kommen. db(on) ergibt 0.61, db(sum) 11. db(on) ergibt 0.64, db(sum) 20?

    Bei Items mit Werten 0-255 sind die Ergebnisse nachvollziehbar.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Was schreibst Du in die Tabelle? Daten aus der Datenbank? Die Datenbank wird schnell extrem groß. Nach ca 1/2 Jahr hatte ich fast 1.5 Gigabyte. Liegt daran, dass nicht wie bei SQLite irgendwann "aufgeräumt" sondern jeder Wert behalten wird. Letzteres ist aber noch in Planung umzusetzen. Ein Excel zur Laufzeit rausschreiben kann als je nach Datensatz auch sehr lange dauern. In der Zwischenzeit darf natürlich keine Transaktion durchlaufen. Da könnte dann schon das von Dir genannte Symptom herkommen..

    Generell sollte man solche Dinge mE. lieber nur machen, wenn SHNG nicht läuft.

    Einen Kommentar schreiben:


  • schloessl
    antwortet
    Auf demselben Raspi wie SHNG. Phpmyadmin ist auch drauf!
    Einziger erkennbare Situation, ich erstelle zuvor per Excel eine Tabelle und schreibe in ein Subdirektorie von sh/var/eig.
    Fehler tritt aber nur sporadisch auf! Zeitprobleme?.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    schloessl also nochmal langsamer: läuft die DB auf einem EIGENEN RaspberryPi oder auf DEMSELBEN wie SHNG.

    Ziel der Frage: Das Netzwerk als Problemursache ausschliessen.

    Einen Kommentar schreiben:


  • schloessl
    antwortet
    Danke psilo für die schnelle Antwort. Leider verstehe ich Deine Frage (Wünsche ) nicht recht.

    Ich habe eine separate Datenbank unter Mariadb angelegt, die schon einige Wochen problem los läuft.
    Also pymysql und Mariadb alles nach Anleitungen , eigene DB auf Raspe pi 3

    Seit einigen Tagen versuche ich das Database Plugin einzubinden, Wertewerden gesichert und auch angezeigt. Sporadisch tritt der Fehler auf.
    Wenn Du weitere Informationen brauchst, bitte detailieren. (Infrastruktursetting ??)

    LG Wolfgang

    Einen Kommentar schreiben:


  • psilo
    antwortet
    schloessl wie ist das infrastruktursetting? läuft die db auf der gleichen maschine wie sh?

    Einen Kommentar schreiben:

Lädt...
X