Zum Ende der Metadaten springen
Zum Anfang der Metadaten
Autor
Logo

icon_64.png

Status

BETA

Version0.1.1
Kompatibilität

LB 0.2.3LB 1.2.2

Downloadhttps://github.com/christianTF/LoxBerry-Plugin-TCP2UDP/archive/master.zip
ZweckDieses Plugin ermöglicht eine echte, bidirektionale Kommunikation des Miniservers mit TCP-Geräten via UDP
 Version History...

Version 0.1.1

  • Beta 1


Inhalt



Download

GitHub Repository: https://github.com/christianTF/LoxBerry-Plugin-TCP2UDP

Releases: https://github.com/christianTF/LoxBerry-Plugin-TCP2UDP/releases

Während der BETA-Phase ist das Plugin nur in Englisch.

Funktion des Plugins

Der Miniserver unterstützt keine bidirektionale Kommunikation mit externen Geräten - er kann zwar Befehle senden, aber die Antworten nicht auswerten. Er kann auch keine Verbindung offen halten, um aktiv mitzuhören, was die Gegenstelle sendet.

Dieses Manko löst das TCP2UDP-Plugin - die bidirektionale Kommunikation ist am einfachsten mit einem Bild erklärt:

Das Plugin unterstützt auch das reine "Mithören". Nach dem Starten des Dienstes werden alle Meldungen vom externen Gerät per UDP an den Miniserver gesendet, auch wenn kein initialer Befehl vom Miniserver kam.

Konfigurationsoptionen

Alle Einstellungen werden sofort gespeichert. Damit diese auch wirksam werden, den Restart-Button drücken.

Der Restart-Button dient auch zum Beenden des Dienstes, wenn dieser nicht aktiv geschalten ist.

Hier sind die Einstellungen erklärt:

EinstellungPflichtBeschreibung
Erste Zeile
Gateway aktiv
Aktiviert und deaktiviert diese Host-Verbindung.
Kurzer Namex

Name des externen Geräts (zur Identifikation in Logfiles usw.)

Du solltest nur einige, wenige Zeichen verwenden, da dies auch in den Logdateien verwendet wird.

Hostname oder IPxHostname oder IP des externen Geräts, mit dem zu verbinden möchtest.
PortxPort des externen Geräts
Nur bei Bedarf verbinden

TCP-Verbindung zum externen Gerät nur bei Bedarf öffnen.

Aus ... Die Verbindung wird sofort geöffnet, eingehende Nachriten sofort weitergeleitet.

Ein ... Nur bei einem Eingangsbefehl wird die Verbindung geöffnet (und bleibt dann offen).

Zweite Zeile
Eingangsport am LoxBerryxDer Port, an dem das Plugin am LoxBerry auf eingehende Befehle für dieses Gerät hört
MiniserverxDer Miniserver, an den die Antworten per UDP gesendet werden
Miniserver UDP-PortxDer Miniserver-Port, an den die UDP-Nachrichten gesendet werden sollen
Prefix verwenden

Aus ... Die Antwort des externen Gerätes wird unverändert an den Miniserver gesendet (Standard)

Ein ... Jeder UDP-Antwort wird der "Kurze Name" des Geräts vorangestellt (Beispiel: Denon: Antwort)

Dritte Zeile
Initiales TCP-Kommando
Bei jedem Verbindungsaufbau (und Reconnect) wird dieser Befehl (String) an das externe Gerät gesendet. Die Zeile wird mit \n\r abgeschlossen.

Einrichtung in der Loxone Config Software

Virtuelle Ausgänge und Befehle Miniserver → LoxBerry → Externes Gerät erstellen

Virtuelle UDP-Eingänge und Befehle mit Befehlserkennung für die Antworten Externes Gerät → LoxBerry → Miniserver erstellen

Zum Testen kann in der Plugin-Verwaltung der Loglevel auf DEBUG gesetzt werden. Dabei werden alle ein- und ausgehenden Nachrichten im Protokoll festgehalten. Im Betrieb sollte der Loglevel wieder auf ERROR oder WARNING gestellt werden.

Roadmap

  • Beta-Test überstehen
  • Statusanzeige der Dienste
  • Buffering des Logfiles - Analyse/Ausschalten

Fragen stellen und Fehler melden

GitHub Issues: https://github.com/christianTF/LoxBerry-Plugin-TCP2UDP/issues

Spezielle Kommandos

Normalerweise werden alle vom Miniserver eingehenden Kommandos direkt an das externe Gerät weitergeleitet. 

Folgende eingehende Kommandos werden direkt vom TCP2UCP-Service ausgewertet und eignen sich zum Testen (z.B. mit Telnet):

KommandoFunktion
quitconnBeendet die aktuelle, eingehende Verbindung
quitdaemonBeendet das komplette Service für dieses externe Gerät


Fehlersuche / Debugging

Loglevel in der Plugin-Verwaltung auf Debug stellen.

Ausgabe der Meldungen an der Putty-Console:

pkill -f "tcp2udp-singlesocket.pl host="

/opt/loxberry/bin/plugins/tcp2udp/tcp2udp-singlesocket.pl host=HOST1

HOST1 Ist dabei das erste Gerät, HOST2 das zweite usw.


Konfigurationsdatei

Die Konfigurationsdatei wird automatisch vom Webinterface angelegt und kann für Debugging-Zwecke eingesehen werden.

SchlüsselwortStandardwertBeschreibung
Section [Main]
ConfigVersion1Interne Versionsnummer, der ggf. für Änderungen an der Config nach Updates benötigt wird
refreshdelayms150Verzögerung der Übermittlung an den Miniserver in Millisekunden
hostkeys-Komma-separierte Liste der in den folgenden Sektionen konfigurierten Hosts
Section HOSTx ([HOST1], [HOST2], usw.)
activatedTrueAktiviert und deaktiviert diese Host-Verbindung
name(Pflichtfeld)Name des externen Geräts (zur Identifikation in Logfiles usw.)
hostname(Pflichtfeld)Hostname oder IP des externen Geräts
hostport(Pflichtfeld)Port des externen Geräts
hostprotocoltcpDerzeit nur tcp
hostondemandFalseTCP-Verbindung zum externen Gerät on demand öffnen. Bei False wird die Verbindung sofort geöffnet, bei True wird die Verbindung erst bei einem eingehenden Befehl geöffnet.
lbinport(Pflichtfeld)Der Port, an dem das Plugin am LoxBerry auf eingehende Befehle für dieses Gerät hört
returnms1Die Miniserver-Nummer, an die die UDP-Nachrichten gesendet werden
returnport(Pflichtfeld)Der Miniserver-Port, an den die UDP-Nachrichten gesendet werden sollen
returnprefixFalse

False ... Die Antwort des externen Gerätes wird unverändert an den Miniserver gesendet

True ... Der UDP-Antwort wird der name des Geräts vorangestellt (Beispiel: Denon: Originalantwort)

hostinitialcommand
Bei jedem Verbindungsaufbau (und Reconnect) wird dieser Befehl (String) an das externe Gerät gesendet. Die Zeile wird mit \n\r abgeschlossen.