![](https://developers.google.cn/nest/device-access/images/device-thermostat.png?authuser=0000&hl=th)
Google Nest Thermostat ทั้งหมด รุ่น ใช้ได้ใน Smart Device Management (SDM) API อุปกรณ์เหล่านี้จะส่งคืนตัวควบคุมอุณหภูมิ ประเภทอุปกรณ์:
sdm.devices.types.THERMOSTAT
ลักษณะเฉพาะ
ข้อมูลอ้างอิง
ลักษณะ คำสั่ง หรือเหตุการณ์ต่อไปนี้เกี่ยวข้องกับกลุ่มนี้
ลักษณะเฉพาะ | คำอธิบาย | คำสั่ง |
---|---|---|
การเชื่อมต่อ | ลักษณะนี้เป็นของอุปกรณ์ที่มีข้อมูลการเชื่อมต่อ | |
แฟนคลับ | ลักษณะนี้เป็นของอุปกรณ์ใดก็ตามที่ระบบสามารถควบคุมพัดลมได้ | SetTimer |
ความชื้น | ลักษณะนี้เป็นของอุปกรณ์ที่มีเซ็นเซอร์สำหรับวัดความชื้น | |
ข้อมูล | ลักษณะนี้เป็นของอุปกรณ์ใดๆ สำหรับข้อมูลที่เกี่ยวข้องกับอุปกรณ์ | |
การตั้งค่า | ลักษณะนี้เป็นของอุปกรณ์ใดๆ สำหรับข้อมูลการตั้งค่าที่เกี่ยวข้องกับอุปกรณ์ | |
อุณหภูมิ | ลักษณะนี้เป็นของอุปกรณ์ที่มีเซ็นเซอร์สำหรับวัดอุณหภูมิ | |
ThermostatEco | ลักษณะนี้เป็นของประเภทอุปกรณ์ตัวควบคุมอุณหภูมิที่รองรับโหมดอีโค | SetMode |
ThermostatHvac | ลักษณะนี้เป็นของประเภทอุปกรณ์ตัวควบคุมอุณหภูมิ ที่สามารถรายงานรายละเอียดระบบปรับอากาศ (HVAC) ได้ | |
ThermostatMode | ลักษณะนี้เป็นของอุปกรณ์ประเภทตัวควบคุมอุณหภูมิที่รองรับโหมดตัวควบคุมอุณหภูมิที่แตกต่างกัน | SetMode |
ThermostatTemperatureSetpoint | คุณสมบัตินี้เป็นของอุปกรณ์ประเภทตัวควบคุมอุณหภูมิที่รองรับการตั้งค่าอุณหภูมิและช่วงอุณหภูมิเป้าหมาย | SetHeat SetCool SetRange |
JSON
การขาดลักษณะในการตอบสนอง GET แสดงให้เห็นว่าลักษณะหรือ ฟีเจอร์นี้ไม่พร้อมใช้งานสำหรับอุปกรณ์นี้ในขณะนี้ โปรดดู ประเภทอุปกรณ์สำหรับข้อมูลเพิ่มเติม
{ "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 } } }
อุณหภูมิและความชื้น
หากต้องการอ่านอุณหภูมิแวดล้อมของตัวควบคุมอุณหภูมิ ให้ใช้ อุณหภูมิ ภาพบรรยากาศ ระบบจะวัดอุณหภูมิที่อุปกรณ์
หากต้องการอ่านความชื้นแวดล้อมของตัวควบคุมอุณหภูมิ ให้ใช้ ความชื้น ภาพบรรยากาศ ระบบจะวัดความชื้นที่อุปกรณ์
หน่วยวัดอุณหภูมิ
Google Nest Thermostat แสดงอุณหภูมิเป็นองศาเซลเซียสหรือ ฟาเรนไฮต์ แต่ SDM API ไม่สามารถกำหนดขนาดได้ หากต้องการทราบว่า ระดับอุณหภูมิที่ผู้ใช้ตั้งไว้ในปัจจุบัน ให้ใช้ การตั้งค่า
เปลี่ยนโหมด
โหมดของตัวควบคุมอุณหภูมิได้รับการจัดการโดยลักษณะ 2 อย่างที่แตกต่างกันดังนี้ ThermostatMode and ThermostatEco
รูปแบบมาตรฐาน
หากต้องการเปลี่ยนโหมดตัวควบคุมอุณหภูมิเป็น HEAT, COOL หรือ HEATCOOL ให้ใช้คำสั่ง SetMode ของลักษณะ ThermostatMode
และใช้คำสั่งนี้ได้ด้วย เพื่อปิดโหมดของตัวควบคุมอุณหภูมิ ไม่สามารถใช้เลี้ยว ในโหมดอีโคเช่น หากต้องการเปลี่ยนโหมดตัวควบคุมอุณหภูมิมาตรฐานโหมดใดโหมดหนึ่ง ให้ทำดังนี้
ส่งคำขอ
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
คำตอบ
{}
โหมดอีโค
หากต้องการเปิดโหมดอีโค ให้ใช้ MANUAL_ECO เป็นโหมดที่มี คำสั่ง SetMode ของลักษณะ ThermostatEco ดังนี้
ส่งคำขอ
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
คำตอบ
{}
คำสั่งนี้จะส่งผลต่อลักษณะอื่นๆ ตามสถานะปัจจุบันของหรือการเปลี่ยนแปลงในโหมดอีโค
- หากโหมดอีโคปิดอยู่ โหมดตัวควบคุมอุณหภูมิจะใช้ค่าเริ่มต้นเป็นโหมดมาตรฐานล่าสุด (ทำความร้อน ทำความเย็น ทำความร้อน หรือปิด) ที่ใช้งานอยู่
- หากโหมดอีโคคือ MANUAL_ECO:
- คำสั่งสำหรับลักษณะ ThermostatTemperatureSetpoint ถูกปฏิเสธ
- ระบบจะไม่แสดงผลค่าอุณหภูมิที่กำหนดโดยลักษณะ ThermostatTemperatureSetpoint
เปลี่ยนอุณหภูมิที่กำหนด
เปลี่ยนค่าอุณหภูมิที่กำหนดได้เมื่อตัวควบคุมอุณหภูมิเปิดอยู่เท่านั้น โหมดทำความร้อน ทำความเย็น หรือทำความร้อน และ ค่าที่ตั้งไว้ที่อนุญาตสอดคล้องกับโหมดปัจจุบันของตัวควบคุมอุณหภูมิ อุณหภูมิ ไม่สามารถเปลี่ยนค่าที่กำหนดล่วงหน้าของโหมดนี้เมื่อโหมดปิดหรือเมื่อ ตั้งค่าโหมดอีโคเป็น MANUAL_ECO
ตัวควบคุมอุณหภูมิต้องอยู่ในโหมดที่สอดคล้องกับคำสั่งที่เรียกใช้ก่อนที่จะเปลี่ยนแปลง อุณหภูมิที่กำหนด คำสั่งและฟิลด์สำหรับเปลี่ยนอุณหภูมิที่กำหนดแตกต่างกันไปตามตัวควบคุมอุณหภูมิ
ตัวอย่างเช่น ในการออก SetHeat ตัวควบคุมอุณหภูมิต้องอยู่ในโหมดทำความร้อนก่อน:
โหมด | คำสั่ง | ช่อง |
---|---|---|
เสริม | SetHeat | heatCelsius |
เจ๋ง | SetCool | coolCelsius |
ทำความร้อน | SetRange | heatCelsius coolCelsius |
โปรดทราบว่าคำสั่ง setpoint จะใช้ค่าองศาเป็นเซลเซียสเป็นพารามิเตอร์เท่านั้น แม้ว่าฟังก์ชัน Google Nest Thermostat แสดงอุณหภูมิเป็นองศาเซลเซียสหรือฟาเรนไฮต์ได้
เช่น เพื่อเปลี่ยนอุณหภูมิที่กำหนดเมื่อตัวควบคุมอุณหภูมิเปิดอยู่ โหมดทำความร้อน คำสั่ง SetHeat ของลักษณะ ThermostatTemperatureSetpoint
ส่งคำขอ
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
คำตอบ
{}
อุณหภูมิที่กำหนดในโหมดอีโค
เซ็ตจุด heatCelsius
และ coolCelsius
แสดงผลโดย
ผู้ใช้ตั้งค่าลักษณะ ThermostatEco และ
ไม่สามารถเปลี่ยนผ่าน SDM API
เปิดหรือปิดพัดลม
หากตัวควบคุมอุณหภูมิรองรับพัดลม ให้ใช้คำสั่ง SetTimer ของลักษณะของพัดลมเพื่อเปิดหรือปิด เมื่อเปิด คุณสามารถระบุระยะเวลาที่ต้องการให้พัดลมทำงาน วินาที
เช่น ถ้าจะเปิดพัดลม 1 ชั่วโมง ให้ทำดังนี้
ส่งคำขอ
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
คำตอบ
{}
ถ้าไม่ระบุช่อง duration
พัดลมจะทำงานเป็นเวลา 15 เป็นค่าเริ่มต้น
นาที
ตรวจสอบการเชื่อมต่ออุปกรณ์
หากอุปกรณ์ไม่ตอบสนองคําสั่งหรือส่งเหตุการณ์ หรือคุณได้รับ ข้อผิดพลาดจาก API ที่เกี่ยวข้องกับอุปกรณ์ ให้ใช้ การเชื่อมต่อ สำหรับตรวจสอบ การเชื่อมต่อของอุปกรณ์สำหรับสถานะ "ออฟไลน์" ตรวจสอบอุปกรณ์ กับการเชื่อมต่ออินเทอร์เน็ต และตรวจสอบว่าNest บริการพร้อมใช้งาน
หากคุณเปิดใช้เหตุการณ์ คุณควรจะได้รับเหตุการณ์ของทรัพยากรด้วย ซึ่งแสดงว่าอุปกรณ์ออฟไลน์ไปแล้ว
เพย์โหลด
{
"eventId" : "0cb5bc58-0efd-4c2e-a00b-1403ffaf8c27",
"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"
]
}
ตอบสนองต่อเหตุการณ์ในอุปกรณ์
การเปลี่ยนแปลงใดๆ ในช่องลักษณะจะสร้างเหตุการณ์
ตัวอย่างเช่น คุณจะได้รับ
เหตุการณ์ resourceUpdate
ต่อไปนี้หาก HVAC ของตัวควบคุมอุณหภูมิ
สถานะเปลี่ยนเป็น "ทำความร้อน":
เพย์โหลด
{
"eventId" : "94088ed1-1e7b-4b40-84bc-efedf88f7bd0",
"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"
]
}
ระบบจะทริกเกอร์เหตุการณ์สำหรับทุกลักษณะที่เชื่อมโยงกับอุปกรณ์ประเภทนี้ เปิดใช้งาน เหตุการณ์หากคุณต้องการตอบสนอง กับไซต์เหล่านั้นในลักษณะใดลักษณะหนึ่งโดยเป็นส่วนหนึ่งของการบูรณาการ
ระยะเวลาของเหตุการณ์
โปรดทราบว่าคุณอาจส่งกิจกรรมการเปลี่ยนแปลงสถานะ HVAC พร้อมกันกับกิจกรรมไม่ได้ เพื่อเปลี่ยนโหมดตัวควบคุมอุณหภูมิ
ตัวอย่างเช่น บางครั้งอาจ น. ความล่าช้าในการเริ่มโหมดทำความร้อนหรือทำความเย็นของตัวควบคุมอุณหภูมิเพื่อปกป้องระบบปรับอากาศ (HVAC) ระบบ ในสถานการณ์นี้ การเปลี่ยนโหมดตัวควบคุมอุณหภูมิอาจส่งเหตุการณ์ในช่วงเริ่มต้นเท่านั้น ThermostatMode and ThermostatTemperatureSetpoint การเปลี่ยนแปลงลักษณะ โดย ThermostatHvac ส่งการเปลี่ยนแปลงลักษณะในภายหลังเป็น เหตุการณ์เมื่อระบบเปิดจริงๆ หากการเปิดระบบ HVAC ไม่มีการล่าช้า พร้อมกัน 3 เหตุการณ์
ข้อผิดพลาด
ระบบอาจส่งคืนรหัสข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับอุปกรณ์นี้:
ข้อความแสดงข้อผิดพลาด | RPC | การแก้ปัญหา |
---|---|---|
ค่าความเย็นต้องมากกว่าค่าความร้อน | INVALID_ARGUMENT |
ตรวจสอบว่าช่อง heatCelsius สั้นกว่าช่อง coolCelsius ในคำสั่ง |
ไม่อนุญาตให้ใช้คำสั่งในโหมดตัวควบคุมอุณหภูมิปัจจุบัน | FAILED_PRECONDITION |
ตัวควบคุมอุณหภูมิบางรุ่นไม่รองรับการเปลี่ยนโหมดอีโคเมื่อโหมดตัวควบคุมอุณหภูมิปิดอยู่ตามลักษณะ ThermostatMode ต้องเปลี่ยนโหมดตัวควบคุมอุณหภูมิเป็น HEAT, COOL หรือ HEATCOOL ก่อนเปลี่ยนโหมดอีโค |
พัดลมตัวควบคุมอุณหภูมิไม่พร้อมใช้งาน | FAILED_PRECONDITION |
ตัวควบคุมอุณหภูมิไม่สามารถเปิดพัดลมได้ ใช้ลักษณะและคำสั่งที่เกี่ยวข้องกับแฟนๆ สำหรับอุปกรณ์นี้ไม่ได้ |
ไม่อนุญาตคำสั่งเมื่อตัวควบคุมอุณหภูมิอยู่ในโหมด MANUAL_ECO | FAILED_PRECONDITION |
ไม่สามารถตั้งอุณหภูมิที่กำหนดเมื่อตัวควบคุมอุณหภูมิอยู่ในโหมดอีโคด้วยตนเอง |
ดูข้อมูลอ้างอิงรหัสข้อผิดพลาด API สำหรับ รายการรหัสข้อผิดพลาด API ทั้งหมด