本帖最后由 花落花空 于 2024-1-10 12:11 编辑
前言:家里的几个猫精,之前语音控制使用的是巴法这种。最近越发感觉不够稳定。
然后得知之前有阿里云飞燕的方案,但据今已经两三年了。教程对比现在有些变化。在踩了一些坑后,总结出适用于现今的教程。
1:登陆注册阿里云生活物联平台,然后创建新项目。进入项目后,创建新产品,这时第一个坑出来了。之前的教程提到的是选择设备,然后联网方式选2/3/4G。但现在已经无了,不过不要怕,我们可以选网关。
然后,开发产品和之前大同小异,参考之前的教程吧node-red接入阿里飞燕平台同时接入天猫精灵语控 - Node-Red - ioBroker中国
2:nodered
一开始我看有提到node-red-contrib-aliyun-living 节点,但我添加后显示连接失败,遂放弃,而使用了mqtt节点的配置方式。但事实上这是坑2
我看节点上是ProductSecret,我就去把产品的ProductSecret复制了过来,,,实际上这里是新增设备里的DeviceSecret。。。。
然后就是处理消息-控制灯和反馈到阿里云了。经过和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节点的配置方式参考天猫精灵接入nodered控制homeassistant任何品牌的设备
3:一切已经就绪,接下来使用云智能app扫码添加,然后绑定天猫精灵账号,你就能在天猫上体验原汁原味的灯光控制。接下直接分享流程吧。见附件。以上以灯为例,如果是其他设备或者新的状态,增加或者更改函数中对应的值就行,相信难不倒各位大佬
阿里-猫精.json
(12.55 KB, 下载次数: 34)
另附和ai的对话
|