Plugin-Daten
AutorJohannes Humer
Logo
StatusSTABLE
Version3.1.0
Min. LB Version3.0
Release Downloadhttps://github.com/JohannesHumer/serialusb-bridge/releases/download/V3.1.0/serialusb-bridgev3.1.0.zip
BeschreibungEin Plugin um Serielle Befehle über UDP zu Senden Bidirektional
V0.3.2 läuft auf loxberry V2
SprachenEN, DE
Diskussionhttps://www.loxforum.com/forum/projektforen/loxberry/plugins/410439-serial-usb-bridge-treiberproblem-rs232-usb-adapter-mit-ftdi-chip

Serial-USB-Bridge

Version History...


Einleitung

Funktion des PLugins: Dieses Plugin soll eine einfache Datenübertragung zwischen seriellen Adaptern und Netzwerkgeräten (Loxone) per UDP ermöglichen.

Ich verwende dieses Plugin um :

  1. Meinen PioneerAVR zu Steuern.  Diesen habe ich über einen Seriellen USB Adapter an meinen Loxberry angeschlossen
  2. Serielle Komandos von Einplatinencomputern weiterzugeben (Arduino)

Download

Der Download ist über Github möglich

Installation

Bei der Installation ist auf nicht besonderes zu achten.

Konfigurationsoptionen

Grundsätzlich:  Miniserver; Empfangsport am Miniserver, Plugin Aktiviert  oder nicht

Pro USB Gerät:

  • Aktiviert JA/NEIN
  • USB Baudrate( Standard 9600)
  • Der Empfangsportam Loxberry auf den die Daten vom Miniserver geschickt werden (Pro USB Gerät ein anderer Port!)
  • Die Präfix die den Daten Vorangestellt wird die zum Miniserver geschickt werden(leer für nichts)
  • Die Eindeutige USB ID des Gerätes auf dem Loxberry

Das Loglevel kann eingestellt werden um den Datenfluss im log  zu Überprüfen

Mit "ABFRAGE AKTUALISIEREN " werden bis zu 4 USB Geräte die am Loxberry angeschlossen sind aufgelistet

Einstellungen der Adapter:

Zuerst die Abfrage starten;  es werden die angeschlossenen USB-Geräte aufgelistet. Zum Prüfen ob mann die richtige ID hat einfach den Adapter ausstecken und nochmal abfragen. Die ID aus dem Feld kopieren und in das Feld für den USB Adapter einfügen; Baud-Rate einstellen(Standrd9600).

Empfangsport: ist der Port am Loxberrx an den die Daten vom Miniserver gesendet werden ; Es darf der gleiche Port nicht 2-mal vorkommen

Das Heist:  Für jeden USB Empfäger ein eigenes Viruelles Gerät in Loxone einfügen

PRAEFIX : Hier kann die Präfix eingestellt werden, die Seriell empfangenen Daten vorangestellt wird.

zb.:

PRÄFIX: USB-1=

Serielle Daten: test\r 

Daten( String) der pe UDp gesendet wird:  USB-1=test\r

Speichern.

Nach einem Neustart ist das Script aktiv;

Ebenfalls wird im Hintergrund täglich geprüft ob die Scripte laufen oder nicht. Fehler sind in der Logdatei aufgeführt

Einrichtung in der Loxone Config Software

DATEN:

für z.b.: USB 1

Von UDP(LOXONE) zu Seriell:

Für USB 1 bitte die Präfix "USB-1=" den Daten voranstellen

Für USB 2 bitte die Präfix "USB-2=" den Daten voranstellen

…..

In der Loxone Config zuerst einen Virtuellen Ausgang anlegen.

Dann für jedes Signal das gesendet werden soll einen "Virtueller Ausgang Befehl" anlegen und bei jedem Befehl USB-1= vorstellen ; Ebenfalls am Sender der Daten den Zeilenumbruch nicht vergessen \r

Somit erkennt der Loxberry auf welchen Adapter die Daten gesendet werden müssen

Von Seriell zu UDP:

Gleiches Prinzip: Die Daten werden empfangen und es wird die eingegebene Präfix ( Standard USB-1=) vorangestellt.

Verwendungsmöglichkeiten

Ich verwende dieses Plugin um :

  1. Meinen PioneerAVR zu Steuern.  Diesen habe ich über einen Seriellen USB Adapter an meinen Loxberry angeschlossen
  2. Um meine Fensterkontakte zu überwachen:  Die Fenster werden mit Reedkontakten an 2 Arduino NANO's angeschlossen ; diese senden den Status jedes Pins an die Serielle Schnittstelle ; diese ist per USB-Kabel am Loxberry angeschlossen.

Die  Daten die Seriell am Loxberry ankommen werden dann per udp an den Miniserver geschickt.

Den Arduino Scetch von 1. und 2. Arduino kann ich bei bedarf per mail zukommen lassen

In meinem Fall habe ich die Eingeschränke IO Anzahl des Raspberry durch die Arduino nano's erweitert.

So habe ich 37 Eingänge die ich frei verwenden kann.

Ablauf: Die Reedkontakte sind an +5V angeschlossen ; die Arduino IO sind mit jeweils einem Pulldown-widerstand auf Masse gezogen um bei offenem Kontakt keine falschen Werte zu senden.

Beim einstecken des USB des Arduino1 wird dieser automatisch resettet; dadurch wird dann im Programm der PIN 13 auf High gelegt um Arduino 2 zu resetten.

Arduino1 Sendet die Daten direkt auf die Serielle Schnittstelle(USB)

Arduino 2 Sendet die Daten seriell über die Pins zu Arduino1 der die Daten wiederum auf die serielle Schnittstelle(USB) schreibt.

Kabellängen zu den einzelnen Kontakten über Cat 6 Kabel getestet 40m  kein Problem.

Roadmap

Nothing to do ;-)