MacDuff Geschrieben August 12, 2021 at 16:29 Geschrieben August 12, 2021 at 16:29 tinkerforge, openhab3, paho-mqtt und meine python-scripts funktionieren prima zusammen. jetzt wollte ich die mqtt-bindings näher unterrsuchen - die direkte ansprache von bricklets etc per publish/subscribe sieht schon ganz attraktiv aus - aber ehrlich gesagt, ich versteh bei der sache bloß bahnhof. wie, wenn überhaupt, krieg ich das mit meinen python-programmen zusammen? kann mich da bitte jemand aufs richtige gleis setzen? danke. md Zitieren
rtrbt Geschrieben August 13, 2021 at 09:57 Geschrieben August 13, 2021 at 09:57 Damit ich das richtig verstehe: Du benutzt bereits die Python-Bindings für unsere Hardware, willst jetzt aber die MQTT-Bindings benutzen? Im Endeffekt funktioniert das wie folgt: Die MQTT-Bindings machen nichts anderes als auf MQTT-Nachrichten zu warten und dann selbst die Python-Bindings aufzurufen. Deshalb müssen die MQTT-Bindings permanent als Programm laufen. Wenn du dann z.B. mit paho-mqtt folgendes machst: mqttc.publish("tinkerforge/request/lcd_128x64_bricklet/AbC/get_identity", "") legen die MQTT-Bindings intern eine Instanz von BrickletLCD128x64 an und rufen darauf .get_identity() auf. Das Ergebnis bekommst du auf das Topic tinkerforge/response/lcd_128x64_bricklet/AbC/get_identity zurückgegeben. Die Topics entsprechen 1:1 den Python-Bindings-Funktionsaufrufen. Zitieren
MacDuff Geschrieben August 13, 2021 at 13:26 Autor Geschrieben August 13, 2021 at 13:26 (bearbeitet) danke erstmal. ich starte also die mqtt-bindings (bei mir in c:/python39/scripts, ebenso das angepasste bat-file). das nimmt allerdings keine kommandozeilen-parameter an und liefert nur die message: "Starting TF MQTT bindings 2.0.15" - und dann nix mehr. ich kann also broker usw nicht definieren... und deswegen komme ich wohl mit den beispielen nicht weiter. EDIT: ich kann die Bindings so starten: python.exe tinkerforge_mqtt --broker-host '192.168.20.42', dann funktioniert es. stimmt was mit den .bat nicht? Sieht so aus: @"C:\Python39\python.exe" "C:\Python39\Scripts\tinkerforge_mqtt" merci, md bearbeitet August 13, 2021 at 13:54 von MacDuff Zitieren
photron Geschrieben August 13, 2021 at 14:12 Geschrieben August 13, 2021 at 14:12 Schreib mal in die .bat Datei hinten dran noch ein %*, also: @"C:\Python39\python.exe" "C:\Python39\Scripts\tinkerforge_mqtt" %* Dann werden die Parameter auch durch gereicht. Das fehlt in der Dokumentation. Zitieren
MacDuff Geschrieben August 13, 2021 at 15:13 Autor Geschrieben August 13, 2021 at 15:13 ja genau, so haut es hin. danke. mit drei zeilen in der python-app kann man sich den manuellen start der MQTT-Bindings sparen: import subprocess mqtt_exec = 'C:/Python39/Scripts/tinkerforge_mqtt.bat' subprocess.Popen([mqtt_exec, '--broker-host=192.168.20.42']) md Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.