Tất cả các mẫu Google Nest Thermostat đều được hỗ trợ trong API Smart Device Management (SDM). Các thiết bị này trả về loại thiết bị THERMOSTAT:
sdm.devices.types.THERMOSTAT
Đặc điểm tính cách
Tài liệu tham khảo
Các đặc điểm tính cách, lệnh hoặc sự kiện sau đây có liên quan đến nhóm này:
| Đặc điểm tính cách | Mô tả | Lệnh |
|---|---|---|
| Khả năng kết nối | Đặc điểm tính cách này thuộc về mọi thiết bị có thông tin về khả năng kết nối. | |
| Quạt | Đặc điểm tính cách này thuộc về mọi thiết bị có khả năng kiểm soát quạt của hệ thống. | SetTimer |
| Độ ẩm | Đặc điểm tính cách này thuộc về mọi thiết bị có cảm biến để đo độ ẩm. | |
| Thông tin | Đặc điểm tính cách này thuộc về mọi thiết bị có thông tin liên quan đến thiết bị. | |
| Chế độ cài đặt | Đặc điểm tính cách này thuộc về mọi thiết bị có thông tin về chế độ cài đặt liên quan đến thiết bị. | |
| Nhiệt độ | Đặc điểm tính cách này thuộc về mọi thiết bị có cảm biến để đo nhiệt độ. | |
| ThermostatEco | Đặc điểm tính cách này thuộc về các loại thiết bị THERMOSTAT hỗ trợ chế độ TIẾT KIỆM NĂNG LƯỢNG. | SetMode |
| ThermostatHvac | Đặc điểm tính cách này thuộc về các loại thiết bị THERMOSTAT có thể báo cáo thông tin chi tiết về hệ thống sưởi ấm, thông gió và điều hoà không khí (HVAC). | |
| ThermostatMode | Đặc điểm tính cách này thuộc về các loại thiết bị THERMOSTAT hỗ trợ nhiều chế độ của máy điều nhiệt. | SetMode |
| ThermostatTemperatureSetpoint | Đặc điểm tính cách này thuộc về các loại thiết bị THERMOSTAT hỗ trợ việc đặt nhiệt độ mục tiêu và phạm vi nhiệt độ. | SetHeat SetCool SetRange |
JSON
Việc thiếu một đặc điểm tính cách trong phản hồi GET cho biết rằng đặc điểm tính cách hoặc tính năng đó hiện không dùng được cho thiết bị. Hãy xem phần Các loại thiết bị để biết thêm thông tin.
{
"type" : "sdm.devices.types.THERMOSTAT",
"traits" : {
"sdm.devices.traits.Connectivity" : {
"status" : "ONLINE"
},
"sdm.devices.traits.Fan" : {
"timerMode" : "ON",
"timerTimeout" : "2019-05-10T03:22:54Z"
},
"sdm.devices.traits.Humidity" : {
"ambientHumidityPercent" : 35.0
},
"sdm.devices.traits.Info" : {
"customName" : "My device"
},
"sdm.devices.traits.Settings" : {
"temperatureScale" : "CELSIUS"
},
"sdm.devices.traits.Temperature" : {
"ambientTemperatureCelsius" : 23.0
},
"sdm.devices.traits.ThermostatEco" : {
"availableModes" : ["MANUAL_ECO", "OFF"],
"mode" : "MANUAL_ECO",
"heatCelsius" : 20.0,
"coolCelsius" : 22.0
},
"sdm.devices.traits.ThermostatHvac" : {
"status" : "HEATING"
},
"sdm.devices.traits.ThermostatMode" : {
"availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"],
"mode" : "COOL"
},
"sdm.devices.traits.ThermostatTemperatureSetpoint" : {
"heatCelsius" : 20.0,
"coolCelsius" : 22.0
}
}
}Nhiệt độ và độ ẩm
Để đọc nhiệt độ môi trường xung quanh của máy điều nhiệt, hãy sử dụng đặc điểm tính cách Temperature . Nhiệt độ môi trường xung quanh được đo tại thiết bị.
Để đọc độ ẩm môi trường xung quanh của máy điều nhiệt, hãy sử dụng đặc điểm tính cách Humidity . Độ ẩm môi trường xung quanh được đo tại thiết bị.
Thang đo nhiệt độ
Google Nest Thermostat có thể hiển thị nhiệt độ theo độ C hoặc độ F, nhưng bạn không thể đặt thang đo bằng API SDM. Để xác định thang đo nhiệt độ mà người dùng hiện đang đặt, hãy sử dụng đặc điểm tính cách Settings .
Thay đổi chế độ
Chế độ của máy điều nhiệt được quản lý bằng hai đặc điểm tính cách: ThermostatMode và ThermostatEco.
Các chế độ chuẩn
Để thay đổi chế độ của máy điều nhiệt thành SƯỞI ẤM, LÀM MÁT hoặc SƯỞI ẤM – LÀM MÁT, hãy sử dụng lệnh SetMode của đặc điểm tính cách ThermostatMode.
Bạn cũng có thể dùng lệnh này để chuyển chế độ của máy điều nhiệt thành TẮT. Bạn không thể dùng lệnh này để bật chế độ Tiết kiệm năng lượng.Ví dụ: để thay đổi một trong các chế độ chuẩn của máy điều nhiệt:
Yêu cầu
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}
Phản hồi
{}
Chế độ tiết kiệm năng lượng
Để bật chế độ Tiết kiệm năng lượng, hãy sử dụng MANUAL_ECO làm chế độ với lệnh SetMode của đặc điểm tính cách ThermostatEco:
Yêu cầu
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Phản hồi
{}
Lệnh này ảnh hưởng đến các đặc điểm tính cách khác, dựa trên trạng thái hiện tại của chế độ Tiết kiệm năng lượng hoặc các thay đổi đối với chế độ này:
- Nếu chế độ Tiết kiệm năng lượng ở trạng thái TẮT, thì chế độ của máy điều nhiệt sẽ mặc định là chế độ chuẩn gần đây nhất (SƯỞI ẤM, LÀM MÁT, SƯỞI ẤM – LÀM MÁT hoặc TẮT) đang hoạt động.
- Nếu chế độ Tiết kiệm năng lượng là MANUAL_ECO:
- Các lệnh cho đặc điểm tính cách ThermostatTemperatureSetpoint bị từ chối.
- Đặc điểm tính cách ThermostatTemperatureSetpoint không trả về các điểm đặt nhiệt độ.
Thay đổi các điểm đặt nhiệt độ
Bạn chỉ có thể thay đổi các điểm đặt nhiệt độ khi máy điều nhiệt ở chế độ SƯỞI ẤM, LÀM MÁT hoặc SƯỞI ẤM – LÀM MÁT và các điểm đặt được phép tương ứng với chế độ hiện tại của máy điều nhiệt. Bạn không thể thay đổi các điểm đặt nhiệt độ khi chế độ ở trạng thái TẮT hoặc khi chế độ Tiết kiệm năng lượng được đặt thành MANUAL_ECO.
Máy điều nhiệt phải ở chế độ tương ứng với lệnh đang được gọi trước khi thay đổi các điểm đặt nhiệt độ. Lệnh và(các) trường để thay đổi(các) điểm đặt sẽ khác nhau tuỳ theo chế độ của máy điều nhiệt.
Ví dụ: để đưa ra lệnh SetHeat, trước tiên, máy điều nhiệt phải ở chế độ SƯỞI ẤM:
| Chế độ | Lệnh | (Các) trường |
|---|---|---|
| BỔ SUNG | SetHeat | heatCelsius |
| COOL | SetCool | coolCelsius |
| SƯỞI ẤM – LÀM MÁT | SetRange | heatCelsius, coolCelsius |
Xin lưu ý rằng các lệnh đặt điểm chỉ nhận tham số là độ C, mặc dù Google Nest Thermostat có thể hiển thị nhiệt độ theo độ C hoặc độ F.
Ví dụ: để thay đổi điểm đặt nhiệt độ khi máy điều nhiệt ở chế độ SƯỞI ẤM, hãy sử dụng lệnh SetHeat của đặc điểm tính cách ThermostatTemperatureSetpoint:
Yêu cầu
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
"params" : {
"heatCelsius" : 22.0
}
}
Phản hồi
{}
Các điểm đặt chế độ Tiết kiệm năng lượng
Các điểm đặt heatCelsius và coolCelsius do đặc điểm tính cách ThermostatEco trả về được người dùng đặt và không thể thay đổi thông qua API SDM.
Bật hoặc tắt quạt
Nếu máy điều nhiệt hỗ trợ quạt, hãy sử dụng lệnh SetTimer của đặc điểm tính cách Fan để bật hoặc tắt quạt. Khi bật, bạn có thể chỉ định khoảng thời gian bạn muốn quạt chạy (tính bằng giây).
Ví dụ: để chạy quạt trong một giờ:
Yêu cầu
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Phản hồi
{}
Nếu bạn bỏ qua trường duration, quạt sẽ chạy trong khoảng thời gian mặc định là 15 phút.
Kiểm tra khả năng kết nối của thiết bị
Nếu thiết bị không phản hồi các lệnh hoặc gửi sự kiện, hoặc bạn nhận được lỗi từ API liên quan đến thiết bị, hãy sử dụng đặc điểm tính cách Connectivity để kiểm tra khả năng kết nối của thiết bị đối với trạng thái NGOẠI TUYẾN. Kiểm tra kết nối của thiết bị với Internet và đảm bảo Dịch vụ Nest đang hoạt động.
Nếu đã bật sự kiện, bạn cũng sẽ nhận được một sự kiện tài nguyên cho biết rằng thiết bị đã chuyển sang trạng thái ngoại tuyến:
Tải trọng
{
"eventId" : "6ac04910-dab8-40c0-8d16-63645e9b801c",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.Connectivity" : {
"status" : "OFFLINE"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}Phản ứng với các sự kiện trên thiết bị
Mọi thay đổi đối với một trường đặc điểm tính cách đều tạo ra một sự kiện.
Ví dụ: bạn sẽ nhận được sự kiện resourceUpdate sau đây nếu trạng thái HVAC của máy điều nhiệt thay đổi thành SƯỞI ẤM:
Tải trọng
{
"eventId" : "1dc5ae6d-7334-4a71-8bb1-3e50d452a322",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatHvac" : {
"status" : "HEATING"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}Các sự kiện được kích hoạt cho tất cả các đặc điểm tính cách liên kết với loại thiết bị này. Hãy bật sự kiện nếu bạn cần phản ứng với các sự kiện đó theo một cách nào đó trong quá trình tích hợp.
Thời gian xảy ra sự kiện
Xin lưu ý rằng sự kiện về thay đổi trạng thái HVAC có thể không được gửi cùng lúc với các sự kiện về thay đổi chế độ của máy điều nhiệt.
Ví dụ: đôi khi, hệ thống sẽ trì hoãn việc bắt đầu chế độ sưởi ấm hoặc làm mát của máy điều nhiệt để bảo vệ hệ thống HVAC. Trong trường hợp này, việc thay đổi chế độ của máy điều nhiệt ban đầu chỉ có thể gửi các sự kiện về những thay đổi đối với đặc điểm tính cách ThermostatMode và ThermostatTemperatureSetpoint . Thay đổi đối với đặc điểm tính cách ThermostatHvac sẽ được gửi sau đó dưới dạng một sự kiện riêng biệt sau khi hệ thống thực sự bật. Nếu không có sự chậm trễ trong việc bật hệ thống sưởi, thông gió và điều hòa, thì cả 3 sự kiện sẽ được gửi cùng lúc.
Lỗi
Bạn có thể nhận được(các) mã lỗi sau đây liên quan đến thiết bị này:
| Thông báo Lỗi | RPC | Khắc phục sự cố |
|---|---|---|
| Giá trị làm mát phải lớn hơn giá trị sưởi ấm. | INVALID_ARGUMENT |
Đảm bảo rằng trường heatCelsius nhỏ hơn trường coolCelsius trong lệnh của bạn. |
| Không cho phép dùng lệnh ở chế độ hiện tại của máy điều nhiệt. | FAILED_PRECONDITION |
Một số mẫu máy điều nhiệt không hỗ trợ việc thay đổi chế độ Tiết kiệm năng lượng khi chế độ của máy điều nhiệt ở trạng thái TẮT, theo đặc điểm tính cách ThermostatMode Bạn phải thay đổi chế độ của máy điều nhiệt thành SƯỞI ẤM, LÀM MÁT hoặc SƯỞI ẤM – LÀM MÁT trước khi thay đổi chế độ Tiết kiệm năng lượng. |
| Quạt của máy điều nhiệt không dùng được. | FAILED_PRECONDITION |
Máy điều nhiệt không có chức năng quạt. Bạn không thể sử dụng các đặc điểm tính cách và lệnh liên quan đến quạt cho thiết bị này. |
| Không cho phép dùng lệnh khi máy điều nhiệt ở chế độ MANUAL_ECO. | FAILED_PRECONDITION |
Bạn không thể đặt điểm đặt nhiệt độ khi máy nhiệt ở chế độ Tiết kiệm năng lượng thủ công. |
Hãy xem Tài liệu tham khảo về mã lỗi API để biết danh sách đầy đủ các mã lỗi API.