将带有mqtt的IRsend发送到Tasmota红外设备

时间:2019-08-02 02:08:07

标签: mqtt

我正在使用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框没有结果。 任何人都可以提供一些有关如何发送此原始数据的线索。

1 个答案:

答案 0 :(得分:0)

我在另一个小组中取得了成功,并且发现了如何对其进行解码。 这是我使用的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

汤姆