Smart Device Management (SDM) API-তে Google Nest Thermostat-এর সব মডেল কাজ করে। এইসব ডিভাইস THERMOSTAT ডিভাইস টাইপ রিটার্ন করে:
sdm.devices.types.THERMOSTAT
বৈশিষ্ট্য
রেফারেন্স
এই গ্রুপের সাথে নিম্নলিখিত বৈশিষ্ট্য, কমান্ড বা ইভেন্ট সম্পর্কিত:
| বৈশিষ্ট্য | বিবরণ | কমান্ড |
|---|---|---|
| কানেক্টিভিটি | কানেক্টিভিটি সংক্রান্ত তথ্য আছে এমন যেকোনও ডিভাইসের এই ট্রেট থাকে। | |
| ফ্যান | যেসব ডিভাইসে ফ্যান কন্ট্রোল করার সিস্টেম ক্ষমতা আছে, এই ট্রেট সেইসব ডিভাইসের। | SetTimer |
| আর্দ্রতা | যেসব ডিভাইসে আর্দ্রতা পরিমাপ করার জন্য সেন্সর আছে, এই বৈশিষ্ট্য সেইসব ডিভাইসের। | |
| তথ্য | ডিভাইস সম্পর্কিত তথ্যের জন্য এই বৈশিষ্ট্যটি যেকোনও ডিভাইসের সাথে সম্পর্কিত। | |
| সেটিংস | ডিভাইস-সম্পর্কিত সেটিংস সংক্রান্ত তথ্যের জন্য এই ট্রেট যেকোনও ডিভাইসের সাথে সম্পর্কিত। | |
| তাপমাত্রা | যেসব ডিভাইসে তাপমাত্রা মাপার সেন্সর আছে, এই বৈশিষ্ট্য সেগুলির সাথে সম্পর্কিত। | |
| ThermostatEco | এই ট্রেটটি থার্মোস্ট্যাটের সেইসব ডিভাইস ধরনের সাথে সম্পর্কিত যেগুলি ECO মোড কাজ করে। | SetMode |
| ThermostatHvac | এই ট্রেটটি থার্মোস্ট্যাট ডিভাইস ধরনের অন্তর্গত যা HVAC সংক্রান্ত বিবরণ রিপোর্ট করতে পারে। | |
| ThermostatMode | এই ট্রেটটি THERMOSTAT-এর ডিভাইস ধরনের অন্তর্গত যা বিভিন্ন থার্মোস্ট্যাট মোডে কাজ করে। | 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-এর মাধ্যমে স্কেল সেট করা যায় না। ব্যবহারকারীর সেট করা বর্তমান তাপমাত্রা স্কেল নির্ধারণ করতে,Settings ট্রেইট ব্যবহার করুন।
মোড পরিবর্তন করা
দুটি আলাদা আলাদা ট্রেট থার্মোস্ট্যাটের মোড ম্যানেজ করে: ThermostatMode এবং ThermostatEco.
স্ট্যান্ডার্ড মোড
থার্মোস্ট্যাট মোড পরিবর্তন করে HEAT, COOL বা HEATCOOL করতে, ThermostatMode ট্রেটের SetMode কমান্ড ব্যবহার করুন।
এছাড়াও, এই কমান্ডটি থার্মোস্ট্যাটের মোড বন্ধ করতে ব্যবহার করা যেতে পারে। এটি ইকো মোড চালু করতে ব্যবহার করা যাবে না।যেমন, একটি স্ট্যান্ডার্ড থার্মোস্ট্যাট মোড পরিবর্তন করতে:
অনুরোধ করুন
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}
রেসপন্স
{}
ইকো মোড
ইকো মোড চালু করতে, ThermostatEco ট্রেটের SetMode কমান্ডের সাথে মোড হিসেবে MANUAL_ECO ব্যবহার করুন:
অনুরোধ করুন
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode",
"params" : {
"mode" : "MANUAL_ECO"
}
}
রেসপন্স
{}
Eco মোডের বর্তমান স্ট্যাটাস বা এতে করা পরিবর্তনের উপর ভিত্তি করে এই কমান্ড অন্যান্য বৈশিষ্ট্যকে প্রভাবিত করে:
- ইকো মোড বন্ধ থাকলে, থার্মোস্ট্যাট মোড ডিফল্ট হিসেবে অ্যাক্টিভ থাকা শেষ স্ট্যান্ডার্ড মোডে (HEAT, COOL, HEATCOOL, বা OFF) সেট হয়ে যাবে।
- ইকো মোড MANUAL_ECO হলে:
- ThermostatTemperatureSetpoint ট্রেটের জন্য কমান্ড বাতিল করা হয়েছে।
- ThermostatTemperatureSetpoint ট্রেটের মাধ্যমে তাপমাত্রার সেটপয়েন্ট ফেরত দেওয়া হয় না।
নির্দিষ্ট করা তাপমাত্রা পরিবর্তন করা
থার্মোস্ট্যাট HEAT, COOL বা HEATCOOL মোডে থাকলে তবেই তাপমাত্রার সেটপয়েন্ট পরিবর্তন করা যায় এবং থার্মোস্ট্যাটের বর্তমান মোডের সাথে মানানসই সেটপয়েন্টই শুধু ব্যবহার করা যায়। মোড বন্ধ থাকলে অথবা ইকো মোড MANUAL_ECO হিসেবে সেট করা থাকলে তাপমাত্রা সেটপয়েন্ট পরিবর্তন করা যায় না।
তাপমাত্রা সেটপয়েন্ট পরিবর্তন করার আগে থার্মোস্ট্যাটকে অবশ্যই সেই মোডে থাকতে হবে যা কল করা কমান্ডের সাথে সামঞ্জস্যপূর্ণ হয়। সেটপয়েন্ট পরিবর্তন করার কমান্ড ও ফিল্ড থার্মোস্ট্যাট মোড অনুযায়ী আলাদা হয়।
যেমন, SetHeat কমান্ড ইস্যু করতে, থার্মোস্ট্যাটকে প্রথমে HEAT মোডে থাকতে হবে:
| মোড | কমান্ড | ফিল্ড |
|---|---|---|
| HEAT | SetHeat | heatCelsius |
| COOL | SetCool | coolCelsius |
| HEATCOOL | SetRange | heatCelsius, coolCelsius |
মনে রাখবেন, সেটপয়েন্ট কমান্ড শুধুমাত্র সেলসিয়াসকে প্যারামিটার হিসেবে নেয়, যদিও Google Nest Thermostat সেলসিয়াস বা ফারেনহাইট ডিগ্রিতে তাপমাত্রা দেখাতে পারে।
যেমন, থার্মোস্ট্যাট HEAT মোডে থাকাকালীন তাপমাত্রা সেটপয়েন্ট পরিবর্তন করতে, ThermostatTemperatureSetpoint ট্রেটের SetHeat কমান্ড ব্যবহার করুন:
অনুরোধ করুন
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
"params" : {
"heatCelsius" : 22.0
}
}
রেসপন্স
{}
ইকো মোড সেটপয়েন্ট
ThermostatEco ট্রেট থেকে পাওয়া heatCelsius এবং coolCelsius সেটপয়েন্ট
ব্যবহারকারী সেট করেন এবং SDM API-এর মাধ্যমে
পরিবর্তন করা যায় না।
ফ্যান চালু বা বন্ধ করা
থার্মোস্ট্যাট ফ্যান সাপোর্ট করলে, এটি চালু বা বন্ধ করতে ফ্যান ট্রেটের SetTimer কমান্ড ব্যবহার করুন। চালু করার সময়, আপনি কতক্ষণ ফ্যান চালাতে চান তা সেকেন্ডে উল্লেখ করতে পারবেন।
যেমন, এক ঘণ্টা ফ্যান চালানোর জন্য:
অনুরোধ করুন
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
রেসপন্স
{}
duration ফিল্ডটি বাদ দেওয়া হলে, ফ্যানটি ডিফল্ট সময় হিসেবে ১৫
মিনিট চলবে।
ডিভাইসের কানেক্টিভিটি চেক করুন
ডিভাইস কমান্ডের উত্তর না দিলে বা ইভেন্ট না পাঠালে অথবা আপনি ডিভাইস সম্পর্কিত API থেকে এরর মেসেজ পেলে, অফলাইন স্ট্যাটাসের জন্য ডিভাইসের কানেক্টিভিটি চেক করতে কানেক্টিভিটি ট্রেট ব্যবহার করুন। ইন্টারনেটের সাথে ডিভাইসের কানেকশন চেক করুন এবং Nest পরিষেবা চালু আছে কিনা দেখুন।
আপনার ইভেন্ট চালু করা থাকলে, ডিভাইসটি অফলাইন হয়ে গেছে তা নির্দেশ করে, আপনার একটি রিসোর্স ইভেন্ট পাওয়ার কথা:
পেলোড
{
"eventId" : "5a10e4f2-4c95-488a-b743-fa7f3577ff3b",
"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"
]
}ডিভাইস ইভেন্টে প্রতিক্রিয়া জানানো
কোনও ট্রেট ফিল্ডে কোনও পরিবর্তন করা হলে, একটি ইভেন্ট তৈরি হয়।
যেমন, থার্মোস্ট্যাটের HVAC
স্ট্যাটাস পরিবর্তন করে হিটিং করা হলে, আপনি
নিম্নলিখিত resourceUpdate ইভেন্ট পাবেন:
পেলোড
{
"eventId" : "c3c7640d-0116-44e7-8018-dd5c02e5cf8d",
"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 এবং ThermostatTemperatureSetpoint ট্রেইট পরিবর্তনের ইভেন্ট পাঠানো হতে পারে। সিস্টেম চালু হওয়ার পরে ThermostatHvac ট্রেইট পরিবর্তন একটি আলাদা ইভেন্ট হিসেবে পাঠানো হবে। HVAC সিস্টেম চালু করতে কোনও দেরি না হলে, তিনটি ইভেন্টই একই সময়ে পাঠানো হবে।
সমস্যা
এই ডিভাইসের ক্ষেত্রে নিম্নলিখিত সমস্যার কোড দেখানো হতে পারে:
| ত্রুটি বার্তা | RPC | সমস্যার সমাধান |
|---|---|---|
| কুল ভ্যালু অবশ্যই হিট ভ্যালুর চেয়ে বেশি হতে হবে। | INVALID_ARGUMENT |
আপনার কমান্ডে heatCelsius ফিল্ডের মান যেন coolCelsius ফিল্ডের মানের চেয়ে কম হয় তা নিশ্চিত করুন। |
| বর্তমান থার্মোস্ট্যাট মোডে কমান্ড ব্যবহার করা যাবে না। | FAILED_PRECONDITION |
কিছু থার্মোস্ট্যাট মডেলে, থার্মোস্ট্যাট মোড বন্ধ থাকলে ইকো মোড পরিবর্তন করা যায় না। এটি ThermostatMode ট্রেইট অনুযায়ী হয়। ইকো মোড পরিবর্তন করার আগে থার্মোস্ট্যাট মোডকে অবশ্যই HEAT, COOL বা HEATCOOL হিসেবে পরিবর্তন করতে হবে। |
| থার্মোস্ট্যাট ফ্যান উপলভ্য নেই। | FAILED_PRECONDITION |
থার্মোস্ট্যাটে ফ্যান চালানোর সুবিধা নেই। এই ডিভাইসের জন্য ফ্যান-সম্পর্কিত বৈশিষ্ট্য ও কমান্ড ব্যবহার করা যাবে না। |
| থার্মোস্ট্যাট MANUAL_ECO মোডে থাকলে কমান্ড ব্যবহার করা যায় না। | FAILED_PRECONDITION |
থার্মোস্ট্যাট ম্যানুয়াল ইকো মোডে থাকলে তাপমাত্রার সেটপয়েন্ট সেট করা যাবে না। |
API সমস্যার কোডের সম্পূর্ণ তালিকা পেতে API সমস্যার কোডের রেফারেন্স দেখুন।