Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help with thermostat type devices, alexa disabling use outside 35-95F #55

Open
Dloranger opened this issue Apr 5, 2024 · 2 comments
Open

Comments

@Dloranger
Copy link

The issues I am running into at the moment is that the thermostat device is severely crippled by Alexa with limits imposed of 36F to 95F. These appear to be hard coded in the alexa side as I can set the heat point to 212F on the code side, but the user can't adjust anything except turning down the temp until its below 95F.

Hoping we can add more of the newer device types to the models available that I can try to use such as the temperature cabinet, or many of the kitchen appliances (not sure if matter supports these yet or not). I tried using the temperature cabinet model that I found somewhere (cant find it now), but that device type was not found in this library.

I am working on a water kettle (boiler type device) where I need to be able to set and take actions within Alexa up to around 220F. Seems there are many new types of alexa devices that are well suited to my upcoming needs, just not sure how to get them to be usable thru the matter protocols.

` //create thermostat sensor endpoint
endpoint_t *therm_endpoint;
cluster_t *therm_cluster;
thermostat::config_t therm_config;
therm_config.thermostat.local_temperature = 2400;

therm_endpoint = thermostat::create(node, &therm_config, ENDPOINT_FLAG_NONE, NULL);
print_endpoint_info("thermostat", therm_endpoint);

uint16_t therm_endpoint_id = endpoint::get_id(therm_endpoint);
print_endpoint_info("Thermostat_endpoint", therm_endpoint);
// Add additional feature
therm_cluster = cluster::get(therm_endpoint, Thermostat::Id);
cluster::thermostat::feature::heating::config_t heating_config;

//units of temperature are in 0.01 Celsius for matter interactions
heating_config.abs_max_heat_setpoint_limit = 10500;
heating_config.abs_min_heat_setpoint_limit = 1500;
heating_config.max_heat_setpoint_limit = 10500;
heating_config.min_heat_setpoint_limit = 1500;
heating_config.pi_heating_demand = 0;
heating_config.occupied_heating_setpoint = 10500;
cluster::thermostat::feature::heating::add(therm_cluster, &heating_config);

//set heating step size
matterValue = esp_matter_int16(5); //5C
attribute::update(thermostat_endpoint_id, CLUSTER_ID_THERM, Thermostat::Attributes::SetpointChangeAmount::Id, &matterValue);

// set operating mode to heating (default to "auto", trying to override that)
matterValue = esp_matter_int16(4);
attribute::update(thermostat_endpoint_id, CLUSTER_ID_THERM, Thermostat::Attributes::ThermostatRunningMode::Id, &matterValue);
attribute::update(thermostat_endpoint_id, CLUSTER_ID_THERM, Thermostat::Attributes::SystemMode::Id, &matterValue);
//set heating occupied setpoint temp (units of degrees C)
matterValue = esp_matter_int16(HeatingTemp);
attribute::update(thermostat_endpoint_id, CLUSTER_ID_THERM, Thermostat::Attributes::OccupiedHeatingSetpoint::Id, &matterValue);
// set maximum set point
matterValue = esp_matter_int16(HeatingTemp+5);
attribute::update(thermostat_endpoint_id, CLUSTER_ID_THERM, Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id, &matterValue);
attribute::update(thermostat_endpoint_id, CLUSTER_ID_THERM, Thermostat::Attributes::MaxHeatSetpointLimit::Id, &matterValue);

// Setup DAC (this is good place to also set custom commission data, passcodes etc.)
esp_matter::set_custom_dac_provider(chip::Credentials::Examples::GetExampleDACProvider());`

@Dloranger
Copy link
Author

I have found others that may be fighting the same issues, but perhaps its just an understanding issue of the underlying thermostat code somewhere where I am not setting the values correctly?

espressif/esp-matter#773

Something like this would be where I would like to end up, but using matter for more universal access to home such as alexa/google/apple/etc.

https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-cooking-temperaturecontroller.html

@Dloranger
Copy link
Author

here is where alexa is locking out the higher temperatures
https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-thermostatcontroller-configuration.html
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant