2017-04-03 157 views
1

我是新來的Alexa技能集,我有一個設備,需要由alexa發現。我對Alexa SMART HOME SKILL API的設備發現功能感到困惑。我需要一些關於如何連接由您構建的設備(使用樹莓派)的詳細信息,讓Alexa通過自定義技能發現。Alexa的自定義技能設備發現

需要示例代碼或良好的指導方針。

我知道有效載荷應該從設備雲端返回(產品製造商擁有此)。如何確保哪個設備與客戶在一起,並且該設備是否是正確的客戶?

例有效載荷低於..

"discoveredAppliances": [{ 
    "applianceId": "sample-1", 
    "manufacturerName": "Sample Manufacturer", 
    "modelName": "Sample Thermostat", 
    "version": "1", 
    "friendlyName": "Sample Thermostat", 
    "friendlyDescription": "Thermostat by Sample Manufacturer", 
    "isReachable": true, 
    "actions": [ 
     "setTargetTemperature", 
     "incrementTargetTemperature", 
     "decrementTargetTemperature" 
    ], 
    "additionalApplianceDetails": { 
    "extraDetail1": "This is a thermostat that is reachable" 
    } 
}] 

你能解釋一下discoveredAppliances詳細JSON對象?在設備雲中爲客戶生成這些細節的邏輯?

回答

0

有效負載中的所有信息都是爲​​了告訴Alexa關於您的設備的信息,並且可以是任何您想要的。真正重要的字段是:

  • applianceId:不能包含空格,並且會與每條控制消息一起傳遞給您的技能。因此,做一些能夠識別特定設備的東西。

  • friendlyName:包含用戶需要說明以識別此設備的確切單詞;例如,「車庫燈」。

    • friendlyDescription:是將在Alexa應用程序中顯示的關於此設備的文本。

    • 操作:列出您可以處理的控制事件。您列出的示例包含恆溫器類型控制。一個燈可能支持turnOn,turnOff,並可能調整setPercentage。

你如何檢測和識別你的設備是完全由你決定。

我希望這個解釋有幫助。請注意,您還可以創建自定義技能來控制您的設備。創建自定義技能的例子還有很多。我已經發布了更多自定義技能信息和代碼Github

+0

您能解釋或共享代碼嗎?如何使用alexa進行設備發現? Alexa沒有使用wifi或發送直接信號來檢測設備。相反,它會調用互聯網(製造商服務器),然後獲得有關可在alexa附近使用的設備的響應。你有沒有示例代碼或有確切的邏輯。我可以看到提到的框圖,但需要深入細節...... –

+0

看看已發佈的一些Alexa智能家居技能示例,例如kvarma的這一個:https://github.com/krvarma/particle-alexa - 智能家庭技能。 查看handleDiscovery方法中的lambda.js代碼。在那裏,他正在定義廚房臥室燈。 –

+0

任何關於'Custom Skill'的例子,運行'Discovery'流程? – AechoLiu

相關問題