question

clark avatar image
clark asked ·

Set the temperature first, then decrease temperature as second order, it was sent as "Set the temperature" .

I found a very strange phenomenon when testing alexa.

The first step I said to alexa: set the home to 77 degrees. My thermostat is set up successfully. alexa prompts set to 77 degrees.

{
    "header": {
        "namespace": "Alexa.ConnectedHome.Control",
        "name": "SetTargetTemperatureRequest",
        "payloadVersion": "2",
        "messageId": "ba189362-41ad-4801-902d-9502681770b1"
    },
    "payload": {
        "accessToken": "xxxxxxxxxxxxxxxxx",
        "appliance": {
            "applianceId": "xxxxxxxxxxxx",
            "additionalApplianceDetails": {
                "device_id": "xxxxxxxxxx"
            }
        },
        "targetTemperature": {
            "value": 25
        }
    }
}

And then I said to alexa : alexa, decrease the home by 3 degrees, this time aleax prompts me temperature out of range. Then I found through the CloudWatch log, turned out to be sent "SetTargetTemperatureRequest", and the "targetTemperature" is -16.11.

{
    "header": {
        "namespace": "Alexa.ConnectedHome.Control",
        "name": "SetTargetTemperatureRequest",
        "payloadVersion": "2",
        "messageId": "edff2b91-01c4-4d5e-97a3-2c7c55252714"
    },
    "payload": {
        "accessToken": "xxxxxxxxxxxx",
        "appliance": {
            "applianceId": "xxxxxxxxxxxx",
            "additionalApplianceDetails": {
                "device_id": "xxxxxxxxxxx"
            }
        },
        "targetTemperature": {
            "value": -16.11
        }
    }
}

This makes me very confused, which is why?

alexa smart home
10 |2000 characters needed characters left characters exceeded

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

1 Answer

Tsuneki@Amazon avatar image
Tsuneki@Amazon answered ·

Hi clark,

Could you please provide setting of temperature units on your device?

Our current logic is we pull the user's preferred scale from the echo device settings.

So, if the echo device is set to CELSIUS we assume that the temperature that the user was trying to set, increase or decrease was in CELSIUS else if the echo device is set to FAHRENHEIT then we assume FAHRENHEIT.

Also, in V2 ("payloadVersion": "2") we always send the request out in CELSIUS. So, that means if the device is set to FAHRENHEIT we will convert it into CELSIUS before sending it.

Based on alexa's prompt (Set to 77) it seems that the echo device was set to FAHRENHEIT.

So, when a set request was made with the value 3 degrees it converted it into -16.11 CELSIUS (absolute temperature conversion).

As for the problem why "decrease the home by 3 degrees" got interpreted as set target temperature that is a known issue. I do not have a time line for this, but I certainly let you know when we fixed the issue on this forum.

10 |2000 characters needed characters left characters exceeded

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