Jump to content

MQTT Bindings: Wie Bricklets eines zweiten Stacks über zweite IP einbinden?


maxico

Recommended Posts

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.
 

bearbeitet von maxico
Link zu diesem Kommentar
Share on other sites

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

 

Link zu diesem Kommentar
Share on other sites

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 

Link zu diesem Kommentar
Share on other sites

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

bearbeitet von maxico
Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...