Ankündigung

Einklappen
Keine Ankündigung bisher.

Auslesen und Darstellen von Daten aus Datenbank

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

    Auslesen und Darstellen von Daten aus Datenbank

    Hallo,

    seit neustem bin ich auch nutzer des openHAB und es gefällt mir recht gut.
    Eine Sache, bei der ich keinen Ansatz finde ist folgende:

    Ich habe eine MySQL Datenbank mit Werten (Temperatur, Feuchte, Luftdruck). Meine Frage ist jetzt, wie kann ich mit openHAB auf die Werte zugreifen und darstellen?
    Im Internet gibt es einige Beispiele, aber ich finde nur welche zum speichern aber nicht zum auslesen.

    Kann mir hier jemand eventuell weiterhelfen?

    Vielen Dank!

    #2
    Wenn es eine eigene Datenbank und keine von openHAB erzeugte ist würde ich einen Webservice auf einem lokalen Webserver dazwischen schalten der die Daten abfragt und z.B. eine Grafik generiert die dann in openHAB angezeigt werden kann. Dazu reicht ggf. ja schon ein kurzes Skript.

    Kommentar


      #3
      Hm, eigentlich wollte ich keine Grafik, sondern die Werte als Zahl.

      Aber könnte ich es nicht einfach so machen, dass ich ein PHP-Skript aufrufe, welches mir einen Wert zurückgibt (z.B. 19,5) und dieser Wert in openHAB angezeigt wird?

      Das Skript habe ich schon erstellt - ich frage mich nur, wie ich es in openHAB einbinde.

      Kommentar


        #4
        Am besten indem Du über das Skript das REST API von openHAB bedienst und so die Werte übergibst, geht z.B. mit curl.

        Kommentar


          #5
          Hallo,

          Zitat von Jockel Beitrag anzeigen
          Am besten indem Du über das Skript das REST API von openHAB bedienst und so die Werte übergibst, geht z.B. mit curl.
          das geht noch schöner und wirkt vom Aussehen dann in OpenHAB integriert. Einfach das Webview-Feature in der Sitemap verwenden. Das erzeugt einen IFrame, in dem du deine App darstellen kannst. Beispiel:

          Code:
          Text label="Wärmepumpe" icon="sani_earth_source_heat_pump" {
                 Text label="Luxgrapher" icon="time_graph" {
                        Webview url="http://my.server.de/luxtronik/highcharts/arbeitsdaten-konsolidiert.php" height=20
                  }
                  ...
                  ...
          }
          PS: Dazu gibt es auch ein Beispiel in der Demo-Sitemap

          Gruß,
          thoern

          Kommentar


            #6
            Also mit curl funktioniert das ganze schon mal. Vielen Dank!

            Das mit Webview schaue ich mir bei Gelegenheit mal an.

            Kommentar


              #7
              Hallo Kikr,

              könntest du bitte mal den curl Aufruf zeigen. Ich finde ebenfalls kein richtiges Beispiel wie man ein Php Script aufrufen kann.

              Hartmut

              Kommentar


                #8
                Jetzt funktioniert es, ich dachte ich muss da ein php Script vom openHab aus aufrufen, aber es muss ja vom externen Programm aus angestoßen werden.

                Der PHP Script: doPostRequest.php

                Code:
                #!/usr/bin/php
                <?php
                function doPostRequest($item, $data) {
                 
                 $url = "http://192.168.0.159:8080/rest/items/" . $item;
                
                 $options = array(
                  'http' => array(
                      'header'  => "Content-type: text/plain\r\n",
                      'method'  => 'POST',
                      'content' => $data  //http_build_query($data),
                  ),                                                                                         
                 );                                                                                           
                                                                                                             
                $context  = stream_context_create($options);                                                 
                $result = file_get_contents($url, false, $context);                                          
                                                                                                             
                return $result;                                                                              
                }                                                                                             
                                                                                                             
                $item = $argv[1] ;
                $data = $argv[2] ;
                
                echo  doPostRequest($item, $data) ;
                ?>
                und der Aufruf von der Linux Konsole:

                Code:
                ./doPostRequest "UG_Hobbyraum_Drucker" "ON"
                ./doPostRequest UG_Hobbyraum_Drucker ON
                beide Aufrufe funktionieren.

                Jetzt werde ich das Script noch so ändern, dass die Werte aus der Datenbank gelesen werden.

                Grüße Hartmut

                Kommentar

                Lädt...
                X