Auf einem 1,3“ OLED Display möchte ich mit meinem LIRC gesteuerten Internet-Radio Programm auch Benzinpreise anzeigen. Diese Preise werden auf einem anderen RPi mit Node-Red mit einem
http-Request, alle 5 Minuten, geholt und über MQTT out auch an einem ESP8266 mit ESPEasy angezeigt.
Noch benutze ich für mein Internet-Radio-Programm Python 2.7 und Jessi. Mit der Umstellung auf Buster und Python 3 bin ich wegen LIRC bisher gescheitert.
Mein Testprogram mqtt_test.py zeigt die all 5 Minute in
den Preis als: Bpreise = „E10: Jet 1,179 Oil! 1,189“
Python
#!/usr/bin/env python
# coding: utf-8
from time import sleep
Bpreise = " "
Bpreise_save = "leer"
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe("esps/#")
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
Jet = str(msg.payload[1:6])
Oil = str(msg.payload[7:12])
Bpreise = 'Jet: '+Jet+' Oil: '+Oil
if Bpreise <> " ":
print 'wenn nicht blank '+Bpreise # Bpreise werden angezeigt
Bpreise_save = Bpreise
print 'save'+Bpreise_save # Bpreise_save werden angezeigt
return Bpeise_save
def main():
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("192.168.178.44", 1883, 60)
client.loop_start()
while True:
sleep(1)
#hier soll Bpreise_save verarbeitet werden
print 'Bpreise_save '+Bpreise_save #aber nichts kommt an
if __name__ == '__main__':
main()
Alles anzeigen
Als gelegtlicher Python trial and error Benutzer brauche ich mal eine Hinweis, wie die Preise
in der while True(): Loop
ankommen und verabeitet werden können.
Grüße aus Hamburg bei 29°C, Thomas