首页 > 解决方案 > 使用 mqtt 发送 IRsend 到 Tasmota ir 设备

问题描述

我正在使用 Tasmota 设备编写家庭自动化程序。我有一个 YTF IR 桥,可以很好地与我的大多数遥控器配合使用。例如,我可以发送 Apple TV

{"Protocol":"NEC","Bits":32,"Data":0x77E14005}

选择菜单。

我想出了 Foxtel 遥控器的问题。我在网上找到了这个的代码。例如

Vol +

0000 0073 0000 0012 000F 000A 0006 000A 0006 0016 0006 000A 0006 0010 0006 0016 0006 0016 0006 000A 0006 000A 0006 000A 0006 0016 0006 0010 0006 0016 0006 000A 0006 0010 0006 000A 0006 000A 0006 0CA0

Vol – 0000 0073 0000 0012 000F 000A 0006 000A 0006 0016 0006 000A 0006 0010 0006 0016 0006 0016 0006 000A 0006 000A 0006 000A 0006 0016 0006 0010 0006 0016 0006 000A 0006 0010 0006 000A 0006 0010 0006 0C9B

然后我将这些从十六进制转换为 ascii 并发送

cmnd/ir-bridge/IRSend  0,115,0,18,15,10,6,10,6,22,6,10,6,16,6,22,6,22,6,10,6,10,6,10,6,22,6,16,6,22,6,10,6,16,6,10,6,10,6,3232

Foxtel 盒子没有结果。任何人都可以就如何发送这些原始数据提供一些线索。

标签: mqtt

解决方案


我在另一个小组中取得了成功,并发现了如何对此进行解码。这是我使用的 Basic4Java 代码。

 Dim sb As StringBuilder
            sb.Initialize
            Dim Spllited() As String
            Spllited = Regex.Split(" ",payload)
            Dim N As Int
            N = Bit.ParseInt(Spllited(1), 16)
            Dim Frequency As Int = (1000000/(N * .241246)/1000)
            Dim pulse As Float = (1000/Frequency)
            sb.Append(Frequency).Append(",") ' Add frequency
            Dim OneTime As Int = Bit.ParseInt(Spllited(2), 16)
            Dim Repeat As Int = Bit.ParseInt(Spllited(3), 16)

            For z = 4 To Spllited.Length-1
                Dim Int_Number As Int
                Int_Number = Bit.ParseInt(Spllited(z), 16)
                Dim t As Int = Int_Number * pulse
                sb.Append(t)
                If z <> Spllited.Length-1 Then sb.Append(",")
            Next
            payload = sb.ToString

汤姆


推荐阅读