make the smart speaker smarter 20

01/07

Index

Purchase History

先日紹介したネタ帳の中でゴミの日を知るのと購買履歴を作るのうちゴミの日を知るってやつはPDF解析がうまくいかないので購買履歴の方を挑戦してみた。

How do I make

前回も書いたが生活用品が切れたときや続刊中のマンガを何巻まで購入したかGoogle Home mini(Nest mini)にそれを伝えればDBに保存しておく。
それをあとからWebアプリで確認できるようにした。

Construction

さて、どんな仕組みかを軽く紹介。

graph TD
    ss[Google Home mini]
    srv1(IFTTT)
    gs(Google Sheets)
    js1((check.js))
    db((Database))
    js2((www.js))
    pc[Smartphone]

    pc-->|1.say phrase|ss
    ss-->|2.query phrase|srv1
    srv1-->|3.update sheet|gs
    js1-->|4.request cells|gs
    gs-->|5.response cells|js1
    js1-->|6.insert records|db
    js2-->|8.request recordset|db
    db-->|9.response recordset|js2
    pc-->|7.request page|js2
    js2-->|10.response page|pc

    style ss fill:#eee
    style srv1 color:#eee,fill:#666
    style gs fill:#4f4
    style js1 fill:#ddd,color:#373
    style db fill:#e83,color:#333
    style js2 fill:#ddd,color:#373
    style pc fill:#7ee

    linkStyle 0 stroke:#666
    linkStyle 1 stroke:#666
    linkStyle 2 stroke:#666
    linkStyle 3 stroke:#666
    linkStyle 4 stroke:#666
    linkStyle 5 stroke:#666
    linkStyle 6 stroke:#666
    linkStyle 7 stroke:#666
    linkStyle 8 stroke:#666
    linkStyle 9 stroke:#666
    linkStyle 0 stroke:#666

こんな感じ。
Google Homeに「切れちゃったよ キッチンペーパー」と言えば「買い物リストにキッチンペーパーを追加します」と返してくれてGoogleスプレッドシート(GS)に追加していく。
また、同様に「本棚にはワンピース95巻まである」と言えば「買い物リストにワンピース95巻を追加します」と返してくれる。GSにももちろん追加。
んで、定期的にGSをチェックするスクリプトを用意して、GSからセルを引っこ抜き解析しDBに突っ込む。
そのDBのテーブルをスマホでWebページとして見せると。
購入したら削除フラグを立てて非表示にしておこうかな。

what is different from Google ShoppingList?

うーん、Googleショッピングリストとの差別化としては、生活用品が切らしたことを直接Google Homeに伝えられることと、続刊中の漫画を何巻まで購入しているか分かること。
大した差別化にはなってないけど、私にとってはだいぶ便利だとは思う。

Coding

ま、大したコーディングはしていない。
Webアプリの構築とGSのチェックするところだけ。
あとはIFTTTとのインタフェースぐらいか。

今回はソースは割愛しようかな。
気が向いたらアップしようかな。

Experience

かなり便利。気軽にカジュアルに使えるし
思いついたらすぐGoogle Homeに伝えればよいし。
この習慣が身についたら、スーパーで考え込まなくてもよい。


コメント: