一、简介
wemo-js是一个Node.js和浏览器都可用的Wemo插件的Javascript API。该插件使用Node-SSDP和SOAP这两个库实现控制Wemo智能插头或灯泡的功能。使用wemo-js API,你可以通过编写Node.js和Javascript代码来轻松控制你的Wemo设备。
二、安装
要使用 wemo-js,你需要在你的Node.js项目中安装该npm包。在控制台输入以下命令:
npm install wemo-js
这将把最新的版本的 wemo-js 安装在你的项目中。
三、使用
(一)引入模块
在你的工程中引入 wemo-js 模块。
const wemo = require('wemo-js');
(二)获取 Wemo 设备
获取Wemo设备有两种方法:
1. 使用 IP 地址获取设备
wemo.discover('192.168.1.1', function(err, deviceInfo) { if (err) { console.error(err); return; } else { console.log('Device: ', deviceInfo); } })
2. 自动发现所有设备
wemo.discover(function(err, devices) { if (err) { console.error(err); return; } else { console.log('Devices:', devices); } })
(三)控制 Wemo 设备
一旦你获取了你的 Wemo 设备,你就可以使用 wemo-js API 来控制它。下面是一些常用的控制命令示例。
1. 打开 Wemo 设备
let client = wemo.client(deviceInfo.ip, deviceInfo.port); client.setBinaryState(1, function(err, result) { if (err) { console.error(err); } else { console.log('Success!'); } })
2. 关闭 Wemo 设备
let client = wemo.client(deviceInfo.ip, deviceInfo.port); client.setBinaryState(0, function(err, result) { if (err) { console.error(err); } else { console.log('Success!'); } })
3. 获取 Wemo 设备状态
let client = wemo.client(deviceInfo.ip, deviceInfo.port); client.getBinaryState(function(err, result) { if (err) { console.error(err); } else { console.log('State:', result); } })
(四)全局变量控制
如果你正在开发一个Web应用程序,并希望在你的所有页面中使用 Wemo 设备控制,你可以将 Wemo 客户端作为全局变量处理。
global.WemoClient = wemo.client(deviceInfo.ip, deviceInfo.port);
现在你可以在你的所有页面中使用 Wemo 客户端。
1. 打开 Wemo 设备
global.WemoClient.setBinaryState(1, function(err, result) { if (err) { console.error(err); } else { console.log('Success!'); } })
2. 关闭 Wemo 设备
global.WemoClient.setBinaryState(0, function(err, result) { if (err) { console.error(err); } else { console.log('Success!'); } })
3. 获取 Wemo 设备状态
global.WemoClient.getBinaryState(function(err, result) { if (err) { console.error(err); } else { console.log('State:', result); } })
四、总结
完成了以上步骤后,现在你已经能够使用 wemo-js 进行智能家居构建。在此过程中,你学习了如何引入 wemo-js 模块、获取 Wemo 设备、以及如何控制 Wemo 设备等内容。在未来的应用程序开发中,你可以使用此API进行Wemo设备的控制,开发更智能的家居应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006710a8dd3466f61ffe05b