簡體   English   中英

google smart home trait-Fanspeed-speed_synonym 不起作用

[英]google smart home trait-Fanspeed- speed_synonym doesn't work

我嘗試使用 codelab 中的示例代碼和修改后的設備類型進行練習。 當我嘗試將風扇設備添加到 google 智能家居應用程序時,我收到了錯誤響應。

例如:(問:設置風扇速度低)(回應:OK,descreasing風扇轉速speedslow)

app.onSync(async (body, headers) => {
  console.log('onSync');
  return {
    requestId: body.requestId,
    payload: {
      agentUserId: agentId,
      devices: [{
        id: 'fan',
        type: 'action.devices.types.FAN',
        traits: [
          'action.devices.traits.OnOff',
          'action.devices.traits.FanSpeed',
          //'action.devices.traits.Mode',
        ],
        name: {
          name: 'Fan',
        },
        deviceInfo: {
          manufacturer: 'AAA',
          model: 'BBB-Fan1',
          hwVersion: '1.0',
          swVersion: '1.0.1',
        },
        willReportState: true,
        attributes: {
            availableFanSpeeds: {
                speeds: [{
                    speed_name: 'Low',
                    speed_values: [{
                        speed_synonym: ['speedslow','speedlow','speedsmall','slow','low','small','minimum'],
                        lang: 'en'
                    }]
                },{
                    speed_name: 'Medium',
                    speed_values: [{
                        speed_synonym: ['medium','speed medium'],
                        lang: 'en'
                    }]
                },{
                    speed_name: 'High',
                    speed_values: [{
                        speed_synonym: ['speed fast','speed high','speed big','fast','high','big','maximum'],
                        lang: 'en'
                    }]
                }],
            ordered: true
          },
          reversible: true,

Q1: 'speedslow' 是我在 speed_name 'Low' 下面的 speed_synonym。 我認為它需要響應“好的,將風扇速度降低到低”之類的答案。對嗎?

Q2:在traits頁面中,它不支持中文。 我發現我可以使用一些中文詞來控制設備行為,例如通過谷歌助手應用程序以中文顯示“打開風扇”。 但是我也發現我不能用一些中文詞,比如“設置風扇速度為低”來改變我的設備狀態。所以好像不支持中文吧?

關於您的問題,我認為您不會收到錯誤響應。 availableFanSpeeds工作方式是為每種模式創建一個key ,並為適合該模式的每種語言創建一組synonyms 因此, speed_name "Low" 旨在在您支持的每種語言中普遍使用。 這意味着平台不一定在任何地方都使用“低”鍵。

在法語中,它會說:

好的,diminution de la vitesse du ventilateur à low

這對法國用戶來說聽起來很奇怪。 因此,使用了“同義詞”字段,該字段被設計為在每種語言中表示相同事物的單詞數組。 使用同義詞數組的第一個元素可用於創建更好的本地化輸出。

該文檔不顯示對中文的支持,但即使支持,您也需要創建第二個數組來顯示該語言中特定風扇速度的同義詞。 平台不會為您翻譯這些密鑰,應為每種語言提供它們。 這允許您提供可能是諸如“low”之類的常見詞以及任何特定於設備的名稱(例如可能無法翻譯的“Not Fast™ mode”)的值。

您必須修改數組以添加新的語言代碼。 下面我添加法語的同義詞。

speeds: [{
  speed_name: 'Low',
  speed_values: [{
    speed_synonym: ['speedslow','speedlow','speedsmall','slow','low','small','minimum'],
    lang: 'en'
  }, {
    speed_synonym: ['faible', 'petite', 'petit'],
    lang: 'fr'
  }]
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM