Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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?.
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.
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.
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?
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.
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?
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.
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.
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/
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
MariaDB und database plugin laufen jetzt mal. hab ein paar item umgestellt um zu testen. In welchem verzeichnis ist die db nun zu finden bzw. wie könnt ich sie zb auslagern auf einen usb stick?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar