Как сделать так, чтобы Алекса последовательно выполнял указания кнопки "SetLight"?
Я работаю над тем, чтобы в Alexa отображался паттерн мерцаний с использованием двух кнопок оранжевого цвета, каждая с полсекунды черного буфера. Таким образом, шаблон будет:
кнопка 1 на 1 секунду оранжевого цвета с половиной секунды черного цвета.
кнопка 2 на одну секунду оранжевого с половиной секунды черного.
кнопка 2 на одну секунду оранжевого с половиной секунды черного.
кнопка 1 на одну секунду оранжевого с половиной секунды черного.
Я пытаюсь сложить их, но это никогда не срабатывает. Вот код, который я использую:
this.response._addDirective({
"type": "GadgetController.SetLight",
"version": 1,
"targetGadgets": ["amzn1.ask.gadget.XXX1"],
"parameters": {
"triggerEvent": "none",
"triggerEventTimeMs": 0,
"animations": [{
"repeat": 1,
"targetLights": ["1"],
"sequence": [
{
"durationMs": 1000,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": "b32d00"
}
]
}]
}
});
this.response._addDirective({
"type": "GadgetController.SetLight",
"version": 1,
"targetGadgets": ["amzn1.ask.gadget.XXXX2"],
"parameters": {
"triggerEvent": "none",
"triggerEventTimeMs": 0,
"animations": [{
"repeat": 1,
"targetLights": ["1"],
"sequence": [{
"durationMs": 1500,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": "b32d00"
}
]
}]
}
});
this.response._addDirective({
"type": "GadgetController.SetLight",
"version": 1,
"targetGadgets": ["amzn1.ask.gadget.XXXX2"],
"parameters": {
"triggerEvent": "none",
"triggerEventTimeMs": 0,
"animations": [{
"repeat": 1,
"targetLights": ["1"],
"sequence": [
{
"durationMs": 2000,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": "b32d00"
}
]
}]
}
});
this.response._addDirective({
"type": "GadgetController.SetLight",
"version": 1,
"targetGadgets": ["amzn1.ask.gadget.XXXX1"],
"parameters": {
"triggerEvent": "none",
"triggerEventTimeMs": 0,
"animations": [{
"repeat": 1,
"targetLights": ["1"],
"sequence": [
{
"durationMs": 2500,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": "b32d00"
}
]
}]
}
});
Я предполагаю, что моя проблема заключается в том, что триггерные события "none" взаимно компенсируют друг друга, но должен быть способ сделать это. Какие-нибудь мысли?
1 ответ
В конце концов я понял это и хотел обновить это на случай, если кто-то еще наткнется на это.
Я пытался запустить 4 анимации подряд через две кнопки, но это невозможно. Вы можете использовать только одну директиву анимации (SetLight) для каждой кнопки, поэтому в этом случае я использовал две. После того, как я изменил свой способ мышления, я смог получить две анимации, по одной для каждой кнопки, у которой была соответствующая кнопка, а другая была темной. Примеры ниже:
Директива setLight кнопки 1:
this.response._addDirective({
"type": "GadgetController.SetLight",
"version": 1,
"targetGadgets": [`${deviceIds[0]}`],
"parameters": {
"animations": [{
"repeat": 1,
"targetLights": ["1"],
"sequence": [{
"durationMs": 3000,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": b32d00
},
{
"durationMs": 500,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": 000000
},
{
"durationMs": 500,
"blend": false,
"color": "000000"
}
]
}],
"triggerEvent": "none",
"triggerEventTimeMs": 0
}
Директива setLight кнопки 2:
this.response._addDirective({
"type": "GadgetController.SetLight",
"version": 1,
"targetGadgets": [`${deviceIds[0]}`],
"parameters": {
"animations": [{
"repeat": 1,
"targetLights": ["1"],
"sequence": [{
"durationMs": 3000,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": 000000
},
{
"durationMs": 500,
"blend": false,
"color": "000000"
},
{
"durationMs": 1000,
"blend": false,
"color": b32d00
},
{
"durationMs": 500,
"blend": false,
"color": "000000"
},
{
"durationMs": 10000,
"blend": false,
"color": "b32d00"
}
]
}],
"triggerEvent": "none",
"triggerEventTimeMs": 0
}
Это основной jist, надеюсь, это поможет кому-то еще.