Moin,
vorweg: ich habe nur rudimentäre Python-Kenntnisse.
Ich möchte aus einem Python Programm eine Funktion aufrufen (Temperaturabfrage) und die Ergebnisse anschließend weiter verarbeiten. Die Abfrage selbst funktioniert gut.
Python
from machine import Pin
import onewire, ds18x20, time
SensorPin = Pin(14, Pin.IN)
sensor = ds18x20.DS18X20(onewire.OneWire(SensorPin))
#die Messwerte sollen diesen Variablen zugewiesen werden
Vorl=()
Rueckl=()
Auss=()
def TempAbfrage(Vorl, Rueckl, Auss):
# die print Befehle werden später gelöscht
roms = sensor.scan()
print(roms)
Sens1 = (bytearray(b'(\xffd\x0e}DKj')) #vVorlauf
#print ("Sensor1", Sens1)
Sens2 = (bytearray(b'(\xffd\x0e}p\x1e\x98')) #Ruecklauf
#print ("Sensor2", Sens2)
Sens3= (bytearray(b'(\xffd\x0er:C\x9d')) # Aussen
#print ("Sensor3", Sens3)
sensor.convert_temp()
time.sleep(5)
for rom in roms:
temperature = round(sensor.read_temp(rom),1)
if rom == Sens1:
Vorl = temperature
print("Vorlauf :", Vorl)
elif rom == Sens2:
Rueckl = temperature
print("Rücklauf :", Rueckl)
elif rom == Sens3:
Auss = temperature
print("Außen :", Auss)
TempAbfrage(Vorl, Rueckl, Auss)
print("Vorlauf :", Vorl, "°C")
print("Rücklauf :", Rueckl, "°C")
print("Aussen :", Auss, "°C")
print()
Alles anzeigen
Als Ausgabe bekomme ich:
Code
>>> %Run -c $EDITOR_CONTENT
[bytearray(b'(\xffd\x0e}DKj'), bytearray(b'(\xffd\x0e}p\x1e\x98'), bytearray(b'(\xffd\x0er:C\x9d')]
Vorlauf : 24.4
Rücklauf : 24.2
Außen : 24.2
Vorlauf : () °C
Rücklauf : () °C
Aussen : () °C
Wie muss ich die Funktion/den Funktionsaufruf ändern, damit "Vorl, Rueckl, Auss" weiter verarbeitet werden können? (Bitte keine neuen Fragestellungen o.ä. einbringen).
Hans-Jürgen