Python Script umändern / Tempwerte einzelne Variablen zuweisen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich hoffe ihr könnt mir bissl helfen :bravo2:

    Ich habe folgendes Script wo funktioniert.

    #!/usr/bin/python
    # -*- coding: utf-8 -*-

    # Import der Module
    import sys
    import os

    # 1-Wire Slave-Liste lesen
    file = open('/sys/devices/w1_bus_master1/w1_master_slaves')
    w1_slaves = file.readlines()
    file.close()

    # Fuer jeden 1-Wire Slave aktuelle Temperatur ausgeben
    for line in w1_slaves:
    # 1-wire Slave extrahieren
    w1_slave = line.split("\n")[0]
    # 1-wire Slave Datei lesen
    file = open('/sys/bus/w1/devices/' + str(w1_slave) + '/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
    print(str(w1_slave) + ': %6.2f C' % temperature)

    sys.exit(0)


    Jetzt würde ich aber jedem Wert eine Eigene Variable zuweisen um diese einzeln auszugeben und wo anderst ( Webserver z.B.: ) einzeln abzufragen.
    Im Script oben werden alle derReihe nach abgefragt.

    Meine Tempwerte sind in folgenden Ordern abgelegt.

    28-000005745242
    28-000005682022
    28-00000568e8aa
    28-00000568b42e
    28-0000056866ee

    Also bräucht ich was mit 5 Variablen wie Temp1, Temp2 etc....

    Über Hilfe wäre ich Dankbar :thumbs1:

  • Python Script umändern / Tempwerte einzelne Variablen zuweisen? Schau mal ob du hier fündig wirst!

  • Ich bin absoluter Neuling und möglicherweise gibt es einen besseren bzw eleganteren Weg, aber so funktioniert es jedenfalls.

    Gespeichert werden die Werte in einer der Liste "temp".
    Ich hoffe das hat dir geholfen.

  • Temp ist in dem Fall eine Liste. Die einzelnen Werte kannst Du auslesen, in dem Du den Index (0, 1, 2,...) in eckigen Klammern angibst. Die kannst Du genau wie 'normale' Variablen verwenden.
    Die Lösung ist zwar grundsätzlich okay, Du kannst Dir allerdings nie wirklich sicher sein, an welcher Stelle dein geforderter Messwert steht. (Wenn beispielsweise ein Sensor hinzukommt).

    In dem Fall wäre es sinnvoller ein Dictionary zu nutzen und dabei die ID des Temperatursensors als Key anzuwenden. Das kannst Du dann beispielsweise wie folgt umsetzen:

    Anschließend kannst Du die Temperatur so ausgeben:

    Code
    print temp["28-000005745242"]

    Ich hab das nicht selbst getestet, aber es sollte so funktionieren. :)

    Gruß
    Chris

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!