1-Wire Sensor mit Datenbank


  • Funktioniert super und ich hab alles meinen Bedürfnissen angepasst. Einziges Manko das ich nicht hinbekomme ist das der GoogleGraph 2 Stunden zu schnell ist. Sprich er zeigt mir einen Wert der aber nicht um 20Uhr ist sondern um 18Uhr. Aktueller Wert ist immer Zeit+2h obwohl in der Datenbank alles stimmt.

    Hi,

    GMT <-> CEST = 2 Std ...

    cu,
    -ds-

  • Hallo!

    Danke erstmal für die guten und simplen Erklärungen hier im Forum, hab mir dein Programm zum testen auch mal auf meinen Raspi geladen :)

    Soweit funktioniert auch alles perfekt, das einzige Problem ist dass es manchmal zu falschen Werten beim auslesen kommt... Auf der ersten Seite des Threads hast du dafür einmal ein Codeschnippsel für die CRC Prüfung gepostet, wenn ich mich nicht täusche ist das im Programm dann nicht mehr implementiert? Ich werd mich mal spielen und es einbauen, evtl. ist es ja auch für andere Leute interessant (insbesondere in Kombination mit Email Warnung ;) )

    Gruß,
    Richard

    Edit: Momentan lese ich die Sensoren jetzt jede Minute aus, bisher gab es einmal einen Fehler (bei ca. 100 Messungen). Davor waren die Fehler schon recht häufig... grob geschätzt 5-10% Fehlmessungen. Witzigerweise hatte gestern nur der eine Sensor Fehler und heute nur der andere (obwohl weder an der Software noch an der Hardware was geändert wurde, auch die Sensoren sind noch an den selben Positionen... sehr eigenartig ^^)

    Edit2: Ich bin dumm! :D Hab grade eine halbe Ewigkeit verbracht weil ich den Raspi mal neu gestartet hab und nicht erneut modprobe w1-gpio und w1-therm gemacht hab... und als das endlich lief hab ich dann noch vergessen dem (inzwischen neu kopiertem) avrio.py die passenden Dateirechte zu geben, war auch nicht gerade hilfreich für den cronjob ^^

    Naja, wenigstens wieder was dazugelernt, die Fehlermeldungen waren für mich nicht unbedingt einfach zu entschlüsseln ;)

    Eventuell willst du die Hinweise ja noch in deinem Eingangsposting vermerken, zumindest ich wäre dir dankbar wenn ich mich beim nächsten mal nicht wieder wundern muss was es da hat :D

    Edited once, last by Rzep87 (June 15, 2013 at 1:57 AM).

  • Hallo Richard,

    Letzte Woche hatte ich mir mein Programm angesehen und auch gemerkt, dass der code für CRC-Prüfung verschwunden war. Ich muss irgendwann eine alte Version synchronisiert haben.
    Da ich den ersten Post nicht mehr editieren kann, habe ich hier einmal den aktuellen Stand angehängt.


    Den folgenden Hinweis findet man nun in der readme-Datei:

    Statt modprobe sollte man die 1-wire module in /etc/modules eintragen (die letzten beiden Zeilen).
    Diese werden dann bei jedem reboot geladen.

    sudo nano /etc/modules

    Code
    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    # Parameters can be specified after the module name.
    snd-bcm2835
    i2c-dev
    w1-gpio
    w1-therm
  • Hallo Thomas!

    Hab gestern noch einen Fehler bei meiner CRC Prüfung korrigiert und jetzt bei 600 Messungen keinen Fehler :)

    Super dass du dir die Mühe machst und das Projekt weiter pflegst! Hilft sicher einigen (vor allem wohl auch Raspi Einsteigern wie mir :) )

    Gruß,
    Richard

  • Hi, habe seit gestern diese Komischen fehler in den Messungen . Es sind immer negative Werte..naja eigentlich ist es immer -1.25 °C . Ich Hatte bis vorgestern noch die Version 0.4 mit einem Sensor am laufen (jetzt Version 0.5) hat über mehrere Tage super funktioniert nur jetz habe ich 2 Sensoren angeschlossen (nebeneinander) und seitdem tritt dieser fehler auf :(.. Hat wer nen rat?

    mfg dop3
    8qqyg8v7_jpg.htm

    Edited once, last by dop3 (June 21, 2013 at 3:45 PM).

  • Hallo dop3.

    Wird von deiner Software die CRC-Prüfung ausgewertet?
    Die Art des Fehlers weist darauf hin das ungültige Messungen vorliegen.

    In Thread
      [Tutorial] 1Wire Temperaturmessung mit Datenerfassung und Visualisierung
    [Tutorial] 1Wire Temperaturmessung mit Datenerfassung und Visualisierung, Beitrag #40
    habe ich Python-Skript/Funktion veröffentlich, welches die CRC berücksichtigt.

    Vielleicht hilfts.

    Bis dann,
    Uwe

    Edited once, last by piGecko (June 22, 2013 at 7:31 PM).

  • Oh, sorry... wer lesen kann ist klar im Vorteil :o

    Hm, ich hab bei mir die CRC Prüfung anders gemacht und bei mir funktionierts jetzt seit einer Woche fehlerfrei. Die alte Version hat bei mir häufig Fehler gehabt.
    Werd nachher mal meinen Code hier hochladen.

    Hier mein read_sensor Modul (übernommen von Thomas H.)

    Ist garantiert nicht die beste Lösung, aber ich wollte mich nicht lange rumspielen und hab das irgendwo in einem anderen Beitrag gefunden und dann hineinadaptiert. Eventuell kannst du ja versuchen ob es so bei dir funktioniert. Aber wie gesagt - sicher keine saubere Lösung (u.a. bleibt das Programm wohl hängen wenn ein Sensor defekt ist und der CRC Wert nie stimmt... wenn ich mal ein bisschen Zeit habe werde ich es nochmal überarbeiten)

    Edited once, last by Rzep87 (June 22, 2013 at 3:38 PM).

  • Hallo Rpi-Fans
    Tolles Project, an dem ihr da dran seid.

    Auf meinem pi läuft avrio v05a, mit 20 x ds18b20 Sensoren.
    Alle Sensoren werden erkannt, Einträge in Datenbank sind vorhanden,
    mitlerweile sogar keine Messfehler mehr,
    panel zeigt alle Temperaturen, graph zeigt auch alle temperaturlinien (nur meine Farben will er nicht),
    google zeigt die ersten fünf Sensoren in der "Luft" Gruppe (die sind auch so eingetragen),
    nur wenn ich die Gruppe "Heizung" aufrufe kommt nichts.

    Habe zwar schon einige Sachen ausprobiert (erfolglos),
    aber als anfänger bei linux, php, pi & co, komme ich da nicht wirklich weiter.
    Wenn da mal jemand helfen könnte, das wäre echt Super.

    mfG 12chip21
    avr-google.php

  • Ich bekomme es einfach nicht zum laufen: Es kommt beim setup:

    ./avrio.py --setup
    Write new config file /home/pi/avrio/avrio-config.txt
    Enter yes: yes
    MySQL host address (default [tbd]):localhost
    MySQL user name (default [tbd]):root
    MySQL password (default [tbd]):******
    MySQL database (default [tbd]):temperature
    MySQL table (default [tbd]):temperature
    check: localhost root kosmickartracer temperature temperature
    Enter ok: ok
    creating config file now...

    look for connected sensors in /sys/devices/w1_bus_master1/w1_master_slaves
    28-000003ada56a
    read config file which has been created
    create database incl. tables
    connect to host > localhost < w/o database
    CREATE DATABASE temperature
    Enter yes: yes
    DROP TABLE temperature
    Enter yes: yes
    DROP TABLE temperature
    Unexpected error: <class '_mysql_exceptions.OperationalError'>
    CREATE TABLE temperature
    Enter yes: yes
    CREATE TABLE temperature (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, dattim TIMESTAMP, Aussen FLOAT DEFAULT '0', Innen FLOAT DEFAULT '0', Zimmer FLOAT DEFAULT '0', Balkon FLOAT DEFAULT '0', Wasser FLOAT DEFAULT '0', WW_Speicher FLOAT DEFAULT '0', Vorlauf FLOAT DEFAULT '0', Ruecklauf FLOAT DEFAULT '0' )
    Unexpected error: <class '_mysql_exceptions.OperationalError'>

  • Bei mir funktioniert es auch nicht ich bekomme nur folgendes zurück

    Python
    File "avrio.py", line 8
        * from avrio_database import * config_file='avrio-config.txt' cur_dir =
        ^
    SyntaxError: invalid syntax

    das projekt sieht vielversprechend aus

  • Ist mir beim ersten Versuch auch passiert.
    Einfach den ./avrio.py --setup nochmal ausführen, und bei der Frage "Drop Table" nur Enter drücken (falls die Tabelle noch nicht existiert).

    Zum Schluss musste ich die avrio-config.txt noch händisch anpassen.
    Dort ware die Namen der Sensoren noch "tbd", müssen aber einen der Namen aus der Liste haben.

    Hoffe es hilft Dir weiter.
    Gruß Rabeneck

    Edited once, last by Rabeneck (August 20, 2013 at 12:12 PM).

  • Ich würde hierfür überlegen anstatt MySQL zu nutzen lieber auf SQLite3 umzusatteln

    Meine Erfahrungen mit MySQL auf dem RPI sind eher schlecht als recht - die permanent laufenden mysqld Prozesse fressen verhälltnismässig unnötig viel CPU + RAM aber soviel hat der Raspberry

    Die Syntax ist eigentlich die gleiche, es gibt nur minimale Unterschiede und das erzeugen des Datenbank-Files ist natürlich SQlite spezifisch.. Aber was die Performance angeht so macht sich MySQL erst bei grösseren Datenbank-Strukturen bemerkbar, was aber hierrauf denk ich nicht zutreffen wird ;)


    Da das Projekt hier aber bereits passend für MySQL geschrieben wurde und ich keinen 1-Wire Sensor habe - müsste sich damit jemand anderes auseinandersetzen :-/

  • also ich komme da immernoch nicht weiter ich hab alles mögliche versucht aber ich bekomme immer nur die fehlermeldung

    File "avrio.py", line 8
    * from avrio_database import * config_file='avrio-config.txt' cur_dir =
    ^
    SyntaxError: invalid syntax


    Gibt es irgendwo eine schritt für schritt erklärung mit der ich da weiter komme?

    oder kann ich die config datei von hand erstellen?

  • Hallo x2k,

    poste doch bitte mal die erste 15 Zeilen von deiner "avrio.py".
    Laut der Fehlermeldung passt die Syntax in der Zeile 8 nicht. Des Weiteren sieht es so aus, als ob bei dir etwas mit den Zeilenumbrüchen nicht stimmt. Die eine Codezeile die in der Fehlermeldung angezeigt wird sind eigentlich 4 Zeilen.

    Gruß Georg

  • Also der Inhalt von avrio.py sieht so aus:

    Ich binn kein Python Experte daher weiß ich nicht ob das so richtig ist.
    Ich hoffe das Hilft weiter.

  • Da ging aber arg was schief beim kopieren.

    Ich hab die 16 Zeilen mal bereinigt und die unzähligen und verabscheuungswürdigen inline Kommentare entfernt. Ich hoffe du hast nicht noch 2000 vor dir ;). Wo hast du das her und wieso ist es so kaputt?

    Als Tip an alle: Wenn Ihr Kommentiert, dann kommentiert nicht was ihr da macht sondern warum. Alle die Python können, wissen da bei

    Code
    a=[]


    a anschliessend den Typ "Liste" hat ;). Und wenn ihr kommentiert dann tut es in der Zeile darüber und nicht in der Zeile.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv (August 20, 2013 at 12:54 AM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!