ovos-skill-mark1-ctrl 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ovos_skill_mark1_ctrl/__init__.py +476 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/animation.voc +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/blink.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/brightness.intent +11 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/crazy.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/down.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/enclosure.voc +4 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/eyes.voc +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/left.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/listen.voc +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/look.voc +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/mouth.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/mute.voc +4 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/narrow.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/perform.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/reboot.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/reset.voc +4 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/right.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/set.default.eye.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/smile.voc +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/spin.voc +1 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/system.voc +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/think.voc +2 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/unmute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/ca-ES/up.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/animation.voc +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/blink.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/brightness.intent +12 -0
- ovos_skill_mark1_ctrl/locale/da-DK/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/da-DK/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/da-DK/crazy.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/down.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/enclosure.voc +4 -0
- ovos_skill_mark1_ctrl/locale/da-DK/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/da-DK/eyes.voc +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/left.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/listen.voc +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/look.voc +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/mouth.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/mute.voc +4 -0
- ovos_skill_mark1_ctrl/locale/da-DK/narrow.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/perform.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/reboot.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/reset.voc +4 -0
- ovos_skill_mark1_ctrl/locale/da-DK/right.voc +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/da-DK/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/set.default.eye.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/da-DK/smile.voc +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/spin.voc +3 -0
- ovos_skill_mark1_ctrl/locale/da-DK/system.voc +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/think.voc +2 -0
- ovos_skill_mark1_ctrl/locale/da-DK/unmute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/da-DK/up.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/animation.voc +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/blink.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/de-DE/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/brightness.intent +12 -0
- ovos_skill_mark1_ctrl/locale/de-DE/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/de-DE/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/de-DE/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/de-DE/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/de-DE/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/de-DE/crazy.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/down.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/enclosure.voc +4 -0
- ovos_skill_mark1_ctrl/locale/de-DE/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/de-DE/eyes.voc +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/left.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/listen.voc +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/look.voc +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/mouth.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/mute.voc +4 -0
- ovos_skill_mark1_ctrl/locale/de-DE/narrow.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/perform.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/reboot.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/reset.voc +4 -0
- ovos_skill_mark1_ctrl/locale/de-DE/right.voc +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/de-DE/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/set.default.eye.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/de-DE/smile.voc +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/spin.voc +3 -0
- ovos_skill_mark1_ctrl/locale/de-DE/system.voc +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/think.voc +2 -0
- ovos_skill_mark1_ctrl/locale/de-DE/unmute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/de-DE/up.voc +1 -0
- ovos_skill_mark1_ctrl/locale/el-GR/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/el-GR/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/el-GR/brightness.intent +13 -0
- ovos_skill_mark1_ctrl/locale/el-GR/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/el-GR/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/el-GR/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/el-GR/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/el-GR/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/el-GR/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/el-GR/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/el-GR/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/el-GR/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/animation.voc +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/blink.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/en-US/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/brightness.intent +13 -0
- ovos_skill_mark1_ctrl/locale/en-US/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/en-US/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/en-US/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/en-US/crazy.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/down.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/enclosure.voc +4 -0
- ovos_skill_mark1_ctrl/locale/en-US/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/en-US/eyes.voc +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/left.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/listen.voc +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/look.voc +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/mouth.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/mute.voc +4 -0
- ovos_skill_mark1_ctrl/locale/en-US/narrow.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/perform.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/reboot.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/reset.voc +4 -0
- ovos_skill_mark1_ctrl/locale/en-US/right.voc +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/en-US/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/set.default.eye.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/en-US/smile.voc +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/spin.voc +3 -0
- ovos_skill_mark1_ctrl/locale/en-US/system.voc +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/think.voc +2 -0
- ovos_skill_mark1_ctrl/locale/en-US/unmute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/en-US/up.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/animation.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/blink.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/es-ES/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/brightness.intent +11 -0
- ovos_skill_mark1_ctrl/locale/es-ES/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/es-ES/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/es-ES/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/es-ES/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/es-ES/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/es-ES/crazy.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/down.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/enclosure.voc +4 -0
- ovos_skill_mark1_ctrl/locale/es-ES/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/eye.color.intent +5 -0
- ovos_skill_mark1_ctrl/locale/es-ES/eyes.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/left.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/listen.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/look.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/mouth.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/mute.voc +4 -0
- ovos_skill_mark1_ctrl/locale/es-ES/narrow.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/perform.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/reboot.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/reset.voc +4 -0
- ovos_skill_mark1_ctrl/locale/es-ES/right.voc +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/es-ES/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/set.default.eye.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/es-ES/smile.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/spin.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/system.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/think.voc +2 -0
- ovos_skill_mark1_ctrl/locale/es-ES/unmute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/es-ES/up.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/animation.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/blink.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/brightness.intent +12 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/crazy.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/down.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/enclosure.voc +4 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/eye.color.intent +5 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/eyes.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/left.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/listen.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/look.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/mouth.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/mute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/narrow.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/perform.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/reboot.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/reset.voc +4 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/right.voc +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/set.default.eye.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/smile.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/spin.voc +3 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/system.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/think.voc +2 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/unmute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/fr-FR/up.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/animation.voc +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/blink.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/brightness.intent +12 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/crazy.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/down.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/enclosure.voc +4 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/eyes.voc +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/left.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/listen.voc +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/look.voc +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/mouth.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/mute.voc +4 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/narrow.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/perform.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/reboot.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/reset.voc +4 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/right.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/set.default.eye.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/smile.voc +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/spin.voc +1 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/system.voc +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/think.voc +2 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/unmute.voc +3 -0
- ovos_skill_mark1_ctrl/locale/gl-ES/up.voc +1 -0
- ovos_skill_mark1_ctrl/locale/it-IT/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/it-IT/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/it-IT/brightness.intent +13 -0
- ovos_skill_mark1_ctrl/locale/it-IT/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/it-IT/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/it-IT/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/it-IT/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/it-IT/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/it-IT/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/it-IT/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/it-IT/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/it-IT/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/brightness.intent +12 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/nl-NL/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/brightness.intent +12 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/pt-BR/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/brightness.intent +12 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/eye.color.intent +7 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/get.g.value.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/ru-RU/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/brightness.entity +13 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/brightness.error.dialog +1 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/brightness.intent +11 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/brightness.levels.value +9 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/brightness.not.found.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/brightness.not.found.final.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/brightness.set.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/color.entity +160 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/color.need.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/color.not.exist.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/color.not.found.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/colors.value +149 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/custom.eye.color.intent +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/error.rgbvalue.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/error.set.color.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/eye.color.intent +6 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/get.b.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/get.g.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/get.r.value.dialog +2 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/set.color.success.dialog +3 -0
- ovos_skill_mark1_ctrl/locale/sv-SE/set.custom.color.dialog +1 -0
- ovos_skill_mark1_ctrl/renovate.json +6 -0
- ovos_skill_mark1_ctrl/version.py +6 -0
- ovos_skill_mark1_ctrl-0.0.1.dist-info/METADATA +17 -0
- ovos_skill_mark1_ctrl-0.0.1.dist-info/RECORD +437 -0
- ovos_skill_mark1_ctrl-0.0.1.dist-info/WHEEL +5 -0
- ovos_skill_mark1_ctrl-0.0.1.dist-info/entry_points.txt +2 -0
- ovos_skill_mark1_ctrl-0.0.1.dist-info/licenses/LICENSE +8 -0
- ovos_skill_mark1_ctrl-0.0.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
import random
|
|
2
|
+
import time
|
|
3
|
+
from ast import literal_eval as parse_tuple
|
|
4
|
+
from ovos_color_parser import color_from_description, sRGBAColor
|
|
5
|
+
from ovos_utils import create_daemon, classproperty
|
|
6
|
+
from ovos_utils.log import LOG
|
|
7
|
+
from ovos_utils.process_utils import RuntimeRequirements
|
|
8
|
+
from ovos_workshop.decorators import intent_handler
|
|
9
|
+
from ovos_workshop.intents import IntentBuilder
|
|
10
|
+
from ovos_workshop.skills import OVOSSkill
|
|
11
|
+
from ovos_bus_client.message import Message
|
|
12
|
+
from ovos_i2c_detection import is_mark_1
|
|
13
|
+
from threading import Thread
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _hex_to_rgb(_hex):
|
|
17
|
+
""" Convert hex color code to RGB tuple
|
|
18
|
+
Args:
|
|
19
|
+
hex (str): Hex color string, e.g '#ff12ff' or 'ff12ff'
|
|
20
|
+
Returns:
|
|
21
|
+
(rgb): tuple i.e (123, 200, 155) or None
|
|
22
|
+
"""
|
|
23
|
+
try:
|
|
24
|
+
if '#' in _hex:
|
|
25
|
+
_hex = _hex.replace('#', "").strip()
|
|
26
|
+
if len(_hex) != 6:
|
|
27
|
+
return None
|
|
28
|
+
(r, g, b) = int(_hex[0:2], 16), int(_hex[2:4], 16), int(_hex[4:6], 16)
|
|
29
|
+
return (r, g, b)
|
|
30
|
+
except Exception:
|
|
31
|
+
return None
|
|
32
|
+
|
|
33
|
+
class EnclosureControlSkill(OVOSSkill):
|
|
34
|
+
def __init__(self, *args, **kwargs):
|
|
35
|
+
if not is_mark_1():
|
|
36
|
+
LOG.error("This device is not a Mark 1. It is suggested to uninstall this skill")
|
|
37
|
+
raise NotImplementedError("Purposeful exception because not on a Mark 1 device")
|
|
38
|
+
super().__init__(*args, **kwargs)
|
|
39
|
+
self.thread = None
|
|
40
|
+
self.playing = False
|
|
41
|
+
self.animations = []
|
|
42
|
+
self.add_event('mycroft.eyes.default', self.handle_default_eyes)
|
|
43
|
+
self.add_event('mycroft.ready', self.handle_default_eyes)
|
|
44
|
+
|
|
45
|
+
@classproperty
|
|
46
|
+
def runtime_requirements(self):
|
|
47
|
+
return RuntimeRequirements(internet_before_load=False,
|
|
48
|
+
network_before_load=False,
|
|
49
|
+
gui_before_load=False,
|
|
50
|
+
requires_internet=False,
|
|
51
|
+
requires_network=False,
|
|
52
|
+
requires_gui=False,
|
|
53
|
+
no_internet_fallback=True,
|
|
54
|
+
no_network_fallback=True,
|
|
55
|
+
no_gui_fallback=True)
|
|
56
|
+
|
|
57
|
+
@property
|
|
58
|
+
def crazy_eyes_animation(self):
|
|
59
|
+
choices = [(self.enclosure.eyes_look, "d"),
|
|
60
|
+
(self.enclosure.eyes_look, "u"),
|
|
61
|
+
(self.enclosure.eyes_look, "l"),
|
|
62
|
+
(self.enclosure.eyes_look, "r"),
|
|
63
|
+
(self.enclosure.eyes_color, (255, 0, 0)),
|
|
64
|
+
(self.enclosure.eyes_color, (255, 0, 255)),
|
|
65
|
+
(self.enclosure.eyes_color, (255, 255, 255)),
|
|
66
|
+
(self.enclosure.eyes_color, (0, 0, 255)),
|
|
67
|
+
(self.enclosure.eyes_color, (0, 255, 0)),
|
|
68
|
+
(self.enclosure.eyes_color, (255, 255, 0)),
|
|
69
|
+
(self.enclosure.eyes_color, (0, 255, 255)),
|
|
70
|
+
(self.enclosure.eyes_spin, None),
|
|
71
|
+
(self.enclosure.eyes_narrow, None),
|
|
72
|
+
(self.enclosure.eyes_on, None),
|
|
73
|
+
(self.enclosure.eyes_off, None),
|
|
74
|
+
(self.enclosure.eyes_blink, None)]
|
|
75
|
+
|
|
76
|
+
anim = []
|
|
77
|
+
for i in range(0, 10):
|
|
78
|
+
frame = random.choice(choices)
|
|
79
|
+
anim.append(self.animate(i, 3, frame[0], frame[1]))
|
|
80
|
+
return anim
|
|
81
|
+
|
|
82
|
+
@property
|
|
83
|
+
def up_down_animation(self):
|
|
84
|
+
return [
|
|
85
|
+
self.animate(2, 6, self.enclosure.eyes_look, "d"),
|
|
86
|
+
self.animate(4, 6, self.enclosure.eyes_look, "u"),
|
|
87
|
+
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
@property
|
|
91
|
+
def left_right_animation(self):
|
|
92
|
+
return [
|
|
93
|
+
self.animate(2, 6, self.enclosure.eyes_look, "l"),
|
|
94
|
+
self.animate(4, 6, self.enclosure.eyes_look, "r"),
|
|
95
|
+
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
@staticmethod
|
|
99
|
+
def animate(t, often, func, *args):
|
|
100
|
+
'''
|
|
101
|
+
Args:
|
|
102
|
+
t (int) : seconds from now to begin the frame (secs)
|
|
103
|
+
often (int/string): (int) how often to repeat the frame (secs)
|
|
104
|
+
(str) when to trigger, relative to the clock,
|
|
105
|
+
for synchronized repetitions
|
|
106
|
+
func: the function to invoke
|
|
107
|
+
*args: arguments to pass to func
|
|
108
|
+
'''
|
|
109
|
+
return {
|
|
110
|
+
"time": time.time() + t,
|
|
111
|
+
"often": often,
|
|
112
|
+
"func": func,
|
|
113
|
+
"args": args
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@staticmethod
|
|
117
|
+
def _get_time(often, t):
|
|
118
|
+
return often - t % often
|
|
119
|
+
|
|
120
|
+
def run(self):
|
|
121
|
+
"""
|
|
122
|
+
animation thread while performing speedtest
|
|
123
|
+
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
while self.playing:
|
|
127
|
+
for animation in self.animations:
|
|
128
|
+
if animation["time"] <= time.time():
|
|
129
|
+
# Execute animation action
|
|
130
|
+
animation["func"](*animation["args"])
|
|
131
|
+
|
|
132
|
+
# Adjust time for next loop
|
|
133
|
+
if type(animation["often"]) is int:
|
|
134
|
+
animation["time"] = time.time() + animation["often"]
|
|
135
|
+
else:
|
|
136
|
+
often = int(animation["often"])
|
|
137
|
+
t = animation["time"]
|
|
138
|
+
animation["time"] = time.time() + self._get_time(
|
|
139
|
+
often, t)
|
|
140
|
+
time.sleep(0.1)
|
|
141
|
+
|
|
142
|
+
self.thread = None
|
|
143
|
+
self.enclosure.activate_mouth_events()
|
|
144
|
+
self.enclosure.mouth_reset()
|
|
145
|
+
self.enclosure.eyes_reset()
|
|
146
|
+
|
|
147
|
+
def play_animation(self, animation=None):
|
|
148
|
+
animation = animation or self.up_down_animation
|
|
149
|
+
if not self.thread:
|
|
150
|
+
self.playing = True
|
|
151
|
+
|
|
152
|
+
# Display info on a screen
|
|
153
|
+
self.enclosure.deactivate_mouth_events()
|
|
154
|
+
|
|
155
|
+
# Build the list of animation actions to run
|
|
156
|
+
self.animations = animation
|
|
157
|
+
self.thread = create_daemon(self.run)
|
|
158
|
+
|
|
159
|
+
@intent_handler(IntentBuilder("EnclosureLookRight")
|
|
160
|
+
.require("look").require("right")
|
|
161
|
+
.optionally("enclosure"))
|
|
162
|
+
def handle_look_right(self, message):
|
|
163
|
+
self.speak("looking right")
|
|
164
|
+
self.enclosure.eyes_look("r")
|
|
165
|
+
|
|
166
|
+
@intent_handler(IntentBuilder("EnclosureLookLeft")
|
|
167
|
+
.require("look").require("left").optionally("enclosure"))
|
|
168
|
+
def handle_look_left(self, message):
|
|
169
|
+
self.speak("looking left")
|
|
170
|
+
self.enclosure.eyes_look("l")
|
|
171
|
+
|
|
172
|
+
@intent_handler(IntentBuilder("EnclosureLookUp")
|
|
173
|
+
.require("look").require("up").optionally("enclosure"))
|
|
174
|
+
def handle_look_up(self, message):
|
|
175
|
+
self.speak("looking up")
|
|
176
|
+
self.enclosure.eyes_look("u")
|
|
177
|
+
|
|
178
|
+
@intent_handler(IntentBuilder("EnclosureLookDown")
|
|
179
|
+
.require("look").require("down").optionally("enclosure"))
|
|
180
|
+
def handle_look_down(self, message):
|
|
181
|
+
self.speak("looking down")
|
|
182
|
+
self.enclosure.eyes_look("d")
|
|
183
|
+
|
|
184
|
+
@intent_handler(IntentBuilder("EnclosureLookUpDown")
|
|
185
|
+
.require("look").require("up")
|
|
186
|
+
.require("down").optionally("enclosure")
|
|
187
|
+
.optionally("animation"))
|
|
188
|
+
def handle_look_up_down(self, message):
|
|
189
|
+
self.speak("up and down, up and down")
|
|
190
|
+
self.play_animation(self.up_down_animation)
|
|
191
|
+
|
|
192
|
+
@intent_handler(IntentBuilder("EnclosureLookLeftRight")
|
|
193
|
+
.require("look").require("right")
|
|
194
|
+
.require("left").optionally("enclosure")
|
|
195
|
+
.optionally("animation"))
|
|
196
|
+
def handle_look_left_right(self, message):
|
|
197
|
+
self.speak("left and right, left and right")
|
|
198
|
+
self.play_animation(self.left_right_animation)
|
|
199
|
+
|
|
200
|
+
@intent_handler(IntentBuilder("EnclosureEyesBlink")
|
|
201
|
+
.require("blink").one_of("eyes", "animation")
|
|
202
|
+
.optionally("enclosure").optionally("right")
|
|
203
|
+
.optionally("left"))
|
|
204
|
+
def handle_blink_eyes(self, message):
|
|
205
|
+
for i in range(0, 10):
|
|
206
|
+
if "right" in message.data:
|
|
207
|
+
self.enclosure.eyes_blink("r")
|
|
208
|
+
if "left" in message.data:
|
|
209
|
+
self.enclosure.eyes_blink("l")
|
|
210
|
+
else:
|
|
211
|
+
self.enclosure.eyes_blink("b")
|
|
212
|
+
self.speak("so this is what it feels like having low F P S")
|
|
213
|
+
|
|
214
|
+
@intent_handler(IntentBuilder("EnclosureEyesSpin")
|
|
215
|
+
.require("spin").one_of("eyes", "animation")
|
|
216
|
+
.optionally("enclosure"))
|
|
217
|
+
def handle_spin_eyes(self, message):
|
|
218
|
+
self.speak("around the world, here i go")
|
|
219
|
+
self.enclosure.eyes_spin()
|
|
220
|
+
|
|
221
|
+
@intent_handler(IntentBuilder("EnclosureEyesNarrow")
|
|
222
|
+
.require("narrow").require("eyes")
|
|
223
|
+
.optionally("enclosure"))
|
|
224
|
+
def handle_narrow_eyes(self, message):
|
|
225
|
+
self.speak("this is my evil face")
|
|
226
|
+
self.enclosure.eyes_narrow()
|
|
227
|
+
self.enclosure.eyes_color(255, 0, 0)
|
|
228
|
+
|
|
229
|
+
@intent_handler(IntentBuilder("EnclosureReset")
|
|
230
|
+
.require("reset").require("enclosure"))
|
|
231
|
+
def handle_enclosure_reset(self, message):
|
|
232
|
+
self.handle_default_eyes()
|
|
233
|
+
self.enclosure.eyes_reset()
|
|
234
|
+
self.enclosure.mouth_reset()
|
|
235
|
+
self.speak("this was fun")
|
|
236
|
+
|
|
237
|
+
@intent_handler(IntentBuilder("EnclosureMouthSmile")
|
|
238
|
+
.require("smile").one_of("animation", "mouth")
|
|
239
|
+
.optionally("enclosure"))
|
|
240
|
+
def handle_enclosure_smile(self, message):
|
|
241
|
+
self.enclosure.mouth_smile()
|
|
242
|
+
self.speak("i don't know how to smile")
|
|
243
|
+
|
|
244
|
+
@intent_handler(IntentBuilder("EnclosureMouthListen")
|
|
245
|
+
.require("listen").one_of("animation", "mouth")
|
|
246
|
+
.optionally("enclosure"))
|
|
247
|
+
def handle_enclosure_listen(self, message):
|
|
248
|
+
self.speak("when i do this i feel like I'm dancing")
|
|
249
|
+
self.enclosure.mouth_listen()
|
|
250
|
+
|
|
251
|
+
@intent_handler(IntentBuilder("EnclosureMouthThink")
|
|
252
|
+
.require("think").one_of("animation", "mouth")
|
|
253
|
+
.optionally("enclosure"))
|
|
254
|
+
def handle_enclosure_think(self, message):
|
|
255
|
+
self.speak("i love thinking")
|
|
256
|
+
self.enclosure.mouth_think()
|
|
257
|
+
|
|
258
|
+
@intent_handler(IntentBuilder("EnclosureCrazyEyes")
|
|
259
|
+
.require("eyes").optionally("animation").require("crazy")
|
|
260
|
+
.optionally("enclosure"))
|
|
261
|
+
def handle_enclosure_crazy_eyes(self, message):
|
|
262
|
+
self.speak("artificial intelligence performing artificial "
|
|
263
|
+
"stupidity, you don't see this every day")
|
|
264
|
+
self.play_animation(self.crazy_eyes_animation)
|
|
265
|
+
self.enclosure.eyes_reset()
|
|
266
|
+
|
|
267
|
+
#####################################################################
|
|
268
|
+
# Color interactions
|
|
269
|
+
def set_eye_color(self, color=None, rgb=None, speak=True, make_default=False):
|
|
270
|
+
""" Change the eye color on the faceplate, update saved setting
|
|
271
|
+
"""
|
|
272
|
+
if color is not None:
|
|
273
|
+
color_rgb = self._parse_to_rgb(color)
|
|
274
|
+
if color_rgb is not None:
|
|
275
|
+
(r, g, b) = color_rgb
|
|
276
|
+
elif rgb is not None:
|
|
277
|
+
(r, g, b) = rgb
|
|
278
|
+
else:
|
|
279
|
+
return # no color provided!
|
|
280
|
+
|
|
281
|
+
try:
|
|
282
|
+
self.enclosure.eyes_color(r, g, b)
|
|
283
|
+
if speak:
|
|
284
|
+
self.speak_dialog('set.color.success')
|
|
285
|
+
# Update saved color
|
|
286
|
+
self.settings['current_eye_color'] = [r, g, b]
|
|
287
|
+
if make_default:
|
|
288
|
+
self.settings['default_eye_color'] = [r, g, b]
|
|
289
|
+
except Exception:
|
|
290
|
+
self.log.debug('Bad color code: ' + str(color))
|
|
291
|
+
if speak:
|
|
292
|
+
self.speak_dialog('error.set.color')
|
|
293
|
+
|
|
294
|
+
@intent_handler('custom.eye.color.intent')
|
|
295
|
+
def handle_custom_eye_color(self, message):
|
|
296
|
+
# Conversational interaction to set a custom eye color
|
|
297
|
+
|
|
298
|
+
def is_byte(utt):
|
|
299
|
+
try:
|
|
300
|
+
return 0 <= int(utt) <= 255
|
|
301
|
+
except Exception:
|
|
302
|
+
return False
|
|
303
|
+
|
|
304
|
+
self.speak_dialog('set.custom.color')
|
|
305
|
+
wait_while_speaking()
|
|
306
|
+
r = self.get_response('get.r.value', validator=is_byte,
|
|
307
|
+
on_fail="error.rgbvalue", num_retries=2)
|
|
308
|
+
if not r:
|
|
309
|
+
return # cancelled
|
|
310
|
+
|
|
311
|
+
g = self.get_response('get.g.value', validator=is_byte,
|
|
312
|
+
on_fail="error.rgbvalue", num_retries=2)
|
|
313
|
+
if not g:
|
|
314
|
+
return # cancelled
|
|
315
|
+
|
|
316
|
+
b = self.get_response('get.b.value', validator=is_byte,
|
|
317
|
+
on_fail="error.rgbvalue", num_retries=2)
|
|
318
|
+
if not b:
|
|
319
|
+
return # cancelled
|
|
320
|
+
|
|
321
|
+
custom_rgb = [r, g, b]
|
|
322
|
+
|
|
323
|
+
default = False
|
|
324
|
+
if self.ask_yesno('set.default.eye.color') == 'yes':
|
|
325
|
+
default = True
|
|
326
|
+
self.set_eye_color(rgb=custom_rgb, make_default=default)
|
|
327
|
+
|
|
328
|
+
@intent_handler('eye.color.intent')
|
|
329
|
+
def handle_eye_color(self, message):
|
|
330
|
+
""" Callback to set eye color from list
|
|
331
|
+
|
|
332
|
+
Args:
|
|
333
|
+
message (dict): messagebus message from intent parser
|
|
334
|
+
"""
|
|
335
|
+
color_str = (message.data.get('color', None) or
|
|
336
|
+
self.get_response('color.need'))
|
|
337
|
+
if color_str:
|
|
338
|
+
match = color_from_description(color_str)
|
|
339
|
+
if match is not None:
|
|
340
|
+
default = False
|
|
341
|
+
if self.ask_yesno('set.default.eye.color') == 'yes':
|
|
342
|
+
default = True
|
|
343
|
+
self.set_eye_color(color=match, make_default=default)
|
|
344
|
+
else:
|
|
345
|
+
self.speak_dialog('color.not.exist')
|
|
346
|
+
|
|
347
|
+
def _parse_to_rgb(self, color):
|
|
348
|
+
""" Convert color descriptor to RGB
|
|
349
|
+
|
|
350
|
+
Parse a color name ('dark blue'), hex ('#000088') or rgb tuple
|
|
351
|
+
'(0,0,128)' to an RGB tuple.
|
|
352
|
+
|
|
353
|
+
Args:
|
|
354
|
+
color (str): RGB, Hex, or color from color_dict
|
|
355
|
+
Returns:
|
|
356
|
+
(r, g, b) (tuple): Tuple of rgb values (0-255) or None
|
|
357
|
+
"""
|
|
358
|
+
if not color:
|
|
359
|
+
return None
|
|
360
|
+
|
|
361
|
+
# # check if named color is valid
|
|
362
|
+
try:
|
|
363
|
+
if isinstance(color, sRGBAColor):
|
|
364
|
+
if 0 <= color.r <= 255 and 0 <= color.g <= 255 and 0 <= color.b <= 255:
|
|
365
|
+
return (color.r, color.g, color.b)
|
|
366
|
+
else:
|
|
367
|
+
return None
|
|
368
|
+
except Exception:
|
|
369
|
+
pass
|
|
370
|
+
|
|
371
|
+
# check if rgb tuple like '(0,0,128)'
|
|
372
|
+
try:
|
|
373
|
+
(r, g, b) = parse_tuple(color)
|
|
374
|
+
if 0 <= r <= 255 and 0 <= g <= 255 and 0 <= b <= 255:
|
|
375
|
+
return (r, g, b)
|
|
376
|
+
else:
|
|
377
|
+
return None
|
|
378
|
+
except Exception:
|
|
379
|
+
pass
|
|
380
|
+
|
|
381
|
+
# Finally check if color is hex, like '#0000cc' or '0000cc'
|
|
382
|
+
return _hex_to_rgb(color)
|
|
383
|
+
|
|
384
|
+
def handle_default_eyes(self):
|
|
385
|
+
if self.settings.get('default_eye_color'):
|
|
386
|
+
self.set_eye_color(rgb=self.settings['default_eye_color'], speak=False)
|
|
387
|
+
|
|
388
|
+
#####################################################################
|
|
389
|
+
# Brightness intent interaction
|
|
390
|
+
|
|
391
|
+
def percent_to_level(self, percent):
|
|
392
|
+
""" converts the brigtness value from percentage to
|
|
393
|
+
a value arduino can read
|
|
394
|
+
|
|
395
|
+
Args:
|
|
396
|
+
percent (int): interger value from 0 to 100
|
|
397
|
+
|
|
398
|
+
return:
|
|
399
|
+
(int): value form 0 to 30
|
|
400
|
+
"""
|
|
401
|
+
return int(float(percent) / float(100) * 30)
|
|
402
|
+
|
|
403
|
+
def parse_brightness(self, brightness):
|
|
404
|
+
""" parse text for brightness percentage
|
|
405
|
+
|
|
406
|
+
Args:
|
|
407
|
+
brightness (str): string containing brightness level
|
|
408
|
+
|
|
409
|
+
return:
|
|
410
|
+
(int): brightness as percentage (0-100)
|
|
411
|
+
"""
|
|
412
|
+
|
|
413
|
+
try:
|
|
414
|
+
if '%' in brightness:
|
|
415
|
+
brightness = brightness.replace("%", "").strip()
|
|
416
|
+
return int(brightness)
|
|
417
|
+
if 'percent' in brightness:
|
|
418
|
+
brightness = brightness.replace("percent", "").strip()
|
|
419
|
+
return int(brightness)
|
|
420
|
+
|
|
421
|
+
i = int(brightness)
|
|
422
|
+
if i < 0 or i > 100:
|
|
423
|
+
return None
|
|
424
|
+
|
|
425
|
+
if i < 30:
|
|
426
|
+
# Assume plain 0-30 is "level"
|
|
427
|
+
return int((i * 100.0) / 30.0)
|
|
428
|
+
|
|
429
|
+
# Assume plain 31-100 is "percentage"
|
|
430
|
+
return i
|
|
431
|
+
except Exception:
|
|
432
|
+
return None # failed in an int() conversion
|
|
433
|
+
|
|
434
|
+
def set_eye_brightness(self, level, speak=True):
|
|
435
|
+
""" Actually change hardware eye brightness
|
|
436
|
+
|
|
437
|
+
Args:
|
|
438
|
+
level (int): 0-30, brightness level
|
|
439
|
+
speak (bool): when True, speak a confirmation
|
|
440
|
+
"""
|
|
441
|
+
self.enclosure.eyes_brightness(level)
|
|
442
|
+
if speak is True:
|
|
443
|
+
percent = int(float(level) * float(100) / float(30))
|
|
444
|
+
self.speak_dialog(
|
|
445
|
+
'brightness.set', data={'val': str(percent) + '%'})
|
|
446
|
+
|
|
447
|
+
def _set_brightness(self, brightness):
|
|
448
|
+
# brightness can be a number or word like "full", "half"
|
|
449
|
+
percent = self.parse_brightness(brightness)
|
|
450
|
+
if percent is None:
|
|
451
|
+
self.speak_dialog('brightness.not.found.final')
|
|
452
|
+
elif int(percent) is -1:
|
|
453
|
+
self.handle_auto_brightness(None)
|
|
454
|
+
else:
|
|
455
|
+
self.auto_brightness = False
|
|
456
|
+
self.set_eye_brightness(self.percent_to_level(percent))
|
|
457
|
+
|
|
458
|
+
@intent_handler('brightness.intent')
|
|
459
|
+
def handle_brightness(self, message):
|
|
460
|
+
""" Intent Callback to set custom eye colors in rgb
|
|
461
|
+
|
|
462
|
+
Args:
|
|
463
|
+
message (dict): messagebus message from intent parser
|
|
464
|
+
"""
|
|
465
|
+
brightness = (message.data.get('brightness', None) or
|
|
466
|
+
self.get_response('brightness.not.found'))
|
|
467
|
+
if brightness:
|
|
468
|
+
self._set_brightness(brightness)
|
|
469
|
+
|
|
470
|
+
def stop(self):
|
|
471
|
+
if self.playing and self.thread is not None:
|
|
472
|
+
self.playing = False
|
|
473
|
+
self.enclosure.activate_mouth_events()
|
|
474
|
+
self.enclosure.eyes_reset()
|
|
475
|
+
return True
|
|
476
|
+
return False
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
parpelleja
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
No entenc aquest valor de brillantor, doneu-me un valor de brillantor entre el 0 i el 100 per cent.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
(baixa|aumenta) (la|) (brillantor|il·luminació) al {brightness} (per cent|)
|
|
2
|
+
(canvia a|estableix|commuta) (el|) (nivell|) (de|d'|) (brillantor|il·luminació) dels (ulls|)
|
|
3
|
+
(canvia a|estableix|commuta) els ulls al {brightness} (per cent|) (de|d'|) (brillantor|il·luminació)
|
|
4
|
+
(canvia a|estableix|commuta) els ulls al {brightness} (per cent|) (nivell|) (de|d'|) (brillantor|il·luminació)
|
|
5
|
+
abaixa la (brillantor|il·luminació) dels ulls al {brightness} (per cent|)
|
|
6
|
+
atenua (la|) {brightness} de (els|) ulls al (percentatge|per cent)
|
|
7
|
+
atenua al {brightness} per cent
|
|
8
|
+
enfosqueix|atenua una mica
|
|
9
|
+
ets (massa|) (brillant|oscur)
|
|
10
|
+
il·lumina ho|aumenta la brillantor
|
|
11
|
+
il·lumina-ho (una mica|un poc|) fins al {brightness} (per cent|)
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
per defecte
|
|
2
|
+
blau alice
|
|
3
|
+
aliceblue
|
|
4
|
+
blanc antic
|
|
5
|
+
aigua
|
|
6
|
+
aiguamarina
|
|
7
|
+
atzur
|
|
8
|
+
beix
|
|
9
|
+
bisque
|
|
10
|
+
negre
|
|
11
|
+
ametlla blanca
|
|
12
|
+
blau
|
|
13
|
+
violeta blau
|
|
14
|
+
marró
|
|
15
|
+
color madera
|
|
16
|
+
castany
|
|
17
|
+
blau cadet
|
|
18
|
+
cartoixà
|
|
19
|
+
xocolata
|
|
20
|
+
corall
|
|
21
|
+
blau porpra
|
|
22
|
+
blau porpra
|
|
23
|
+
blat de moro
|
|
24
|
+
blat
|
|
25
|
+
carmesí
|
|
26
|
+
cyan
|
|
27
|
+
blau fosc
|
|
28
|
+
cian fosc
|
|
29
|
+
vareta daurada fosca
|
|
30
|
+
vara daurada fosca
|
|
31
|
+
gris fosc
|
|
32
|
+
gris fosc
|
|
33
|
+
verd fosc
|
|
34
|
+
caqui fosc
|
|
35
|
+
magenta fosc
|
|
36
|
+
verd oliva fosc
|
|
37
|
+
taronja fosc
|
|
38
|
+
orquídia fosc
|
|
39
|
+
vermell fosc
|
|
40
|
+
salmó fosc
|
|
41
|
+
verd mar fosc
|
|
42
|
+
blau pissarra fosc
|
|
43
|
+
gris pissarra fosc
|
|
44
|
+
gris pissarra fosc
|
|
45
|
+
turquesa fosc
|
|
46
|
+
violeta fosc
|
|
47
|
+
rosa profund
|
|
48
|
+
blau cel profund
|
|
49
|
+
gris fosc
|
|
50
|
+
gris tènue
|
|
51
|
+
blau dodger
|
|
52
|
+
paleta de foc
|
|
53
|
+
maó
|
|
54
|
+
blanc floral
|
|
55
|
+
verd bosc
|
|
56
|
+
fúcsia
|
|
57
|
+
fúcsia
|
|
58
|
+
gris estaïn
|
|
59
|
+
blanc fantasma
|
|
60
|
+
daurat
|
|
61
|
+
daurat
|
|
62
|
+
gris
|
|
63
|
+
gris
|
|
64
|
+
verd
|
|
65
|
+
groc verd
|
|
66
|
+
mel
|
|
67
|
+
mel
|
|
68
|
+
rosa intens
|
|
69
|
+
vermell indi
|
|
70
|
+
anyil
|
|
71
|
+
marbre
|
|
72
|
+
caqui
|
|
73
|
+
lavanda
|
|
74
|
+
lavanda vermella
|
|
75
|
+
verd gespa
|
|
76
|
+
limón suau
|
|
77
|
+
blau clar
|
|
78
|
+
coral clar
|
|
79
|
+
cian clar
|
|
80
|
+
vell groc daurat clar
|
|
81
|
+
groc daurat clar
|
|
82
|
+
gris clar
|
|
83
|
+
gris clar
|
|
84
|
+
rosa clar
|
|
85
|
+
rosa clar
|
|
86
|
+
salmó clar
|
|
87
|
+
verd mar clar
|
|
88
|
+
cel blau clar
|
|
89
|
+
gris pissarra clar
|
|
90
|
+
gris pissarra clar
|
|
91
|
+
blau acer clar
|
|
92
|
+
groc clar
|
|
93
|
+
llima
|
|
94
|
+
verd llima
|
|
95
|
+
lli
|
|
96
|
+
magenta
|
|
97
|
+
marró
|
|
98
|
+
aqua marí mitjà
|
|
99
|
+
blau mitjà
|
|
100
|
+
orquídia mitjà
|
|
101
|
+
violeta mitjà
|
|
102
|
+
verd marí mitjà
|
|
103
|
+
blau pissarra mitjà
|
|
104
|
+
verd primavera mitjà
|
|
105
|
+
turquesa mitjà
|
|
106
|
+
vermell violeta mitjà
|
|
107
|
+
blau mitjanit
|
|
108
|
+
menta crema
|
|
109
|
+
rosa boirós
|
|
110
|
+
moquessin
|
|
111
|
+
blanc navajo
|
|
112
|
+
blau marí
|
|
113
|
+
encaix antic
|
|
114
|
+
oli
|
|
115
|
+
oli verd
|
|
116
|
+
taronja
|
|
117
|
+
vermell taronja
|
|
118
|
+
orquídia
|
|
119
|
+
groc daurat pàl·lid
|
|
120
|
+
groc daurat pàl·lid
|
|
121
|
+
verd pàl·lid
|
|
122
|
+
turquesa pàl·lid
|
|
123
|
+
vermell violeta pàl·lid
|
|
124
|
+
papaya
|
|
125
|
+
préssec
|
|
126
|
+
peru
|
|
127
|
+
rosa
|
|
128
|
+
pruna
|
|
129
|
+
blau pols
|
|
130
|
+
porpra
|
|
131
|
+
porpra rebecca
|
|
132
|
+
vermell
|
|
133
|
+
marró rosat
|
|
134
|
+
blau reial
|
|
135
|
+
marró sella
|
|
136
|
+
salmó
|
|
137
|
+
marró arenós
|
|
138
|
+
verd mar
|
|
139
|
+
blanc petxina
|
|
140
|
+
petxina
|
|
141
|
+
siena
|
|
142
|
+
plata|argent
|
|
143
|
+
blau cel
|
|
144
|
+
blau pissarra
|
|
145
|
+
gris pissarra
|
|
146
|
+
gris pissarra
|
|
147
|
+
neu
|
|
148
|
+
verd primavera
|
|
149
|
+
blau acer
|
|
150
|
+
moreno
|
|
151
|
+
xarxet
|
|
152
|
+
card
|
|
153
|
+
tomàquet
|
|
154
|
+
turquesa
|
|
155
|
+
violeta
|
|
156
|
+
blat
|
|
157
|
+
blanc
|
|
158
|
+
fum blanc
|
|
159
|
+
groc
|
|
160
|
+
verd groc
|