Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5991
| From | Stefan Clauß <st_clauss@gmx.de> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | [Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. |
| Date | 2023-06-21 14:01 +0200 |
| Message-ID | <op.16v01ec0q0n66g@desktop-ekoajh9> (permalink) |
| References | <u64v9c$2041$1@news1.tnib.de> |
Hallo,
versuche es mit self.on_connect und self.on_message jeweils auf der rechten
Seite der Zuweisung.
VG
Stefan
Am .06.2023, 19:12 Uhr, schrieb Marc Haber
<mh+usenetspam1118@zugschl.us>:
> Hallo,
>
> ich habe hier das abgespeckte, nicht lauffähige Teilprogramm:
>
> |#!/usr/bin/python
> |
> |import paho.mqtt.client as mqtt
> |
> |class ApplianceMonitor:
> | """the main ApplianceMonitor object"""
> |
> | def __init__(self):
> | # do something intelligent
> |
> | def on_connect(self, client, userdata, flags, rcode):
> | client.subscribe('tele/wama/SENSOR')
> |
> | def on_message(self, client, userdata, msg):
> | # do something intelligent with msg
> |
> | def main(self):
> | client = mqtt.Client()
> | client.on_connect = on_connect
> | client.on_message = on_message
> |
> | client.connect('mqtt.local', 1883, 60)
> |
> | client.loop_start()
> |
> | while True:
> | time.sleep(30)
> | # do something intelligent with the accumulated data
> |
> |
> |if __name__ == "__main__":
> | amon = ApplianceMonitor(args)
> | amon.main()
> |
> |# end of file
>
> Ich habe die ganze Applikation in eine Klasse ApplianceMonitor
> ausgelagert als Ergebnis der Diskussion von vor einem halben Jahr,
> weil ich so ohne globale Statusvariablen auskomme und die in der
> Klasse verstecken kann (hier nicht sichtbar weil sie der Minimierung
> des Codes zum Opfer gefallen sind).
>
> Leider haben die beiden Callbackfunktionen von paho eine vorgegebene
> Signatur und können deswegen keine Methoden des ApplianceMonitor sein.
> Wenn ich die Initialisierung des MQTT-Moduls ins Hauptprogramm
> verlagere, bin ich auf ein einziges Applikationsobjekt limitiert (was
> in der Tat blöd ist weil ich vielleicht später das Monitoring mehrerer
> MQTT-Topics mit mehreren Objekten des Applikationstyps machen möchte.
> Oder geht das sowieso nicht weil ich nur eine client.loop pro Programm
> haben kann?
>
> Ist das paho-Modul blöd oder ich? Oder geht das halt nicht anders?
>
> Grüße
> Marc
--
Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
Back to de.comp.lang.python | Previous | Next — Previous in thread | Find similar
paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Marc Haber <mh+usenetspam1118@zugschl.us> - 2023-06-11 19:12 +0200
[Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Hartmut Goebel <h.goebel@goebel-consult.de> - 2023-06-11 20:52 +0200
Re: [Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Marc Haber <mh+usenetspam1118@zugschl.us> - 2023-06-11 21:41 +0200
Re: [Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2023-06-11 22:06 +0200
[Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Hartmut Goebel <h.goebel@goebel-consult.de> - 2023-06-11 22:09 +0200
[Python-de] Re: paho-mqtt und vorgegebene Callback-Funktionen in einer Klasse. Stefan Clauß <st_clauss@gmx.de> - 2023-06-21 14:01 +0200
csiph-web