mqtt - 使用 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 盒子没有结果。任何人都可以就如何发送这些原始数据提供一些线索。
解决方案
我在另一个小组中取得了成功,并发现了如何对此进行解码。这是我使用的 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
汤姆
推荐阅读
- python - 我正在尝试使用工资数据 csv 文件制作简单的线性回归模型,并且有 35 个数据点。我如何将其拆分为 80-20?
- javascript - typemismatcherror ie11 web crypto encrypt method 有什么问题?
- symfony - 在单独的虚拟机上运行 symfony 命令
- bind - 为什么不在绑定方法 polyfill 中检查这个 instanceof fBound 呢?
- python - AttributeError:“float”对象没有属性“dtype”
- r - 我有 EV 数据,我想做一个 timeserise
- python - 从客户端请求服务器文件的递归列表
- sql - SQL中如何将单行的数据拆分成多行?
- nginx - nginx + 上游并通过 url 中的 arg 切换上游
- python - 使用相应的字符串名称调用类