Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. MySQL-Datenbank auf NAS?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MySQL-Datenbank auf NAS?

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      ManfredH last edited by

      Hallo,

      Leider hat mich die Suche nach "datenbank nas" nicht wirklich weiter gebracht (663 Treffer) und via Google hab ich auch nichts zu meinem Problem gefunden. Ich möchte meine geloggten Daten in eine mySQL-Datenbank auf einem NAS speichern. Dazu habe ich ein paar Fragen:

      Können die DB-Prozesse auch auf dem RasPi laufen mit der DB selbst auf dem NAS? Gibt's für den Fall irgendeine Anleitung wie das zu konfigurieren ist? Oder muß mySQL zwingend auf dem NAS laufen (Anleitung dazu hab ich http://www.iobroker.net/docu/?page_id=5197&lang=de; sollte funktionieren; NAS ist in meinem Fall ein Zyxel NAS326)?

      Wäre nett, wenn mir da einer etwas unter die Arme greifen könnte.

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        Wen ich deine frage richtig verstehe …

        Ja die processe können auf dem Pi laufen, Dan "mountest" du eine Directory welche auf dem nad läuft.

        Mit anderen Worten : der SQL Server liegt auf dem Pi aber der Speicherort auf dem NAS

        Würde aber davon abraten und SQL (oder eventuell influxdb ) auf der Nase laufen lassen und mit dem Adapter Connecten.

        Das spart auch Resource (Arbeitsspeicher/CPU) auf dem Pi !


        Send from mobile device

        Das schöne ios hat Auto Korrektur zum k****

        Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          Wenn Dein NAS selbst eine MySQL Datenbank zur Verfügung stellen kann, dann würde ich sie dahin auslagern.

          D.h. Dann, die Datenbank läuft auch auf dem NAS.

          Ich habe auf einer Ubuntu VM MySQL laufen und zwei ioBroker Installationen nutzen diese.

          Nur den Datenbankspeicher dahin auslagern…. mmh... wäre ein anderes Thema

          Gesendet von iPad mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • M
            ManfredH last edited by

            Danke für die Antworten! Dann werd ich mich mal mit phpMyAdmin auseinandersetzen und die DB aufsetzen. Dazu gleich noch eine weitere Frage.

            Meine Überlegung ist, für die verschiedenen Gewerke in der CCU jeweils eigene Tabellen anzulegen (Strom + Gas, Temperaturen innen + außen, Heizung + Warmwasser), jeweils natürlich mit einem Zeitstempel. Allerdings sind einerseits die Aufzeichnungsintervalle unterschiedlich (Temperaturen brauche ich nicht alle 5 min, Gas z.B. aber schon). anderseits will ich auch nur Daten aufzeichnen, die sich geändert haben (kann man ja einstellen). Auswerten möchte ich aber Daten über verschiedene Tabellen (z.B. Gasverbrauch + Außentemperatur), trotz unterschiedlicher Zeitstempel natürlich synchron. Wie läßt sich das sinnvoll bewerkstelligen? Eine "Master"-Tabelle mit allen Record-Keys der anderen Tabelle nützt mir ja wenig, wenn die Zeiten nicht zusammen passen. Oder muß ich mich von den unterschiedlichen Zeiten verabschieden und immer alle Datensätze schreiben, ohne Rücksicht ob sich einzelne Werte geändert haben oder nicht? Eine Referenztabelle, in der immer nur die Keys der anderen Tabelle stehen, wenn die Zeit gleich ist (z.B. Gas alle 5 min und Außentemperaturwerte nur alle 60 min dazu)?

            1 Reply Last reply Reply Quote 0
            • Dutchman
              Dutchman Developer Most Active Administrators last edited by

              Eerste Frage : warum ?

              Der SQL adapteracht das für dich legt 4 Tabellen am mit den Werten Nummer, bolean, String und Geräte Namen.

              Wen du per Gerät eine eigene Tabelle haben möchtest empfehle ich dir influxdb

              –-----------------------

              Send from mobile device

              Das schöne ios hat Auto Korrektur zum k****

              Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

              1 Reply Last reply Reply Quote 0
              • M
                ManfredH last edited by

                @Dutchman:

                Eerste Frage : warum ? ` Weil eine einzige Tabelle bei knapp 1.000 Einträgen pro Tag mit der Zeit (10 Jahre) ziemlich groß wird (300.000 Einträge im Jahr)??

                > Der SQL adapteracht das für dich legt 4 Tabellen am mit den Werten Nummer, bolean, String und Geräte Namen. Das verstehe ich jetzt nicht ganz. Der Adapter legt selbst die Tabellen samt Spalten in der DB an?? Und was ist wenn ich da noch die Zeit dabei haben will? Ohne macht eine History-Funktion nämlich nicht wirklich Sinn.

                Aber wenn ich mir das https://www.youtube.com/watch?v=RlFQZZHO3V8 so anschaue, dann ist es wohl wirklich so, daß der Adpater die entsprechende Struktur selbst anlegt und das auch nur eine Tabelle ist. In dem Video wird zwar noch auf ein weiteres zur passenden Auswertung verwiesen, aber das existiert offensichtlich nicht. Gibt es dazu auch ein Tool/einen Adapter?

                > Wen du per Gerät eine eigene Tabelle haben möchtest empfehle ich dir influxdb Nicht pro Gerät, sondern pro <u>Gewerk</u> (wie oben beschrieben).

                1 Reply Last reply Reply Quote 0
                • Dutchman
                  Dutchman Developer Most Active Administrators last edited by

                  Was du möchtest geht so nicht mit dem SQL Adapter du solltest dir Mal Durchlesen wie seine Funktion ist siehe github:

                  https://github.com/ioBroker/ioBroker.sq … /README.md

                  Daten aus der SQL Instanze können per phpadmin oder flot ausgelesen werden.

                  Wen du wirklich pro Gewerk eine seperate Speicherung haben willst fällt mir nur ein mit mehreren SQL Adaptern zu arbeiten und dan pro Gewerk eine eine Instanz zu wählen.

                  Algemein: der Adapzer legt selber die Strukturen an, und das ist nicht eine Tabelle !

                  Es gibt unterschiedliche Tabellen pro Typ Datenpunkt wie ich bereits erwähnt habe.

                  In dieser Tabelle stehen die Wert und der time stamp in Epoch time

                  Wenn du dir Sorgen über die grosse machst schau dir Mal inxluxdb an geht auch einfacher zu integrieren mit grafana...


                  Send from mobile device

                  Das schöne ios hat Auto Korrektur zum k****

                  Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                  1 Reply Last reply Reply Quote 0
                  • Schuko80
                    Schuko80 last edited by

                    Grundsätzlich solltest du auch dran denken, das dein NAS evtl. nicht mehr in den Sleepmodus wechselt bzw.die Festplatten nicht mehr runterfährt.

                    Das ist natürlich davon abhängig, wie viel Daten du in welchem Abstand speicherst - für mich war es damals auf dem PI das KO Kriterium.

                    Alternativ könntest du die Daten auch auf einen USB Stick schieben, hier sollte aber regelmäßig ein Backup erstellt werden, dafür könntest du das NAS wieder nehmen.

                    1 Reply Last reply Reply Quote 0
                    • M
                      ManfredH last edited by

                      @Schuko80:

                      Grundsätzlich solltest du auch dran denken, das dein NAS evtl. nicht mehr in den Sleepmodus wechselt bzw.die Festplatten nicht mehr runterfährt. ` 😉 - ja, das ist mir heute auch aufgefallen. Allerdings bin ich immer noch dabei, mich einzuarbeiten bzw. den SQL-Adapter bzw. das NAS samt mySQL zu konfigurieren, d.h. im Augenblick findet noch gar kein Schreibvorgang statt. Hab's natürlich gleich umgestellt.

                      > Das ist natürlich davon abhängig, wie viel Daten du in welchem Abstand speicherst Mit Ausnahme von Außentemperatur/-feuchtigkeit (60 min) werde ich wohl generell 10 min als Intervall wählen (Gas wahrscheinlich 5 min, damit ich den Verbrauch für Warmwasser sehen kann). Wobei ich - vor allem nachdem ich jetzt kapiert habe wie der SQL-Adapter tut und daß er mehr oder weniger alle geloggten Werte in eine einzige Tabelle schreibt - natürlich die Werteänderung aktivieren werde; da kann man dann bei bestimmten Punkten wohl problemlos auf ein kürzeres Intervall gehen (z.B. Gas 60 s).

                      1 Reply Last reply Reply Quote 0
                      • Dutchman
                        Dutchman Developer Most Active Administrators last edited by

                        Du kannst den Intervall auch Weck lassen und nur Änderungen Aufzeichnen

                        –-----------------------

                        Send from mobile device

                        Das schöne ios hat Auto Korrektur zum k****

                        Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                        1 Reply Last reply Reply Quote 0
                        • X
                          xdelta last edited by

                          Um die Datenbank schmal zu halten, kannst du sie auch jährlich löschen oder auslagern in eine extra Tabelle. In der Regel interessieren nach ein paar Jahren ja nicht mehr die Einzelwerte, sondern Tageswerte wie MIN MAX AVG usw… Diese Werte kannst du mit SQL-queries täglich neu berechnen lassen und in eigene Tabellen schreiben lassen (auch mit lesbarem Datum/Zeit).

                          1 Reply Last reply Reply Quote 0
                          • M
                            ManfredH last edited by

                            @xdelta:

                            Um die Datenbank schmal zu halten, kannst du sie auch jährlich löschen oder auslagern in eine extra Tabelle. In der Regel interessieren nach ein paar Jahren ja nicht mehr die Einzelwerte, sondern Tageswerte wie MIN MAX AVG usw… ` Jein. Um z.B. Energiesparmaßnahmen auf ihre Effektivität hin prüfen zu können brauche ich eine Speicherung über Jahre hinweg mit allen relevanten Parametern (wozu dann auch An-/Abwesenheiten gehören). Im Augenblick kann ich z.B. bei der Heizung nur auf den jährlichen Gasverbrauch anhand der Rechnung des Versorgers zurückgreifen. Und da ist schon interessant zu sehen, wie sich der Verbrauch nach der Installation einer neuen Heizung (vor 20 Jahren) und nach einer erneuerten Dämmung des Flachdachs (vor 4 Jahren) geändert hat. Leider ist das alles viel zu grob, weil mir die Abhängigkeit von der Außentemperatur im täglichen/wöchentlichen/monatlichen Verlauf fehlt. Aber die bekomme ich jetzt ja über das Logging der entsprechenden Werte.

                            Zu meiner ursprünglichen Frage: Ich habe mir ein NAS von Zyxel gekauft (NAS326) weil das das günstigste war (175 Euro mit 2x 1 TB) und ich mein vorhandenes am Ort der Installation nicht verwenden kann. Auf dem läuft zwar mySQL, aber der Zugriff "von außen" (d.h. RasPi + ioBroker + SQL-Adapter) war erst nach einer Modifikation einiger Dateien auf dem NAS möglich (siehe auch https://forum.iobroker.net/viewtopic.php?p=152715#p152715). Werd mich jetzt mal mit der Auswahl der zu loggenden Daten, den Speicherintervallen und der sinnvollen Retentionszeit auseinandersetzen. Und schauen, welche Daten wie in der DB landen.

                            Wenn in 2 Wochen die neue Heizung installiert ist, dann geht's weiter mit dem vis-Adapter für die Daten der Heizung.

                            1 Reply Last reply Reply Quote 0
                            • X
                              xdelta last edited by

                              @ManfredH:

                              @xdelta:

                              Um die Datenbank schmal zu halten, kannst du sie auch jährlich löschen oder auslagern in eine extra Tabelle. In der Regel interessieren nach ein paar Jahren ja nicht mehr die Einzelwerte, sondern Tageswerte wie MIN MAX AVG usw… Jein. Um z.B. Energiesparmaßnahmen auf ihre Effektivität hin prüfen zu können brauche ich eine Speicherung über Jahre hinweg mit allen relevanten Parametern (wozu dann auch An-/Abwesenheiten gehören). Im Augenblick kann ich z.B. bei der Heizung nur auf den jährlichen Gasverbrauch anhand der Rechnung des Versorgers zurückgreifen. Und da ist schon interessant zu sehen, wie sich der Verbrauch nach der Installation einer neuen Heizung (vor 20 Jahren) und nach einer erneuerten Dämmung des Flachdachs (vor 4 Jahren) geändert hat. Leider ist das alles viel zu grob, weil mir die Abhängigkeit von der Außentemperatur im täglichen/wöchentlichen/monatlichen Verlauf fehlt. Aber die bekomme ich jetzt ja über das Logging der entsprechenden Werte.

                              Du hast mich offenbar missverstanden, oder aber du musst ein wenig umdenken. Sicherlich ist der Vergleich von Werten interessant und relevant, insbesondere nach einer Änderung der Begebenheiten. Aber du willst doch nicht allen ernstes minütliche Werte von von mehreren Jahren oder sogar Jahrzehnten miteinander vergleichen? Dies macht vermutlich niemand. Relevant sind nach einigen Jahren normalerweise nur noch Tageswerte, oder gemittelte Stundenwerte. Mit diversen SQL queries kannst du dir alle deine Wunschwerte generieren lassen und entsprechend ins Verhältnis setzen oder halt vergleichen. Meine Vorschläge bezogen sich auf ein Kleinhalten der aktiven Datenbank auf einem schwachbrüstigen System. Das bedeutet nicht, dass du die Einzelwerte verlierst.

                              Ansonsten viel Erfolg!

                              1 Reply Last reply Reply Quote 0
                              • M
                                ManfredH last edited by

                                @xdelta:

                                Du hast mich offenbar missverstanden ` Möglich 😉

                                > Aber du willst doch nicht allen ernstes minütliche Werte von von mehreren Jahren oder sogar Jahrzehnten miteinander vergleichen? Minütlich ganz sicher nicht. Der unmittelbare Stromverbrauch z.B. interessiert mich vielleicht über einen Zeitraum von max. 3 Monaten, d.h. langfristig reichen mir Tageswerte. Und für die Außentemperatur reicht 1x die Stunde allemal.

                                Was anderes aber ist es beim Gas (für die Heizung). Da will ich über mehrere Jahre hinweg schon wissen, warum der Verbrauch mal höher und mal niedriger war, was i.d.R. primär vom Wetter abhängt, aber auch von der Einstellung der Heizung (Raumtemperatur) und z.B. Dämmmaßnahmen am Gebäude. Die Frage ist natürlich, ob ich das <u>immer</u> im Detail über den Tagesverlauf sehen will (eher nicht) oder ob eine Aggregation über den gesamten Tag (bzw. Woche oder Monat) ausreichend ist. Wird wohl darauf hinauslaufen, daß ich für kurzfristige Betrachtungen (3 bis max. 12 Monate) das max. Intervall (HM-Sende-Intervall) aktiviere (gut um Änderungen an der Einstellung der Heizung nachvollziehen zu können) und längerfristig dann nur die Tages-/Wochen-/Monatswerte speichere. Insofern sind wir dann glaube ich schon wieder einer Meinung 😉

                                Die Aufzeichung des Gasverbrauchs hält sich zum einen ja durch das Sende-Intervall der BidCos-Geräte in Grenzen und außerdem kann man Daten ja auch nur "bei Änderung" aufzeichnen, d.h. wenn der Zähler still steht werden auch keine Daten gesammelt. Das ist schon mal die halbe Miete.

                                Hab mir jetzt eine Übersicht erstellt welche Daten ich in welchen Intervallen aufzeichnen will und laß dann noch einen Bekannten drüber schauen, der für solche Gimmicks auch zu begeistern ist.

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                588
                                Online

                                31.7k
                                Users

                                79.6k
                                Topics

                                1.3m
                                Posts

                                5
                                14
                                2749
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo