73 lines
2.8 KiB
Python
73 lines
2.8 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import matplotlib.pyplot as plt
|
||
|
import sqlite3
|
||
|
|
||
|
# Pfad zur Datenbank
|
||
|
db_path = '/home/divers/datenbank/temperaturen.db'
|
||
|
|
||
|
# SQLite-Datenbankverbindung herstellen
|
||
|
conn = sqlite3.connect(db_path)
|
||
|
cursor = conn.cursor()
|
||
|
|
||
|
# SQL-Abfrage, um die Zeitstempel und Temperaturen zu erhalten (Tabelle "istwert" für Tank 1)
|
||
|
cursor.execute("SELECT zeitstempel, temperatur FROM istwert WHERE messstelle = 1")
|
||
|
rows_istwert_tank1 = cursor.fetchall()
|
||
|
|
||
|
# SQL-Abfrage, um die Zeitstempel und Temperaturen zu erhalten (Tabelle "sollwert" für Tank 1)
|
||
|
cursor.execute("SELECT zeitstempel, temperatur FROM sollwert WHERE messstelle = 1")
|
||
|
rows_sollwert_tank1 = cursor.fetchall()
|
||
|
|
||
|
# SQL-Abfrage, um die Zeitstempel und Temperaturen zu erhalten (Tabelle "istwert" für Tank 2)
|
||
|
cursor.execute("SELECT zeitstempel, temperatur FROM istwert WHERE messstelle = 2")
|
||
|
rows_istwert_tank2 = cursor.fetchall()
|
||
|
|
||
|
# SQL-Abfrage, um die Zeitstempel und Temperaturen zu erhalten (Tabelle "sollwert" für Tank 2)
|
||
|
cursor.execute("SELECT zeitstempel, temperatur FROM sollwert WHERE messstelle = 2")
|
||
|
rows_sollwert_tank2 = cursor.fetchall()
|
||
|
|
||
|
conn.close()
|
||
|
|
||
|
# Die Zeitstempel und Temperaturen in separate Listen aufteilen (Istwert und Sollwert Tank 1)
|
||
|
datetimes_istwert_tank1 = [row[0] for row in rows_istwert_tank1]
|
||
|
temperaturen_istwert_tank1 = [row[1] for row in rows_istwert_tank1]
|
||
|
datetimes_sollwert_tank1 = [row[0] for row in rows_sollwert_tank1]
|
||
|
temperaturen_sollwert_tank1 = [row[1] for row in rows_sollwert_tank1]
|
||
|
|
||
|
# Die Zeitstempel und Temperaturen in separate Listen aufteilen (Istwert und Sollwert Tank 2)
|
||
|
datetimes_istwert_tank2 = [row[0] for row in rows_istwert_tank2]
|
||
|
temperaturen_istwert_tank2 = [row[1] for row in rows_istwert_tank2]
|
||
|
datetimes_sollwert_tank2 = [row[0] for row in rows_sollwert_tank2]
|
||
|
temperaturen_sollwert_tank2 = [row[1] for row in rows_sollwert_tank2]
|
||
|
|
||
|
# Grafik erstellen
|
||
|
plt.figure(figsize=(10, 8)) # Vergrößern Sie die Höhe des Grafikbereichs
|
||
|
|
||
|
# Plot für Istwert (Tank 1)
|
||
|
plt.plot(datetimes_istwert_tank1, temperaturen_istwert_tank1, label='Istwert Tank 1', color='blue')
|
||
|
|
||
|
# Plot für Sollwert (Tank 1)
|
||
|
plt.plot(datetimes_sollwert_tank1, temperaturen_sollwert_tank1, label='Sollwert Tank 1', color='red', linestyle='--')
|
||
|
|
||
|
# Plot für Istwert (Tank 2)
|
||
|
plt.plot(datetimes_istwert_tank2, temperaturen_istwert_tank2, label='Istwert Tank 2', color='green')
|
||
|
|
||
|
# Plot für Sollwert (Tank 2)
|
||
|
plt.plot(datetimes_sollwert_tank2, temperaturen_sollwert_tank2, label='Sollwert Tank 2', color='orange', linestyle='--')
|
||
|
|
||
|
plt.xlabel('Zeitstempel')
|
||
|
plt.ylabel('Temperatur (°C)')
|
||
|
plt.title('Temperaturverlauf Tank 1 und Tank 2 (Istwert und Sollwert)')
|
||
|
|
||
|
# Vertikale Ausrichtung der x-Achsenbeschriftung
|
||
|
plt.xticks(rotation='vertical')
|
||
|
|
||
|
plt.legend()
|
||
|
plt.grid(True)
|
||
|
|
||
|
# Speichern Sie die Grafik als SVG-Datei
|
||
|
plt.savefig('Temperaturverlauf.svg', format='svg', bbox_inches='tight')
|
||
|
|
||
|
# Grafik anzeigen (optional)
|
||
|
plt.show()
|