ich möchte mir eine kleine, eigene Wetterstation bauen und die Daten entsprechend visualisieren. Dazu habe ich erstmal einen Sensor gebaut welcher mittels MQTT seine Messwerte (Temperatur, Luftfeuchte, Luftdruck) alle 5 sec an den Broker sendet.
Nun plane ich ein Pythonprogramm welches die Messwerte empfängt und für den Anfang in eine .csv Datei schreibt, daran versuche ich mich seit einigen Tagen erfolglos. Die Messwerte kommen in verschiedenen Topics um sie nicht durcheinander zu würfeln( "/innen/temp", "/innen/humidity", "innen/pressure" am liebsten wäre es mir ich würde alles in einer Datei erhalten zusammen mit einem Zeitstempel (Muster) "Datum, Uhrzeit, Temperatur(XX.X),Luftfeuchte(XX),Luftdruck(XXXX.XX)". Allerdings schaffe ich es nicht einmal die daten in einer gemeinsamen Zeile der Konsole auszugeben.
Code: Alles auswählen
import paho.mqtt.client as mqtt
temp = []
def on_message(client, userdata, msg):
#print(msg.topic+" "+(msg.payload))
if "/innen/temp" in (msg.topic):
temp = (msg.payload)
print(temp)
if "/innen/humidity" in (msg.topic):
humidity = int(msg.payload)
print(humidity)
if "/innen/pressure" in (msg.topic):
pressure = float(msg.payload)
print(pressure)
client = mqtt.Client()
client.on_message = on_message
client.connect("localhost", 1883)
client.subscribe("/innen/#")
client.loop_forever()
mittels diesem Code habe ich zumindest die Ausgabe in der Konsole, füge ich unter das letzte "if" noch
Code: Alles auswählen
print(temp, humidity, pressure)
hinzu, erscheint keine Ausgabe.
Nun bin ich mit meinem Latein am Ende und hoffe auf Hilfe.