gpt4 book ai didi

flutter - 我正在尝试制作一个 flutter 的应用程序来控制我的Philips Hue灯,但是hue_dart遇到问题

转载 作者:行者123 更新时间:2023-12-03 03:35:15 26 4
gpt4 key购买 nike

我有Philips Hue灯,我希望能够使用Dart和Flutter更改颜色。我曾尝试使用名为 hue_dart 的库,但是当我将其作为Dart文件运行时,它只能控制一个灯,并且每次都必须单击Bridge上的按钮。
这是我的代码:

import 'package:http/http.dart';
import 'package:hue_dart/hue_dart.dart';

main(List<String> arguments) async {
final client = Client();

final discovery = BridgeDiscovery(client);

List<DiscoveryResult> discoverResults = await discovery.automatic();
final discoveryResult = discoverResults.first;

var bridge = Bridge(client, discoveryResult.ipAddress);

final whiteListItem = await bridge.createUser('dart_hue#example');

bridge.username = whiteListItem.username;

List<Light> lights = await bridge.lights();

final light = lights.first.changeColor(red: 1.0, green: 0, blue: 1.0);
LightState state = lightStateForColorOnly(light);
state = state.rebuild(
(s) => s
..on = true
..brightness = 10,
);
await bridge.updateLightState(light.rebuild(
(l) => l..state = state.toBuilder(),
));
}
我将如何使用户持久化?而且可以控制一系列灯光的,而不仅仅是返回的第一个灯光?

最佳答案

创建每次需要物理授权的用户时,每次都必须单击“桥接”按钮。打印创建的用户名以显示网桥已创建的随机生成的用户名。

final whiteListItem = await bridge.createUser('dart_hue#example');
print(whiteListItem);
bridge.username = whiteListItem.username;
然后,您可以摆脱createUser步骤,并使用该随机字符串作为用户名,因为该用户名现在是Bridge上的授权用户。
//final whiteListItem = await bridge.createUser('dart_hue#example');
bridge.username = 'the printed value'
至于控制一个光源方面,您只不过使用 lights.first更改了从GET返回的第一个光源的状态。我没有尝试过,但是反复进行将是一个不错的下一步:
Set<Light> set = Set.from(lights);
set.forEach((element) =>
changeState(element)
);

关于flutter - 我正在尝试制作一个 flutter 的应用程序来控制我的Philips Hue灯,但是hue_dart遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61508371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com