Posts by Tecci

    Also im Endeffekt bekomme ich keine Messwerte.
    Der Stromzähler gibt mir ständig Impulse aus (1000 pro KWh). Jeder Impuls zieht mir einen GPIO-Input-Pin auf Ground.
    Diese Impulse zähle ich permanent. Nach einem Zeitintervall (5Minuten) schreibe ich die Anzahl der Impulse (evtl noch /1000) in meine rrd und setze diese auf 0 zurück.
    Und so weiter und so fort.


    Zur rrd ist mir zwar bekannt, dass diese nach einem festgelegten Timer Daten erwartet. Aber die rrd wartet doch dann auf die Daten, oder wie soll sie sich denn die selber holen?


    Pfürtü

    Hallo Zusammen,


    bin ja jetzt schon mittendrin mit meinem python2-Script, dass mir die s0-Impulse meines Stromzählers in eine rrd schreiben soll.


    Wie kann ich denn nun am besten in python festlegen, dass mir das Scrippt z. B. alle 5 Minuten einen bestimmten Wert in die Datenbank schreibt?
    Geht das so ähnlich wie "wenn Zeit-Jetzt minus Zeit-Letzer-DB-Zugriff > 5 Sekunden, dann mach des"?


    Oder geht das anders sinnvoller?


    Dank Euch sche
    Andi

    Hallo Manuel,


    der Ansatz mit erst in die csv schreiben, kam vom Anfang des Projekts.
    In einem Beispiel wurde mit python die csv erzeugt und dann mit einem bash-script die Datenbank daraus erzeugt und periodisch gefüllt.


    Nachdem ich jetzt aber alles in python2 machen kann Stromzähler abgreifen und rrd erzeugen, werde ich es ohne csv machen.
    Die csv war nur zum testen ob ich überhautp die rrd hinkriege.


    Ich werde mir von python dann wahrscheinlich direkt in die rrd schreiben und parallel jede Stund einen Eintrag in eine unabhängige csv schreiben.
    Sollte mal was mit der Datenbank sein, habe ich wenigstens die Daten nochmal in einer Universal-Datei.


    Aber hast Du evtl. für mich nen Tipp, wie ich das mit der zeit hinkriege, dass mir python alle 5 Minuten einen Eintrag in der rrd macht?


    Pfirte
    Andi
    Automatisch zusammengefügt:[hr]
    Halt - Brrrt !
    Habs jetzt mal wo anders hingeschoben, da es ja jetzt speziell um Python geht:
    http://www.forum-raspberrypi.d…e-bestimmte-funktion-fest


    Tschüssn

    Habe natürlich schon gegooglet, aber da kommt nicht viel Hilfreiches.
    Irgendwas, dass das rrd-tool mit unsichtbaren Zeichen nicht klarkommt, die von einer Windows-Maschine her kommen.
    Vielleicht liegts daran, dass ich über einen Windows-PC per VNC am Raspi arbeite.
    Egal - das krige ich schon hin.


    Aber kann ich bitte nochmal die python-Freaks aktivieren?
    Wie kann ich es denn einfach und sinnvoll angehen, dass mir das Skript automatisch z. B. alle 5 Minuten einen Wert in die rrd schreibt?
    Ich kann ja in der rrd einen Zeitwert festlegen, in dem die rrd einen Wert erwartet, aber das heisst ja noch lange nicht, dass sie auch einen bekommt.


    Hab gelesen man rechnet die aktuelle Zeit minus die Zeit der letzten DB-Aktualisierunge und nimmt die Differnenz als Grenzwert.
    Geht des so?


    Muchas Gracias

    Also da es ja mit python2 einwandfrei klappt, habe ich es jetzt erst mal damit versucht.
    Und nachdem ich den ganzen Nachmittag alle möglichen Code-Varianten ausprobiert habe (das rrd-tool ist da je nach Programmiersprache verschieden), hat es endlich geklappt.


    Er hat mir die Datenbank ohne Fehlermeldung erstellt und auch ein .png daraus erzeugt. Phuuuuu.
    Aber jetzt hänge ich wieder an einer Fehlermeldung fest. Ich glaube es hat irgendwas mit dem Format der Variable data zu tun, in welchen die Werte vorliegen.
    Könnt Ihr mir dazu helfen?


    ich habs auch schon ohne "$" vorab probiert. Da kommt der gleiche Fehler.




    Code
    Traceback (most recent call last):
      File "/home/pi/rrdtest2.py", line 15, in <module>
       rrdtool.update('/home/pi/test.rrd', 'N:$data')
    error: /home/pi/test.rrd: conversion of '$data' to float not complete: tail '$data'

    Du hast ja Recht.
    Aber eins kannst Du mir glauben, ich google mir hier die Finger wund.
    Und mein Raspi-Buch mit 1100 Seiten ist schon bald mit mir verheiratet.
    Nur für mich als Neuling ist das sehr viel Stoff auf einmal.


    Also zurück zum Anfang:
    Wenn ich das von Dir geschriebene Kommando mit sudo eingebe, kommt keine Fehlermeldung, sondern:


    Wie gesagt, mit python2 funktioniert es scheinbar. Vielleicht sollte ich es einfach damit erst mal probieren.

    Sorry Leute,
    aber zwischen Fehlermeldungen lesen und Fehlermeldungen verstehen ist halt ein Unterschied.
    Und da ich leider keine Linux-Kenntnisse habe, stelle ich mich wahrscheinlich etwas dumm an.


    Ich dachte halt einfach wenn ich nach einem fest vorgegebenen Weg vorgehe, kann nichts schiefgehen.
    Scheinbar ist das aber nicht so, da ich mit allen von mir gefundenen und in diesem Beitrag gefundenen Befehlen nicht weiterkomm.


    Ungefähr so, als wenn ich schreibe: Mein Auto geht nicht mehr. und ich bekomme als Antwort, "Dann reparier Deine Einspritzanlage".


    Und glaubt mir: Auch sudo habe ich mit Sicherheit auch schon probiert.
    Ich bin halt mal ein Neuling, dem Sachen und Fehlermeldungen, die für Euch selbstverständlich sind, gar nichts sagen.

    Erst mal Danke für Deine Geduld - das ist ein Hoffnungsschimmer für mich! :)


    Also zurück zu Python:
    Wenn ich im Terminal eingebe apt-get install -y python-rrdtool, kommt:
    E: Sperrdatei /var/lib/dpkg/lock konnte nicht geöffnet werden. - open (13: Keine Berechtigung)
    E: Sperren des Administrationsverzeichnisses (/var/lib/dpkg/) nicht möglich, sind Sie root?


    Wenn ich eingebe pip install rrdtool, kommt:
    Downloading/unpacking rrdtool
    Downloading rrdtool-0.1.11.tar.gz
    Running setup.py (path:/tmp/pip-build-nB1VB_/rrdtool/setup.py) egg_info for package rrdtool
    /tmp/tmp_python_rrdtoolgbBw1K/test_rrdtool.c:2:17: fatal error: rrd.h: Datei oder Verzeichnis nicht gefunden
    #include <rrd.h>
    ^
    compilation terminated.
    Error: Unable to compile the binary module. Do you have the rrdtool header and libraries installed?
    Complete output from command python setup.py egg_info:
    /tmp/tmp_python_rrdtoolgbBw1K/test_rrdtool.c:2:17: fatal error: rrd.h: Datei oder Verzeichnis nicht gefunden


    #include <rrd.h>


    ^


    compilation terminated.


    Error: Unable to compile the binary module. Do you have the rrdtool header and libraries installed?


    ----------------------------------------
    Cleaning up...
    Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-nB1VB_/rrdtool
    Storing debug log for failure in /home/pi/.pip/pip.log


    Wenn ich eingebe #pip install rrdtool, tut sich gar nix


    Irgendwie muss es aber mit install rrdtool gefunzt haben, da es in python2 zu funktionieren scheint.


    Ich hoffe, Du kannst damit was anfangen?
    Gruß
    Andi

    Sorry, hätte ich natürlich gleich mitschreien können.


    Aber unabhängig davon, habe ich es heute mit einem Bash-Script probiert.
    Ich bekomme aber nur hunderte Fehlermeldungen und stecke jetzt bei der einen fest.
    Ehrlich gesagt, bin ich kurz vor dem Aufgeben.
    Entweder meldet er einen Fehler, dass ich für was keine Berechtigung habe. Dann findet er wieder eine Datei nicht.
    Ich hänge mal den Code an und die Fehlermeldung lautet:


    pi@raspberrypi / $ ./home/pi/rrdscript
    Auf gehts -rrd auslesen
    ERROR: creating '/strom.rrd': Keine Berechtigung
    RRD wurde jetzt erstellt
    ERROR: /home/pi/strom.rrd: found extra data on update argument: U
    ERROR: Could not make sense out of 'c'


    Hier der code:

    Hallo Ruediger,


    vielen Dank für Deine Tipps.
    Ich werde das damit versuchen.


    Aber ich glaube Du überschätzt mich etwas. Von den meisten Sachen, die Du schreibst, verstehe ich nur Bahnhof. Aber es hilft ja nix, da muss ich jetzt durch.


    Danke nochmal.
    Automatisch zusammengefügt:[hr]
    Na toll - bei mir scheiterts ja schon von Anfang an.


    Habe das rrd-tool nun wie von Dir Rüdiger beschrieben installiert.
    Wenn ich jedoch ein Python-Script erstelle, wo nur import rrdtool drin steht, kommt schon folgende Fehlermeldung in der Shell:
    Traceback (most recent call last):
    File "/home/pi/rddtest.py", line 3, in <module>
    import rrdtool
    ImportError: No module named 'rrdtool'

    Hallo,


    Und Dank Euch gleich mal.
    Dann werd ich auf jeden Fall mal versuchen die RRD ins Python-Script zu fummeln.


    Was ist denn der Unterschied ob ich es als Deamon laufen lass?


    Und wie isn des mit der Datenbank und den Daten? Wieviel Datensätze passen mir denn da rein und was passier wenn mir der Raspi mal abkackt? Kann man von der RDD ne Sicherung erstellen?


    Ach und noch ne Frage: Damit das Script nicht nach dem 1. Durchlauf stoppt, hab ich über der Abfrage des Gpios eine Endlosschleife mit While 1:
    Macht man das so, oder blockiert mir die Schleife den ganzen Raspi?
    In der Zeile wo der Gpio abgefragt wird, wartet das Script auf eine Flanke.


    Dank Euch
    Andi

    Hallo Zusammen,


    nachdem ich mir jetzt tausende Seiten zu dem Thema angeschaut hab, möchte ich auch einen Stromzähler mit dem Raspi auslesen.
    Da aber alles, was ich gesehen habe, sehr speziell ist, ist es mir lieber, ich fange selber von vorne an.


    Auch ich möchte mit dem Raspy den S0-Bus am GPIO auslesen. Das ist das kleinere Übel als alter Elektronik-Bastler.
    Nachdem ich auch ein rieeesen langes Raspy-Buch studiert habe, habe ich mein erstes Python-Script geschrieben, welches auch schon sehr schön flutscht.


    Aber was mich einfach unsicher macht, sind die vielen verschiedenen Skripte, die ich in verschiedenen Sprachen schreiben muss.


    Könnt Ihr mir mal sagen, ob mein angedachter Weg so richtig ist:


    1. Mit dem Python-Skript, das in einer Endlosschleife läuft und nach dem Hochfahren automatisch gestartet wird, zähle ich die Impulse der S0-Schnittstelle. Diese schreibt mir das Script regelmässig (zum Beispiel alle 100 Impulse) fortlaufen mit Datum und Uhrzeit in eine csv-Datei. (Das Script funktiniert auch schon und ich hänge es mal an).
    2. Dann scheibe ich ein Bash-Script, mit dem ich die Werte der csv z. B. alle 10 Minuten in eine rrd-Datenbank weiterschreibe.
    Das Bash-Script lasse ich durch die (glaube Cron-Tab) auch regelmässig alle 10 Minuten ausführen und lasse mir aus der rrd-Dabenbank schöne Bilder mit Diagrammen auf die SD-Karte legen.
    3. Ich erstelle eine Html-Seite, die php-Code enthält und die Bilder automatisch aktualisiert.
    4. Mit dem Apache-Server mache ich die Html-Seite aus meinem privaten Lan zugänglich.


    Oh mann - und ich dachte, das geht alles mit Python.


    Aber gut - ist der Weg grundsätzlich so o.k? Bevor ich jetzt groß weitermache?


    Pfirt Eich
    Andi




    P.s. Leider krieg ich das Python-Script über den VNC-Server nicht auf meinen Windows-PC, sonst würde ich es gerne hier mal einstellen.

    Danke für die Antworten.
    Ich dachte ich arbeite mich einfach Stück für Stück vor.


    In dem Buch, von dem ich oben geschrieben habe, ist auch eine Python-Einführung, die ich mir dann nochmal zu Gemüte führen werde.
    Fürs erste werde ich jetzt mal erste Versuche mit einem Terminal-Programm auf dem Raspy unternehmen.


    Danke.
    Andi

    Hallöchen,


    da ich meinen Raspi endlich mal sinnvoll einsetzen will, möchte ich mich daran machen Statuswerte aus meiner Heizung auszulesen.
    Habe dazu schon viel gegoogelt, aber mir fehlen dazu einfach die Linux- und Programmierkenntnisse.


    Hardware und Verkabelung ist kein Problem. Bin ja ein Tecci. :blush:
    Usb-Seriell-Adapter am Raspi funktionier und wird über lsusb angezeigt.


    Nun fehlt mir aber der Anfang, wie ich das programmiere.
    Ich weiss dass ich erst die seriellen-Funktionen downloaden muss und als erstes im Programm importieren muss, aber dann hakts.


    Die Codes zum Abfragen kenne ich. Sie müssen als Hex-Werte (Bsp. 02) gesendet werden.
    Die Antworten kommen auch als Hex-Werte, können aber viel umfangreicher sein.


    Wie steige ich da am besten ein? Habe ein riesen Raspi-Buch,mdas aber genau zu dem Thema (Serielle Übertragung) nicht viel enthält =(


    Dank Euch
    Andi