I am curious as to how Google Assistant handles synonyms/values given in a specific language within a trait. E.g.:
{
"availableFanSpeeds": {
"speeds": [{
"speed_name": "S1",
"speed_values": [{
"speed_synonym": ["low", "speed 1", ... ],
"lang": "en" } , … ]
},
{
"speed_name": "S2",
"speed_values": [{
"speed_synonym": ["high", "speed 2", ... ],
"lang": "en" } , … ]
}, ...
],
"ordered": true
},
"supportsFanSpeedPercent": true,
"reversible": true
}
Does it try to map any translations automatically?
For example I noticed for FanSpeed that 'low' and 'high' is understood in a different language even though specified as part of the FanSpeed trait only in English. Yet with the ArmDisarm trait a mode called 'away' is not understood in a different language when only given in English.
This seems inconsistent - is there any pattern to understand when Google attempts to automatically translate a mode/synonym/value versus not?
Google Assistant handles translations at the trait level for device types and traits for Smart Home ecosystem. Natural Language Understanding (NLU) is a very complex subject, and Google is always looking to improve their systems. If you can create a request in the bug tracker we can make sure these cases are covered issuetracker.google.com/issues/…
Depending on the language, it can also be possible that the command being given for the ArmDisarm was in a language that is not supported by the Smart Home's device traits.You can check the list of languages supported by the device traits at https://developers.google.com/assistant/smarthome/traits#supported-languages