MQTT-Client-Init via getattr (kein Type-Checker-Fehler bei CallbackAPIVersion)
Direkter Zugriff mqtt.CallbackAPIVersion wurde von Pylance bei paho-1.x- Stubs als "nicht exportiert" markiert. getattr umgeht das, gleiche 1.x/2.x-Kompatibilitaet zur Laufzeit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
8
app.py
8
app.py
@@ -122,9 +122,11 @@ if not MQTT_ENABLED:
|
|||||||
print("[mqtt] deaktiviert (MQTT_ENABLED=false) - keine Events", flush=True)
|
print("[mqtt] deaktiviert (MQTT_ENABLED=false) - keine Events", flush=True)
|
||||||
else:
|
else:
|
||||||
# paho-mqtt 2.x verlangt die CallbackAPIVersion, 1.x kennt sie nicht.
|
# paho-mqtt 2.x verlangt die CallbackAPIVersion, 1.x kennt sie nicht.
|
||||||
try:
|
# getattr statt direktem Zugriff -> kein Type-Checker-Fehler bei 1.x-Stubs.
|
||||||
_mqtt = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
|
_cb_api = getattr(mqtt, "CallbackAPIVersion", None)
|
||||||
except AttributeError:
|
if _cb_api is not None:
|
||||||
|
_mqtt = mqtt.Client(_cb_api.VERSION2)
|
||||||
|
else:
|
||||||
_mqtt = mqtt.Client()
|
_mqtt = mqtt.Client()
|
||||||
if MQTT_USER:
|
if MQTT_USER:
|
||||||
_mqtt.username_pw_set(MQTT_USER, MQTT_PASS)
|
_mqtt.username_pw_set(MQTT_USER, MQTT_PASS)
|
||||||
|
|||||||
Reference in New Issue
Block a user