1-Wire Sensor mit Datenbank

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    vielen Dank für das super Tutorial.
    Leider komme ich schon ganz am Anfang nicht mehr weiter.
    Und zwar kann er keine Datenbank erstellen:

    Code
    Traceback (most recent call last):
      File "./avrio.py", line 386, in <module>
        create_database(db_all,db_fields_all,verbose_level)
      File "/home/Admin/avrio/avrio_database.py", line 33, in create_database
        cur.execute(stmt)
      File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
        self.errorhandler(self, exc, value)
      File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
        raise errorclass, errorvalue
    _mysql_exceptions.OperationalError: (1044, "Access denied for user 'Admin'@'localhost' to database 'avrio'")

    Was mache ich hier falsch, bzw. Wie setzte ich die Rechte in myphpadmin
    danke
    gruß
    Boxer

  • Hab hier nicht ganz alles durchgelesen aber was 1 und 1 angeht weis ich das sie den zugriff auf ihre datenbanken begrenzt haben laut einem kollegen der das problem auch hatte kanst du einfach bei 1und 1 anrufen und ihnen sagen sie sollen die begrenzung aufheben

  • Guten morgen zusammen,
    Ich habe jetzt den ganzen Thread durchsucht und hoffe nichts übersehen zu haben. Habe zu dem Projekt paar Fragen. Das System läuft soweit erstmal Probe bei mir ;)

    1.) ist es möglich nachträglich weitere Sensoren hinzuzufügen ohne den ganzen Setup Prozess von vorne zu starten?

    2.) wie ändere ich ordentlich die Namen der "Räume/Sensoren" und wie entferne ich überflüssige?
    Ich benötige nämlich nur zwei drei Räume...


  • 1.) ist es möglich nachträglich weitere Sensoren hinzuzufügen ohne den ganzen Setup Prozess von vorne zu starten?

    Dafür hast Du die "avrio-config.txt", dort kannst Du neue Sensoren auch per Hand eintragen. Bei mir stehen da z.Z. 13 Stück....

    Zitat


    2.) wie ändere ich ordentlich die Namen der "Räume/Sensoren" und wie entferne ich überflüssige?
    Ich benötige nämlich nur zwei drei Räume...

    Ist bei mir jetzt schon etwas länger her das ich mit 'avrio' rumgehext habe... Du kannst natürlich alles nach eigenen Wünschen und Vorstellung abändern, jedoch solltest Du etwas Erfahrung im Bereich HTML/PHP und MySql mitbringen. Wenn Du Dir die entsprechenden Seiten mal genau anschaust kannst Du dort die entsprechenden Einträge ändern. Jedoch musst Du ein bisschen aufpassen das Du bei Änderungen diese auch in allen zugehörigen Dateien machst (sprich in der avrio.py und in den PHP Dateien).

    Das ganze klingt sicher viel komplizierter als es ist. Sowohl der Python Code als auch die PHP Dateien sind gut dokumentiert und mit etwas Geduld und dem Mut des Unwissenden kann man sich vorantasten! Immer fröhlich nach dem Motto: Kann nix kaputt gehen, sind eh' nur alles Nullen und Einsen :D![/quote]

  • Danke pfarrerbraun! Werde mich die Tage da mal ran machen, HTML und php ist nichts ganz neues für mich das sollte ich schaffen :D

    Aber mal eine andere frage noch, mit der avr-google.php datei. Ich habe dort meine DB Daten eingegeben doch beim Aufruf erhalte ich folgende Meldung:

    Error selecting data

    woran kann das liegen?


  • Aber mal eine andere frage noch, mit der avr-google.php datei. Ich habe dort meine DB Daten eingegeben doch beim Aufruf erhalte ich folgende Meldung:
    Error selecting data
    woran kann das liegen?

    Ein Blick in den PHP Code bringt dieses zu Gesicht:

    [code=php]
    // Mit mysql_query() sendet man eine SQL-Anfrage (Anfrage) an einen Datenbankserver.
    // Die Funktion mysql_query() liefert im Erfolgsfall true, sonst false zurück.
    $sql = mysql_query($sql) or die ('Error selecting data');
    [/php]

    Würde daher mal annehmen das die Datenbank nicht gefunden bzw. der Zugriff aufgrund falscher Logindaten abgelehnt wurde.

    Im oberen Teil der PHP gibt es doch den Punkt

    [code=php]// default Values used when config file cannot be found
    $dbhost = "127.0.0.1";
    $dbuser = "DatenbankBenutzerNamet";
    $dbpass = "NSA-sicheres-Paswort";
    $dbname = "DatenbankName";
    $dbtable = "DatenbankTabel";
    $dbfield = "DatenbankFelder-die-gelesen-werden-sollen";
    $sql6 = "Interval 96 HOUR";
    [...][/php]

    Versuche dort mal Deine Daten einzutragen, ev. mag die Seite die Config.txt nicht.

    Ansonsten schreibt die Seite auch ein Log in das Verzeichnis, dort kannst DU auch nach eventuellen Fehlerquellen schauen.

    Wie schon erwähnt: Das ganze Projekt ist bestens dokumentiert und besitzt einen gut lesbaren Code der kaum Wünsche offen lässt! Bei Problemen ist daher ein Blick hinein nie verkehrt :)


  • Im oberen Teil der PHP gibt es doch den Punkt


    EDIT: Ok habe mal die aktuelle von Git Hub runter geladen die ist anders. Habe dort meine ganzen Daten eingegeben, immernoch selber fehler :(


    Diese Log Datei wird bei mir (aus welchem Grund auch immer) nicht erstellt bzw existiert nicht :(

    Einmal editiert, zuletzt von Fillip13 (24. Juli 2014 um 22:21)

  • Sehr geiles Projekt. Habe es auch mal auf meinem Pi installiert und für mich angepasst. (Sensoren etc.)
    Ich habe jedoch nur 3 1-wire Sensoren und würde gerne noch zusätzlich Temperaturen meiner DiskStation, meiner beiden Raspberrys und meiner Dreambox mit integrieren. Hat dauz jemand einen Tip? Theoretisch bräuchte ich dann doch nur ein Script, welches die Temperaturen der geräte in die SQL Datenbank schreibt. Denn die Googlecharts und das Dashboard liest diese ja nur dort ab, richtig?

    Edit: Habe es jetzt hinbekommen.
    3 DS18B20, 2 Raspberry Pi, VU+ Solo2 und DiskStation sind jetzt drin. Leider habe ich keine Ahnung von Python bzw. habe ich es über ein Bash Script hinbekommen und greife die Temperaturen über ssh ab (ist ja nur im Heimnetz).

    Einmal editiert, zuletzt von nols (10. September 2014 um 13:58)

  • Hallo,

    Bin neu im hier und im Bereich Raspberry und Linux und überhaupt. Ich hab von allem nur ein ganz klitzekleinwenig Ahnung, deshalb komme ich auch nicht weiter.

    Wenn ich es richtig verstanden habe, kann man die Tempwerte entweder über avr-google.php oder über avr-highcharts.php ausgeben lassen. Der Unterschied ist, das bei der Google Variate die Daten verschickt werden und dann als Graph zurück geliefert werden und das bei der Highcharts Variante alles Lokal auf dem Raspi aufgearbeitet wird. Zweiteres wäre mir eigentlich lieber, deshalb hab ich versucht das zum laufen zu bringen. Allerdings bekomme ich bei dem Aufruf der avr-highcharts.php nur eine leere Seite angezeigt. Diese Datei liegt bei mir in dem Verzeichnis avrweb, wie auch die phps für das Panel und die Google Variante. Im Kopf der Datei steht im Kommentarbereich etwas von vorrausgesetzten Dateien wie den .js. Da wird auch auf /var/www/js/modules/exporting.js verwiesen. Diese Datei, bzw das Verzeichnis /modules habe ich gar nicht. Wo bekomme ich das her, bzw was habe ich falsch gemacht?

    Ich habe auch in dem Verzeichnis /var/www/js/ eine Datei namens avr-highchart.php (ohne s an Charts) gefunden. Diese Datei habe ich zum laufen gebracht, allerdings wenn ich diese Ins /var/www/avrweb Verzeichnis kopiere kommt wieder nur ne leere Seite. Welches ist den nun das Richtige, bzw, wie bekomm ich das ganze richtig zum laufen.

    btw: Das Python Programm läuft und trägt auch fleißig Daten in die Datenbank, die ich mit dem Setup erstellt habe

    Wäre schön wenn ihr mir helfen könnt. Wenn ihr noch Infos oder so braucht, dann lasst es mich wissen.

    Gruß Theo100

    Einmal editiert, zuletzt von theo100 (16. November 2014 um 21:09)

  • Danke für deinen Hinweis, aber bei mir geht es nicht um JPGraph, sondern um Highcharts, das ist doch was anderes? Wenn nicht, verzeih es mir, ich bin da eben anfänger auf dem Gebiet.

  • Hallo.
    Super Anleitung! Und fast hab ich hier gefunden was ich suche :)

    Wie sieht denn das ganze für SQLITE aus? Was genau müsste geändert werden?

    Habe sqlite schon drauf und möchte nicht noch mysql am laufen haben.
    Hat das hier schon wer umgesetzt mit sqlite?

    Langsam wächst mir das schon etwas über den Kopf. Möchte das Thema endlich abhaken und laufen lassen können.

    Gruß

  • Ok.

    Erledigt.
    Hab alles andere runtergeschmissen und verwende den PI nun ausschließlich für dieses Projekt. (die Frau dankt es :daumendreh2: )


    Datenbank läuft. Es werden auch Werte angezeigt.
    Ich spiel jetzt eben noch etwas damit.

    Es hängt leider mit der Graphik-Anzeige mittels jpgraph.
    Mir gefällt allerdings die Lösung mit den Highcharts besser und zudem ist das auch lockal. ;)

    Seh ichs richtig dass für die Highcharts kein jpggraph nötig ist?


    Grüße

  • hallo, super projekt, vielleicht kann mir jmd helfen,
    ich habe zusätzlich zu den 3 sensoren die mit avrio einwandfrei laufen auch einen dht22 temp/luftfeuchtigk sensor laufen den ich mittel adafruit bibliothek abfrage.

    nun meine frage, wie kann ich das ins script implementieren das auch hier die werte temp und humidity in die datenbank aufdenommen werden?

    aufgerufen wird es mittels $ sudo ./AdafruitDHT.py 22 4

    Temp=24.0* Humidity=41.0%

    wie kann ich die ausgabe splitten und konform in die datenbank eintragen?
    mfg

  • Falls jemand Probleme mit dem mySQL-Benutzer hat:

    Bei der Installation von mysql wurde ein user angelegt - typischerweise root.
    Das password wurde dort entsprechend gesetzt.

    Das password kann man mit mysql ändern:
    http://www.sysadminslife.com/linux/mysql-user-passwort-aendern

    Ein neuer Benutzer (z.B. "Admin") muss zuerst in der Datenbank angelegt werden.
    mysql> create user ‘BENUTZERNAME’@’localhost’ identified by ‘BENUTZERKENNWORT';
    mysql> grant all on DATENBANKNAME.* to ‘BENUTZERNAME’@’localhost';

    Achtung: Der Name ist case-sensitive, d.h. "admin" != "Admin".

    Gruß
    Thomas

    while (!sleep()) {sheep++};

    Einmal editiert, zuletzt von ThomasH (6. November 2015 um 13:16)

  • Hallo,

    ich hab folgendes Problem mit den Charts. Habe meine Datenbank und mysql User/Passwort angepasst.
    Jedoch wenn ich die highcharts datei starte kommt nur: [font="Times New Roman"]MYSQL - Error selecting data[/font]

    [font="Times New Roman"]Ich seh keinen Fehler in der Datei, habe dann mal das auskommentiert aus der Datei[/font]

    Code
    fwrite($fh, "mysql_query       - ");
    fwrite($fh, $sql); fwrite($fh, "\n");
    // Mit mysql_query() sendet man eine SQL-Anfrage (Anfrage) an einen Datenbankserver.
    // Die Funktion mysql_query() liefert im Erfolgsfall true, sonst false zurück. 
    $sql = mysql_query($sql) or die ('Error selecting data');
    fwrite($fh, "mysql_query o.k.\n");

    dann kommt nur eine weiße Seite.

    Kann es sein das man die ganzen .js dateien noch irgendwie installieren muss?

  • Wenn der Fehler "MYSQL - Error selecting data" kommt, funktioniert der db-Zugriff nicht. D.h. das Script stirb nach dem SQL-Befehl " mysql_query($sql) or die"

    Da er vorher mysql_connect,und mysql_select ausgeführt hat, ist der login erfolgreich gewesen und die Datenbank existiert auch.

    Der nächste Schritt im script ist nun eine Abfrage auf die Tabelle via "mysql_query".

    Folgende Prüfungen:
    - ist der Name der Tabelle korrekt ?
    - sind alle Feldnamen korrekt ?

    Die Datenbank kann man sich mit entweder mit phpMyAdmin oder mysql ansehen:
    http://deine-ip-adresse/phpmyadmin/
    > mysql -u "dein-db-user" -p

    mysql-Befehle:
    Alle Datenbanken zeigen > SHOW DATABASES;
    Mit Datenbank verbinden > USE avrio;
    Tabellen zeigen > SHOW TABLES;
    Tabellen-Definition anzeigen > DESC avrdat;

    Gruß,
    Thomas

    while (!sleep()) {sheep++};

    Einmal editiert, zuletzt von ThomasH (7. November 2015 um 19:46)

  • Ich habe hier mal ein komplettes Verzeichnis für die Web-Gui incl. highcharts angehängt.
    Das "js" Verzeichnis ist hier enthalten.
    Bitte nach /var/www kopieren.

    In den folgenden Dateien muss man Benutzer und passwort ändern.

    /var/www/avrweb/avr-google.php
    /var/www/avrweb/avr-panel.php
    /var/www/avrweb/js/includes/common.inc.php

    Bitte auch die Feldnamen für die Sensoren überprüfen.
    Einfach mit mysql den folgenden Befehl absetzen:
    SELECT UNIX_TIMESTAMP(dattim),Aussen, Wintergarten, Zimmer, Terrasse, Pool, WW_Speicher, Vorlauf, Ruecklauf FROM avrdat ORDER BY dattim DESC LIMIT 1;
    Dann sieht man sofort, ob die Abfrage funktioniert.

    while (!sleep()) {sheep++};

  • Danke für deine Antwort. Ich hab alles so wie du eingestellt eigentlich.

    Tabellen in phpmyadmin sind: id / dattim / Aussen / Innen / Zimmer / Balkon / Wasser / WW_Speicher / Vorlauf / Ruecklauf

    Also sollte das eigentlich alles stimmen. Was in der highcharts datei muss man alles anpassen?

    So ich glaub ich hab den Fehler gefunden. Ganz oben hat der aufruf $dbtable = "avrdat"; gefehlt

    Leider bekomm ich nun eine weiße seite wenn ich die charts aufrufe.

    Einmal editiert, zuletzt von AudiQ7 (7. November 2015 um 22:01)

  • Hallo Leute, kann mir mal jemand helfen, bekomm absolut keinen Graphen angezeigt egal was ich mache!!!!
    Habe immer nur einen Weissen Bildschirm!!!!!
    Weiß nicht mehr was ich machen soll, bin seit zwei Tagen am probieren!!!!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!