Finn · Software & Code
Python-Auswertung
Python-Skript, das die letzten Messungen aus der Datenbank liest und Statistiken ausgibt
Bearbeitet von: Finn
Das Auswertungsskript liest die letzten Messungen aus der PostgreSQL-Datenbank und gibt für Temperatur, Luftdruck und Luftfeuchte jeweils Durchschnitt, Minimum und Maximum aus.
Was das Skript macht
- Verbindet sich über
psycopg2mit der Datenbank - Liest die letzten
ANZAHL_MESSUNGENMessungen (Standard: 100) aus der Tabellemessungenmitpandas - Berechnet Ø / Min / Max für die drei Messwerte
- Gibt das Ergebnis in der Konsole aus
Voraussetzungen
pip install psycopg2-binary pandasDatenbank-Verbindung
| Punkt | Wert |
|---|---|
| Host | 192.168.1.10 |
| Port | 5432 |
| Datenbank | sensordaten |
| Benutzer | psql_f |
| Tabelle | messungen |
Das Skript
"""Sensordaten-Statistik (BME280 -> PostgreSQL)."""
import psycopg2
import pandas as pd
DB = dict(host="192.168.1.10", port=5432, dbname="sensordaten",
user="psql_f", password="IchbinPSQL")
ANZAHL_MESSUNGEN = 100
conn = psycopg2.connect(**DB)
df = pd.read_sql(
f"""SELECT timestamp, temperatur, air_pressure, humidity
FROM messungen ORDER BY timestamp DESC LIMIT {ANZAHL_MESSUNGEN};""",
conn,
)
conn.close()
if df.empty:
print("Keine Messungen gefunden.")
else:
print(f"--- Statistik (letzte {len(df)} Messungen) ---")
for spalte, label, einheit in [("temperatur", "Temperatur", "°C"),
("air_pressure", "Luftdruck", "hPa"),
("humidity", "Luftfeuchte", "%")]:
print(f"{label:11} Ø {df[spalte].mean():.2f} {einheit} "
f"Min {df[spalte].min():.2f} Max {df[spalte].max():.2f}")Beispiel-Ausgabe
--- Statistik (letzte 100 Messungen) ---
Temperatur Ø 22.34 °C Min 21.10 Max 23.80
Luftdruck Ø 1013.20 hPa Min 1011.00 Max 1015.40
Luftfeuchte Ø 45.10 % Min 40.20 Max 50.90