Ich bekomme Daten von einem Maschinensensor, was kw bekommt. Als Skript brauche ich nur verschiedene KW-Nummern, damit ich sie an die Datenbank senden kann. Ich möchte "Same number" drucken, wenn der neue Wert gleich dem letzten Wert ist (gleiche Zahl), ansonsten den Wert der Variable "print", wenn sie sich geändert hat. Wie kann ich das tun, wenn es für immer ist? Ich habe bereits nach dieser Frage gefragt, aber das war, als ich While-Schleife ohne mqtt forever_loop benutze, aber ich kann nicht in diesem Skript verwenden.Python, wie man überprüft, ob der Wert in mqtt geändert wurde
import paho.mqtt.client as mqtt
import json
import pymysql.cursors
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("QQ/QQ/QQQ/QQQ") #Just some random characters, I changed it
def on_message(client, userdata, msg):
arv=int(float(msg.payload.split(' ')[0]))
print(msg.payload.split(' ')[0])
if (arv>arv+1 or arv>arv-1):
print("Same number {0}".format(arv))
else:
print(" Number is {0} ".format(arv))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set("blank", password="blank")
client.connect("local", 0, 0)
client.loop_forever()
Output:
6.12
Same number 6
6.91
Same number 6
6.38
Same number 6
5.44
Same number 5
6.75
Same number 6
6.50
Same number 6
6.15
Same number 6
5.67
Same number 5
5.80
Same number 5
6.21
Same number 6
5.21
Same number 5
6.25
Same number 6
6.66
Same number 6
5.14
Same number 5
Der Code, den Sie geschrieben haben, ist die 'on_message' Funktionsdefinition fehlt – hardillb
Typo, es behoben ! – Somepub