mac-zhou / midea-msmart

This is a library to allow communicating to a Midea AC via the Local area network.
MIT License
147 stars 40 forks source link

是否可以支持非全量 apply ? #58

Closed LiangZuoting closed 2 years ago

LiangZuoting commented 2 years ago

我看 apply 函数的实现,即使是只修改了一个属性值的话,也会把所有属性收集后打包发出去。

这样有 2 个问题:

  1. 浪费了带宽,不过局域网内可能没人关心这个;
  2. 如果有两个控制终端,终端 A 修改了属性 a,终端 B 修改了属性 b,两方同时提交,必然会有一方的修改值被覆盖掉。 一个可缓解此问题的方法是每次 apply 前都 refresh 一次,但是这样的话,又加剧了问题 1,而且不能根本解决问题。

所以,是否支持对指定属性的更新呢?不确定是美的协议不支持,或是库实现问题,烦请回复,谢谢。

mac-zhou commented 2 years ago

不行 要提交就得是全量 这类似于遥控器的红外码 1个指令中包含所有属性 每次发包也就 200Byte左右,15s也来回2个报文, 基本可以忽略不计 即使你有100台设备 200 * 100 / 15 折才 10.42kbps