IR Raw Codes mit Tasmota via MQTT senden – IR Blaster

Es gibt kleine Probleme im Smarthome die einen manchmal recht lange aufhalten. Damit euch das nicht so geht schreibe ich hier diesen kurzen Beitrag.

Folgenden Ausgangslage: um TV, AV Receiver etc. im Wohnzimmer zu steuern habe ich mir vor einigen Jahren einen kleinen IR Blaster auf ESP8266 Basis gekauft. Damals basierte wirklich alles noch auf diesem SOC so das ein umflashen zu Tasmota kein Problem war. Heutzutage basieren viele dieser Produkte auf Chips der Fa. Tuya und sind leider nicht mehr Tasmota kompatibel so das heutzutage ein selbstbau wohl die bessere Wahl wäre, oder man vorher genaus suchen sollte.

Ja man kann viele Geräte inzwischen auch über API’s steuern die diese via Wifi/Ethernet anbieten. Ich trenne meine Geräte jedoch vom Strom wenn Sie nicht gebraucht werden. Während der IR Empfänger quasi instant bereit ist braucht der Marantz gut eine Minute bis er im Netzwerk erscheint.

Zurück zum IR Blaster: Wer ein solches Gerät jedoch mit Tasmota als Firmware bespielt hat dann kann man damit recht komfortabel IR Codes auslesen und dann auch wieder senden.

Dazu geht man im Tasmota WebIf auf die Console und wenn man dann eine Taste auf der Fernbedienung drückt erscheint der dementsprechende IR Code. Wenn ich bei meinem Marantz AV Reciever z.B. die Powertaste drücke erhalte ich das hier:

12:52:50.584 MQT: tele/IRBlaster/RESULT = {„IrReceived“:{„Protocol“:“RC5″,“Bits“:12,“Data“:“0xC0C“,“DataLSB“:“0x3030″,“Repeat“:0}}

Wenn ich diesen Teil {„Protocol“:“RC5″,“Bits“:12,“Data“:“0xC0C“,“DataLSB“:“0x3030″,“Repeat“:0} jetzt als JSON Payload an das MQTT Topic cmnd/IRBlaster/IRSend (der mittlere Teil muss zum Topic eures IR Blaster passen!) sende z.B. mittels Node Red oder eines MQTT Client dann wird das ganze umgesetzt und mein AV Receiver geht an oder aus.

Soweit so einfach. Nun hat sich aber die Firma Marantz was ganz doofes ausgedacht. Drücke ich nun die Taste auf der Fernbedienung um den Input für den Bluray Player zu wählen kriege ich das hier:

{„IrReceived“:{„Protocol“:“UNKNOWN“,“Bits“:16,“Hash“:“0xD3768D24″,“Repeat“:0}}

Erstaunlich ich dachte die Fernbedienung spricht RC5, so oft man es auch versucht es kommt immer Protocol Unknown raus. Sucht man ein bisschen im Netz dann stellt man fest das manche Hersteller den RC5 Standard auf eigene Faust erweitert haben, das ganze läuft dann unter der Bezeichnungen RC5x, RC5 Extended etc. Eine Standardbeschreibung gibt es wohl nicht. Also ziemlicher Wildwuchs obwohl es genug Standards schon gibt.

Naja mit ein bisschen suchen kriegt man heraus wie man auch diese Codes ausliest und wieder sendet.

Zuerst geht man in die Tasmota Console und führt setoption58 1 aus. Das führt dazu das die IR Raw Data angezeigt und auch via MQTT versendet werden. Drückt man jetzt die Taste auf der Fernbedienung noch einmal kriegt man folgendes heraus:

{„IrReceived“:{„Protocol“:“UNKNOWN“,“Bits“:17,“Hash“:“0x941D4EFC“,“Repeat“:0,“RawData“:“+845-965+820-990+790b+1720dC-935C-960C-4415+850-985CgChJ-1815+1750-950CdC-940AlMgC“,“RawDataInfo“:[33,33,0]}}

Teilweise kommen mehrere Signale an, ich habe mir dann die rausgepickt die den gleichen Hash haben. Um diese Signale wieder zu versenden brauchen wir nur die RawData und die Frequenz. Eine 0 bei der Frequenz bedeutet 38kHz (sollte idR passen).

Um dieses Kommando nun via MQTT zu versenden schicken wir einfach folgenden Payload (keine JSON Klammern etc. einfach plain) an das MQTT Topic cmnd/IRBlaster/IRSend: 0,+845-965+820-990+790b+1720dC-935C-960C-4415+850-985CgChJ-1815+1750-950CdC-940AlMgC

Wichtig ist das hinter dem Komma kein Leerzeichen kommt.

Nun könnt Ihr beliebige IR Signale durch die gegend schicken.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert