基本过渡问题

Basic Transition Issues

我正在尝试编写一个基本脚本,它使用遥控器 API 打开我的灯,然后将它们转换为某种颜色。使用自定义 SDK 执行此操作的代码如下所示:

    group.SetState(hue.State{On: true, Bri: 0, Hue: 4000, TransitionTime: 0})
    time.Sleep(1 * time.Second)
    group.SetState(hue.State{TransitionTime: 300, Bri: 254, Hue: 11500, Sat: 0})

其中每个 SetState 调用都会调用组命令 API。看起来很简单,但我遇到了几个问题:

  1. 除非我先调暗灯光然后关闭它们(或调用 Hue Labs 的 'Cinema' 公式),否则当我调用此代码时,灯光会以之前的亮度亮起,似乎忽略了第一个 setState 电话。
  2. 忽略过渡的亮度和饱和度。它所做的只是转换色调,尽管这种行为会根据我是否包含睡眠定时器而有所不同。

对我做错了什么有什么想法吗?

编辑:看起来 API 甚至没有遵守第一个语句的亮度设置。如果我调用将其设置为 0,则什么也不会发生。

事实证明,我描述的问题是由于 json:"___,omitempty"亮度、过渡和饱和度设置所致。这意味着当它们的值为 0 时,在 Go 中编组为 json 时它们将被排除在外。 捂脸

将值转换为 int 指针解决了我的问题。