Seite 1 von 1

Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 11:37
von TheRaccoon
Ja Hallo. ich bin neu hier und ein Python Neuling, ich habe mir für meinen Alten Stromzähler eine Automatische ablese Vorrichtung gebaut. Diese besteht aus einem Sensor einem Arduino und einem Raspberry Pi, das funktioniert soweit auch ohne Probleme. Mein Problem ist das mein Raspberry die empfangenen Seriellen Daten in einer Tabelle abspeichern soll, das tut er auch nur für jeden Tick den er zählt nimmt er einen neuen Tag in der Tabelle was er nicht tun soll. ich möchte jeden Tag um 18 Uhr die zuletzt gemessene Zeile in meine Tabelle eingetragen wird.

Ich hoffe mein Problem geht daraus hervor

Mfg. :D

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 12:01
von rogerb
TheRaccoon hat geschrieben: Dienstag 18. Mai 2021, 11:37 ... jeden Tag um 18 Uhr die zuletzt gemessene Zeile in meine Tabelle eingetragen wird.
Hallo TheRaccoon,

wenn ich dich richtig verstehe, soll das Script zum lesen des Sensors nicht ununterbrochen, sondern nur einmal täglich ausgeführt werden.
Dafür gibt es unter Linux (also auch dem RaspberryPi) den CronTab.
Damit kann dein Script zu bestimmten Zeiten ausgeführt werden. Du must es dann eben nur so ändern, dass es den Sensor nur einmal ausliest, die Daten speichert und dann beendet wird.

Dazu gibt es reichlich Infos im Netz.

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 12:12
von TheRaccoon
Danke aber das ist es leider nicht ich habe einen reflektion sensor der die Umdrehungen der Scheibe des Stromzähler misst. Dafür muss das Script Dauerhaft laufen und kann leider nicht nur zum passenden Zeitpunkt aktiviert werden.


Ich habe den raspberry und den arduino über eine Serielle Schnittstelle verbunden worüber die Daten übertragen werden. Der raspberry trägt diese Daten direkt in einer .csv Datei damit die automatisch in die Tabelle eingetragen werden kann was er auch tut bloß für jeden tick einen Tag.

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 12:30
von rogerb
Vielleicht müsstest du dann mal den Code, den du schon hast, hier posten.
Ich versuchs aber nochmal:
Der raspberry liest ständig die Sensordaten aus und schreibt diese in eine csv-Datei. Um 18:00 Uhr soll dann die letzte Zeile der csv-Datei in eine Tabelle (was für eine Tabelle) eingetragen werden?
Was meinst du mit ".. für jeden tick einen Tag" ?

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 12:31
von __blackjack__
@TheRaccoon: Dejavu, irgendwie. Das hatten wir doch schon mal. Lies halt um 18 Uhr die CSV-Datei ein und nimm davon dann den letzten Datensatz. Oder noch besser: lass das Programm das dauerhaft die Daten empfängt den jeweils aktuellen Datensatz in eine extra Datei schreiben wo dann immer der zuletzt gelesene Wert drin steht. Dann brauchst Du jeweils um 18 Uhr nur diese Datei auslesen.

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 12:51
von TheRaccoon
rogerb hat geschrieben: Dienstag 18. Mai 2021, 12:30 Vielleicht müsstest du dann mal den Code, den du schon hast, hier posten.
Ich versuchs aber nochmal:
Der raspberry liest ständig die Sensordaten aus und schreibt diese in eine csv-Datei. Um 18:00 Uhr soll dann die letzte Zeile der csv-Datei in eine Tabelle (was für eine Tabelle) eingetragen werden?
Was meinst du mit ".. für jeden tick einen Tag" ?





Ich suche ihn eben raus und stell ihn online.
Ich meine mit für jeden tick am Tag, das ich auf dem raspberry Libre Calc als Tabelle laufen habe in dem einem Kalender eingespeichert ist, in die jeden Tag um 18 Uhr die gezählt sensor Datei eingespeichert werden sollen aber anstatt jeden Tag eine Datei zu speichern speichert er jeden gemessen tick vom sensor als einen Tag und springt dan zur nächsten Zelle in der Tabelle ob wohl er eig zählen soll.

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 13:14
von TheRaccoon
rogerb hat geschrieben: Dienstag 18. Mai 2021, 12:30 Vielleicht müsstest du dann mal den Code, den du schon hast, hier posten.
Ich versuchs aber nochmal:
Der raspberry liest ständig die Sensordaten aus und schreibt diese in eine csv-Datei. Um 18:00 Uhr soll dann die letzte Zeile der csv-Datei in eine Tabelle (was für eine Tabelle) eingetragen werden?
Was meinst du mit ".. für jeden tick einen Tag" ?
Ich habe für die Serielle Kommunikation dieses Skript hier verwendet da ich nichts anderes gefunden habe was funktioniert.

https://github.com/tbird20d/grabserial/ ... grabserial

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 13:46
von __blackjack__
@TheRaccoon: Und mit dem Programm machst Du jetzt was genau? Und was hast Du *selbst* programmiert? Wie sieht es da denn überhaupt mit den Kenntnissen aus? Das Grundlagen-Tutorial in der Python-Dokumentation schon mal durchgearbeitet?

Was ist denn jetzt das *konkrete* Problem? Welche Daten hast Du — wie sehen die konkret aus? In welche Form müssen die gebracht werden? Wie schreibst Du Daten in eine vorhandene LibreCalc-Tabelle? Du musst doch da bereits Code für haben‽

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Dienstag 18. Mai 2021, 19:58
von rogerb
@TheRaccoon,

ich würde dir gerne helfen. Das Projekt hört sich auch grundsätzlich interessant an. Ich verstehe aber leider immer noch nicht was du möchtest.
Mit "tick" meinst du einen Auslesevorgang vom Sensor? - Also ein Zählerstand mit Zeitstempel?

Und jetzt wird für jeden gelesenen Zählerstand eine neue Datei erzeugt?

Hier ein Auszug aus der Github Doku von Grabserial:
Start a continous recording with timestamps for each line (-T) (eg: [09:07:47.330944 0.007000]) and create a new file with timestamp %Y-%m-%dT%H-%M-%S at the specified location every hour (-R).
Demnach kann man über die Eingangsparameter steuern, ob nach einer bestimmten Zeit, Ereignis, ... eine neue Datei angelegt wird.

Ich würde dir empfehlen mal die Dokumentation durchzulesen und mit den Eingangsparametern zu spielen.

Welche Eingangsparameter hast du denn schon versucht?

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Freitag 21. Mai 2021, 07:25
von TheRaccoon
rogerb hat geschrieben: Dienstag 18. Mai 2021, 19:58 @TheRaccoon,

ich würde dir gerne helfen. Das Projekt hört sich auch grundsätzlich interessant an. Ich verstehe aber leider immer noch nicht was du möchtest.
Mit "tick" meinst du einen Auslesevorgang vom Sensor? - Also ein Zählerstand mit Zeit Stempel?

Und jetzt wird für jeden gelesenen Zählerstand eine neue Datei erzeugt?

Hallo entschuldigt für die späte Antwort hatte die Woche keine zeit.

ja mit "tick" meinte ich das einkommende Signal von dem Sensor.

Der Arduino zählt die Signale bis 75 da ist bei meinem Stromzähler 1Kwh verbraucht, diesen Wert Sendet der Arduino an den Raspberry der das Signal als .csv Datei abspeichert (mit Zeit Stempel). Soweit so gut das funktioniert ohne Probleme, dann habe ich mit Libre Calc eine Tabelle erstellt die Automatisch die Daten aus der .csv Datei nimmt und einträgt da kommt auch mein Problem Libre nimmt jedes einkommende Signal (das meinte ich mit tick) und direkt als einen ganzen Tag ihn die Tabelle und springt zum nächsten für die das nächste Signal. Da ich aber gerne meinen Tag und Nacht verbrauch eintragen würde müsste einer dieser "Geräte"(Raspberry, Arduino,Calc)
das Signal bis zu einer bestimmten Uhrzeit oder timer sammeln und dann erst automatisch eintragen.

Ich hoffe ich konnte es dieses mal ein bisschen besser erklären.

P.S Freu mich schon auf eure Hilfe :D

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Freitag 21. Mai 2021, 07:56
von TheRaccoon
Hier ein Auszug aus der Github Doku von Grabserial:
Start a continous recording with timestamps for each line (-T) (eg: [09:07:47.330944 0.007000]) and create a new file with timestamp %Y-%m-%dT%H-%M-%S at the specified location every hour (-R).


Ich scheine gerade ein bisschen blind zu sein aber wo hast du "at the specified location every hour (-R)." gefunden. Ich habe in der Github Datei keinen Eintrag gefunden.

Re: Raspberry Tabelle Automatisch ausfüllen

Verfasst: Freitag 21. Mai 2021, 19:11
von rogerb
Also hier im code stehen die Parameter in den Kommentaren
https://github.com/tbird20d/grabserial/ ... grabserial

Hier stehen untern auf der Seite Beispielaufrufe mit Parametern. Das letzte Beispiel ist das, was ich oben kopiert hatte.
https://github.com/tbird20d/grabserial

Es gibt auch noch diese Seite:
https://elinux.org/Grabserial#Introduction


Leider habe ich deine Hardware nicht, sonst würde ich es selber mal ausprobieren.

Hast du die Idee aus einem Tutorial, oder wie bist du auf grabserial gekommen?