Umsetzung LastHeard To Mqtt (lh2mqtt) – TS3 Plugin für externes Display

OLED Display SSD1306
OLED Display SSD1306

 

Dieser Artikel beschreibt die Möglichkeit die LastHeard-Info (wer zuletzt gesendet/gesprochen hat) auf z.B. einem externen Display (sowie im TS3-Channel-Tab) anzuzeigen.
Die Kommunikation geschieht dabei über das IoT-Protokoll MQTT.

 

LED Matrixdisplay max7219

LED Matrixdisplay max7219

Dies ist z.B. dann besonders sinnvoll, wenn ich abends funkend auf der Couch sitze und der Teamspeak-PC am anderen Ende des Wohnzimmers steht.

Auf die Entfernung kann ich die Ausgabe des meist zu diesem Zweck eingesetzten LastTalking-Plugins nicht lesen – oder aber ich hab den PC komplett aus, kostet immerhin auch ein wenig Strom mit seinen zwei 27 Zoll Monitoren 😉

Auch kann ein Funkerfreund sich theoretisch solch ein Display aufstellen, ohne selbst ein Gateway zu betreiben oder TeamSpeak zu nutzen.

 

Bereitstellung der Daten

Um Daten darstellen zu können, müssen sie natürlich zuerst einmal verfügbar sein.

Als vorübergehende Lösung (Proof-Of-Concept) habe ich deshalb ein TeamSpeak 3 Plugin geschrieben:
https://github.com/Little-Ben/ts3client-pluginsdk-lh2mqtt/releases/tag/1.x.0
(Konfiguration über TS3-Hauptmenü ‚Plugins | lh2mqtt | Konfiguration editieren‘).

Es nutzt die Mosquitto-Commandline Tools zum Versenden der Daten an (m)einen MQTT-Broker.
Neben TeamSpeak 3 und dem Plugin lh2mqtt benötigt der ausführende Windows-PC noch die Mosquitto-Commandline-Tools (https://mosquitto.org/download); sie übernehmen die eigentliche MQTT-Kommunikation.

Thin-Client Fujitsu Futro S720

Thin-Client Fujitsu Futro S720

Das Plugin benötigt natürlich ein 24/7-laufendes Teamspeak.
Zu diesen Zweck habe ich den Thin-Client Fujitsu Futro S720 gekauft und installiert. Er läuft bis auf Weiteres im Testbetrieb und benötigt schmale 5-12 W.
Mit seinen 4GB RAM und dem 1,65 GHz 2-Kern Prozessor ist er nicht der schnellste, aber für den gedachten Einsatzzweck genügt es.

Nun ist es natürlich nicht zielführend, wenn jeder, der Interesse an der Nutzung der MQTT-Daten hat, seine eigene Datenaufbereitung betreibt – inbesondere deshalb nicht, weil ja die LastHeard-Daten serverweit die gleichen sind.

Aktuell besteht keine Möglichkeit der Bereitstellung der Daten auf dem Server von Gateway-Deutschland – es ist aber in Prüfung, inwiefern dies zentral umgesetzt werden kann.

 

Daten zum lesenden Zugriff auf meine MQTT-Testinstanz gibt es auf Anfrage in unserer Whatsapp/Telegram-Gruppe.

Da ich nicht weiß, wie sich mein MQTT-Server mit diversen externen Zugriffen verhält,
bitte ich zunächst darum diese Zugangsdaten NUR an unsere Gateway-Betreiber weiter zu geben und mit Bedacht zu nutzen!

Ich behalte mir vor den MQTT-Zugriff ohne Vorwarnung einzustellen – wie gesagt, aktuell ist das Ganze nur im Testbetrieb!

 

Darstellungsvarianten

Da MQTT ein offener Standard ist, kann grundsätzlich jedes MQTT-fähige-Programm, jede -App oder -Display genutzt werden um die LastHeard-Daten zu visualisieren.
Nachfolgend eine kleine Auswahl an MQTT-Tools, die für diesen Zweck denkbar sind:

Screenshot der Android App: MQTT Dash

Android App: MQTT Dash

 

Screenshot der Android App: MyMQTT

Android App: MyMQTT

 

Screenshot des Windows-Programms: MQTT-Explorer

Windows-Programm: MQTT-Explorer

 

Screenshot des Windows-Programms: MQTT-CLI

Windows-Programm: MQTT-CLI (noch unveröffentlicht)

 

Display-Hardware

Natürlich sind die eingangs abgebildeten Displays kein Out-of-the-Box-Produkt, sondern müssen an die Gegebenheiten angepasst werden, meist kommt dazu Mikrocontroller auf Basis von Arduino zum Einsatz. Ich verwende z.B. gerne den Wemos D1 mini mit eigenen Sketchen (der Programmcode). Ggf kann man hierzu auch ESP-Easy als fertige Firmware für beispielsweise den ESP8266 oder den ESP32 nutzen – das müsste man mal im Detail durchspielen und ist vielleicht mal was für einen weiteren Artikel.

Hinweis: Manchmal macht die SSL-Konfiguration ein wenig Schwierigkeiten, hierzu benötigt ihr dann ggf. eine Zertifikatsdatei der CA des betreffenden MQTT-Servers.

Von lh2mqtt wird erstmal der komplette Username der sprechenden Station aus TeamSpeak übergeben. Für meinen Einsatzzweck bereite ich diese Informationen dann extern über Node-Red auf, so dass, sofern möglich, nur der Ort des Gateways und die ‚Funkparameter‘ angezeigt werden – so wird aus „PMR 08 114.6 ULMET JN39ro“ der Text „ULMET (PMR 08)“.
Dies ist aber wie gesagt nachgelagert und nicht Teil des lh2mqtt-Plugins.

 

lh2mqtt im Channel-Tab

Da ich in meinem TeamSpeak (und auch sonst) das Dark-Theme verwende, lassen sich die Farben rot/grün des LastTalking-Plugins nicht immer gut lesen oder sind für meinen Geschmack zu grell.
Deshalb habe ich in lh2mqtt diese Funktionen ebenfalls eingebaut mit der Möglichkeit die Farben sowie die begleitenden Texte einzustellen.
Auch kann über die Konfiguration festgelegt werden, ob nur die Start-, die Stop-Info oder beides angezeigt werden soll.

TeamSpeak 3 - Channel Tab

TeamSpeak 3 – Channel Tab

 

Ich wünsche Euch beim Ausprobieren viel Spaß.

Wir übernehmen keine Verantwortung für Schäden die durch einen Nachbau oder die Nutzung entstehen !
Dies ist nur ein Erfahrungsbericht eines DIY Projekts.

Das könnte dich auch interessieren …

2 Antworten

  1. Ingo Koch sagt:

    Danke Ben für den Tollen Beitrag, 73 DAD622

    3
  2. Es gibt eine neue Version des Plugins lh2mqtt: 1.26.1 / 1.24.1 / 1.23.1

    Die jeweils aktuellen Versionen des Plugins lh2mqtt findet ihr immer unter:
    https://github.com/Little-Ben/ts3client-pluginsdk-lh2mqtt/releases

Schreibe einen Kommentar