Über FHEM gesteuerte USB Switches?

Begonnen von shawly, 16 September 2015, 10:34:08

Vorheriges Thema - Nächstes Thema

shawly

Hi zusammen,

ich wollte ein kleines Projekt starten, kann zwar löten, bin aber nicht wirklich sehr versiert wenn es um Elektrotechnik geht.

Anforderung

Ich besitze momentan drei mechanische USB Switches von Delock (brauchen keinen Strom):

  • einen um Tastatur und Maus zwischen meinem PC und meinem XIM4 für meine Spiele-Konsolen zu wechseln
  • einen um den XIM4, zwischen meinen 4 Spiele-Konsolen zu wechseln
  • einen um meinen 360 Controller zwischen PC und HTPC zu wechseln
Nun möchte ich die Switches modden, damit ich diese per FHEM steuern kann. Somit kann ich, z.B. sobald sich meine Xbox einschält, den Input des Switches automatisch wechseln lassen, ohne aufstehen zu müssen. Oder wenn sich mein HTPC einschält den Input wechseln lassen, um meinen 360 Controller an diesem zu nutzen. 8)

Warum kein Raspberry?

Da drei RaspberryPis zwar bequem wären weil die GPIO pins einfach zu bedienen sind, aber mit WLAN-Stick etc. doch sehr auf den Geldbeutel drücken, wollte ich das Ganze mit einem kleinen Arduino (Nano bzw. ein Micro Pro oder ein Mini Pro Klon oder sowas in der Art) lösen, welcher ins Gehäuse des USB Switches kommt und per USB an meinen Heimserver, auf dem FHEM läuft, angeschlossen wird und das Ganze dann darüber gesteuert wird.

Warum keine (per Hotkey/Seriell steuerbaren) KVM Switches?

Das hat einige Gründe, Hotkey gesteuerte KVM Switches fallen schon deshalb raus, weil ich die oben genannten Switches 2. und 3. nicht per Hotkey steuern kann, da dort keine Tastatur angeschlossen ist, lediglich an Switch 1. hängt eine Tastatur. Also Hotkey steuerbare Switches fallen raus.

Seriell steuerbare Console Switches sind in der Regel wirklich teuer und stehen daher nicht im Kosten-/Nutzenverhältnis und ich benötige gerade mal die USB Ports, der Rest ist überflüssig, zusätzlich sind die Switches sehr groß und benötigen meist 230V und ich hab weder genug Platz hinter meinem TV noch hab ich 3 freie Steckdosen dafür. Also fallen solche Console Switches auch raus.

Es gibt lediglich einen 4 Port USB Switch den ich bisher gefunden habe mit genau der Funktion und das ist der Extron SW4 USB Switcher, aber da schaut man einmal auf den Preis und wir landen wieder beim Kosten-/Nutzenverhältnis.  :-\

Software gesteuerte Switches fallen auch weg, wegen der fehlenden Linuxtreiber und der mangelnden Verarbeitung, in Rezensionen liest man immer wieder von Defekten und das will ich nicht wirklich riskieren, selbst wenn man seine eigene Software hacken könnte, wozu ich mich aber auch nicht wirklich fähig sehe, da ich in der Webentwicklung arbeite und mit sowas keine Erfahrung habe.

Problemstellung

Zum Problem (Achtung Halbwissen incoming), da die Switches mechanisch sind, kann ich wohl nicht einfach so ein paar Transistoren rein löten um diese per Arduino anzusteuern.
In anderen Foren teilte man mir mit, ich würde Relays dafür benötigen, jedoch konnte man mir wohl nicht wirklich bei der Umsetzung helfen und bat mir einige Alternativen an, welche aber entweder zu teuer waren oder gar nicht wirklich das gemacht haben, was sie sollten. (Siehe oben KVM Switches)

Ich habe mal einen der USB Switches geöffnet und geschaut wie es darin aussieht und an sich sind die natürlich sehr simpel gebaut, hier das Album: http://imgur.com/a/plZJP

Einzig mögliche Alternative

Wenn es mit den mechanischen Switches wirklich nicht gehen sollte, also weil ich nicht fähig bin, gäbe es noch die Möglichkeit einen elektrischen Switch wie diesen hier zu modden, dort würde es ja theoretisch funktionieren, die Buttons durch Transistoren auszutauschen und dies dann über nen Arduino zu steuern, korrekt?
Da aber ein Switch fast 30€ kostet wär das eher so eine "notfall" Lösung, da ich schon gern die Switches nehmen würde, die ich bereits besitze. :)


Und jetzt hatte ich gehofft, dass mir ein paar Experten hier weiterhelfen und sagen können was ich benötige und wie ich das zusammenlöte, damit das mit meinen mechanischen USB Switches funktionieren würde mit FHEM. :)
Kann mir jemand von euch helfen?

Grüße,
shawly

Mathea

Hallo,

schau dir mal diesen Thread an: http://www.mikrocontroller.net/topic/210878 Hier wird sowas ähnliches diskutiert.

Gruß,
Martin

shawly

#2
Zitat von: Mathea am 16 September 2015, 13:10:06
Hallo,

schau dir mal diesen Thread an: http://www.mikrocontroller.net/topic/210878 Hier wird sowas ähnliches diskutiert.

Gruß,
Martin

Danke für den Link, jetzt weiß ich auch, warum ich nicht so einfach Transistoren verwenden kann mit den mechanischen Switches! Die überbrücken ja auch lediglich die "Leitungen" sobald ein Switch eingedrückt ist, jetzt verstehe ich auch ungefähr wieso ich Relays dazu brauche. :)

Leider sind die Leute in dem Beitrag aber auch zu keiner Lösung gekommen.

Wenn ich das Ganze mit Relays lösen würde, hätte das dann noch Platz in dem Gehäuse des Switches? Case hat die Maße (TxBxH) 6,7 x 11,2 x 2,9 cm und die Schalter werden dann ja raus gemacht.

Was brauche ich denn da alles an Komponenten und wie muss das Ganze verlötet werden?

Mathea

#3
So wie ich das verstanden habe, brauchst du spezielle HF-Relais. Da müsste man noch mal recherchieren, welche du dafür am besten nutzen kannst.
Damit du diese ohne Schaden mit einem Arduino ansteuern kannst, solltest du noch Transistoren vorschalten, welche die Spannungsversorgung der Spule durchschalten und eine Freilaufdiode in Sperrrichtung parallel zur Relais-Spule verlöten. Es gibt auch Homematic-Funkmodule für solche Selbstbauprojekte, was ich mir auch gut vorstellen kann.
Natürlich musst du die Elektronik mit einer Spannungsquelle versorgen. Batterien sind für einen längeren Einsatz durch den relativ hohen Stromverbrauch von Relaisspulen ungeeignet. Musst dir also ein geeignetes Netzteil raussuchen, welches a) die korrekte Spannung liefert (zur Not Step-Down Converter benutzen) und b) genug Strom liefern kann, wobei das bei dem bisschen Elektronik wahrscheinlich nicht das Problem sein wird.

Zusammenfassung:

- Arduino oder Homematic Funkmodul
- geeignetes Netzteil
- pro USB Anschluss benötigst du 4 schaltbare Kanäle. Also entweder ein vierkanaliges HF-Relais, oder vier einzelne einkanalige. Oder natürlich zwei zweikanalige. Es kann auch sein, dass du den Massepol sämtlicher USB Anschlüsse einfach ohne Probleme direkt miteinander verdrahten kannst, sodass du nur die beiden Datenleitungen und die +5 V schalten musst. Aber dazu weiß ich nicht genug über USB, um dir das garantieren zu können.
- Genug Freilaufdioden für die Relaisspulen
- ggf. genug Transistoren zum Ansteuern der Relaisspulen

Bis auf Kleinigkeiten, wie Leitungen, Lot, eventuell eine Buchse zur Spannungsversorgung sollte das die vollständige Stückliste sein wenn ich nichts vergessen habe. Natürlich könntest du auch eine praktische LED als Anzeige, welcher USB Kanal gerade angewählt ist, einbauen.
Für mich klingt das nach einem machbaren Projekt.

Nachtrag:
Hast du dir schon über die Steuerung Gedanken gemacht? Also hast du zum Beispiel einen Automationsserver laufen, der die nötigen Signale zum Schalten der jeweiligen USB Connection schickt? Oder benötigst du noch eine Art Logik, die auswertet, welcher USB Anschluss geschaltet werden soll?
In letztererem Fall solltest du ein Arduino verwenden, das die +5V Spannungsversorgung der USB Ports deiner XBox / deines Computers / whatever misst und auswertet, welches Gerät gerade eingeschaltet ist, und somit den jeweiligen Kanal auswählt.

shawly

#4
Danke für die ausführliche Antwort! Das Ganze klingt wirklich machbar, nur bräuchte ich glaube ich nen Schaltplan oder sowas, da ich nicht wirklich weiß wie ich das Ganze verbinden muss, trotz der Erklärung.  :-\
Fakt ist, trotz der Liste weiß ich nicht so wirklich was genau ich kaufen soll, sorry.  :-[

Kann ich statt einem Netzteil auch einen USB Port nutzen oder brauchen die HF-Relais so viel Power? Reichen da 5V und 500 mA nicht aus?

Also bei der Steuerung wollte ich wie du gesagt hast nur den jeweiligen USB Input wechseln, also Port 1-4, aber nicht einfach durchschalten, sondern dass ich in FHEM sagen kann Port 1, 2, 3 oder 4. Brauche ich dafür keinen Arduino? Homematic Funkmodul geht ja nicht ohne das Gateway von HM oder?

Eine automatische Erkennung per Spannungsmessung, möchte ich nicht, da die Erkennung über die Presence Module abläuft und ich die Logik eher Softwareseitig vornehmen will, so kann ich auch im Nachtrag noch Sachen ändern und das statt mit Presence Modulen einfach über den aktuellen Input meines AV Receivers machen kann, da es für den z.B. auch ein Modul gibt. Dann lese ich einfach über das DENON Modul für meinen AVR die aktuelle Quelle aus und dann sage ich dem USB Switch welchen Input er jetzt nehmen soll, so wird auch immer der korrekte Input den ich brauche beim USB Switch gewählt.

Das mit den LEDs ist ne großartige Idee! Da ich ja die Switches entfernen will hab ich dann ja in der Front hässliche Löcher, da könnte man dann LEDs platzieren. :)

Mathea

Stimmt, die 5V könntest du auch aus einem USB Port ziehen. Daran habe ich nicht gedacht.

Leider kenne ich mich mit HF-Relais nicht aus, daher kann ich dir da auch nicht wirklich weiterhelfen. Das scheint für mich das komplizierteste an dem Projekt zu sein. USB hat eine sehr hohe Frequenz, was handelsübliche Transistoren nicht mitmachen und Otto-Normal Relais anscheinend auch zu viele Störungen reinbringen. Vielleicht kann da jemand mit Erfahrung auf HF Ebene noch etwas zu sagen.

Als Controller würde ich dann den Arduino Nano nehmen. Natürlich wäre der Pro Mini auch interessant, aber da brauchst du wieder einen externen Programmer. der Nano hat den schon auf der Platine.

Transistoren und Dioden kannst du heraussuchen nachdem du passende Relais gefunden hast.

shawly

#6
Schau mal: http://www.ti.com/product/ts3usb221
Wär das nicht genau was ich brauche?  ??? Da steht USB 2.0 Logic Controlled, bedeutet das, dass ich den Switch auich per USB steuern kann?

Sonst hab ich im Inet das hier gefunden: http://www.reichelt.de/Reedrelais-Magnete/SIL-7271-L-5V/3/index.html?&ACTION=3&LA=446&ARTICLE=27669&GROUPID=3291&artnr=SIL+7271-L+5V
Soll anscheinend auch mit USB funktionieren.

Zitat von: Mathea am 16 September 2015, 15:14:31
Als Controller würde ich dann den Arduino Nano nehmen. Natürlich wäre der Pro Mini auch interessant, aber da brauchst du wieder einen externen Programmer. der Nano hat den schon auf der Platine.

Transistoren und Dioden kannst du heraussuchen nachdem du passende Relais gefunden hast.

Geht auch ein Chinaklon mit nem ATmega32u4? Hab leider auch nich so viel Plan davon, jedoch hab ich bereits mit so einem, statt nem Teensy, nen Google Chromecast gerootet, natürlich mit vorgefertigter Firmware und nem Guide.  ::)
Is halt alles noch bisschen Neuland, aber irgendwo muss man ja mal Anfangen.  :)

Edit: Habe noch das bezüglich der Schaltung von USB Verbindungen gelesen:
Zitat von: Von Mikrocontroller.netMan muß bloß darauf achten, daß beim Herstellen der
Verbindung erst die Versorgung und dann die Signaladern Kontakt bekommen
und beim Trennen erst die Signaladern und dann die Versorgung getrennt
werden. Bei normalem USB-Gebrauch wird das durch die Konstruktion der
Stecker sichergestellt.

Dr. Boris Neubert

Hallo,

insbesondere wenn Du die in Deinem genannten Vorgaben einhalten willst, wird es kniffelig. Du könntest mal recherchieren, ob Du zB mit einem Raspberry und einem USB-Hub einen Switch in Software realisieren kannst.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

shawly

Zitat von: Dr. Boris Neubert am 16 September 2015, 17:44:05
Hallo,

insbesondere wenn Du die in Deinem genannten Vorgaben einhalten willst, wird es kniffelig. Du könntest mal recherchieren, ob Du zB mit einem Raspberry und einem USB-Hub einen Switch in Software realisieren kannst.

Grüße
Boris

Danke für den Tipp! Aber ich glaube weniger, dass das so klappt, weil ein USB Hub ja gänzlich anders funktioniert als so ein Switch und wie oben bereits erwähnt, mehrere RPis sind schon etwas teurer, da kann ich auch zu den 30€ Switches wechseln, die Buttons gegen Transistoren tauschen und diese über n Arduino steuern, zwar leichter gesagt als getan aber günstiger.  :-\
Werde jedoch nochmal schauen ob man sowas mit nem USB Hub anstellen kann.

Dr. Boris Neubert

Hallo,

ich meinte folgendes: die Geräte, die Du am Hub anstöpselt, erscheinen als Devices auf dem Raspi. In Software könntest Du die Devices über Pipes miteinander verbinden. Voraussetzung ist, dass die Geräte physisch nahe beieinander sind.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

shawly

Zitat von: Dr. Boris Neubert am 16 September 2015, 20:44:32
Hallo,

ich meinte folgendes: die Geräte, die Du am Hub anstöpselt, erscheinen als Devices auf dem Raspi. In Software könntest Du die Devices über Pipes miteinander verbinden. Voraussetzung ist, dass die Geräte physisch nahe beieinander sind.

Viele Grüße
Boris

Und wie nutze ich die meine Peripherie dann an den jeweiligen Endgeräten also meinem PC, HTPC und dem XIM4?

Dr. Boris Neubert

Die steckst Du alle ans Hub.

Soweit meine Anregung. Ich habe das bisher nicht realisiert.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

shawly

#12
Zitat von: Dr. Boris Neubert am 16 September 2015, 20:56:06
Die steckst Du alle ans Hub.

Soweit meine Anregung. Ich habe das bisher nicht realisiert.

Viele Grüße
Boris

Und dann? Dann hängt der Hub am Raspberry und die Geräte am Hub, das bringt mir ja nix. :D

Sorry ich versteh nicht wie du dir das gedacht hast, mir ist bewusst, dass du das noch nicht gemacht hast aber ich verstehe nicht mal wie du das Ganze anschließen willst also wie das Verbunden werden soll..  :-[