2

Discovery で問題が発生しています。

デバイスを検出しても、定義した Lambda 関数を呼び出しているようには見えません。Lambda 関数はスキルで設定され、イベント ソースは Lambda 関数で設定されます。

Alexa インターフェイスからデバイスを検出しようとしたときに、ラムダ関数が呼び出されていないことを監視ログから確認しました。

ラムダ テスト インターフェイスを使用して同じことをテストしようとすると、応答が返されます。

ラムダ テスト インターフェイスからのサンプル リクエスト

{
    "header": {
        "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2",
        "name": "DiscoverAppliancesRequest",
        "namespace": "Alexa.ConnectedHome.Discovery",
        "payloadVersion": "2"
    },
    "payload": {
        "accessToken": "some string"
    }
}

API エンドポイントから得た応答は次のとおりです。

 {
  "header": {
    "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2",
    "name": "DiscoverAppliancesResponse",
    "namespace": "Alexa.ConnectedHome.Discovery",
    "payloadVersion": "2"
  },
  "payload": {
    "discoveredAppliances": [
      {
        "actions": [
          "incrementPercentage",
          "decrementPercentage",
          "setPercentage",
          "turnOn",
          "turnOff"
        ],
        "additionalApplianceDetails": {
          "serialNumber": "CRED DEVICE 1456842949167",
          "firmwareVersion": "0.7.1.1"
        },
        "applianceId": "d4cab60d-b2e5-4d0f-ae50-c566e0de26ce",
        "friendlyDescription": "Den",
        "friendlyName": "Den",
        "isReachable": true,
        "manufacturerName": "CredSmartLabs",
        "modelName": "H+1140-87-",
        "version": "1"
      }
    ]
  }
}
4

3 に答える 3

0

同じ問題がありました。Alexa がデバイスを検出できませんでした。ただし、@RenRen とは異なり、Alexa シミュレーターは使用しませんでした。私のは適切なAmazon Echoデバイスでした。

そのため、地域の不一致がある場合、すべての Alexa デバイスが同じ問題に直面することを確認しています。

問題: チュートリアル https://github.com/alexa-samples/skill-sample-python-smarthome-switch/blob/master/instructions/README.md verbatimに従いました。

そのチュートリアルでは、私が北米にいることを前提としていましたが、この前提を明示していませんでした。私はインドに住んでいるので、自分の Lambda を EU-West-1 リージョン (アイルランド) に作成したに違いありません! これはまったく明白ではなく、チュートリアルではこれについてどこにも言及されていませんでした。インドのデバイスとアイルランドのラムダサーバーを結びつけ、これを厳重に守られた秘密にしておくという背後にある Amazon の論理を理解できません。

最終的な解決策は簡単でした。US ラムダを削除し、EU-West1 で同じ設定の新しいラムダを作成しました。これで、発見はスムーズに進みました。

1 つの追加メモ: Smart Home サービス エンドポイントの下の Alexa 開発者コンソールで、[ヨーロッパ、インド] ボックスをオンにして、アイルランドのラムダの ARN を指定する必要がありました。

于 2021-08-28T16:37:58.767 に答える