请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居第一站

 找回密码
 立即注册
查看: 4455|回复: 116

[开关插座] 控客设备插件2.0版发布

  [复制链接]

7

主题

110

帖子

916

积分

论坛技术达人

积分
916
金钱
791
HASS币
40
发表于 2018-11-11 10:42:39 | 显示全部楼层 |阅读模式
本帖最后由 jedmeng 于 2018-11-13 13:09 编辑

很早之前发了第一版的控客插件,功能比较单一,支持MiniK/K2。https://bbs.hassbian.com/thread-3523-1-1.html

最近进行了一次升级,支持了控客目前全部的插座、插排和灯泡,另外也支持了红外和射频遥控功能
说是升级,其实重写了全部代码,整体改为异步模式,比第一版效率更高,推荐第一版的用户升级。

其实插件写好有段时间了,碍于最近比较多没来得及完善,另外手头设备有限许多功能没办法测试,所以拖了很久都没发。
鉴于接下来的时间会更忙,所以决定先把插件优化一版发出来。另外,感谢@killadm、@dsyulgz的友情帮测~

不过截至目前,控客插排(两款)、第一代RGB灯泡,还没有经过真机测试,如果大家在使用过程中遇到问题请回帖反馈。

好了,废话到此为止。

先说设备型号

控客家的设备除了插座系列,貌似都没有明确的对外型号。为了方便描述,首先对型号进行明确:

  • 插座:
    k1:第一代插座,开关在右下角
    k2:第二代插座,支持插件,不区分k2和k2pro
    minik:小K插座,圆形,同样不区分minik和minikpro
  • 插排:
    micmul:横版插排,4插孔+2USB
    mul:竖板插排,3插孔+4USB
  • 灯泡:
    klight:第一代灯泡,支持亮度和颜色调节
    kbulb:第二代灯泡,支持亮度和色温调节


然后是配置方法

  • 插座和插排:
    下载自定义插件地址,保存到config/costum_components/switch/下。
    增加配置:
    [Python] 纯文本查看 复制代码
    switch:
      - platform: konke
        host: 【设备IP】
        name: 【设备显示的名称,可不填】
        model: 【设备型号,见上面对型号的定义】
    


    k2插座和mul插排,会同时添加插孔开关和usb开关。
    插排的每个插孔显示为独立的开关,默认以name_1,name_2的形式显示,建议根据功能在customize.yaml中重命名,另外为了使用方便,可以单独给插排单独定义一个分组。
    屏幕快照 2018-11-10 上午10.22.59.png
  • 灯泡:
    下载自定义插件地址,保存到config/costum_components/light/下。
    增加配置:
    [Python] 纯文本查看 复制代码
    light:
      - platform: konke
        host: 【设备IP】
        name: 【设备显示的名称,可不填】
        model: 【设备型号,见上面对型号的定义】
    


    这里也支持k2的夜灯控制,host就填插座的ip,model填k2_light。
  • 遥控器:
    下载自定义插件地址,保存到config/costum_components/remote/下。
    增加配置:
    [Python] 纯文本查看 复制代码
    remote:
      - platform: konke
        host: 【设备IP】
        name: 【设备显示的名称,可不填】
        model: 【设备型号,见上面对型号的定义】
        hidden: 【是否显示这个设备,默认False,建议False】
        type:【遥控类型,红外ir,射频rf】
    


    如果hidden设为true,界面中会显示遥控器的设备,但是此处的开关是无效的!

遥控使用方法

控客的遥控器是不支持直接输入遥控编码的,只能通过学习添加遥控器。

  • 添加遥控:
    进入service界面,选择remote.koneke_ir_learn_command或remote.koneke_rf_learn_command。
    [JavaScript] 纯文本查看 复制代码
    {
      "entity_id": "【设备的entity_id】",
      "slot": 【命令id,取值范围1000-99999】,
      "timeout": 【超时时长,默认10s】
    }
    

    注意solt参数是int格式,周围不能带引号,否则命令会不生效。
    学习后会在主界面显示通知信息,提示学习的成功或者失败。
    屏幕快照 2018-11-10 下午8.17.04.png
  • 使用遥控:
    调用remote.send_command这个service,data:
    [JavaScript] 纯文本查看 复制代码
    {
      "entity_id": "【设备的entity_id】",
      "command": "【遥控类型ir或rf】_【命令id,取值范围1000-99999】",
      "num_repeats": 【发送次数,默认1】,
      "delay_secs": 【两次发射间的延时,默认0.4s】
    }
    



为了方便下载,插件在附件中也传了一份。



homeassistant-konke.zip

7.16 KB, 下载次数: 202

评分

参与人数 3金钱 +12 收起 理由
cn101 + 1
yuqiuyi99 + 5
jyz_0501 + 6 厉害了word楼主!

查看全部评分

回复

使用道具 举报

7

主题

110

帖子

916

积分

论坛技术达人

积分
916
金钱
791
HASS币
40
 楼主| 发表于 2018-11-11 10:42:50 | 显示全部楼层
本帖最后由 jedmeng 于 2018-11-11 10:59 编辑

开发插件的过程中为了分析方便,顺手写了一个WireShark的协议解析插件,效果如图:
WX20181111-105045.png

有兴趣研究控客协议的同学可以自取,普通用户无需关注,注意,此附件收费。

使用插件前需要首先安装依赖:https://github.com/Lekensteyn/luagcrypt



konke.lua (2.36 KB, 下载次数: 4, 售价: 10 金钱)

评分

参与人数 2金钱 +30 收起 理由
flashsoft + 20 这个得加分
killadm + 10 膜拜大神!

查看全部评分

回复

使用道具 举报

11

主题

425

帖子

2635

积分

金牌会员

Jeff

Rank: 6Rank: 6

积分
2635
金钱
2210
HASS币
10

活跃会员

发表于 2018-11-11 14:51:33 | 显示全部楼层
沙发 墙裂支持
Jeff
回复

使用道具 举报

125

主题

1694

帖子

3403

积分

论坛元老

我就是六神

Rank: 8Rank: 8

积分
3403
金钱
1704
HASS币
278

活跃会员灌水之王

QQ
发表于 2018-11-11 20:24:45 | 显示全部楼层
厉害  支持  !!!
回复

使用道具 举报

4

主题

465

帖子

2377

积分

金牌会员

Rank: 6Rank: 6

积分
2377
金钱
1902
HASS币
120
发表于 2018-11-11 21:29:28 | 显示全部楼层
本帖最后由 killadm 于 2018-11-13 12:03 编辑


更新:在楼主的帮助下搞定了,不是插件的问题,是另一个K2自己抽风。
K1在更新后也出来了。

===================================================================================

不知道为啥,设置了一个k1两个k2,只出来了一个k2。
昨天用新推的代码测试都通过了。

[AppleScript] 纯文本查看 复制代码
2018-11-11 21:25:48 ERROR (MainThread) [homeassistant.helpers.entity] Update for switch.smatplugk fails
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 221, in async_update_ha_state
    await self.async_device_update()
  File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 347, in async_device_update
    await self.async_update()
  File "/config/custom_components/switch/konke.py", line 127, in async_update
    await self._device.update(type='relay')
  File "/config/deps/lib/python3.7/site-packages/pykonkeio/device/basetoggle.py", line 26, in update
    self.status = await self.send_message('check', **kwargs)
TypeError: send_message() got an unexpected keyword argument 'type'


配置是这样的
[AppleScript] 纯文本查看 复制代码
switch:
  - platform: konke
    host: 192.168.123.35
    name: smatplugk
    model: k1
  - platform: konke
    host: 192.168.123.231
    name: pc
    model: k2
  - platform: konke
    host: 192.168.123.232
    name: projector
    model: k2



翻译中...


回复

使用道具 举报

4

主题

34

帖子

156

积分

论坛分享达人

积分
156
金钱
122
HASS币
0
发表于 2018-11-11 22:46:50 | 显示全部楼层
请问同时有mini k和mini K pro应该怎么设置costum_components下的文件?
重命名konke.py 不冲突就行?
回复

使用道具 举报

7

主题

110

帖子

916

积分

论坛技术达人

积分
916
金钱
791
HASS币
40
 楼主| 发表于 2018-11-11 22:55:02 | 显示全部楼层
killadm 发表于 2018-11-11 21:29
不知道为啥,设置了一个k1两个k2,只出来了一个k2。
昨天用新推的代码测试都通过了。

报错这个问题修复了,单独升级一下pykonkeio就好了。少一个k2的问题找你私聊。
回复

使用道具 举报

7

主题

110

帖子

916

积分

论坛技术达人

积分
916
金钱
791
HASS币
40
 楼主| 发表于 2018-11-11 23:03:45 | 显示全部楼层
a74074011 发表于 2018-11-11 22:46
请问同时有mini k和mini K pro应该怎么设置costum_components下的文件?
重命名konke.py 不冲突就行? ...

不需要改动文件,只要增加多条配置就行
[Python] 纯文本查看 复制代码
switch:
  - platform: konke
    host: 【mink ip】
    name: MiniK
    model: minik
  - platform: konke
    host: 【minik pro ip】
    name: MiniK Pro
    model: minik
回复

使用道具 举报

4

主题

34

帖子

156

积分

论坛分享达人

积分
156
金钱
122
HASS币
0
发表于 2018-11-11 23:10:33 | 显示全部楼层
本帖最后由 a74074011 于 2018-11-12 19:17 编辑

13楼解决了问题

回复

使用道具 举报

10

主题

394

帖子

1425

积分

金牌会员

Rank: 6Rank: 6

积分
1425
金钱
1026
HASS币
20
发表于 2018-11-12 14:17:17 | 显示全部楼层
大神,请收下我的膝盖!
我等膜拜!
楼主真是我等论坛的启明星啊!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2019-6-25 02:28 , Processed in 0.487724 second(s), 42 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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