maxico Posted November 21, 2023 at 09:55 PM Share Posted November 21, 2023 at 09:55 PM (edited) Hallo zusammen, hätte zur Konfiguration der MQTT Bindings eine Frage: In der Datei tinkerforge_mqtt.cmdline ist die IP der Ethernet Master Extension eingetragen: -–ipcon-host 192.168.178.37 Zusätzlich der Link auf die Datei deamon-init-msgs für die Aktivierung der Callbacks. --init-file /etc/deamon-init-msgs Dort ist z.B. “tinkerforge/register/io16_bricklet/wjW/interrupt”: {“register”: true} eingetragen Mit dieser Konfig funktioniert es soweit, dass der Broker die Änderungen an den Eingängen von diesem IO16 mitbekommt. Hier im Netzwerk ist noch eine zweite Ethernet Master Extension auf einem zweiten Stack. Wie kann man die Callbacks der Bricklets in diesem zweiten Stack aktivieren? Was müsste in der tinkerforge_mqtt.cmdline und in der deamon-init-msgs eingetragen werden? Hintergrund ist die Umstellung von OH2 auf OH4 und damit verbunden der Umstieg vom echten Tinkerforge-OH-Binding auf den Umweg über MQTT. Die Tinkerforge MQTT Bindings laufen auf einem Raspberry 3b mit openhabian und hier läuft auch mosquitto. In dem echten TF-OH-Binding konnte man einfach eine zweite IP angeben. Edited November 22, 2023 at 12:31 PM by maxico Quote Link to comment Share on other sites More sharing options...
duaw Posted November 22, 2023 at 01:47 PM Share Posted November 22, 2023 at 01:47 PM Hallo! Ich habe mehrere Instanzen des service unter Linux am laufen. tinkerforge_mqtt_1 , tinkerforge_mqtt_2 , … Jede Instanz bedient einen host. Cheers, Uwe Quote Link to comment Share on other sites More sharing options...
maxico Posted November 22, 2023 at 08:38 PM Author Share Posted November 22, 2023 at 08:38 PM Hallo, danke! Mit dem (zweiten) Start von tinkerforge_mqtt --ipcon-host 192.IP.ZWEITER.STACK --init-file deamon-init-msgs2 funktioniert es. In der deamon-init-msgs2 sind die bricklets vom zweiten stack genannt. Z.B. “tinkerforge/register/industrial_digital_in_bricklet/hZukk/interrupt”: {“register”: true} Jetzt ist die zweite Instanz aber von der Kommandozeile aus gestartet. Drei Fragen: - Wie kann man den service (per apt installiert) so schön klonen und umbenennen wie Du sie genannt hast: tinkerforge_mqtt_1 tinkerforge_mqtt_2. - Wie kann man dem zweiten Service mitteilen dass er eine zweite tinkerforge_mqtt.cmdline2 mit dem --ipcon-host 192.IP.ZWEITER.STACK und --init-file deamon-init-msgs2 aufrufen soll? - Wie bekommt man den zweiten service in den autostart? Gruß, Max Quote Link to comment Share on other sites More sharing options...
duaw Posted November 23, 2023 at 07:06 AM Share Posted November 23, 2023 at 07:06 AM Ich habe mehrere Dateien z.B. mit dem Namen Tinkerforge_mqtt_111.service (111 Ende der lokalen IP vom Stapel) , darin den Service definiert und mit Standard-Bord-Mitteln von Linux (die ich immer neu googeln muss) als Service eingerichtet. [Unit] Description=Tinkerforge MQTT Bindings on master brick 192.168.1.111 After=brickd.service After=mosquitto.service [Service] ExecStart=/usr/bin/tinkerforge_mqtt --broker-host 192.168.1.18 --ipcon-host 192.168.1.111 --global-topic-prefix tinkerforge/111 [Install] WantedBy=multi-user.target Das mit 112, 113, 114. Läuft. Cheers, Uwe Quote Link to comment Share on other sites More sharing options...
maxico Posted November 26, 2023 at 08:28 PM Author Share Posted November 26, 2023 at 08:28 PM (edited) Danke das hat sehr geholfen! Ganz verstanden habe ich es zwar nicht, aber es funktioniert: Unter /etc/systemd/system ist die tinkerforge_mqtt_2ndstack.service angelegt: [UNIT] Description=Starte das Tinkerforge MQTT Binding ein zweites mal um auf dem zweiten Stack 192.168.178.79 zugreifen zu können After=brickd.service After=mosquitto.service [Service] ExecStart=/usr/bin/tinkerforge_mqtt --ipcon-host 192.168.178.79 --init-file /etc/deamon-init-msgs2 --global-topic-prefix tinkerforge/79 [Install] WantedBy=multi-user.target In der deamon-init-msgs2 sind die bricklets vom zweiten Stack angegeben (callbacks registriert). Hatte gehofft dass alle bricklets in einer deamon-init-msgs angegeben werden können. Das funktioniert scheinbar nicht. Der Service muss aktiviert werden sudo systemctl enable tinkerforge_mqtt_2ndstack.service entweder laden/starten oder ein reboot sudo systemctl start tinkerforge_mqtt_2ndstack.service Danke nochmal Edited December 30, 2023 at 04:17 PM by maxico Quote Link to comment Share on other sites More sharing options...
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.