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

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

[智能音箱] (2018.11.2更新了视频)小爱同学局域网接入HA图文流程2

  [复制链接]

9

主题

534

帖子

4428

积分

元老级技术达人

积分
4428
金钱
3884
HASS币
60
发表于 2018-11-2 11:06:38 | 显示全部楼层
flashsoft 发表于 2018-11-1 22:27
无需填写URL,只要填写账号密码

感谢回复,谢谢分享的流v3。可以操作了。能再优化下HA判断的逻辑吗?比如我的 cmd: "cmd: "打开书房的音箱和显示器"
" ,会触发所有我的friendly_name书房 和音箱  相关的开关。而不是打开 group为书房,entity_id为音箱的开关。
能否像 天猫精灵一样:https://bbs.hassbian.com/thread-4758-1-1.html  https://bbs.hassbian.com/forum.php?mod=viewthread&tid=2700
增加配置参数:
hagenie_zone: 客厅
hagenie_deviceName: 吸顶灯
hagenie_deviceType: outlet
方式来处理呢?

回复

使用道具 举报

9

主题

228

帖子

2044

积分

超级版主

Rank: 8Rank: 8

积分
2044
金钱
1791
HASS币
100

突出贡献

发表于 2018-11-2 12:45:41 | 显示全部楼层
sangood 发表于 2018-11-2 11:06
感谢回复,谢谢分享的流v3。可以操作了。能再优化下HA判断的逻辑吗?比如我的 cmd: "cmd: "打开书房的音 ...

现在的自动控制HA设备的方案是简单暴力型的,并不支持特定group下的开关
建议可以自己写一个别名来控制
回复

使用道具 举报

9

主题

228

帖子

2044

积分

超级版主

Rank: 8Rank: 8

积分
2044
金钱
1791
HASS币
100

突出贡献

发表于 2018-11-2 12:47:06 | 显示全部楼层
sangood 发表于 2018-11-2 11:06
感谢回复,谢谢分享的流v3。可以操作了。能再优化下HA判断的逻辑吗?比如我的 cmd: "cmd: "打开书房的音 ...

比如修改成这样,新增 自定义HA设备组合 这样你就可以自己在这里随便写个名字,然后去控制
// POST接口
// 支持两个参数
// cmd: 必选参数,操作指令,类似"打开书房插座和小爱开关"
// tts: 可选参数,用于找不到设备时的内容返回

const cmd = msg.payload.cmd || ''
const tts = msg.payload.tts || ''

// 服务列表,一般不用动了
const service_list = {
  // 开关词与动作映射,酌情修改
  'act': {
    'turn_on': ['打开', '开开', '开启'],
    'turn_off': ['关闭', '关掉']
  },
  // 特殊设备的开关动作映射
  'alias': {
    'cover': { 'turn_on': 'open_cover', 'turn_off': 'close_cover' },
    'lock': { 'turn_on': 'unlock', 'turn_off': 'lock' }
  }
}
// 自定义HA设备组合
// 可以随意取个名字来操作同类型的一组设备
const custom_device_list = [
  {
    'domain': 'cover',
    'entity_id': 'cover.a,cover.b',
    'friendly_name': '窗帘'
  }
]


//=== 以下内容谨慎修改 ===============================================================
// 获取HA设备列表,从另外一个流中获取
let device_list = flow.get('device_list')
// 合并自定义设备数据
device_list = device_list.concat(custom_device_list)
// 生成需操作的设备列表
const list = device_list.filter(it => {
  let service = ''
  for (var key in service_list.act) {
    if (!!service_list.act[key].filter(it => !!~cmd.indexOf(it)).length) {
      service = key
      break
    }
  }
  if (!!~cmd.indexOf(it.friendly_name) && service !== '') {
    const alias = service_list.alias[it.domain]
    alias && (service = alias[service])
    return (it.service = service)
  }
}).map(it => {
  it.data = { entity_id: it.entity_id }
  return it
})
const multi_list = list.map(it => {
  return { res: msg.res, req: msg.req, payload: it, list, cmd, tts }
})
multi_list.push({ res: msg.res, req: msg.req, payload: {}, list, cmd, tts })
node.status({ fill: 'green', text: `更新:${(new Date()).toLocaleTimeString()}` })
return multi_list
回复

使用道具 举报

9

主题

534

帖子

4428

积分

元老级技术达人

积分
4428
金钱
3884
HASS币
60
发表于 2018-11-2 16:23:48 | 显示全部楼层
flashsoft 发表于 2018-11-2 12:47
比如修改成这样,新增 自定义HA设备组合 这样你就可以自己在这里随便写个名字,然后去控制
...


感谢,明白了,谢谢提供方法。
回复

使用道具 举报

11

主题

359

帖子

2408

积分

金牌会员

Rank: 6Rank: 6

积分
2408
金钱
2049
HASS币
0
发表于 2018-11-2 22:16:59 | 显示全部楼层
能喊他打开灯会拦截,喊他关闭就不会拦截。

== 有内容更新 | domain: smartMiot errcode: 2002005
== 试图停止
== 其他模式 | smartMiot
== 停止成功
== 请求完成
== 播报TTS | TTS内容: 操作已成功
== 播报TTS结束
== 投日志 | ok
== 有内容更新 | domain: smartMiot errcode:
== 投日志 | ok
回复

使用道具 举报

11

主题

359

帖子

2408

积分

金牌会员

Rank: 6Rank: 6

积分
2408
金钱
2049
HASS币
0
发表于 2018-11-3 10:39:40 | 显示全部楼层
本帖最后由 ruianyu 于 2018-11-3 10:54 编辑

又试了下,家里有小米开关,只有这个小米的设备开着,喊他关闭ha设备就会把小米设备关了而不去处理ha设备,把小米设备关了他就能识别关闭ha设备。把小爱app里设备给删了全走ha是没问题。

我有两台小爱,现在绿板的绑定设备,黑板的就全删走ha可行。。。
回复

使用道具 举报

13

主题

182

帖子

1475

积分

金牌会员

Rank: 6Rank: 6

积分
1475
金钱
1293
HASS币
0
发表于 2018-11-3 21:41:35 | 显示全部楼层
node-red里导入模板时提示无法识别的类型:
TIM图片20181103213931.png
回复

使用道具 举报

4

主题

144

帖子

1640

积分

论坛积极会员

积分
1640
金钱
1491
HASS币
20
 楼主| 发表于 2018-11-4 11:47:22 | 显示全部楼层
lmdf 发表于 2018-11-3 21:41
node-red里导入模板时提示无法识别的类型:

要更改成你自己的HA数据
回复

使用道具 举报

13

主题

182

帖子

1475

积分

金牌会员

Rank: 6Rank: 6

积分
1475
金钱
1293
HASS币
0
发表于 2018-11-4 14:31:32 | 显示全部楼层
matisse 发表于 2018-11-4 11:47
要更改成你自己的HA数据

不会啊,有没有例子参考一下
回复

使用道具 举报

2

主题

190

帖子

1733

积分

金牌会员

Rank: 6Rank: 6

积分
1733
金钱
1543
HASS币
0
发表于 2018-11-4 17:05:28 | 显示全部楼层
lmdf 发表于 2018-11-4 14:31
不会啊,有没有例子参考一下

我也一樣問題,還不太了解怎麼處理,繼續學習
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 11:19 , Processed in 0.058645 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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