#! /usr/bin/python3 import datetime import re import sys import csv import os #May 27 21:32 /sys/bus/w1/devices/28-0416a1bab9ff #May 27 21:33 /sys/bus/w1/devices/28-0416a1ac66ff #May 27 21:35 /sys/bus/w1/devices/28-0516a207a4ff #May 27 21:38 /sys/bus/w1/devices/28-0316a2193bff #May 27 21:38 /sys/bus/w1/devices/28-0316a21383ff # Eine Funktion: # einen Sensor auslesen #/sys/bus/w1/devices/ def readsensor(sensorID): sensorfile = "/sys/bus/w1/devices/28-{}/w1_slave".format(sensorID) file = open(sensorfile) # Inhalt des Sensors: # 64 01 4b 46 7f ff 0c 10 01 : crc=01 YES # 64 01 4b 46 7f ff 0c 10 01 t=22250 # Suche nach YES linecrc = file.readline() match = re.search(": crc=[0-9a-f]{2} (YES|NO)",linecrc) yesno = match.group(1) if yesno != "YES": return None # Temperatur raus linetemp = file.readline() match = re.search(" t=([-0-9]+)",linetemp) temp = match.group(1) temp = float(temp)/1000 file.close() jetzt = datetime.datetime.now() # print(jetzt) # Schreiben des csv-files file2 = open("badesaison.csv", "a", newline = "") writer = csv.writer(file2, dialect = "excel") writer.writerow([jetzt.strftime("%Y-%m-%d %H:%M"), sensorID, "{:.1f}".format(temp)]) file2.close() # Nur für die Ausgabe wird gerundet return temp sensoren = ["0416a1bab9ff","0416a1ac66ff","0516a207a4ff","0316a2193bff","0316a21383ff"] error = False for sensorID in sensoren: temp = readsensor(sensorID) if temp is None: print("Fehler bei Sensor{}".format(sensorID)) error = True else: print('Sensor {}: {:.1f}°C'.format(sensorID,temp)) sys.exit(1 if error else 0)