MQTT subscribe multiple topics
Verfasst: Sonntag 22. Oktober 2023, 07:59
Hallo zusammen,
ich komme aktuell nicht weiter und benötige euer Hilfe.
Es gibt die Möglichkeit mehrere MQ Channel's mit einem mal auszulesen. Also pro Sekunde 4 Chanels gleichzeitig zu lesen.
In meinen bisherigen test script bekomme ich nur pro Sekunden einen Wert zurück und das ist zu langsam.
In der Doku steht was von einer Liste. Hatte ich porbiert geht aber nicht.
Für eure Hilfe wäre ich sehr dankbar.
Gruß
Christoph
ich komme aktuell nicht weiter und benötige euer Hilfe.
Es gibt die Möglichkeit mehrere MQ Channel's mit einem mal auszulesen. Also pro Sekunde 4 Chanels gleichzeitig zu lesen.
In meinen bisherigen test script bekomme ich nur pro Sekunden einen Wert zurück und das ist zu langsam.
Code: Alles auswählen
def mqs(mq_chn):
"""_summary_
Args:
mq_chn (string): Channel auf dem MQ Server.
Returns:
float: Ist der Wert vom abgefragtem Channel im MQ.
"""
msg = subscribe.simple(mq_chn, hostname="192.168.23.27",
auth={'username':"xxxxx", 'password':"xxxxxx"})
print("%s" % (msg.payload))
#print(msg.topic+" message Wert ist: {}".format(msg.payload.decode("utf-8")))
Wertzaehler = format(msg.payload.decode("utf-8"))
Wertzaehler = float(Wertzaehler)
Wertzaehler = round(Wertzaehler,2)
return Wertzaehler
Code: Alles auswählen
(function) def simple(
topics: str | list[str], <------------------------------- Hier beschrieben!!!!
qos: int = 0,
msg_count: int = 1,
retained: bool = True,
hostname: str = "localhost",
port: int = 1883,
client_id: str = "",
keepalive: int = 60,
will: _Msg | None = None,
auth: _Auth | None = None,
tls: _TLS | None = None,
protocol: int = 4,
Gruß
Christoph