2018年2月5日月曜日

Google Home:喋らせるぞ!!(帰るコール自動メモ化)

日時をメモるよφ(..)

駅を出ると喋るようになったが、
家で待つ方はGoogle Homeの前にずっと居るわけではない。
そこで、いつ出たのかメモで伝えることが必要になる。

ということで、次なるシナリオは
if ○○駅を出たら then 「○○日○○時○○分に○○駅を出たよ」とLineに送る
です。
トリガーが


で、
アクションが
になります。

Locationは同じです。
Lineは1:1かグループのどちらかにメッセージを発信するアクションです。

Recipientではそのどちらかを選択します。
今回はグループを作って投稿することにします。
「Line Notify」なるユーザができるけど。。。^^;

Messageには任意のテキストを指定できます。
「OccurredAt」が日時のキーワードになります。
ボタンになっていて色々選択できるよ。

Photo URLにはマップのURLなど指定できるけど。。。
品川駅にリンクは不要ですね。
こんな感じの指定になるよ。

これで、品川駅をちょっと出たらLineに
なメッセージが届くよ。

でもね、見て分かるように
曜日、時間に関係なく指定したエリアから出ると
メッセージが発信されるよ。。。^^;
複合条件で制御できるようにならんかな>ifttt

2018年2月1日木曜日

Windows Hello:顔認証カメラがとっても楽ちん♪

パスワード入力が無くなるんですよ♪

RFIDが流行った頃、思ったことがある。
名札にRFIDタグを貼り付けておいて、
自席から離れたらスクリーンセーバが起動して、
自席に戻るとログイン完了していて、
すぐにPCが使えるようになっている。
そんな便利小物できないかな??
って。

自分の使ってるPCなのに、
なぜパスワード入力しなければならないのか!!

  • 離席(トイレ、会議、買い物)
  • ちょっとした考えごと
  • 誰かが来て話し込む
  • 電話がかかってくる

などなど、1日に何回入力するんだろう。。。
こんな無駄な時間と労力は無いよね^^;
更に入力ミスすると。。。最低!!

そんなとき、
「顔認証で近いことはできるよ」
と飲み会の時に情報を仕入れました。

早速、Google先生に聞いてみると
Windowsで簡単に顔認証できるんですね。
標準で対応していてカメラも手頃な価格みたい。

ということで、早速ポチッとしちゃいました。
Windows Hello対応 顔認証カメラ(915077)
調べた中で最安値^^;

セットアップもちょっとハマってしまいましたが、
簡単に使えるようになりました。
こんな感じです。

顔を向けるとサッと画面が起動するので良い感じ~♪
(ロック画面が表示されるとワンタッチが必要です)
とっても楽ちん♪♪やめられまへんなぁ(^^)v

最後に、私がハマったことを注意事項として書いておきます。

  • 製品に同梱されているCDのドライバーではなく、HPに掲載されているドライバーをダウンロードしてインストールする。
  • キーボードやディスプレイのUSBポートによっては使えない場合があります。そんなときはPC本体のポートを使ってみましょう!?(延長コードも同梱されてました。)
  • アンチウイルスソフトでWebカメラが使用禁止になっている場合があります。使用できるようにロック解除しましょう。
  • メガネは外した状態、かけた状態の両方を登録して「認識精度を高める」ことをしましょう。(化粧前/化粧後、昼の顔/夜の顔とか。。。^^;)
  • 逆光になると認識できないです。ブラインドを下ろすとか工夫しましょう。
結構、ポイントを押さえてるでしょ^^;

いや~~~楽ちん♪

2018年1月29日月曜日

Google Home:喋らせるぞ!!(帰るコール自動化)

「自動発信」するよ

ボタンを押すと「帰るコール」できるようになった。
でも、ボタンを押すのは面倒くさいなぁ。。。^^;

ということで、次なるシナリオは
if ○○駅をでたら then 「○○を出たよ」と喋る
です。
トリガーが
で、
アクションが
になります。

Webhooksは同じなのでLocationの設定です。
Locationは「ある場所」に
「入る:You enter an area」
「出る:You exit an area」
「出入り:You enter or exit an area」
のいずれかで起動します。
帰るコールでは「○○を出たら」なので
「You exit an area」を選択します。

次に「場所:Location an area」は○○を検索してポイントを示し、
エリアを「ピンチイン」「ピンチアウト」して適当な境界線を設定します。
「品川駅」を検索して設定したところ。
PCの画面なので「ー」「+」ボタンが表示されている。

そして、スマホの「位置情報サービス」をオンにしたら準備完了です。
精度が高くなるように私は「GPS,Wi-Fi,モバイルネットワークを利用」にしてます。

これで、「品川駅を出てちょっとしたら」Google Homeが
「品川駅を出たよ」と喋り、帰るコールの自動化ができました(^^)v

2018年1月22日月曜日

Google Home:喋らせるぞ!!(帰るコール)

「帰るコール」するよ

いよいよ目的の「帰るコール」に近づいてきた。
iftttと連携することでできそうです。

シナリオは
if ボタンを押したら then 「○○を出たよ」と喋る
です。
トリガーが
で、
アクションが
になります。

Buttonは選択するだけです。
Webhooksの設定はよく分からなかったので、
Twitterの通知をGoogle Homeに教えてもらう
を参考にさせていただきました。ありがとうございます。

喋らせるテキストが設定しやすい「POST」で指定します。
1.URL
 google-home-notifierが実行時に表示するURLをコピペします。
 起動する度に先頭の文字列が変わるので注意が必要です。
 サービス化している場合は表示されないのでログから取得します。

2.Method
 「POST」を選択します。

3.Content Type
 「application/x-www-form-urlencoded」を選択します。

4.Body
 喋らせたい文字列を「text="」と「"」で挟みます。

指定したサンプルです。

登録するとスマホの待受け画面にボタンが表示されます。

このボタンを押すとGoogle Homeが「帰るコール」を喋るよ♪
できた~\(^o^)/

2018年1月20日土曜日

Google Home:喋らせるぞ!!(サービス化)

いつでも喋らせられるようにするよ♪

やっと喋るようになったので
いつでも喋らせられるようにしたい。
でもリモートコンソールを使用してサーバを起動しても、
コンソールを閉じるとサーバもダウンするんだよね。。。
さて、どうすれば良いのだろう???

やはり頼りはGoogle先生です^^;
先生に聞きまくってやっと
Google Homeで時報を知らせる
で、サービス化するとできるよと教えてくれました。
ありがとうございます。

早速、参考にしてやってみます。

1.準備
1)サービス化するスクリプトを特定する
修正した「example.js」を名前を変えて「kita.js」にした。
/home/pi/google-home-notifier/kita.js

2)nodeのパスを調べる
pi@raspberrypi:~/google-home-notifier $ which node
/usr/local/nvm/versions/node/v6.12.2/bin/node

2.サービスとして登録する
サービス化するには「Systemd」という仕組みを使うようだ。
詳しいことは分からないので。。。
HPの記載内容を参考にして作成しました。
pi@raspberrypi:~ $ cd /etc/systemd/system
pi@raspberrypi:/etc/systemd/system $ sudo vi googlehomenotifier.service

設定内容をcatで表示しておきます。
ボールド表示している部分が変更した箇所です。
pi@raspberrypi:/etc/systemd/system $ cat googlehomenotifier.service

[Unit]
Description=google-home-notifier Server
After=syslog.target network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/nvm/versions/node/v6.12.2/bin/node kita.js
Restart=on-failure
RestartSec=10
KillMode=process
WorkingDirectory=/home/pi/google-home-notifier

[Install]
WantedBy=multi-user.target

3.属性を変更する。
他のサービスの属性を確認してみた。
pi@raspberrypi:/etc/systemd/system $ ls -l
・・・
drwxr-xr-x 2 root root 4096  9月  8 00:13 dhcpcd.service.d
drwxr-xr-x 2 root root 4096  9月  7 23:47 getty.target.wants
drwxr-xr-x 2 root root 4096  9月  7 23:59 getty@tty1.service.d
-rw-r--r-- 1 root root  392 12月 19 22:23 googlehomenotifier.service
drwxr-xr-x 2 root root 4096  9月  8 00:05 halt.target.wants
drwxr-xr-x 2 root root 4096 12月 19 22:40 multi-user.target.wants
・・・

実行権限が付与されているようだったので合わせて設定しました。
pi@raspberrypi:/etc/systemd/system $ sudo chmod +x googlehomenotifier.service

再表示して確認してみる。
pi@raspberrypi:/etc/systemd/system $ ls -l
・・・
drwxr-xr-x 2 root root 4096  9月  8 00:13 dhcpcd.service.d
drwxr-xr-x 2 root root 4096  9月  7 23:47 getty.target.wants
drwxr-xr-x 2 root root 4096  9月  7 23:59 getty@tty1.service.d
-rwxr-xr-x 1 root root  392 12月 19 22:23 googlehomenotifier.service
drwxr-xr-x 2 root root 4096  9月  8 00:05 halt.target.wants
drwxr-xr-x 2 root root 4096 12月 19 22:40 multi-user.target.wants
・・・

4.サービスを有効にする。
ここからはホームディレクトリで処理できるので戻しておく。
pi@raspberrypi:/etc/systemd/system $ cd

1)サービスの状態を確認してみる。
自動起動の状態
pi@raspberrypi:~ $ sudo systemctl list-unit-files --type=service | grep googlehommenotifier
googlehomenotifier.service             disabled 

起動状態
pi@raspberrypi:~ $ sudo systemctl status googlehomenotifier
● googlehomenotifier.service - google-home-notifier Server
   Loaded: loaded (/etc/systemd/system/googlehomenotifier.service; enabled; vend
   Active: inactive (dead)

2)自動起動を有効にする
pi@raspberrypi:~ $ sudo systemctl enable googlehomenotifier
Created symlink /etc/systemd/system/multi-user.target.wants/googlehomenotifier.service → /etc/systemd/system/googlehomenotifier.service.

3)サービスを起動する
pi@raspberrypi:~ $ sudo systemctl start googlehomenotifier

4)サービスの状態を確認してみる。
自動起動の状態
pi@raspberrypi:~ $ sudo systemctl list-unit-files --type=service | grep googlehommenotifier
googlehomenotifier.service             enabled

起動状態
pi@raspberrypi:~ $ sudo systemctl status googlehomenotifier
● googlehomenotifier.service - google-home-notifier Server
   Loaded: loaded (/etc/systemd/system/googlehomenotifier.service; enabled; vend
   Active: active (running) since Sat 2018-01-20 17:24:34 JST; 7min ago
 Main PID: 23138 (node)
   CGroup: /system.slice/googlehomenotifier.service
           tq23138 /usr/local/nvm/versions/node/v6.12.2/bin/node kita.js
           mq23148 ./ngrok start --none --log=stdout
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' call
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your applica
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information se
 1月 20 17:24:54 raspberrypi node[23138]: Endpoints:
 1月 20 17:24:54 raspberrypi node[23138]:     http://192.168.3.28:8091/google-hom
 1月 20 17:24:54 raspberrypi node[23138]:     https://627789f3.ngrok.io/google-ho
 1月 20 17:24:54 raspberrypi node[23138]: GET example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X GET https://627789f3.ngrok.io/g
 1月 20 17:24:54 raspberrypi node[23138]: POST example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X POST -d "text=Hello Google Home

5.ログを確認
googlehomenotifierの抽出して確認します。
pi@raspberrypi:~ $ journalctl -u googlehomenotifier > service.log
pi@raspberrypi:~ $ cat service.log
 1月 20 17:24:34 raspberrypi systemd[1]: Started google-home-notifier Server.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
 1月 20 17:24:54 raspberrypi node[23138]: Endpoints:
 1月 20 17:24:54 raspberrypi node[23138]:     http://192.168.3.28:8091/google-home-notifier
 1月 20 17:24:54 raspberrypi node[23138]:     https://627789f3.ngrok.io/google-home-notifier
 1月 20 17:24:54 raspberrypi node[23138]: GET example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X GET https://627789f3.ngrok.io/google-home-notifier?text=Hello+Google+Home
 1月 20 17:24:54 raspberrypi node[23138]: POST example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X POST -d "text=Hello Google Home" https://627789f3.ngrok.io/google-home-notifier
こんな感じでコンソールに表示されていたメッセージが確認できればOKです♪

コンソールから
curl -X POST -d "text=Hello Google Home" https://627789f3.ngrok.io/google-home-notifier
と試してみると喋るよ\(^o^)/