Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Werte aus SQL Datenbank anzeigen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Werte aus SQL Datenbank anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • UncleSam
      UncleSam Developer @femi last edited by UncleSam

      @femi said in Werte aus SQL Datenbank anzeigen:

      ich habe einen Raspberry der Temperaturen in eine SQL Datenbank schreibt.

      Wäre es nicht einfacher, ioBroker als Slave auch auf dem Raspi laufen zu lassen und die Werte ganz normal per Adapter einzulesen?

      Diese würde ich gerne auslesen und als Datenpunkte im IObroker einbinden.
      Leider habe ich nichts gefunden wie ich eine Tabelle in einem Datenpunkt angeben könnte.

      Du wirst ein Skript machen müssen, das die Daten in einen von dir erstellen Datenpunkt schreibt.

      Die SQL Datenbank habe ich bereits angebunden.

      Dann kennst du das?
      https://github.com/ioBroker/ioBroker.sql#custom-queries

      F 1 Reply Last reply Reply Quote 1
      • F
        femi @UncleSam last edited by

        @unclesam
        Danke für die Antwort,
        Klar könnte ich auf dem Raspberry auch IO Broker installieren, aber dann müsste ich fast alles neu machen. Nur um ein paar Felder aus der Datenbank auszulesen.
        Das ist mir für diese Spielerei dann doch zu viel Aufwand.

        liv-in-sky 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @femi last edited by

          @femi

          z.b. holt daten

             sendTo('sql.0', 'query', 'SELECT download FROM todaydownload.today', function (result) {
                 
              if (result.error) {
                  console.error(result.error);
              } else {
                 setState("controll-own.0.HANDY.SQLToDos",JSON.stringify(result.result));
                  //setState("controll-own.0.HANDY.SQLToDos",result.result);
                  //show result
                   console.log('Rows: ' + JSON.stringify(result.result));
                   //console.log(result.result[0]);
                 
            
              }
          });
          

          oder hier hole ich sql variablen

             sendTo('sql.0', 'query', 'show status like "Connection_errors_max_connections"', function (result) { 
              if (result.error) {
                  console.error(result.error);
          
              } else {
                
                    // console.log('Rows: ' + JSON.stringify(result.result));
                     //console.log(result.result[0].Value);
                   //var abc = JSON.stringify(result.result);
                   //abc = abc.replace( /[|]/g , "");
                   //var json = JSON.parse(abc);
                    // console.log(json.Value);
                  
                  setState("controll-own.0.FUTRO.SQLConnections",result.result[0].Value);
                 // var json1 = JSON.parse(result.result);
          
          
          
                     }
          });
          
          F 1 Reply Last reply Reply Quote 0
          • F
            femi @liv-in-sky last edited by

            @liv-in-sky
            leider habe ich viel zu wenig Ahnung von dem was du mit dem Script machst, vielleicht kannst du mir mal auf die Sprünge helfen.

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @femi last edited by

              @femi

              • du brauchst den sql adapter
              • du brauchst erstmal das "sql-query" selbst - die eigentliche sql abfrage- kannst du im phpadmin erstellen hast du das ?
              F 1 Reply Last reply Reply Quote 0
              • F
                femi @liv-in-sky last edited by

                @liv-in-sky
                den SQL Adapter hab ich ja bereits installiert und funktioniert auch.
                Aber wie kriege ich einen Datenpunkt erstellt der eine Tabelle ausliest?

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @femi last edited by

                  @femi kannst du die sql sprache - wie beschreibst du die tabelle ?

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    femi @liv-in-sky last edited by

                    @liv-in-sky
                    die Daten sind in der Datenbank schon drin, da habe ich ein Script geschrieben, das alle 15 Minuten die Fühler abfragt und die Werte in die Datenbank schreibt.

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @femi last edited by liv-in-sky

                      @femi

                      dann erstell das query , welches du brauchst - nimm das erste script von oben und gib das query mit der datenbank (tabelle) ein

                      unter setState gibst du einen datenpunkt (typ zeichenkette) ein, welchen du selbst angelegt hast,

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        femi @liv-in-sky last edited by

                        @liv-in-sky
                        leider verstehe ich nur Bahnhof,
                        wo soll ich das Query erstellen?

                        liv-in-sky OliverIO 2 Replies Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @femi last edited by

                          @femi schau mal in den chat

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

                            @femi
                            wie wäre es die Datenbank (ich gehe davon aus, das es mysql/maria ist), abzufragen
                            und direkt json werte daraus zu machen und in einen datenpunkt zu schreiben
                            die können dann im widget json table angezeigt werden

                            https://stackoverflow.com/questions/41758870/how-to-convert-result-table-to-json-array-in-mysql

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

                              @oliverio
                              Ja klar, das würde funktionieren, aber in dem verlinktem Post sehe ich keine Datenbankabfrage.
                              Leider kenne ich mich mit json scripten überhaupt nicht aus.

                              OliverIO liv-in-sky 2 Replies Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @femi last edited by

                                @femi

                                im beispiel wird der sql-adapter verwendet.
                                mit dem sendTo-Befehl kann man mit dem sprechen und ein sql-statement übergeben
                                im adapter ist konfiguriert, wo die sql-datenbank zu erreichen ist.
                                bei erfolg gibt der sendto-befehl dann in result die Daten zurück.

                                1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @femi last edited by liv-in-sky

                                  @femi

                                  für später:
                                  habe versucht, dass nachzustellen - bei mir gehts so:

                                     sendTo('sql.0', 'query', 'SELECT temeratur FROM testMyTimestapm.tbl_Fuehler1 ORDER BY timestamp DESC LIMIT 1', function (result) {
                                  
                                         
                                  
                                      if (result.error) {
                                  
                                          console.error(result.error);
                                  
                                      } else {
                                  
                                         setState("0_userdata.0.TemperaturFuehler.Fuehler1",Number(JSON.stringify(result.result[0].temeratur)));
                                      log(JSON.stringify(result.result[0].temeratur))
                                  
                                  
                                      }
                                  
                                  });
                                  

                                  Image 3.png

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  818
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  16
                                  2732
                                  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