Upgrade to Pro — share decks privately, control downloads, hide ads and more …

我が家の便利サービス「赤ちゃんプッシュ」のご紹介/Baby Push

Ara
January 26, 2018

我が家の便利サービス「赤ちゃんプッシュ」のご紹介/Baby Push

Ara

January 26, 2018
Tweet

More Decks by Ara

Other Decks in Technology

Transcript

  1. • Amazon アプリで途中までセットアップして、 商品を紐づけない(Wi-Fi 設定まで終わった状態にする) • Wi-Fi ネットワーク内にサーバーを立てて、 Dash ボタンからの

    ARP 要求を拾ってトリガーにする • 注記:最近、Dash ボタンの仕様が変わったらしく、注文に失敗す ると 2分後とかに再度 ARP 要求がくる • 参考 Python コード: https://gist.github.com/mr-pj/75297864abef5c8f2d5c134b e2656023#file-dashbutton-py Amazon Dash ボタンを、IoT ボタンとして使う方法 参考:https://qiita.com/dkawashi/items/e6621c4b712b509c73ec など
  2. • Amazon Developper 登録 https://developer.amazon.com • 開発者コンソール > ALEXA の

    Alexa Skills Kit [始める] をクリック • 新しいスキルを追加する ◦ スキルの種類:カスタム対話モデル ◦ インテントスキーマ: "GetMilkTimeIntent" など任意の名前を、処理の数だけ定義 ◦ サンプル発話:”GetMilkTimeIntent 次のミルクは” などインテントとその発話を幾つか書く • AWS Lambda の作成とテスト ◦ 設計図:alexa-skill-kit-sdk-triviaskill など ◦ ランタイム:Node.js 6.10 など ◦ トリガー:Alexa Skills Kit ◦ alexa-sdk を使ったハンドラー登録の引数 handler に、”GetMilkTimeIntent” と関数を書く • Lambda の ARN をスキルに紐付ける → 実機でそのまま動作可能 Alexa Skill の開発方法(おおまかに) 参考:https://developer.amazon.com/ja/blogs/alexa/post/6e716e5c-55b0-445b-b936-9cfac4712e7b/training-1
  3. { "intents": [ { "intent": "PushMilkButtonIntent" }, { "intent": "PushWakeupButtonIntent"

    }, { "intent": "PushPooButtonIntent" }, { "intent": "PushPeeButtonIntent" }, { "intent": "GetMilkTimeIntent" }, { "intent": "GetMoodIntent" }, { "intent": "AMAZON.HelpIntent" }, { "intent": "AMAZON.StopIntent" }, { "intent": "AMAZON.CancelIntent" } ]} 参考:https://developer.amazon.com/ja/blogs/alexa/post/6e716e5c-55b0-445b-b936-9cfac4712e7b/training-1 インテントスキーマ サンプル発話 const Alexa = require('alexa-sdk'); exports.handler = function(event, context, callback) { var alexa = Alexa.handler(event, context); // Alexa SDK のインスタンス生成 alexa.registerHandlers(handlers); // ハンドラの登録 alexa.execute(); // インスタンスの実行 }; : var handlers = { : 'GetMilkTimeIntent': function () { var message = getMilkTimeMessage(); // ミルク時間のメッセージ取得処理 self.emit(':tell', message); } } PushMilkButtonIntent ミルクボタンを押して PushWakeupButtonIntent 起きたボタンを押して PushPooButtonIntent うんちボタンを押して PushPeeButtonIntent おしっこボタンを押して GetMilkTimeIntent 次のミルクは GetMilkTimeIntent ミルクの時間は GetMilkTimeIntent ミルクの時間を教えて GetMoodIntent 機嫌は GetMoodIntent 機嫌を教えて { "name": "babypushecho", "version": "1.0.0", "private": true, "dependencies": { "alexa-sdk": "^1.0.10" } } index.js package.js