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

 找回密码
 立即注册
查看: 6301|回复: 23

[进阶教程] 在2024年通过阿里云生活物联对接天猫精灵,并借助AI实现...

[复制链接]

18

主题

280

帖子

2947

积分

论坛DIY达人

积分
2947
金钱
2652
HASS币
60
发表于 2024-1-10 11:59:37 | 显示全部楼层 |阅读模式
本帖最后由 花落花空 于 2024-1-10 12:11 编辑

前言:家里的几个猫精,之前语音控制使用的是巴法这种。最近越发感觉不够稳定。
然后得知之前有阿里云飞燕的方案,但据今已经两三年了。教程对比现在有些变化。在踩了一些坑后,总结出适用于现今的教程。


1:登陆注册阿里云生活物联平台,然后创建新项目。进入项目后,创建新产品,这时第一个坑出来了。之前的教程提到的是选择设备,然后联网方式选2/3/4G。但现在已经无了,不过不要怕,我们可以选网关。
创建产品.png

然后,开发产品和之前大同小异,参考之前的教程吧node-red接入阿里飞燕平台同时接入天猫精灵语控 - Node-Red - ioBroker中国

2:nodered
一开始我看有提到node-red-contrib-aliyun-living 节点,但我添加后显示连接失败,遂放弃,而使用了mqtt节点的配置方式。但事实上这是坑2
我看节点上是ProductSecret,我就去把产品的ProductSecret复制了过来,,,实际上这里是新增设备里的DeviceSecret。。。。
坑2.png

然后就是处理消息-控制灯和反馈到阿里云了。经过和BingAI的友好交流,很快啊,很快就得到了可用的function函数(一开始是基于mqtt节点配置的,所以下面的函数基于mqtt消息生成)

let serviceData = {};

switch (Object.keys(msg.payload.params)[0]) {
    case 'powerstate':
      //  serviceData.entity_id = 'light.yeelink_lamp22_e014_light'; // 你的开关实体ID
        if (msg.payload.params.powerstate === 1) {
            msg.payload = { domain: 'light', service: 'turn_on', data: serviceData };
        } else {
            msg.payload = { domain: 'light', service: 'turn_off', data: serviceData };
        }
        break;
    case 'brightness':
      //  serviceData.entity_id = 'light.yeelink_lamp22_e014_light'; // 你的灯光实体ID
        serviceData.brightness_pct = msg.payload.params.brightness;
        msg.payload = { domain: 'light', service: 'turn_on', data: serviceData };
        break;
    case 'colorTemperature':
     //   serviceData.entity_id = 'light.yeelink_lamp22_e014_light'; // 你的灯光实体ID
        serviceData.kelvin = Math.round(2700 + (msg.payload.params.colorTemperature * (6500 - 2700) / 100));
        msg.payload = { domain: 'light', service: 'turn_on', data: serviceData };
        break;
}

return msg;


然后是反馈状态的函数

let powerstate = msg.data.new_state.state === 'on' ? 1 : 0;
let brightness = Math.round(msg.data.new_state.attributes.brightness / 2.55);
let colorTemperature = Math.round((msg.data.new_state.attributes.color_temp_kelvin - 2700) * 100 / (6500 - 2700));

msg.payload = {
    "version": "1.0",
    "sys": {
        "ack": 1
    },
    "params": {
        "powerstate": powerstate,
        "brightness": brightness,
        "colorTemperature": colorTemperature
    },
    "method": "thing.event.property.post"
};

return msg;
完整的mqtt节点流程长这样

mqtt节点流程.png

飞燕节点流程长这样
飞燕流程.png

明显飞燕更加简洁方便。mqtt节点的配置方式参考天猫精灵接入nodered控制homeassistant任何品牌的设备

3:一切已经就绪,接下来使用云智能app扫码添加,然后绑定天猫精灵账号,你就能在天猫上体验原汁原味的灯光控制。接下直接分享流程吧。见附件。以上以灯为例,如果是其他设备或者新的状态,增加或者更改函数中对应的值就行,相信难不倒各位大佬
阿里-猫精.json (12.55 KB, 下载次数: 34)
另附和ai的对话
1.png 2.png 3.png


评分

参与人数 1金钱 +12 收起 理由
隔壁的王叔叔 + 12 感谢楼主分享!

查看全部评分

回复

使用道具 举报

18

主题

280

帖子

2947

积分

论坛DIY达人

积分
2947
金钱
2652
HASS币
60
 楼主| 发表于 2024-1-10 12:25:58 | 显示全部楼层
标题怎么少了几个字。。并借助AI实现优雅的NR流程。
回复

使用道具 举报

10

主题

124

帖子

777

积分

高级会员

Rank: 4

积分
777
金钱
653
HASS币
0
发表于 2024-1-10 13:17:02 | 显示全部楼层
飞燕节点的 测试正常
用mqtt节点的 测试有问题 楼主检查一下呢
回复

使用道具 举报

18

主题

280

帖子

2947

积分

论坛DIY达人

积分
2947
金钱
2652
HASS币
60
 楼主| 发表于 2024-1-10 13:49:36 | 显示全部楼层
linjz 发表于 2024-1-10 13:17
飞燕节点的 测试正常
用mqtt节点的 测试有问题 楼主检查一下呢

你的mqtt参数都对吗
回复

使用道具 举报

14

主题

549

帖子

5724

积分

论坛元老

Rank: 8Rank: 8

积分
5724
金钱
5175
HASS币
10
发表于 2024-1-10 14:21:50 | 显示全部楼层
创建网关设备,你会发现在阿里云物联网平台,可以通过给这个网关添加子设备,子设备会直接自动添加app,甚至都不用一个设备一个设备扫码添加到app里面
回复

使用道具 举报

18

主题

280

帖子

2947

积分

论坛DIY达人

积分
2947
金钱
2652
HASS币
60
 楼主| 发表于 2024-1-10 14:46:36 | 显示全部楼层
mars.z 发表于 2024-1-10 14:21
创建网关设备,你会发现在阿里云物联网平台,可以通过给这个网关添加子设备,子设备会直接自动添加app ...

妙啊
回复

使用道具 举报

10

主题

124

帖子

777

积分

高级会员

Rank: 4

积分
777
金钱
653
HASS币
0
发表于 2024-1-10 15:20:47 | 显示全部楼层
本帖最后由 linjz 于 2024-1-10 15:21 编辑

感谢楼主热心支持处理,  完美接入楼主有空搞一个空调的
回复

使用道具 举报

18

主题

280

帖子

2947

积分

论坛DIY达人

积分
2947
金钱
2652
HASS币
60
 楼主| 发表于 2024-1-10 21:52:03 | 显示全部楼层
linjz 发表于 2024-1-10 15:20
感谢楼主热心支持处理,  完美接入楼主有空搞一个空调的

创建空调的产品被,然后把属性在函数里对应上,就是比较繁琐了
回复

使用道具 举报

4

主题

106

帖子

832

积分

高级会员

Rank: 4

积分
832
金钱
726
HASS币
0
发表于 2024-1-10 23:52:39 | 显示全部楼层
其实更想要的是在ha控制天猫精灵的设备,这么多年都没解决方案
回复

使用道具 举报

8

主题

2075

帖子

6067

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6067
金钱
3992
HASS币
145

灌水之王

发表于 2024-1-14 10:09:26 | 显示全部楼层
留个记号,天猫精灵对接经常神经,被老婆骂的弃用了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-27 08:25 , Processed in 0.071061 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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