跳到主要内容

可以使用自定义设备类型,而不使用标准类型吗?

可以。标准类型(例如 Switch、LightBulb、Fan)是辅助 API,可提供与手机应用和语音助手更好的默认集成。你也可以为任何用例创建完全自定义的设备类型和参数(例如土壤湿度、水位、冷风机)。

创建自定义设备:

esp_rmaker_device_t *device = esp_rmaker_device_create("Air Cooler", "my.device.air-cooler", NULL);
esp_rmaker_device_add_cb(device, write_cb, NULL);

/* 使用 esp_rmaker_param_create()、取值范围和 UI 类型添加参数 */
esp_rmaker_param_t *power_param = esp_rmaker_power_param_create("Power", true);
esp_rmaker_device_add_param(device, power_param);
esp_rmaker_device_assign_primary_param(device, power_param);

/* 添加自定义参数:开关、滑块、下拉框 */
esp_rmaker_param_t *speed = esp_rmaker_param_create("Speed", "esp.param.range",
esp_rmaker_int(3), PROP_FLAG_READ | PROP_FLAG_WRITE);
esp_rmaker_param_add_ui_type(speed, ESP_RMAKER_UI_SLIDER);
esp_rmaker_param_add_bounds(speed, esp_rmaker_int(0), esp_rmaker_int(5), esp_rmaker_int(1));
esp_rmaker_device_add_param(device, speed);

esp_rmaker_node_add_device(node, device);

详情请参见自定义类型与标准类型。