add wetter.at.pl
[chrisu/seepark.git] / seewasser.py
1 #! /usr/bin/python3
2
3 import datetime
4 import re
5 import sys
6 import csv
7 import os
8
9 #May 27 21:32 /sys/bus/w1/devices/28-0416a1bab9ff
10 #May 27 21:33 /sys/bus/w1/devices/28-0416a1ac66ff
11 #May 27 21:35 /sys/bus/w1/devices/28-0516a207a4ff
12 #May 27 21:38 /sys/bus/w1/devices/28-0316a2193bff
13 #May 27 21:38 /sys/bus/w1/devices/28-0316a21383ff
14
15 # Eine Funktion:
16 # einen Sensor auslesen
17 #/sys/bus/w1/devices/
18
19 def readsensor(sensorID):
20     sensorfile = "/sys/bus/w1/devices/28-{}/w1_slave".format(sensorID)
21     file = open(sensorfile)
22
23     # Inhalt des Sensors:
24     # 64 01 4b 46 7f ff 0c 10 01 : crc=01 YES
25     # 64 01 4b 46 7f ff 0c 10 01 t=22250
26
27     # Suche nach YES
28     linecrc = file.readline()
29     match = re.search(": crc=[0-9a-f]{2} (YES|NO)",linecrc)
30
31     yesno = match.group(1)
32     if yesno != "YES":
33         return None
34         
35     # Temperatur raus
36     linetemp = file.readline()
37     match = re.search(" t=([-0-9]+)",linetemp)
38
39     temp = match.group(1)
40     temp = float(temp)/1000
41
42     file.close()
43
44     jetzt = datetime.datetime.now()
45     # print(jetzt)
46
47     # Schreiben des csv-files
48     file2 = open("badesaison.csv", "a", newline = "")
49     writer = csv.writer(file2, dialect = "excel")
50     writer.writerow([jetzt.strftime("%Y-%m-%d %H:%M"), sensorID, "{:.1f}".format(temp)])
51
52     file2.close()
53
54     # Nur für die Ausgabe wird gerundet
55     return temp
56     
57 sensoren = ["0416a1bab9ff","0416a1ac66ff","0516a207a4ff","0316a2193bff","0316a21383ff"]
58
59 error = False
60
61 for sensorID in sensoren:
62     temp = readsensor(sensorID)
63     if temp is None:
64         print("Fehler bei Sensor{}".format(sensorID))
65         error = True
66     else:
67         print('Sensor {}: {:.1f}°C'.format(sensorID,temp))
68
69 sys.exit(1 if error else 0)