question

newuser-405787a2-bd16-42cd-80f2-a0aaa52ecb4d avatar image

RangeController in combination with ThermostatController (en_gb)

Dear Alexa support,

For my daily job I often get tasked with enriching our portfolio of smarthome devices with the Alexa Voice Assistant. Thus far we have successfully developed 6 skills in 5 different languages with 9 different products that have passed the Alexa Certification.

This time we are trying to get an airconditioner to pass the Alexa certification procedure, this time however it sadly did not pass the certification.

The specific test case we are stuck on:

--------------------------
TCID: VUI-2
Test Criteria: Range functionality - Increase

Comments:

This test case fails because the setpoint temperature increases instead of the fan speed when user issues Alexa voice command to increase fan speed.

Procedure:

1. Set fan speed to 2.

2. U: Alexa, Increase living room fan speed.

Expected Result: Thermostat fan speed increase to 3 and Alexa responds with "Fan speed is set to 3".

Observed Result: Alexa responds with "The AC is set to 20" and temperature increased from 19 degrees to 20 degrees, instead of fan speed changing from 2 to 3.

Note: The same behavior occurs when the user issues the Alexa command to Decrease fan speed in that the setpoint decreases instead of the fan speed.
--------------------------

After some testing I noticed that suddenly the combination of RangeController with ThermostatController is troublesome for Alexa. Whenever issueing a command to "increase" or "decrease" the fan speed, the Alexa service issues this command as an "AdjustTargetTemperature" for "Alexa.ThermostatController", thus setting a temperature instead of the fan speed. I am about 90% sure it has worked in the past but sadly I have got no proof of this.

This behaviour only occurs when returning both the ThermostatController and RangeController in the discovery response. When removing the ThermostatController but keeping the RangeController, the fan speed can be controlled, but this is not desirable as we also like to control the temperature for this device.

Your help is very much appreciated, I would like to answer any question you may have on this matter.

The Skill ID for this application:

amzn1.ask.skill.7cfee9a6-e1cb-4a8c-a2ef-538ee2ecfd31

The discovery response:

{
    "event": {
      "header": {
        "namespace": "Alexa.Discovery",
        "name": "Discover.Response",
        "messageId": "1bd5d003-31b9-476f-ad03-71d471922820",
        "payloadVersion": "3"
      },
      "payload": {
        "endpoints": [
          {
            "endpointId": "unique-1",
            "friendlyName": "Airco",
            "displayCategories": [
              "THERMOSTAT"
            ],
            "description": "Airconditioner connected via the cloud",
            "manufacturerName": "manufacturer",
            "cookie": {},
            "capabilities": [
              {
                "type": "AlexaInterface",
                "interface": "Alexa.EndpointHealth",
                "version": "3",
                "properties": {
                  "supported": [
                    {
                      "name": "connectivity"
                    }
                  ],
                  "proactivelyReported": true,
                  "retrievable": true
                }
              },
              {
                "type": "AlexaInterface",
                "interface": "Alexa.PowerController",
                "version": "3",
                "properties": {
                  "supported": [
                    {
                      "name": "powerState"
                    }
                  ],
                  "proactivelyReported": true,
                  "retrievable": true
                }
              },
              {
                "type": "AlexaInterface",
                "interface": "Alexa.RangeController",
                "instance": "Airconditioner.FanSpeed",
                "version": "3",
                "properties": {
                  "supported": [
                    {
                      "name": "rangeValue"
                    }
                  ],
                  "proactivelyReported": true,
                  "retrievable": true,
                  "nonControllable": false
                },
                "capabilityResources": {
                  "friendlyNames": [
                    {
                      "@type": "asset",
                      "value": {
                        "assetId": "Alexa.Setting.FanSpeed"
                      }
                    }
                  ]
                },
                "configuration": {
                  "supportedRange": {
                    "minimumValue": 1,
                    "maximumValue": 2,
                    "precision": 1
                  },
                  "presets": [
                    {
                      "rangeValue": 1,
                      "presetResources": {
                        "friendlyNames": [
                          {
                            "@type": "asset",
                            "value": {
                              "assetId": "Alexa.Value.Minimum"
                            }
                          },
                          {
                            "@type": "asset",
                            "value": {
                              "assetId": "Alexa.Value.Low"
                            }
                          }
                        ]
                      }
                    },
                    {
                      "rangeValue": 2,
                      "presetResources": {
                        "friendlyNames": [
                          {
                            "@type": "asset",
                            "value": {
                              "assetId": "Alexa.Value.Maximum"
                            }
                          },
                          {
                            "@type": "asset",
                            "value": {
                              "assetId": "Alexa.Value.High"
                            }
                          }
                        ]
                      }
                    }
                  ]
                }
              },
              {
                "type": "AlexaInterface",
                "interface": "Alexa.ThermostatController",
                "version": "3",
                "properties": {
                  "supported": [
                    {
                      "name": "targetSetpoint"
                    },
                    {
                      "name": "thermostatMode"
                    }
                  ],
                  "proactivelyReported": true,
                  "retrievable": true
                },
                "configuration": {
                  "supportsScheduling": false,
                  "supportedModes": [
                    "COOL",
                    "OFF"
                  ]
                }
              },
              {
                "type": "AlexaInterface",
                "interface": "Alexa.TemperatureSensor",
                "version": "3",
                "properties": {
                  "supported": [
                    {
                      "name": "temperature"
                    }
                  ],
                  "proactivelyReported": true,
                  "retrievable": true
                }
              }
            ]
          }
        ]
      }
    }
  }

The phrase to speak to Alexa Voice Assistant:

Decrease fan speed on airco 

The command issued from Alexa to our endpoint:

{
    "directive": {
        "header": {
            "namespace": "Alexa.ThermostatController",
            "name": "AdjustTargetTemperature",
            "payloadVersion": "3",
            "messageId": "b8a20687-53a9-47ad-bcbe-cecbe053e1f9",
            "correlationToken": "correlationToken"
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "token"
            },
            "endpointId": "unique-1",
            "cookie": {}
        },
        "payload": {
            "targetSetpointDelta": {
                "value": -2,
                "scale": "FAHRENHEIT"
            }
        }
    }
}
alexa skills kitalexa voice servicealexa smart homesmart homecontroller
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

KirkC@Amazon avatar image
KirkC@Amazon answered

Hello. It looks like this question was also submitted to us directly via our Contact Us channel. I just wanted to confirm that we received your message and that this issue has been escalated to the appropriate internal engineering team.

Please keep an eye on your e-mail for any updates on this matter.

10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.