GVA thermostat

bezalel6
Posts: 1
Joined: Wed Jul 19, 2023 9:00 am

GVA thermostat

Postby bezalel6 » Wed Jul 19, 2023 9:07 am

how can i get the google home to show thermostat controls? i saw another post with a very similar problem to mine (https://esp32.com/viewtopic.php?f=41&p=107275) but still couldnt figure it out..
ive attached a screenshot of what the google home shows. everything works as it should on the ESP rainmaker app.. heres the relevant code:

void Rainmaker::setup() {

// Configure the input GPIOs
pinMode(gpio_reset, INPUT);

//------------------------------------------- Declaring Node -----------------------------------------------------//
Node my_node;
my_node = RMaker.initNode("AC Node");

isUsingIntFanSpeed = true;
/* Create the device */
const esp_rmaker_device_t* acDevice = ac.getDeviceHandle();

/* Create the power switch parameter */
esp_rmaker_param_t* powerParam = esp_rmaker_param_create(POWER_PARAM_NAME, ESP_RMAKER_PARAM_POWER, value(false), PROP_FLAG_READ | PROP_FLAG_WRITE);
esp_rmaker_param_add_ui_type(powerParam, ESP_RMAKER_UI_TOGGLE);
esp_rmaker_device_add_param(acDevice, powerParam);

/* Create the setpoint temperature parameter */
esp_rmaker_param_t* setTempParam = esp_rmaker_param_create(SET_TEMP_PARAM_NAME, ESP_RMAKER_PARAM_RANGE, value(25), PROP_FLAG_READ | PROP_FLAG_WRITE);
esp_rmaker_param_add_ui_type(setTempParam, ESP_RMAKER_UI_SLIDER);
esp_rmaker_param_add_bounds(setTempParam, value(16), value(30), value(1));
esp_rmaker_device_add_param(acDevice, setTempParam);

esp_rmaker_param_t* tempValParam = esp_rmaker_param_create(TEMP_VAL_PARAM_NAME, ESP_RMAKER_PARAM_TEMPERATURE, value(25), PROP_FLAG_READ);
esp_rmaker_device_add_param(acDevice, tempValParam);

/* Create the fan speed parameter */
esp_rmaker_param_t* fanSpeedParam = esp_rmaker_param_create(FAN_PARAM_NAME, "esp.param.speed", value(0), PROP_FLAG_READ | PROP_FLAG_WRITE);
esp_rmaker_param_add_ui_type(fanSpeedParam, ESP_RMAKER_UI_SLIDER);
esp_rmaker_param_add_bounds(fanSpeedParam, value(0), value(5), value(1));
esp_rmaker_device_add_param(acDevice, fanSpeedParam);

/* Create the AC mode parameter */
esp_rmaker_param_t* acModeParam = esp_rmaker_param_create(MODE_PARAM_NAME, ESP_RMAKER_PARAM_AC_MODE, value(mode_values[0]), PROP_FLAG_READ | PROP_FLAG_WRITE);
esp_rmaker_param_add_ui_type(acModeParam, ESP_RMAKER_UI_DROPDOWN);
esp_rmaker_param_add_valid_str_list(acModeParam, mode_values, sizeof(mode_values) / sizeof(mode_values[0]));
//esp_rmaker_param_add_bounds(acModeParam, esp_rmaker_int(0), esp_rmaker_int(5), esp_rmaker_int(1));
esp_rmaker_device_add_param(acDevice, acModeParam);

/* Add the device to the Rainmaker Node */
ac.addCb(write_callback);
ac.assignPrimaryParam(setTempParam);
//ac.assignPrimaryParam(powerParam);
my_node.addDevice(ac);

// This is optional
RMaker.enableOTA(OTA_USING_PARAMS);
RMaker.enableTZService();
RMaker.enableSchedule();

Serial.printf("\nStarting ESP-RainMaker\n");
RMaker.start();

WiFi.onEvent(sysProvEvent);

#if CONFIG_IDF_TARGET_ESP32
WiFiProv.beginProvision(WIFI_PROV_SCHEME_BLE, WIFI_PROV_SCHEME_HANDLER_FREE_BTDM, WIFI_PROV_SECURITY_1, pop, service_name);
#else
WiFiProv.beginProvision(WIFI_PROV_SCHEME_SOFTAP, WIFI_PROV_SCHEME_HANDLER_NONE, WIFI_PROV_SECURITY_1, pop, service_name);
#endif
xSemaphoreGive(callbackSemaphore);
}
Attachments
WhatsApp Image 2023-07-19 at 12.05.30.jpeg
WhatsApp Image 2023-07-19 at 12.05.30.jpeg (36.04 KiB) Viewed 4120 times

bidrohini
Posts: 202
Joined: Thu Oct 27, 2022 12:55 pm

Re: GVA thermostat

Postby bidrohini » Wed Jul 19, 2023 2:48 pm

To have Google Home display the thermostat controls, you need to set the parameter types appropriately.

To make sure Google Home recognize your device as a thermostat and shows the relevant controls, you should use the following parameter types for specific parameters:

Power Switch:

Parameter Type: ESP_RMAKER_PARAM_POWER
UI Type: ESP_RMAKER_UI_TOGGLE
Setpoint Temperature:

Parameter Type: ESP_RMAKER_PARAM_RANGE
UI Type: ESP_RMAKER_UI_SLIDER
Temperature Value (Read-only):

Parameter Type: ESP_RMAKER_PARAM_TEMPERATURE
Fan Speed:

Parameter Type: "esp.param.speed" (You need to replace "esp.param.speed" with a proper parameter type recognized by Google Home for fan speed control).
UI Type: ESP_RMAKER_UI_SLIDER
AC Mode:

Parameter Type: ESP_RMAKER_PARAM_AC_MODE
UI Type: ESP_RMAKER_UI_DROPDOWN
Ensure that the parameter types and UI types are set as mentioned above for the respective parameters.

Additionally, make sure your device is properly linked to your Google Home account using the Google Home app. After linking, Google Home should automatically recognize the device and its capabilities based on the defined parameters and UI types.

ESP_Piyush
Posts: 309
Joined: Wed Feb 20, 2019 7:02 am

Re: GVA thermostat

Postby ESP_Piyush » Wed Jul 19, 2023 3:13 pm

Thanks for the inputs @bidrohini . Meanwhile, some parameters required for a thermostat are indeed missing. These are being tested internally and will be available on the public RainMaker soon. We will update the standard types docs accordingly.

ESP_Piyush
Posts: 309
Joined: Wed Feb 20, 2019 7:02 am

Re: GVA thermostat

Postby ESP_Piyush » Thu Jul 20, 2023 3:36 pm

New release for the skills has been pushed out. Can you try again? Probably a reboot of the device may be required.

Who is online

Users browsing this forum: No registered users and 6 guests