NEWS
MQTT-Adapter wird nicht grün
-
Moin,
ich habe ein MQTT-Script zusammengefrickelt, welches auf dem SmartMirror läuft.Das Scipt funktioniert, aber da ist vermutlich ein kleiner Fehler drin, weshalb der Adapter nicht grün wird. Also wie gesagt- es funktiniert auch alles aber ich würde das Script auch gern sauber haben.
Vielleicht ahben wir ja einen Profi der ne Idee hat.
#!/usr/bin/env python3 #source: https://www.thedigitalpictureframe.com/control-your-digital-picture-frame-with-home-assistents-wifi-presence-detection-and-mqtt/ import paho.mqtt.client as mqtt import subprocess def hdmi_on(): CONTROL = "vcgencmd" CONTROL_BLANK = [CONTROL, "display_power", "1"] subprocess.call(CONTROL_BLANK) print ( "I turned the screen on!" ) def hdmi_off(): CONTROL = "vcgencmd" CONTROL_BLANK = [CONTROL, "display_power", "0"] subprocess.call(CONTROL_BLANK) print ( "I turned the screen off!" ) def on_connect(client, userdata, flags, rc): print("Connected to MQTT broker") def on_message(client, userdata, msg): print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload)) if msg.payload.decode() == "true": hdmi_on() client.publish("SmartMirror/monitor", "true", qos=0, retain=True) elif msg.payload.decode() == "false": hdmi_off() client.publish("SmartMirror/monitor", "false", qos=0, retain=True) else: pass def on_subscribe(client, userdata, mid, granted_qos): print("Subscribed to topic : " + str(mid) +" with QoS" + str(granted_qos)) client = mqtt.Client() client.username_pw_set("user", "passwort") client.connect( "IP", MQTT-Port, 60) client.subscribe( "SmartMirror/monitor" , qos=0) client.on_connect = on_connect client.on_message = on_message client.loop_forever()
-
@oberfragger sagte in MQTT-Adapter wird nicht grün:
Im Original ist MQTT-Port gesetzt:
Bei dir ist er nicht definiert? -
@mcu doch doch.
Das habe ich nur blöd in meinem Posting gemacht.Standard-Port ist doch 1883, ich habe den auf 1888 geändert und wollte mit der Anpassung im Code eigentlich die Diskussion reduzieren warum ich 1888 habe (aktuell läuft noch der Sonoff auf 1883).
-
@oberfragger Kommen Daten am Adapter an? Dann passt alles. Der wird nur grün und bleibt grün, wenn zumindest einem Gerät eine Verbindung besteht. Wenn das Gerät Daten sendet und die Verbindung danach wieder schließt, wird der Adapter wieder gelb, da ja keine Verbindung mehr besteht.
Gruß, Jürgen
-
Ich weiß nicht, ob dies der richtige Ort für meine Nachfrage ist, also ggf. gerne den Beitrag verschieben ...
Ich habe gestern den MQTT Broker/Client auf die Version 2.4.0 aktualisiert, an den Einstellungen aber nichts geändert. Zwei Probleme sind aufgetreten:
- Die Instanzen werden nicht mehr "grün", sondern nur noch "gelb". Angezeigt wird "Verbunden mit Host = wahr", "Lebenszeichen = wahr" und "Verbunden mit mqtt = falsch". Ich nutze den Adapter, um PV-Leistungsdaten von meinem Wechselrichter zur openWB zu übertragen. Das scheint aber weiterhin zu funktionieren.
- Jedesmal, wenn per mqtt ein Wert gesetzt wird, erscheint das im Log. Das war vorher nicht der Fall und ist unschön, weil damit das Log geflutet wird.
-
Ich habe noch einmal im Forum gesucht und einen Fall gefunden, wo der MQTT-Adapter auch "gelb" blieb. Da war die Erklärung, dass er erst "grün" wird, wenn sich ein Gerät über MQTT mit dem ioBroker verbindet.
Die Anwendung bei mir ist, dass ich aus meinem PV-Wechselrichter Daten auslese und in die openWB schreibe. Aber keines der beiden Geräte verbindet sich selbst mit dem ioBroker. Ist das die Erklärung für die Meldung "Verbunden mit MQTT: falsch"?Wobei dann immer noch die Frage bliebe, warum der Adapter vor dem Update "grün" war ...