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