Dotnet YeelightAPI 控制 Yeelight 灯泡

Dotnet YeelightAPI 控制 Yeelight 灯泡

为了省去拿手机的【站起来-走过去-解锁-开APP-点屏幕-走回来-坐下】这个繁琐的过程(低情商:懒),在电脑上可以一键开/关灯/调节亮度,用 C# 写了一个开关灯的命令行工具

程序从程序所在路径的 config.json 读取灯泡的 IP 地址,创建灯泡组,按提供的参数(on、off、set、toggle)控制灯泡

为了多平台使用没有用 .NET Framework 的 GUI(其实也可以做成 Web),相关代码已推送到 Github (大量 if-else 警告,设计模式白学)

YeelightAPI 是还在更新的为 .NET 平台封装的 Yeelight API,几乎所有方法使用了异步,调用方法时需要添加 async/await

实现开/关/调亮度会用到以下方法:

using YeelightAPI;

Device device = new Device("[IP]");

device.Connect(); // 连接设备
device.TurnOn(); // 打开
device.TurnOff(); // 关闭
device.Toggle(); // 切换开关状态
device.SetBrightness(value) //设置亮度,value 区间 [0-100]

其中 TurnOn、TurnOff、SetBrightness 可以添加参数 smooth 来增添柔和效果

如果有多个灯泡,可以使用 DeviceGroup 将灯泡编组,DeviceGroup 本质上是 List<Device>

DeviceGroup GetDevices() {
    var bulbs = LoadBulbs();
    var devicesGroup = new DeviceGroup();
    foreach (var bulb in bulbs) {
        var device = new Device(bulb);
        devicesGroup.Add(device);
    }
    return devicesGroup;
}

YeelightAPI 也提供了自动搜索网络中设备的方法

Enumerable<Device> discoveredDevices = await DeviceLocator.DiscoverAsync();

但是自动搜索没有指定 IP 快,稳定性也未测试

使用过程中发现 yeelight 炫彩版灯泡有不同版本:color4 和 color8,YeelightAPI 可以连接 color8 但无法连接 color4 版本(此版本使用手机 APP 控制时也不如 color8 顺畅),不得已需要写多个 try-catch

除了控制开关、调亮度,YeelightAPI 也封装了调色温、Color Flow、音乐律动模式等其他手机 App 内包含的功能

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据