Allgemein Tutorials

HDMI-Switch mit Tasmota

HDMI Switch

Nachdem mich die Idee mit einem MQTT-Fähigen HDMI-Switch schon seit einer weile nicht loslässt, habe ich mir mal gedacht, probieren wir es.

Das Doing ist Folgendes: die meisten günstigen HDMI-Switche werden mit einem Klinkenstecker ausgeliefert, der einen IR-Empfänge beeinhaltet. Der IR-Empfänger wird mit einem Wemos D1 Mini ersetzt, und sendet über das Kabel die IR Befehle, die per MQTT gesendet werden. Als Basis für dieses Vorhaben habe ich meine Standard ESP-Firmware verwendet, Tasmota. Leider muss dafür noch eine Modifikation an der Firmware vorgenommen werden.

Vorbereitung

Als Erstes muss Tasmota auf dem Wemos D1 installiert werden, ich werde hier nicht darauf eingehen, im Netz gibt es genug Anleitungen dafür.

Der nächste Schritt ist das Entfernen des IR-Empfängers am Klinken-Kabel. Dazu habe ich die Plastikummantelung am Empfänger rausgeklippst, und die 3 Kabel abgelötet.  Hier die Kabelbeschreibung

Farbe   :  Bedeutung
Rot     :  3.3v (wird nicht benötigt)
Weiß    :  Signal 
Schwarz :  GND

Zum Aufnehmen des Signals habe ich einen anderen IR-Empfänger den ich noch rumliegen hatte an den Wemos D1 gesteckt und die Signale der Fernbedienung aufgenommen (Mit der Tasmota Firmware). Mein Switch besitzt insgesamt 5 Kanäle. In Tasmota wurde das Modul als „Generic“ konfiguriert, und in der Pinbelegeung der Pin D4 als „IRRecv“ eingestellt.

Fernbedienung Signale
Kanal 1:
{"Protocol":"NEC","Bits":32,"Data":"0x01FEA05F"}
Kanal 2:
{"Protocol":"NEC","Bits":32,"Data":"0x01FEE01F"}
Kanal 3:
{"Protocol":"NEC","Bits":32,"Data":"0x01FE10EF"}
Kanal 4:
{"Protocol":"NEC","Bits":32,"Data":"0x01FE906F"}
Kanal 5:
{"Protocol":"NEC","Bits":32,"Data":"0x01FED827"}

Sobald wir die Signale haben, stecken wir den Empfänger ab, und löten das schwarze und weiße Kabel an den Wemos D1 an.

Farbe   : PIN

Schwarz : GND 
Weiß    : D4

Danach stellen wir die Konfiguration von Tasmota um, und stellen den Pin D4 auf „IRSend“.

Anpassungen Tasmota

Nachfolgend müssen wir noch ein paar Code-Änderungen an der Tasmota-Firmware erstellen, da das Signal sonst Moduliert gesendet wird, wir diese aber unmoduliert brauchen.

Datei: IRsend.cpp
Pfad: TASMOTA/lib/IRremoteESP8266-2.6.0/src/IRSend.cpp

Abschnitt:

IRsend::IRsend(uint16_t IRsendPin, bool inverted, bool use_modulation)
    : IRpin(IRsendPin), periodOffset(kPeriodOffset) {
  if (inverted) {
    outputOn = LOW;
    outputOff = HIGH;
  } else {
    outputOn = HIGH;
    outputOff = LOW;
  }
  modulation = use_modulation;
  if (modulation)
    _dutycycle = kDutyDefault;
  else
    _dutycycle = kDutyMax;
}

Wird Zu:

IRsend::IRsend(uint16_t IRsendPin, bool inverted, bool use_modulation)
    : IRpin(IRsendPin), periodOffset(kPeriodOffset) {
  if (!inverted) {
    outputOn = LOW;
    outputOff = HIGH;
  } else {
    outputOn = HIGH;
    outputOff = LOW;
  }
  modulation = false;
  if (modulation)
    _dutycycle = kDutyDefault;
  else
    _dutycycle = kDutyMax;
}

Mit diesen Einstellungen, deaktivieren wir die Modulation vom Signal, und inverten das Signal. Nun kompilieren wir die Firmware, und spielen diese auf den Wemos D1 auf.

Abschluss

Zum Testen habe ich das Signal dann per Web-Interface in der Console ausgegeben mit

IRSend {"Protocol":"NEC","Bits":32,"Data":"0x01FE906F"}

und der Switch hat den Kanal gewechselt.

Der Wemos D1 wird nicht über das Klinkenkabel mit Strom versorgt, somit werden leider 2 Stromquellen benötigt, einmal für den Switch selbst, und einmal für den Wemos D1.

Weiterverarbeitung der Befehle

Die Befehle können dank Tasmota nun bequem per MQTT oder auch ioBroker, Homeassistant und FHEM weiterverarbeitet werden.

[amazon_link asins=’B0751C7N9K,B01N9RXGHY‘ template=’ProductGrid‘ store=’meinsmarthome.blog-21′ marketplace=’DE‘ link_id=’42eade93-0991-42a7-b6e0-8bdf2301e529′]

 

Ähnliche Beiträge

Nello One nun mit Conrad Connect verknüpfbar

Felix Frank

Xiaomi Temperatursensor im Outdooreinsatz erprobt

Felix Frank

Synology Audio Station Alexa Skill – Musik vom NAS für Alexa

Felix Frank