ตัวคุมอุณหภูมิ

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:

เปลี่ยนอุณหภูมิที่กำหนด

เปลี่ยนค่าอุณหภูมิที่กำหนดได้เมื่อตัวควบคุมอุณหภูมิเปิดอยู่เท่านั้น โหมดทำความร้อน ทำความเย็น หรือทำความร้อน และ ค่าที่ตั้งไว้ที่อนุญาตสอดคล้องกับโหมดปัจจุบันของตัวควบคุมอุณหภูมิ อุณหภูมิ ไม่สามารถเปลี่ยนค่าที่กำหนดล่วงหน้าของโหมดนี้เมื่อโหมดปิดหรือเมื่อ ตั้งค่าโหมดอีโคเป็น 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" : "79d9ccfd-10ea-4a8d-bcf8-13f4cf79e1a9",
  "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" : "cd8fb5f5-25ba-49bd-857d-92e93b487999",
  "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 ทั้งหมด