Основные проблемы перехода

Я пытаюсь написать базовый скрипт, который использует удаленный 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), когда я вызову этот код, свет загорится с любой яркостью, на которой он был раньше, по-видимому, игнорируя первый вызов setState.
  2. Яркость и насыщенность перехода игнорируются. Все, что он делает, это переход Hue, хотя это поведение зависит от того, включаю ли я таймер сна или нет.

Любые мысли о том, что я делаю неправильно?

РЕДАКТИРОВАТЬ: похоже, что API даже не соблюдает настройку яркости первого оператора. Если я позвоню, чтобы установить его на 0, ничего не произойдет.


person ragurney    schedule 31.12.2019    source источник
comment
Можете ли вы опубликовать какую-либо документацию для SDK?   -  person Russ J    schedule 01.01.2020
comment
@RussJ: stackoverflow.com/tags/philips-hue/info   -  person Ken White    schedule 01.01.2020
comment
@RussJ это библиотека, которую я использую: github.com/amimof/huego   -  person ragurney    schedule 01.01.2020
comment
О ЧЕЛОВЕК Я думаю, что я только что понял это. Глядя на источник библиотеки, яркость и насыщенность имеют json:"___,omitempty" в своих значениях, поэтому 0 будет исключен из запроса. Сейчас проверяю, прав ли я. Это сожгло довольно много часов, если это проблема.   -  person ragurney    schedule 01.01.2020


Ответы (1)


Оказывается, проблемы, которые я описал, были связаны с json:"___,omitempty" настройками яркости, перехода и насыщенности. Это означает, что когда они имеют значение 0, они не учитываются при маршаллинге в json в Go. фейспалм.

Преобразование значений в указатели int решило проблему для меня.

person ragurney    schedule 01.01.2020