Frage von Mirse87, 14

Benötige Hilfe mit einem Projekt, bzw. Crashkurs in MySQL und Python.?

Ich möchte einen Temperatursensor alle 0,5 Sekunden per Pythonscript Auslesen und die Werte in eine Datenbank schreiben.

Dann soll immer der aktuellste Wert oben stehen, in der Datenbank. Die anderen sollen nach unten rücken. Werte, älter 10 Minuten sollen gelöscht werden. (Alternativ geht auch ein workaround, wie ich den jeweils aktuellsten Wert in einem anderen Script auslesen kann und meine Datenbank nicht unendlich groß wird.)

(Das ganze soll auf einem Raspberry Pi laufen.)

Am liebsten wäre mir jemand, der generell gut mit Python und MySQL/Sqlite umgehen kann und mir ein wenig Nachhilfe gibt.

Antwort
von LeonardM, 7

INSERT via python in der schleife und der sql server soll in ner schleife von zb 10min einträge löschen die älter sind als 60minuten. Arbeite einfach zur Identifizierung mit der tinestamp

Kommentar von Mirse87 ,

Ja, dass der Server per Timestamp alte Einträge selbständig löschen kann, hab ich mir mittlerweile auch angelesen. Trotzdem danke :)

Antwort
von Eismensch, 8

Dir ist schon bewusst, dass du hier nicht von einmal 60min Crashkurs redest? Wenn ich das recht verstehe ist dein Wissen im Bereich SQL & Python eher tendenziell gegen 0?

An dieser Stelle solltest du erstmal selbstständig Python lernen. Dann versuchen herauszufinden wie man Python mit MySQL koppelt. Vorher wird dir hier wohl keiner großartig helfen können.

Tutorials zu Python, wie auch zu SQL, gibt es tonnenweise im Netz.

Ich kann dir gern mit dem Grundkonzept helfen, aber dir den Code schreiben(denn genau das müsste man tun, wenn du selber nicht das Wissen dazu hast) wird hier wohl eher keiner.

Kommentar von Mirse87 ,

Nunja. Ich bin halbwegs gut in C#. Lesen kann ich Python mit kleinen Lücken, die sich schnell ergoogeln lassen. Ich denke ein 60min Crashkurs und ein paar code-snippets könnten mir schon 80% des Weges bereiten.
Leider ist das Projekt zeitlich begrenzt. Daher habe ich schlicht nicht die Zeit, SQL/Python von der Pike auf zu lernen.

Kommentar von Eismensch ,

Nunja, das Grundprinzip ist einfach.

Das Script läuft in einer Schleife und ließt werte im Intervall xyz ein. Diese Werden daraufhin direkt in die Datenbank geschrieben mit Timestamp.

Inserts funktionieren so, oder so ähnlich:

https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-tr...

Im regelmäßigen Abständen lässt du noch eine Funktion durchlaufen

"remove older than". Wie das geht siehst du hier: http://stackoverflow.com/questions/3433465/mysql-delete-all-rows-older-than-10-m...

Ich würde das jedoch nicht bei jedem Durchlauf der Schleife machen, auch wenn das bei deinen potentiellen max. 1200 Werten wohl kein Problem sein sollte. So Zeitkritisch ist es bei dir ja nicht. Wenn es dir nur um die DB-Größe geht, dann reichen eigentlich alle 5-10 min.

Keine passende Antwort gefunden?

Fragen Sie die Community