trend/cron_temp.py

61 lines
2.2 KiB
Python
Raw Normal View History

2023-09-06 12:09:11 +02:00
#!/usr/bin/env python3
import requests
from bs4 import BeautifulSoup
import sqlite3
# URL der HTML-Seite, die Sie abrufen möchten
url = "http://localhost:5010"
# HTTP-Anfrage senden und den HTML-Inhalt abrufen
response = requests.get(url)
html = response.text
# HTML-Dokument in BeautifulSoup-Objekt umwandeln
soup = BeautifulSoup(html, 'html.parser')
# Die Daten in der Tabelle extrahieren
table = soup.find('table')
rows = table.find_all('tr')
# Initialisieren der Tanknummern mit 1 und 2
tank1_nummer = 1
tank2_nummer = 2
# SQLite-Datenbankverbindung herstellen
db_path = '/home/divers/datenbank/temperaturen.db'
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
# Funktion zum Einfügen von Tanknummern und Temperaturwerten in die Datenbank
def insert_temperature(table_name, tanknummer, temperatur):
cursor.execute(f"INSERT INTO {table_name} (messstelle, temperatur) VALUES (?, ?)",
(tanknummer, temperatur))
conn.commit()
# Daten in die Datenbank eintragen (Tabelle "istwert")
for row in rows[1:-1]:
columns = row.find_all('td')
if len(columns) >= 3:
tank_name = columns[0].text
istwert_text = columns[1].text.strip() # Temperaturwert ohne Leerzeichen am Anfang/Ende
if istwert_text: # Nur wenn die Zeichenfolge nicht leer ist
istwert = float(istwert_text.split('°')[0]) # Extrahieren des Istwertes und Konvertieren in Float
tank_nummer = int(tank_name.split()[-1]) # Extrahieren der Tanknummer aus dem Namen
insert_temperature("istwert", tank_nummer, istwert)
# Daten in die Datenbank eintragen (Tabelle "sollwert")
for row in rows[1:-1]:
columns = row.find_all('td')
if len(columns) >= 3:
tank_name = columns[0].text
sollwert_text = columns[2].text.strip() # Temperaturwert ohne Leerzeichen am Anfang/Ende
if sollwert_text: # Nur wenn die Zeichenfolge nicht leer ist
sollwert = float(sollwert_text.split('°')[0]) # Extrahieren des Sollwertes und Konvertieren in Float
tank_nummer = int(tank_name.split()[-1]) # Extrahieren der Tanknummer aus dem Namen
insert_temperature("sollwert", tank_nummer, sollwert)
# Die Datenbankverbindung schließen
conn.close()