Hallo zusammen,
leider ging durch das Auslagern der ursprüngliche Code auf den ich mich bezogen habe verloren:
Python
#!/usr/bin/python3
import os
import sys
import time
def Aussentemperatur():
# 1-wire Slave Datei lesen
file = open('/sys/bus/w1/devices/10-0008034b525c/w1_slave')
filecontent = file.read()
file.close()
# Temperaturwerte auslesen und konvertieren
stringvalue = filecontent.split("\n")[1].split(" ")[9]
temperature = float(stringvalue[2:]) / 1000
# Temperatur ausgeben
rueckgabewert = '%6.2f' % temperature
return(rueckgabewert)
def Innentemperatur():
# 1-wire Slave Datei lesen
file = open('/sys/bus/w1/devices/10-0008034c24c7/w1_slave')
filecontent = file.read()
file.close()
# Temperaturwerte auslesen und konvertieren
stringvalue = filecontent.split("\n")[1].split(" ")[9]
temperature = float(stringvalue[2:]) / 1000
# Temperatur ausgeben
rueckgabewert = '%6.2f' % temperature
return(rueckgabewert)
print ("Temperaturabfrage")
x = 0
while x <= 1:
messdaten = Aussentemperatur()
print ("Außentemperatur : ", messdaten, "°C"),
messdaten = Innentemperatur()
print ("Innentemperatur : ", messdaten, "°C",)
time.sleep(300)
Display More
Leider wird in allen Foren, in denen die Abfrage des DS1820 mit Python beschrieben ist, immer der selbe Code beschrieben:
Quote
# Temperaturwerte auslesen und konvertieren
stringvalue = filecontent.split("\n")[1].split(" ")[9]
temperature = float(stringvalue[2:]) / 1000
Damit sind aber nur Temeperaturen >= 0°C auswertbar. Fällt die Temeperatur unter 0, geht der Wert auf über 4000 hoch.
Leider bin ich nicht fit genug um das Programm so anzupassen dass auch im Minusbereich der richtige Wert angezeigt wird.
Wer kann mir helfen?