xcy1231 / Ha-GreeCentralClimate

90 stars 31 forks source link

请问下如果我想控制温度精确到0.5应该怎么做 #29

Closed HowLow closed 1 year ago

HowLow commented 1 year ago

改了好几个参数发现并不能精确设置到0.5这个温度上,请问大佬有什么方法能设置么

xcy1231 commented 1 year ago

格力本身不支持0.5的精度吧

HowLow commented 1 year ago

格力本身不支持0.5的精度吧

支持的 我的线控器和格力+APP 都支持0.5的精度 用的是二代云控和star2的空调 IMG_099F00AEB36C-1

xcy1231 commented 1 year ago

好吧,我这里都不支持,所以插件也没考虑这种情况,我想想有没有办法兼容,可以贴一段日志看看么,我看看有没有什么区别

HowLow commented 1 year ago

2023-07-18 11:43:03.947 INFO (SyncWorker_1) [custom_components.gree2.device] set_temperature(): 24.5 2023-07-18 11:43:03.947 INFO (SyncWorker_1) [custom_components.gree2.device] syncState with SetTem=24.5 2023-07-18 11:43:03.947 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status data: {'opt': ['SetTem'], 'p': [24], 't': 'cmd', 'sub': '4d40931d000000'} 2023-07-18 11:43:03.947 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status to fake server 2023-07-18 11:43:03.948 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status directly 2023-07-18 11:43:03.948 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] device socket send data {'cid': 'app', 't': 'pack', 'uid': 0, 'i': 0, 'pack': 'd9SlnGee1OX0rLBvUN2ogFfqTOOe6gAK7Sbwur7rUFtAvkeqKkW+myoluDJjfBWl0YkrweadUGCU4d5aCC6T2Q==', 'tcid': '9424b811c314'} to 192.168.50.39 2023-07-18 11:43:03.991 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: b'{"t":"pack","i":0,"uid":0,"cid":"9424b811c314","tcid":"app","pack":"ALt8qhY9zwBQ+LtmFyJHBNZaf5l4iaCdjJW8Q9UGaAq0W9ikTP2lwJcSU5ol3AKva14NcncR9Mc2Hqc21ovoniRvRPka4bxohEkd4E7X77g="}' msg: {'t': 'pack', 'i': 0, 'uid': 0, 'cid': '9424b811c314', 'tcid': 'app', 'pack': 'ALt8qhY9zwBQ+LtmFyJHBNZaf5l4iaCdjJW8Q9UGaAq0W9ikTP2lwJcSU5ol3AKva14NcncR9Mc2Hqc21ovoniRvRPka4bxohEkd4E7X77g='} 2023-07-18 11:43:03.992 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: {"t":"res","r":200,"opt":["SetTem"],"p":[24],"val":[24],"mac":"4d40931d000000"} msg: {'t': 'res', 'r': 200, 'opt': ['SetTem'], 'p': [24], 'val': [24], 'mac': '4d40931d000000'} 2023-07-18 11:43:03.992 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA target temp set according to HVAC state to: 24 2023-07-18 11:43:03.992 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA operation mode set according to HVAC state to: cool 2023-07-18 11:43:03.992 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA fan mode set according to HVAC state to: auto 2023-07-18 11:43:04.128 DEBUG (SyncWorker_2) [custom_components.gree2.bridge] cmd send status data: {'cols': ['Pow', 'Mod', 'SetTem', 'WdSpd', 'Air', 'Blo', 'Health', 'SwhSlp', 'SwingLfRig', 'Quiet', 'SvSt'], 'mac': '4d40931d000000', 't': 'status'} 2023-07-18 11:43:04.128 DEBUG (SyncWorker_2) [custom_components.gree2.bridge] cmd send status to fake server 2023-07-18 11:43:04.129 DEBUG (SyncWorker_2) [custom_components.gree2.bridge] cmd send status directly 2023-07-18 11:43:04.129 DEBUG (SyncWorker_2) [custom_components.gree2.bridge] device socket send data {'cid': 'app', 't': 'pack', 'uid': 0, 'i': 0, 'pack': 'Kpqwz6LNS9VgJhfPEDudn38XZefnRxAYWDGePBp6NX2OQdMwPlTS3qupeDSAn71FDjuTS6MD17q60+bvplUMOR7EE/dOvT+aq9izJOOLogSzp+a3ZOGpHA1L4b+mFGaV/eILUcmyihV4q8z+u646MD5ADZz+f1gprXeWBG1ewN1XhGSN7F3URtBj/flbdytG', 'tcid': '9424b811c314'} to 192.168.50.39 2023-07-18 11:43:04.234 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: b'{"t":"pack","i":0,"uid":0,"cid":"9424b811c314","tcid":"app","pack":"EpwUDwKIqnZBga9t+m5/alK1xSilGfcQb6McxV64WqyvKXs7aE2H7W9O9cV5rarNhKweJJjh8WDR9cuzycpqu3v2MRXnZKThlI9pF+YOuyXcAtnF/93QqIkYGt6nU32TYYrXfPHTNuIEuYLRW5vv+1O3bKhGxXzBMWRhHJqnhfAerSGEpM38bevGN+FOh/TYRxFnoiLW5WPGlGHOYml31bQozNFJw9UUsbUAD+ZaSDU="}' msg: {'t': 'pack', 'i': 0, 'uid': 0, 'cid': '9424b811c314', 'tcid': 'app', 'pack': 'EpwUDwKIqnZBga9t+m5/alK1xSilGfcQb6McxV64WqyvKXs7aE2H7W9O9cV5rarNhKweJJjh8WDR9cuzycpqu3v2MRXnZKThlI9pF+YOuyXcAtnF/93QqIkYGt6nU32TYYrXfPHTNuIEuYLRW5vv+1O3bKhGxXzBMWRhHJqnhfAerSGEpM38bevGN+FOh/TYRxFnoiLW5WPGlGHOYml31bQozNFJw9UUsbUAD+ZaSDU='} 2023-07-18 11:43:04.234 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: {"t":"dat","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","SwingLfRig","Quiet","SvSt"],"dat":[1,1,24,0,0,0,0,0,0,0,0],"mac":"4d40931d000000"} msg: {'t': 'dat', 'r': 200, 'cols': ['Pow', 'Mod', 'SetTem', 'WdSpd', 'Air', 'Blo', 'Health', 'SwhSlp', 'SwingLfRig', 'Quiet', 'SvSt'], 'dat': [1, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0], 'mac': '4d40931d000000'} 2023-07-18 11:43:04.234 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] Climate GREE Climate_4d40931d000000 status: {'Pow': 1, 'Mod': 1, 'WdSpd': 0, 'SetTem': 24, 'SwhSlp': 0, 'Air': 0, 'Blo': 0, 'Health': 0, 'SwingLfRig': 0, 'Quiet': 0, 'SvSt': 0} 2023-07-18 11:43:04.234 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA target temp set according to HVAC state to: 24 2023-07-18 11:43:04.234 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA operation mode set according to HVAC state to: cool 2023-07-18 11:43:04.234 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA fan mode set according to HVAC state to: auto 我发出了24.5的指令但是不知道为什么发出的时候不是float类型的值 收到的状态也不是

xcy1231 commented 1 year ago

插件直接转int了啊

cyanogenic commented 1 year ago

我这里也遇到的一样的问题,有需要的话我可以提供日志或者其它信息

xcy1231 commented 1 year ago

最新版本试一下,temp_step配成0.5

HowLow commented 1 year ago

@xcy1231 我昨天晚上看到这个更新了

image

这部分是日志 2023-08-07 10:45:55.725 INFO (SyncWorker_0) [custom_components.gree2.device] set_temperature(): 24.5 2023-08-07 10:45:55.726 INFO (SyncWorker_0) [custom_components.gree2.device] syncState with SetTem=24.5 2023-08-07 10:45:55.726 DEBUG (SyncWorker_0) [custom_components.gree2.bridge] cmd send status data: {'opt': ['SetTem'], 'p': [24.5], 't': 'cmd', 'sub': 'a6deeb1d000000'} 2023-08-07 10:45:55.726 DEBUG (SyncWorker_0) [custom_components.gree2.bridge] cmd send status to fake server 2023-08-07 10:45:55.727 DEBUG (SyncWorker_0) [custom_components.gree2.bridge] cmd send status directly 2023-08-07 10:45:55.727 DEBUG (SyncWorker_0) [custom_components.gree2.bridge] device socket send data {'cid': 'app', 't': 'pack', 'uid': 0, 'i': 0, 'pack': 'd9SlnGee1OX0rLBvUN2ogORS6ld3oQAuVo4iqKMsBUVHxZmgupx63wjEBR7e7y7pbxuntf3PX7H4Gr90bUa3+A==', 'tcid': '9424b811c314'} to 192.168.50.39 2023-08-07 10:45:55.770 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: b'{"t":"pack","i":0,"uid":0,"cid":"9424b811c314","tcid":"app","pack":"ALt8qhY9zwBQ+LtmFyJHBNZaf5l4iaCdjJW8Q9UGaArXEef1RHzXubE5jp+oZ6w0STR4o6ObyVaJNbxRik/JeIB5IXHE6gfUQZEkrzcmnj8LrkpqvCxGu/0UeGpr6EzM"}' msg: {'t': 'pack', 'i': 0, 'uid': 0, 'cid': '9424b811c314', 'tcid': 'app', 'pack': 'ALt8qhY9zwBQ+LtmFyJHBNZaf5l4iaCdjJW8Q9UGaArXEef1RHzXubE5jp+oZ6w0STR4o6ObyVaJNbxRik/JeIB5IXHE6gfUQZEkrzcmnj8LrkpqvCxGu/0UeGpr6EzM'} 2023-08-07 10:45:55.770 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: {"t":"res","r":200,"opt":["SetTem"],"p":[245],"val":[245],"mac":"a6deeb1d000000"} msg: {'t': 'res', 'r': 200, 'opt': ['SetTem'], 'p': [245], 'val': [245], 'mac': 'a6deeb1d000000'} 2023-08-07 10:45:55.770 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_a6deeb1d000000 HA target temp set according to HVAC state to: 245 2023-08-07 10:45:55.770 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_a6deeb1d000000 HA operation mode set according to HVAC state to: cool 2023-08-07 10:45:55.770 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_a6deeb1d000000 HA fan mode set according to HVAC state to: auto 2023-08-07 10:45:58.737 DEBUG (Thread-8 (fake_listen)) [custom_components.gree2.bridge] Fake socket received error: timed out 2023-08-07 10:45:58.737 DEBUG (Thread-8 (fake_listen)) [custom_components.gree2.bridge] Socket timeout reset count :0

好像反馈回来的温度是三位数?

xcy1231 commented 1 year ago

这我是真想不到,格力为啥要这么玩,等我我做个兼容吧

xcy1231 commented 1 year ago

device.py里这个函数改下看看,我这也调不了

def UpdateHATargetTemperature(self):
        # Sync set temperature to HA
        tem = self._acOptions['SetTem']
        if tem > 100:
            tem = float(tem)/10
        self._target_temperature = tem
        _LOGGER.info('{} HA target temp set according to HVAC state to: {}'.format(self._name, str(tem)))
HowLow commented 1 year ago

@xcy1231 改了的确在ha上能设置0.5精度 但是云控上并没到0.5精度 我觉得可能是有别的参数来标记0.5精度 并不是单靠SetTem来设置的

日志: ha发送温度 2023-08-07 11:08:56.351 INFO (SyncWorker_1) [custom_components.gree2.device] set_temperature(): 24.5 2023-08-07 11:08:56.351 INFO (SyncWorker_1) [custom_components.gree2.device] syncState with SetTem=24.5 2023-08-07 11:08:56.351 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status data: {'opt': ['SetTem'], 'p': [24.5], 't': 'cmd', 'sub': '4d40931d000000'} 2023-08-07 11:08:56.351 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status to fake server 2023-08-07 11:08:56.351 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status directly 2023-08-07 11:08:56.352 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] device socket send data {'cid': 'app', 't': 'pack', 'uid': 0, 'i': 0, 'pack': 'd9SlnGee1OX0rLBvUN2ogORS6ld3oQAuVo4iqKMsBUVf2n9tTl0101/tc+HvI/wtL9Jh/hHZhyhZVOPsHXMO/A==', 'tcid': '9424b811c314'} to 192.168.50.39 2023-08-07 11:08:56.394 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: b'{"t":"pack","i":0,"uid":0,"cid":"9424b811c314","tcid":"app","pack":"ALt8qhY9zwBQ+LtmFyJHBNZaf5l4iaCdjJW8Q9UGaArXEef1RHzXubE5jp+oZ6w0STR4o6ObyVaJNbxRik/JeJ5i8EzXfmEmpDeqXtGJPm0LrkpqvCxGu/0UeGpr6EzM"}' msg: {'t': 'pack', 'i': 0, 'uid': 0, 'cid': '9424b811c314', 'tcid': 'app', 'pack': 'ALt8qhY9zwBQ+LtmFyJHBNZaf5l4iaCdjJW8Q9UGaArXEef1RHzXubE5jp+oZ6w0STR4o6ObyVaJNbxRik/JeJ5i8EzXfmEmpDeqXtGJPm0LrkpqvCxGu/0UeGpr6EzM'} 2023-08-07 11:08:56.394 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: {"t":"res","r":200,"opt":["SetTem"],"p":[245],"val":[245],"mac":"4d40931d000000"} msg: {'t': 'res', 'r': 200, 'opt': ['SetTem'], 'p': [245], 'val': [245], 'mac': '4d40931d000000'} 2023-08-07 11:08:56.395 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA target temp set according to HVAC state to: 24.5 2023-08-07 11:08:56.395 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA operation mode set according to HVAC state to: cool 2023-08-07 11:08:56.395 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA fan mode set according to HVAC state to: auto

ha同步状态 2023-08-07 11:09:13.975 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status data: {'cols': ['Pow', 'Mod', 'SetTem', 'WdSpd', 'Air', 'Blo', 'Health', 'SwhSlp', 'SwingLfRig', 'Quiet', 'SvSt'], 'mac': '4d40931d000000', 't': 'status'} 2023-08-07 11:09:13.975 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status to fake server 2023-08-07 11:09:13.975 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] cmd send status directly 2023-08-07 11:09:13.975 DEBUG (SyncWorker_1) [custom_components.gree2.bridge] device socket send data {'cid': 'app', 't': 'pack', 'uid': 0, 'i': 0, 'pack': 'Kpqwz6LNS9VgJhfPEDudn38XZefnRxAYWDGePBp6NX2OQdMwPlTS3qupeDSAn71FDjuTS6MD17q60+bvplUMOR7EE/dOvT+aq9izJOOLogSzp+a3ZOGpHA1L4b+mFGaV/eILUcmyihV4q8z+u646MD5ADZz+f1gprXeWBG1ewN1XhGSN7F3URtBj/flbdytG', 'tcid': '9424b811c314'} to 192.168.50.39 2023-08-07 11:09:14.080 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: b'{"t":"pack","i":0,"uid":0,"cid":"9424b811c314","tcid":"app","pack":"EpwUDwKIqnZBga9t+m5/alK1xSilGfcQb6McxV64WqyvKXs7aE2H7W9O9cV5rarNhKweJJjh8WDR9cuzycpqu3v2MRXnZKThlI9pF+YOuyXcAtnF/93QqIkYGt6nU32TYYrXfPHTNuIEuYLRW5vv+1O3bKhGxXzBMWRhHJqnhfAerSGEpM38bevGN+FOh/TYRxFnoiLW5WPGlGHOYml31bQozNFJw9UUsbUAD+ZaSDU="}' msg: {'t': 'pack', 'i': 0, 'uid': 0, 'cid': '9424b811c314', 'tcid': 'app', 'pack': 'EpwUDwKIqnZBga9t+m5/alK1xSilGfcQb6McxV64WqyvKXs7aE2H7W9O9cV5rarNhKweJJjh8WDR9cuzycpqu3v2MRXnZKThlI9pF+YOuyXcAtnF/93QqIkYGt6nU32TYYrXfPHTNuIEuYLRW5vv+1O3bKhGxXzBMWRhHJqnhfAerSGEpM38bevGN+FOh/TYRxFnoiLW5WPGlGHOYml31bQozNFJw9UUsbUAD+ZaSDU='} 2023-08-07 11:09:14.080 INFO (Thread-7 (device_listen)) [custom_components.gree2.bridge] process data: {"t":"dat","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","SwingLfRig","Quiet","SvSt"],"dat":[1,1,24,0,0,0,0,0,0,0,0],"mac":"4d40931d000000"} msg: {'t': 'dat', 'r': 200, 'cols': ['Pow', 'Mod', 'SetTem', 'WdSpd', 'Air', 'Blo', 'Health', 'SwhSlp', 'SwingLfRig', 'Quiet', 'SvSt'], 'dat': [1, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0], 'mac': '4d40931d000000'} 2023-08-07 11:09:14.080 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] Climate GREE Climate_4d40931d000000 status: {'Pow': 1, 'Mod': 1, 'WdSpd': 0, 'SetTem': 24, 'SwhSlp': 0, 'Air': 0, 'Blo': 0, 'Health': 0, 'SwingLfRig': 0, 'Quiet': 0, 'SvSt': 0} 2023-08-07 11:09:14.080 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA target temp set according to HVAC state to: 24 2023-08-07 11:09:14.080 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA operation mode set according to HVAC state to: cool 2023-08-07 11:09:14.080 INFO (Thread-7 (device_listen)) [custom_components.gree2.device] GREE Climate_4d40931d000000 HA fan mode set according to HVAC state to: auto

xcy1231 commented 1 year ago

好吧,主要我这没法调试,你先看看别的单体空调的库,找找可能支持0.5精度的参数调试看看

xcy1231 commented 1 year ago

我看到两个参数TemUn,TemRec可能跟温度有关的,可以加到syncStatus函数里看看云控返回什么,我这边是拿不到值的,或者你看看能不能切回格力+抓个包看看

HowLow commented 1 year ago

我看到两个参数TemUn,TemRec可能跟温度有关的,可以加到syncStatus函数里看看云控返回什么,我这边是拿不到值的,或者你看看能不能切回格力+抓个包看看

我用python调了 TemUn这个是华氏度的标识位 TemRec这个是华氏度取整用的 参考这个文档https://github.com/tomikaa87/gree-remote 我现在抓不到UDP包了不知道咋回事

xcy1231 commented 1 year ago

把DNS劫持去掉先,我一般都是从路由器上用tcpdump去抓云控ip的包,就是不知道你路由器支不支持了

HowLow commented 1 year ago

@xcy1231 获取到最新的状态列表了 { "cols": [ "Pow", "Mod", "SetTem", "SvSt", "HeatSvStTemMax", "HumiSvStTemMin", "CoolSvStTemMin", "MasSub", "GetEr", "HumiEnable", "SetCoolHumi", "SetDeciTem", "SwhSlp", "Quiet", "WdSpd", "SwUpDn", "SwingLfRig", "Blo", "Air", "GoOut", "LowDeHumi", "AppTimer", "Add0.1", "AutoClean", "CleanState", "CleanTime", "ErrType1", "ErrType2" ], "mac": "4d40931d000000", "t": "status", "sub": "4d40931d000000" }

发送包 { "mac": "4d40931d000000", "t": "cmd", "opt": [ "SetTem", "Add0.1" ], "p": [ 24, 5 ], "sub": "4d40931d000000" }

温度是存在SetDeciTem里面了 3位数表示的

image
xcy1231 commented 1 year ago

看起来起作用的是Add0.1这个参数啊,这意思支持0.1的精度么 我先这样改了你跑跑看

    def set_temperature(self, **kwargs):
        _LOGGER.info('set_temperature(): ' + str(kwargs.get(ATTR_TEMPERATURE)))
        # Set new target temperatures.
        if kwargs.get(ATTR_TEMPERATURE) is not None:
            # do nothing if temperature is none
            if not (self._acOptions['Pow'] == 0):
                # do nothing if HVAC is switched off
                _LOGGER.info('syncState with SetTem=' +
                             str(kwargs.get(ATTR_TEMPERATURE)))
                tem, decimal = str(kwargs.get(ATTR_TEMPERATURE)).split('.')
                self.syncState({'SetTem': int(tem), 'Add0.1': int(decimal)})
    def syncStatus(self, now=None):
        cmds = ['Pow', 'Mod', 'SetTem', 'WdSpd', 'Air', 'Blo',
                'Health', 'SwhSlp', 'SwingLfRig', 'Quiet', 'SvSt', 'Add0.1']
        message = {
            'cols': cmds,
            'mac': self.mac,
            't': 'status'
        }
        self._bridge.sync_status(message)
    def UpdateHATargetTemperature(self):
        # Sync set temperature to HA
        tem = self._acOptions['SetTem']
        decimal = self._acOptions['Add0.1']
        tem = tem + decimal * 0.1
        self._target_temperature = tem
        _LOGGER.info('{} HA target temp set according to HVAC state to: {}'.format(
            self._name, str(tem)))
cyanogenic commented 1 year ago

看起来起作用的是Add0.1这个参数啊,这意思支持0.1的精度么 我先这样改了你跑跑看

    def set_temperature(self, **kwargs):
        _LOGGER.info('set_temperature(): ' + str(kwargs.get(ATTR_TEMPERATURE)))
        # Set new target temperatures.
        if kwargs.get(ATTR_TEMPERATURE) is not None:
            # do nothing if temperature is none
            if not (self._acOptions['Pow'] == 0):
                # do nothing if HVAC is switched off
                _LOGGER.info('syncState with SetTem=' +
                             str(kwargs.get(ATTR_TEMPERATURE)))
                tem, decimal = str(kwargs.get(ATTR_TEMPERATURE)).split('.')
                self.syncState({'SetTem': int(tem), 'Add0.1': int(decimal)})
    def syncStatus(self, now=None):
        cmds = ['Pow', 'Mod', 'SetTem', 'WdSpd', 'Air', 'Blo',
                'Health', 'SwhSlp', 'SwingLfRig', 'Quiet', 'SvSt', 'Add0.1']
        message = {
            'cols': cmds,
            'mac': self.mac,
            't': 'status'
        }
        self._bridge.sync_status(message)
    def UpdateHATargetTemperature(self):
        # Sync set temperature to HA
        tem = self._acOptions['SetTem']
        decimal = self._acOptions['Add0.1']
        tem = tem + decimal * 0.1
        self._target_temperature = tem
        _LOGGER.info('{} HA target temp set according to HVAC state to: {}'.format(
            self._name, str(tem)))

调整以后设置25.5度会变成250.5度,附上日志 home-assistant.log

cyanogenic commented 1 year ago

回滚syncState方法后0.5度调整正常了,我这边继续测试看看有没有其他问题

def syncState(self, options):
    commands = []
    values = []
    for cmd in options.keys():
        commands.append(cmd)
        values.append(int(options[cmd]))
    message = {
        'opt': commands,
        'p': values,
        't': 'cmd',
        'sub': self.mac
    }
    self._bridge.sync_status(message)

附上日志 home-assistant.log

HowLow commented 1 year ago

@xcy1231 我回滚到了上个版本 然后用了你的代码已经完美支持0.5了 可以发版了 下次我们优化下别的逻辑功能

xcy1231 commented 1 year ago

只回滚syncState是吧,temp_step还是要配的啊,上面代码在我这跑了下还不通,我这Add0.1没有返回值,还得兼容下,我先push一下你再跑跑看下吧

HowLow commented 1 year ago

@xcy1231 我刚PULL了 没有问题 你的项目是全网第一个支持格力0.5的

xcy1231 commented 1 year ago

感谢支持,那我关了啊