Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. [gelöst] Zugriff auf eine MariaDB

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Zugriff auf eine MariaDB

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ben1983
      Ben1983 @Marc Berg last edited by

      @marc-berg Bin da vollkommen unbeholfen drin.
      Muss ich das im phpmyAdmin eintragen?

      Marc Berg BananaJoe 2 Replies Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @Ben1983 last edited by

        @ben1983 sagte in Zugriff auf eine MariaDB:

        Muss ich das im phpmyAdmin eintragen?

        Ich mache das über die Kommandozeile, sollte aber in phpmyAdmin auch gehen. Siehe hier:

        https://www.hostgator.com/help/article/how-to-run-sql-queries-in-phpmyadmin

        Ben1983 1 Reply Last reply Reply Quote 0
        • BananaJoe
          BananaJoe Most Active @Ben1983 last edited by

          @ben1983 Wenn due den MySQL in Grafana drin hast und die ersten Werte visualisierst, mach doch gerne hier mal einen Showcase über das genaue vorgehen.

          Mir war das seinerzeit zu kompliziert - die History der Datenpunkte in MySQL besteht ja auch mehreren Tabellen, einer mit den Namen der Datenpunkte und je einer für die verschiedenen Werttypen (Zahl, Text, Rest weis ich gerade aus dem Kopf nicht).

          Ich habe das über den ioBroker.simpe-api Adapter gelöst bekommen: https://forum.iobroker.net/topic/75701/grafana-diagramme-und-werte-per-simple-api-adapter
          Da fragt dann also Grafana iobroker nach den Daten und erhält diese als JSON.
          Wenn du das direkt von der Datenbank machst ist das natürlich theoretisch schneller.

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @BananaJoe last edited by Codierknecht

            @bananajoe
            Meinst Du sowas hier?

            45d9bf48-b5f0-4d46-95c3-a2004f1575eb-image.png

            Man muss sich lediglich die passenden ID's aus der Tabelle datapoints raussuchen.
            Ein Subselect war mir an der Ecke zu aufwändig - auch wenn sich das besser lesen ließe. Sähe dann so aus:

            SELECT ts AS "time",
                   val AS "kWh"
              FROM ts_number
             WHERE id = (SELECT id FROM datapoints WHERE name = '0_userdata.0.Strom.tagesverbrauch')
               AND val > 0
               AND ts >= ${__from}
               AND ts <= ${__to}  
            

            Oder alternativ als JOIN

            SELECT N.ts AS "time",
                   N.val AS "kWh"
              FROM ts_number N
             INNER JOIN datapoints P ON P.id = N.id AND P.name = '0_userdata.0.Strom.tagesverbrauch'
             WHERE N.val > 0
               AND N.ts >= ${__from}
               AND N.ts <= ${__to}  
            

            Sinnvolle Werte für Charts stehen eh nur in ts_number. Strings oder Boolean-Werte zu visualisieren ist wohl eher unüblich.

            BananaJoe 1 Reply Last reply Reply Quote 1
            • Ben1983
              Ben1983 @Marc Berg last edited by

              @marc-berg Also, ich wüsste jetzt nicht, wo ich da ne Adresse eintragen sollte.

              Marc Berg Codierknecht 2 Replies Last reply Reply Quote 0
              • Marc Berg
                Marc Berg Most Active @Ben1983 last edited by Marc Berg

                @ben1983 sagte in Zugriff auf eine MariaDB:

                Also, ich wüsste jetzt nicht, wo ich da ne Adresse eintragen sollte.

                Der Link, den ich gefunden habe, ist schon ein paar Jahre alt. Dann wird es jetzt etwas anders aussehen.
                Ich nutze phpMyAdmin nicht. Aber wie schwer kann es sein, "*SQLQueries in phpMyAdmin" in eine Suchmaschine einzugeben?

                1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @Ben1983 last edited by

                  @ben1983 sagte in Zugriff auf eine MariaDB:

                  Also, ich wüsste jetzt nicht, wo ich da ne Adresse eintragen sollte.

                  Das ist doch in der Anleitung ziemlich eindeutig:

                  4582c22a-9ec6-4548-897a-07e5d485b1c5-image.png

                  Ben1983 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @Ben1983 last edited by OliverIO

                    @ben1983

                    Du hast geschrieben grafana läuft im docker Container? Die Datenbank dann auch? Würde ich mal auf Basis der ip Adresse vermuten.
                    Die 172. Adressen sind eigentlich die Container internen Adressen, die ich nicht verwenden würde, da sie sich auch ändern können.

                    Wenn jetzt dein Datenbank Container im Host Mode läuft, dann ist er unter der ip Adresse des Hosts erreichbar
                    Wenn kein Hostessen, dann würde ich beide Container (grafana und Marias) beide ein zusätzliches gemeinsames Netz zuordnen.
                    Dann sind beide Container jeweils unter ihrem Hostnamen oder Images als hostname erreichbar und du musst dich mit irgendwelchen ip Adressen nicht rumärgern, da docker.

                    Wenn du solche Abhängigkeiten aufbaust, wäre es besser auch Services per docker-compose zu definieren. Je nach Verwaltungsteil nennt sich das immer wieder mal anders (bei portainer stacks)
                    Darüber kann man über eine yaml Definition relativ einfach und übersichtlich neue Services definieren.

                    Hier mal so ein Beispiel direkt von grafana
                    https://github.com/tiredofit/docker-grafana/blob/main/examples/docker-compose.yml
                    In diesem ist grafana und Maria über ein eigenes Netzwerk namens Services verschaltet und gegenseitig unter dem servicenamen als hostname erreichbar.
                    Das lässt sich auch in separaten Dateien verwalten, wenn man bspw die Datenbank auch noch in anderen Container nutzen möchte.

                    So das zur Erreichbarkeit.
                    MySQL und Maria haben zur authorisierung eines Nutzers auch noch die Sicht von wo man zugreifen darf. Das lässt sich hierüber konfigurieren

                    https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/

                    Je nachdem was für ein Image du verwendest kann es sein das der image maintainer da auch schon defaults setzt oder entsprechende Environment variablen zur Konfiguration des Containers bereitstellt.

                    Wie gesagt, bei Doktor bezogenen Konfiguration, keine IP Adresse verwenden, sondern den Hostnamen

                    Marc Berg 1 Reply Last reply Reply Quote 0
                    • Marc Berg
                      Marc Berg Most Active @OliverIO last edited by

                      @oliverio sagte in Zugriff auf eine MariaDB:

                      Ist ja alles richtig, was du schreibst. Aber auch nach diesem fancy Umbau stünde @Ben1983 vor dem gleichen Problem wie jetzt, da die MariaDB im default nur localhost zulässt.

                      OliverIO 1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Marc Berg last edited by

                        @marc-berg

                        Im Letzten Teil hab ich den link zur Konfigurierung von für Remote Hosts geschrieben?
                        Das macht man dann über den Grant Befehl. Der pflegt dann eine Tabelle in der man nachsehen kann wer von welcher ip zugriffsberechtigt ist. Ich glaube man kann auch 0.0.0.0 oder % nehmen um diese zugriffsbeschränkung für einen User auszuschalten.

                        Hier nochmal eine detailliertere Anleitung
                        https://docs.bitnami.com/virtual-machine/infrastructure/lamp/administration/connect-remotely-mariadb/

                        In der dB Konfiguration muss die bind-address noch auskommentiert werden und wie gesagt der Grant Befehl ausgeführt werden

                        Marc Berg 1 Reply Last reply Reply Quote 0
                        • Ben1983
                          Ben1983 @Codierknecht last edited by

                          @codierknecht Danke

                          68fa684f-f70f-45f1-9dff-811e49e7f4db-image.png

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

                            So. Und jetzt komme ich zwar drauf, aber stehe da und weiß nicht, wie ich auf nem Dashboard per Query Builder an die Daten komme 🐶
                            Wo finde ich den hier bspw. die ids, die ich auswählen kann?

                            82bd8218-9a06-4a28-a536-797b2a7fcc42-image.png

                            Marc Berg Codierknecht 2 Replies Last reply Reply Quote 0
                            • Marc Berg
                              Marc Berg Most Active @OliverIO last edited by

                              @oliverio sagte in [gelöst] Zugriff auf eine MariaDB:

                              Im Letzten Teil hab ich den link zur Konfigurierung von für Remote Hosts geschrieben?
                              Das macht man dann über den Grant Befehl. Der pflegt dann eine Tabelle in der man nachsehen kann wer von welcher ip zugriffsberechtigt ist. Ich glaube man kann auch 0.0.0.0 oder % nehmen um diese zugriffsbeschränkung für einen User auszuschalten.

                              Ja, ich weiß. Das hatte ich ihm aber schon hier https://forum.iobroker.net/post/1239064

                              konkret beschrieben. Ich wollte nur nicht noch mehr verwirren 🙂

                              1 Reply Last reply Reply Quote 0
                              • Marc Berg
                                Marc Berg Most Active @Ben1983 last edited by

                                @ben1983 sagte in [gelöst] Zugriff auf eine MariaDB:

                                So. Und jetzt komme ich zwar drauf, aber stehe da und weiß nicht, wie ich auf nem Dashboard per Query Builder an die Daten komme
                                Wo finde ich den hier bspw. die ids, die ich auswählen kann?

                                Es ist eine relationale Datenbank, darum ist das nicht so einfach. Deshalb ja auch das Beispiel von @Codierknecht: https://forum.iobroker.net/post/1239129 , welches du unter "Code" eingeben musst.

                                1 Reply Last reply Reply Quote 2
                                • Codierknecht
                                  Codierknecht Developer Most Active @Ben1983 last edited by

                                  @ben1983 sagte in [gelöst] Zugriff auf eine MariaDB:

                                  Wo finde ich den hier bspw. die ids, die ich auswählen kann?

                                  Siehe meine Antwort an @BananaJoe weiter oben.

                                  In der DB besteht das Ganze beim SQL-Adapter aus mehreren Tabellen.
                                  In datapoints steht nur die Übersetzung von States in id's.
                                  Die eigentlichen Werte stehen (im Fall von Zahlenwerten) in ts_number.

                                  Ben1983 1 Reply Last reply Reply Quote 0
                                  • Ben1983
                                    Ben1983 @Codierknecht last edited by Ben1983

                                    @codierknecht

                                    OK, habe dein Beispiel eingetragen

                                    aa0d2140-6721-427f-95ad-cd91f4b1023b-image.png

                                    Wie bekomme ich denn mehrere Werte in den Graph?

                                    Edit:
                                    Habe einfach ein 2. Query hinzugefügt... aber da kann ich nun nicht einzeln die farbe ändern.
                                    Das muss doch auch gehen, oder?

                                    #0cc01b4f-6687-401f-8e51-8b05f42b3ede-image.png

                                    Edit. Edit:

                                    Habe es gefunden. Muss natürlich unterschiedliche Namen vergeben.

                                    befcfe84-0a5e-47f2-aa40-eedcefa12845-image.png

                                    Nur eine Sache würde mich noch interessieren. Wie bekomme ich denn 2 Y-Achsen hin mit Einheit?
                                    ... Auch das habe ich bereits bei Override gefunden.

                                    Danke

                                    Codierknecht 1 Reply Last reply Reply Quote 0
                                    • Codierknecht
                                      Codierknecht Developer Most Active @Ben1983 last edited by

                                      @ben1983
                                      Grafana ist irre mächtig. Da muss man sich (wie Du bereits festgestellt hast) 'ne Weile mit beschäftigen 😁

                                      Ben1983 1 Reply Last reply Reply Quote 0
                                      • Ben1983
                                        Ben1983 @Codierknecht last edited by

                                        @codierknecht Ja,
                                        die Daten aus der SQL zu bekommen ist als SQL "ich kenne nur den Namen Neuling" natürlich auch nicht das einfachste.

                                        1 Reply Last reply Reply Quote 0
                                        • BananaJoe
                                          BananaJoe Most Active @Codierknecht last edited by

                                          @codierknecht da war deine Antwort an mich gleich doppelt gut! So eine einfach Erklärung hätte ich damals gebraucht.

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          987
                                          Online

                                          31.7k
                                          Users

                                          79.7k
                                          Topics

                                          1.3m
                                          Posts

                                          5
                                          24
                                          633
                                          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