『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: zxl_hass

[插件集成] 海尔空气盒子接入homeassistant插件发布,支持红外学码和发码

  [复制链接]

2

主题

33

帖子

467

积分

论坛积极会员

积分
467
金钱
434
HASS币
0
发表于 2020-6-9 12:26:46 | 显示全部楼层
本帖最后由 叁水淼 于 2020-6-9 12:34 编辑

大佬 我第一个传感器接入没问题 数值显示正常

但是第二个空气盒子接入后 红外遥控就没问题 温湿度数据就不显示了
实体里就显示unknow 表盘显示实体 sensor.box_2_humidity 非数值
sensor:
  - platform: airbox
    name: BOX_1
    host: 192.168.3.109
    scan_interval: 60

  - platform: airbox
    name: BOX_2
    host: 192.168.3.112
    scan_interval: 60

回复

使用道具 举报

4

主题

93

帖子

2280

积分

论坛技术达人

积分
2280
金钱
2182
HASS币
20
 楼主| 发表于 2020-6-19 15:05:39 | 显示全部楼层
叁水淼 发表于 2020-6-9 12:26
大佬 我第一个传感器接入没问题 数值显示正常

但是第二个空气盒子接入后 红外遥控就没问题 温湿度数据就不 ...

2020-06-19_150346.jpg

这是我的测试结果,接入2个,没有问题,没有使用“name”字段
回复

使用道具 举报

3

主题

203

帖子

2302

积分

金牌会员

Rank: 6Rank: 6

积分
2302
金钱
2099
HASS币
0
发表于 2020-7-6 11:03:31 | 显示全部楼层
很好用的插件   希望继续完善!!!!  加油
回复

使用道具 举报

3

主题

203

帖子

2302

积分

金牌会员

Rank: 6Rank: 6

积分
2302
金钱
2099
HASS币
0
发表于 2020-7-6 21:07:46 | 显示全部楼层
好像有个问题    APP一段时间没打开,然后重启Hass,会出现设备无法接入!!!
重新打开一下APP,然后重启就好了
回复

使用道具 举报

4

主题

93

帖子

2280

积分

论坛技术达人

积分
2280
金钱
2182
HASS币
20
 楼主| 发表于 2020-7-7 12:24:09 | 显示全部楼层
佳艺造型 发表于 2020-7-6 21:07
好像有个问题    APP一段时间没打开,然后重启Hass,会出现设备无法接入!!!
重新打开一下APP,然后重启 ...

那是因为你重启hass太频繁了,空气盒子是作为tcp服务端,hass作为tcp客户端,每次重启hass都会重新连接一次空气盒子,建立一个tcp连接,但是空气盒子用的WIFI模块又不能支持那么多的tcp连接,短时间内也不会主动释放无用的连接,所以会造成有时候连接不上的问题,这个问题无解,只有重启空气盒子才能解决   你说的APP是啥?然后重启的啥?
回复

使用道具 举报

3

主题

203

帖子

2302

积分

金牌会员

Rank: 6Rank: 6

积分
2302
金钱
2099
HASS币
0
发表于 2020-7-7 12:56:08 | 显示全部楼层
zxl_hass 发表于 2020-7-7 12:24
那是因为你重启hass太频繁了,空气盒子是作为tcp服务端,hass作为tcp客户端,每次重启hass都会重新连接一 ...

改空气盒子重新接入就没这个问题了   看来是海新APP的问题
回复

使用道具 举报

6

主题

110

帖子

1940

积分

论坛技术达人

积分
1940
金钱
1820
HASS币
40
发表于 2020-7-21 12:45:49 | 显示全部楼层
本帖最后由 tjsyk 于 2020-7-22 09:18 编辑
zxl_hass 发表于 2020-3-26 13:39
开不了,暂时不知道怎么获取

我从海尔开发平台的api接口上获取了一下,看着pm2.5返回的是一个相对值30w001,应该是会在001-004之间变化,再根据抓包结果看,数据包的97号位置,会从0-3之间变化,感觉这两个可以对的上,再根据ios客户端代码里面看的公式,应该可以计算出一个相对的数值。

if([code isEqualToString"30w001"])
    {
        str = @"25";
    }
    else if([code isEqualToString"30w002"])
    {
        str =  @"75";
    }
    else if([code isEqualToString"30w003"])
    {
        str =  @"125";
    }
    else if([code isEqualToString"30w004"])
    {
        str =  @"325";
    }
    else if([code intValue] > 0 && [code intValue] <= 500)
    {
        return code;
    }
    else if([code intValue] > 500)
    {
        return @"500";
    }
    else
    {
        return @"--";
    }
   
    NSArray *arrPm25 = [MainDelegate.pm25FloatRange objectForKey:mac];
    float xNum = 70.0f ;
    float yNum = 30.0f;
    float zNum = 4.0f;
    float aNum = 0.0f;
    if(arrPm25 && arrPm25.count >= 3)
    {
        xNum =[[arrPm25 objectAtIndex:0] floatValue];
        yNum=[[arrPm25 objectAtIndex:1] floatValue];
        zNum=[[arrPm25 objectAtIndex:2] floatValue];
        if(arrPm25.count >= 4)
        {
            aNum = [[arrPm25 objectAtIndex:3] floatValue];
        }
    }
   
    float totalFloat=xNum/ 100 *[ str floatValue] +(yNum / 100) * aNum + zNum;

pm25FloatRange  这个根据安卓客户端的抓包结果看是这个格式[70,30,0],其中最后一位看见过最大的是5

我在你的代码的基础上写了下面这个函数

def getRealPM25(self, level):
        #realHumi = round((humi / 10), 1)
        if level == 0:
            return round(70.0 / 100.0 * 25.0, 1) + random.randint(0,5)
        elif level == 1:
            return round(70.0 / 100.0 * 75.0, 1) + random.randint(0,5)
        elif level == 2:
            return round(70.0 / 100.0 * 125.0, 1) + random.randint(0,5)
        elif level == 3:
            return round(70.0 / 100.0 * 325.0, 1) + random.randint(0,5)
        else:
            return 0.0

具体还得再验证,也不知道对不对----------------------------------------------------------------------------------------

试了一下,确实是可以,和手机APP上的数值也能对的上,但是就是这玩意灵敏度太低了,只有离着很近往上面吐烟,才会有变化。
回复

使用道具 举报

6

主题

110

帖子

1940

积分

论坛技术达人

积分
1940
金钱
1820
HASS币
40
发表于 2020-7-22 09:22:09 | 显示全部楼层
加入了获取pm2.5,就是很不灵敏。

sensor.zip

1.93 KB, 下载次数: 28

回复

使用道具 举报

4

主题

55

帖子

582

积分

高级会员

Rank: 4

积分
582
金钱
527
HASS币
0
发表于 2020-7-22 14:50:09 | 显示全部楼层
之前买了一个玩,最近拆了发现里边用了两个单片机,一个是8位的MCU看着是处理所有数据用的,还有一个EMW3162的WiFi模块,看样子EMW3162只是用来串口通信的,回头读下串口数据,自己写个固件更新进去mqtt试一下看能不能成
回复

使用道具 举报

2

主题

64

帖子

2295

积分

金牌会员

Rank: 6Rank: 6

积分
2295
金钱
2226
HASS币
30
发表于 2020-7-29 21:27:14 | 显示全部楼层
本帖最后由 创意无限 于 2020-7-29 21:29 编辑
tjsyk 发表于 2020-7-22 09:22
加入了获取pm2.5,就是很不灵敏。

谢谢分享!data[96]的值 0,1,2,3 大概是对应app里的 VOC的 优 ,良 ,中,差。data[97]大概是PM2.5的。 __61}TH(1$@_KBAIZ}TP2LT.png



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 23:31 , Processed in 0.114389 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表