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 psycopg2 mit der Datenbank
  • Liest die letzten ANZAHL_MESSUNGEN Messungen (Standard: 100) aus der Tabelle messungen mit pandas
  • Berechnet Ø / Min / Max für die drei Messwerte
  • Gibt das Ergebnis in der Konsole aus

Voraussetzungen

pip install psycopg2-binary pandas

Datenbank-Verbindung

PunktWert
Host192.168.1.10
Port5432
Datenbanksensordaten
Benutzerpsql_f
Tabellemessungen

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