Skip to end of metadata
Go to start of metadata
Autor
Logo


Status

STABLE

VersionV0.3.1
Min. LB Version

LB 1.0

Downloadhttps://github.com/JohannesHumer/serialusb-bridge/archive/V0.3.1.zip
ZweckEin Plugin um Serielle Befehle über UDP zu Senden Bidirektional
LanguagesEN, DE
Diskussion
 Version History...

Version 0.3.1

  • erste öffentliche Version

Version 0.3.2

  • Anleitung im Plugin erweitert

Inhalt



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 ender 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

Multilanguage Hinzufügen

Autoupdate Hinzufügen

Fragen stellen und Fehler melden



6 Comments

  1. Hallo. Ich habe bisher leider keinen Erfolg. Wo finde ich denn das Logfile? Ich möchte meine Paradigma Heizung auslesen und habe dazu eine kleine Box mit einem USB Ausgang.

    1. Hallo die logfiles sind im Hauptmenü des Loxberry unter : Logmanager==> mehr Logfiles ==> Serial-Usb- Bridge .


      Bei fragen kanst mich auch per Mail kontaktieren

  2. Hallo Johannes. Das Plugin läuft inzwischen super. Eine Frage hab ich aber noch. Wie kann ich sie dir denn per Mail stellen? Wo finde ich die Adresse?

    Happy Day und Dank, Frank

  3. Hi Johannes,

    kann mit deinem Plugin ein USB RLY16L Board ansteuern leider bekomme ich aber keine UDP Rückmeldung im UDP Monitor wenn ich die Statusabfrage absende.

    https://www.loxforum.com/forum/projektforen/loxberry/modifikationen-hacks/210570-bistabile-relais-auf-dem-loxberry-per-usb

    Jetzt vermute ich dass der Fehler bei den Parametern liegt aber es im Plugin keine Einstellmöglichkeiten gibt außer der Baudrate die mir keine Problem bereitet!    

        baudrate=19200,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_TWO,
        bytesize=serial.SEVENBITS


    Grüße Alex



  4. Hallo Johannes,
    zunächst vielen Dank dafür, dass Du Dir die Mühe gemacht hast und dieses Programm geschrieben hast.

    leider bekomme ich es nicht zum Laufen.
    meine Anwendung:
    ich habe eine Wetterstation, die im Halbduplex Betrieb sekündlich Daten (66Byte) als Stream über eine RS485 sendet.
    (9600 N 8 1) diese möchte ich über den Loxberry per UDP an den Miniserver leiten.

    aktuell habe ich den Eindruck, dass aus dem Loxberry keine Daten kommen.
    Ich habe mir im Diagnosemode der Loxone einen Trace angeschaut und die Portadresse, die ich aus der APP kenne, wird nie gesendet.

    Die App erkennt das Device am USB Port.   → die USB-ID lautet: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

    das Logfile sieht so aus:

    WARNING:root: Script von USB-1 neu Gestartet 02.10.2019 18:49:52

    WARNING:root: Script von USB-2 neu Gestartet 02.10.2019 18:49:57

    INFO:root:SCRIPT USB2 BEENDET DA ADAPERT NICHT AKTIVIERT IST

    WARNING:root: Script von USB-3 neu Gestartet 02.10.2019 18:50:02

    INFO:root:SCRIPT USB3 BEENDET DA ADAPERT NICHT AKTIVIERT IST

    WARNING:root: Script von USB-4 neu Gestartet 02.10.2019 18:50:07

    INFO:root:SCRIPT USB4 BEENDET DA ADAPERT NICHT AKTIVIERT IST

    → mehr nicht

    → wenn ich den RS485 ↔ USB Adaper abziehe kommt es zu Fehlermeldungen.

    → über eine Terminalprogramm habe ich mir die Daten von der Wetterstation angeschaut. diese sind plausibel.


    kannst Du mir eine Tip geben, woran es hängen könnte und wo ich noch schauen sollte.


    herzlichen Dank

    Alex




  5. Hallo Johannes, Hallo Community,

    Habe ein Problem mit der Konfiguration des Plugins/Miniserver, siehe meinen Forum Eintrag im Loxforum:

    https://www.loxforum.com/forum/projektforen/loxberry/plugins/214970-loxberry-serial-usb-bridge-verwendung-mit-arduino-nano

    Vielleicht kann mir ja jemand helfen.

    Vielen Dank im Voraus

    Fabian