Tất cả các mẫu Google Nest Thermostat đều được hỗ trợ trong API Quản lý thiết bị thông minh (SDM). Các thiết bị này trả về loại thiết bị THERMOSTAT:
sdm.devices.types.THERMOSTAT
Đặc điểm
Tài liệu tham khảo
Các đặc điểm, lệnh hoặc sự kiện sau đây có liên quan đến nhóm này:
Đặc điểm | Mô tả | Lệnh |
---|---|---|
Khả năng kết nối | Đặc điểm này thuộc về mọi thiết bị có thông tin kết nối. | |
Quạt | Đặc điểm 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 này thuộc về bất kỳ thiết bị nào có cảm biến để đo độ ẩm. | |
Thông tin | Đặc điểm này thuộc về mọi thiết bị để cung cấp thông tin liên quan đến thiết bị. | |
Cài đặt | Trait này thuộc về bất kỳ thiết bị nào có thông tin cài đặt liên quan đến thiết bị. | |
Nhiệt độ | Đặc điểm này thuộc về mọi thiết bị có cảm biến để đo nhiệt độ. | |
ThermostatEco | Đặc điểm này thuộc về các loại thiết bị THERMOSTAT hỗ trợ chế độ ECO. | SetMode |
ThermostatHvac | Đặc điểm 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 điều hòa không khí. | |
ThermostatMode | Đặc điểm này thuộc về các loại thiết bị THERMOSTAT hỗ trợ nhiều chế độ máy điều nhiệt. | SetMode |
ThermostatTemperatureSetpoint | Đặc điểm 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 không có một đặc điểm nào trong phản hồi GET cho biết rằng đặc điểm hoặc tính năng đó hiện không có trên 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 của máy điều nhiệt, hãy sử dụng thuộc tínhNhiệt độ . Nhiệt độ môi trường đượ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 dùng tính năngĐộ ẩm . Độ ẩm môi trường xung quanh được đo tại thiết bị.
Thang nhiệt độ
Google Nest Thermostat có thể hiển thị nhiệt độ theo độ C hoặc độ F, nhưng API SDM không thể đặt thang đo. Để xác định thang nhiệt độ mà người dùng đang đặt, hãy sử dụng tính năngCài đặt .
Thay đổi chế độ
Bạn có thể quản lý chế độ của máy điều nhiệt bằng 2 đặc điểm: ThermostatMode và ThermostatEco.
Chế độ tiêu chuẩn
Để thay đổi chế độ máy điều nhiệt thành HEAT (Sưởi ấm), COOL (Làm mát) hoặc HEATCOOL (Sưởi ấm – Làm mát), hãy sử dụng lệnh SetMode của thuộc tính ThermostatMode.
Bạn cũng có thể dùng lệnh này để TẮT chế độ của máy điều nhiệt nhưng không thể dùng lệnh này để bật chế độ Tiết kiệm năng lượng.Ví dụ: Cách thay đổi một trong các chế độ tiêu 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
Để bật chế độ Tiết kiệm năng lượng, hãy sử dụng MANUAL_ECO làm chế độ bằng lệnh SetMode của đặc điểm 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 khác, dựa trên trạng thái hiện tại hoặc các thay đổi đối với chế độ Tiết kiệm pin:
- Nếu chế độ Tiết kiệm năng lượng đang TẮT, thì chế độ máy điều nhiệt sẽ mặc định là chế độ tiêu chuẩn gần đây nhất (SƯỞI, LÀM MÁT, SƯỞI LÀM MÁT hoặc TẮT) đang hoạt động.
- Nếu chế độ Tiết kiệm là MANUAL_ECO:
- Các lệnh cho thuộc tính ThermostatTemperatureSetpoint bị từ chối.
- Điểm đặt nhiệt độ không được trả về bởi thuộc tính ThermostatTemperatureSetpoint .
Thay đổi điểm đặt nhiệt độ
Bạn chỉ có thể thay đổi điểm đặt nhiệt độ khi máy điều nhiệt ở chế độ SƯỞI, LÀM MÁT hoặc SƯỞI LÀM MÁT và điểm đặt nhiệt độ được phép tương ứng với chế độ hiện tại của máy điều nhiệt. Không thể thay đổi điểm đặt nhiệt độ khi chế độ này TẮT hoặc khi chế độ Eco đượ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 điểm đặt nhiệt độ. Lệnh và (các) trường để thay đổi (các) điểm đặt nhiệ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 |
MÁT | SetCool | coolCelsius |
SƯỞI ẤM ẤM | SetRange | heatCelsius , coolCelsius |
Xin lưu ý rằng các lệnh về điểm đặt chỉ lấy độ C làm tham số, mặc dù máy Google Nest Thermostat có thể hiển thị nhiệt độ theo độ C hoặc độ F.
Các lệnhVí dụ: để thay đổi điểm đặt nhiệt độ khi máy điều nhiệt ở chế độ SƯỞI, hãy sử dụng lệnh SetHeat của thuộc tính 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
{}
Điểm đặt ở chế độ tiết kiệm năng lượng
Điểm đặt heatCelsius
và coolCelsius
do thuộc tính ThermostatEco trả về là do 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 thuộc tính Quạt để 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 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ểmKết nối để kiểm tra trạng thái KHÔNG CÓ KẾT NỐI của thiết bị. Kiểm tra kết nối Internet của thiết bị và đảm bảo Dịch vụ Nest đã bật.
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 thiết bị đã không có kết nối mạng:
Dung lượng
{
"eventId" : "366dcbfb-2b0d-4c8c-9ad9-2ff7434f1dc7",
"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 trường đặc điểm đề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:
Dung lượng
{
"eventId" : "1e9d0340-7543-4a6f-b498-7c12a77f0b27",
"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"
]
}
Sự kiện được kích hoạt cho tất cả các đặc điểm liên kết với loại thiết bị nà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 hệ thống điều hòa không khí có thể không được phân phối cùng lúc với sự kiện về thay đổi chế độ máy điều nhiệt.
Ví dụ: đôi khi có độ trễ khi 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 có thể chỉ gửi các sự kiện cho các thay đổi về đặc điểm ThermostatMode và ThermostatTemperatureSetpoint , với thay đổi về đặc điểm ThermostatHvac đượ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ó độ trễ trong việc bật hệ thống HVAC, thì cả ba sự kiện sẽ được gửi cùng một lúc.
Lỗi
(Các) mã lỗi sau đây có thể được trả về liên quan đến thiết bị này:
Thông báo Lỗi | RPC | Khắc phục sự cố |
---|---|---|
Giá trị mát phải lớn hơn giá trị nóng. | INVALID_ARGUMENT |
Đảm bảo trường heatCelsius nhỏ hơn trường coolCelsius trong lệnh của bạn. |
Không được phép thực hiện lệnh trong chế độ máy điều nhiệt hiện tại. | FAILED_PRECONDITION |
Một số mẫu máy điều nhiệt không hỗ trợ thay đổi chế độ Tiết kiệm năng lượng khi chế độ máy điều nhiệt đang ở trạng thái TẮT, theo đặc điểm ThermostatMode . Bạn phải thay đổi chế độ máy điều nhiệt thành SƯỞI, LÀM MÁT hoặc SƯỞI LÀM MÁT trước khi thay đổi chế độ Tiết kiệm năng lượng. |
Quạt máy điều nhiệt không hoạt động. | FAILED_PRECONDITION |
Máy điều nhiệt không có quạt. Bạn không thể sử dụng các tính năng và lệnh liên quan đến quạt cho thiết bị này. |
Không được phép thực hiện lệnh khi máy điều nhiệt ở chế độ MANUAL_ECO. | FAILED_PRECONDITION |
Không thể đặt điểm đặt nhiệt độ khi máy điều nhiệt ở chế độ Tiết kiệm điện 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.