アマゾンエンタープライズボタンを照明のスイッチに!

我が家ではアレクサから照明をOn/Offしています。
でも、イラッとする時があります。それは”主電源問題”。
夕方になったりうたた寝明けとかに「アレクサ、照明つけて」って言っても動いてくれない。なぜなら、壁のスイッチが切られているから!

みんなが壁スイッチを押さずに照明を消せばいいんですが、寝るときなどアレクサに話しかけるより壁スイッチをポチっと押したほうが手っ取り早い。

ということで、壁スイッチを”押させない”方法として、壁スイッチの近くにボタンを置き、壁スイッチを押す代わりにこれを押すようにしました。(下にあるほうです。上はSwitchbotで、今回の話とは関係ないやつです)

私はアマゾンのエンタープライズボタンを選びましたが、IoTボタンはいくつか出ています。それぞれ主観で紹介しますね。

IoTボタンを選ぶ

Flic

非常に面白そうな製品で好奇心をとっても刺激されますが、単なる照明ボタンにするにはちょっと値段が高いのと、日本に販売代理店がなさそうというので、避けました。別の使い方を考えてみようと思います。

MESH

こちらも同様に、かなりお値段がお高いので、敬遠です。

Qmote S

お値段はお手頃なのですが、こいつが動くにはスマホが近くにあってQmoteSがBluetoothでスマホにつながってないとだめで、”家の照明ボタン”として使うにはちょっと厳しいです。

実はすでに1個持っていて、私はこれを家の鍵として使っています。スマホとセットで動くこいつは、鍵として使うのが一番いい使い方かも。

ちなみにAmazonではめっぽう評価が低い。。多分IFTTTが(直接は)使えなくなったからかな?WebhooksというサービスをかませばIFTTTを使えますし、私自身はそれほど不自由なく使えてます。

Amazon IoT エンタープライズボタン(ダッシュボタン)

結局こいつにしました。こいつ単体でWifiにつながって機能するし、なんせ安い!
アマゾンページ

昔は(?今も?)ダッシュボタンと呼ばれていました。このボタンは「アマゾンでこのボタン1プッシュで特定の商品を再購入するもの」と思っていました。

今は、IoTボタンとしていろいろなことができるようです。

でも、こいつを使うにはAWSというちょっと変態チックなサービスを使う必要があります。そこのハードルが越えられそうな人は、こいつがベストかと思います。

注意!! ブツがやってきたら、箱は捨てないでください!AWSへ登録する際「DSN番号」が登録に必要なためです。私はそそくさとゴミ箱に捨ててしまってゴミあさりするハメにあいました。。。

このバーコード部分は捨てないように!!

全体像

ダッシュボタン(こっちのほうが言いやすい♪) を押して照明を消すまでの流れは、以下の図のとおりです。

ダッシュボタン

AWS IoT 1-Click

AWS Lambda

Webhooks

IFTTT

Nature Remo

照明リモコンのOn/Off信号が送られる

照明オフ

後半の「Webhooks→IFTTT→Nature Remo→照明を消す」というところは参考ページがたくさんあるのですが、AWS→IFTTTへの信号の送り方がむずかしかった。。。

なので、そこを重点的に書きます。具体的には、

  • AWSにアカウント作成
  • AWSにダッシュボタンを登録する
  • AWSにlambdaというプログラムを作る。こいつがWebhooksに信号を送ります。
  • AWSに「ボタンを押したらlambdaのプログラムを動かす」というアプレット(?)を作る。

Webhooksから先はすでに設定済みという前提で話してます。Webhooks→IFTTT→Nature Remo→アクション(照明を消すとか)は、以下のページなどを参考にしてみてください。

IFTTT→Nature Remo: https://qiita.com/fkooo/items/f2ae1af3f51976275654

Webhooks→IFTTT: https://ifttt-japan.club/apply-webhooks

AWSのアカウント作成

こいつをIoTボタンとして使うには、AWSというサービスを利用しないといけません。が、登録してから使えるようになるまでちょっと時間がかかるようです(最大24時間)。なので、ダッシュボタンをアマゾンでポチったら、そいつが家にやってくるまでにAWSへ登録しておきましょう。
https://aws.amazon.com/jp/register-flow/

ちなみに、クレジットカードを登録させられたりと、ちょっとハードルは高いです。「1年間無料」だそうですが、1年後どうなるんだろう。。。

登録時にちょっとトラブったこと
登録は、すべて半角英数字

 住所とかも、全部半角英数字で入れます。
「次へ」ボタンが押せない
 住所を登録して次に行こうとしても、ボタンが押せない状態になりました。一度ページを戻って入力しなおして・・・を3回繰り返したらなぜか押せるように。。
クレジットカードの登録が終わらない
 最初JCBのカードを登録したら、「入力に不備があります」とでて、その先に進めなくなりました。VISAカードを登録したらそれはすんなり登録でき、デフォルトをそのカードにし、再度デフォルトカードをJCBに戻したら、なぜかJCBも使えるようになってました。

ダッシュボタンをAWSに登録

スマホを使って登録します。AWS IoT 1-Clickというアプリをスマホにインストールしてください。登録までの流れはアプリがわかりやすくリードしてくれます。DSN番号の登録でもバーコードリーダーが使えるのでとっても楽ちんでした。
一点、箱にあるバーコードを読み取った後、どうやったら次に進めるのかで迷いました。次に進むには、「スキャンの停止」を押してください。

画面下にあるこのボタンを押せば、次に進めます。キャンセルっぽいけど。。

AWSでプログラム登録 (lambda)

ここだけパソコンでの作業となります。

まずはリージョンを「東京」に!!

これがわからずにはまりました。。。

画面の右上にリージョン(地域)が表示されています。私は最初「オハイオ」になってました。これを、東京に変えてください。

lambdaプログラムの作成

AWSマネジメントコンソールというトップ画面に行ったら、「lambda」というサービスを検索してください。検索窓を使うと便利です。

次に、「関数の作成」をクリック。

一から作成、関数名は任意(日本語はNG。半角英数字のみ)、ランタイムはPython3.8を選択して、右下の「関数の作成」をクリック。

すると中段に以下のようなデフォルトのプログラムが出てきますので、そこを全部消して、以下のプログラムをまるっと貼りつけます。

↓↓貼りつけるプログラム↓↓

import json
import urllib.request

def lambda_handler(event, context):
    url = 'Webhooksのアドレスを置き換える'
    req = urllib.request.Request(url)
    urllib.request.urlopen(req)

↓コード貼り替え後。こんな感じになります。

コード貼り替え後、こんな感じになります。

「url」の’’で囲まれた部分 は、Webhooksのアドレスに貼り替えてください。

[このページ]の真ん中くらいにWebhooksのアドレスについてまとめてくれています。

続いて、画面上段にある「アクション」→「新しいバージョンを発行」をクリック

説明書きには、例えば以下のような感じで入力。

これでlambdaプログラムの登録終了!今度はまたスマホで作業です。

ボタンとlambdaとの紐づけ

パソコンでも作業ができますが、スマホでやったほうが楽だったので、そちらでの作業方法を書きます。

先ほど使った「AWS 1-Click」を起動してください。

以下のような画面が出てくるので、「プロジェクト」をタップ。

右下の「+」ボタンをタップ→「開始」をタップ

プロジェクト名と説明を適当に入力。

デバイステンプレートの定義をタップ

デバイステンプレート名を適当に入れて、デバイスタイプをボタンに、アクションには「Lambda」を選択、右下の「選択」ボタンで先ほど作ったLambda関数を選択。

いっこ前の画面に戻るので、プレイスメントの属性欄の「属性の追加」をタップし、名前を適当に入力、デフォルト値はなんでもOKですがとりあえず0と入力。

プレイスメントの作成から、

名前を適当に入れてデバイスで登録しているダッシュボタンを選択。

これで完成!!!

ダッシュボタンを押して、照明が消えるか試してみてください。

キレッキレのヘリ落とし(面取り)

今までずっとSEIWAさんのヘリ落としを使っていたんですが、先日革材料を買いに行った際に”高級ヘリ落とし”を発見!

dav

今まで使っていたSEIWAのヘリ落とし

クラフト社のKSヘリ落としというやつ。2000円くらい。SEIWAさんのが1000円くらいだったので、値段は倍。店員さんに聞いてみると、やっぱり切れ味はかなりいいらしい。

ということで購入&さっそく試してみました。

買ってきたKSヘリ落とし

店員さん曰く「まずは研いでから使ってください」とのことでしたので、付属の丸棒とやすりを使って20回ほどしゅこしゅこしてハギレで試し切りしたところ・・・、すさまじく切れます!

オイル多めのトスカーナに使ってみたのですが、シュ~って感じで抜群に切れました。切れるヘリ落としって、きもちい~~。

「おれヘリ落とし下手だわぁ」と思っていましたが、これを使って自信を取り戻しました!

以上、工具のご紹介でした♪

Amazonにあったのでリンクを貼っていますが、浅草橋で買ったほうが安かったです。(革を買ったら工具2割引してくれる、浅草橋で一番有名なあそこで買いました)

本革コピー用紙バインダー(メモ帳代わり)

最近パソコンでメモを書く(入力する)ケースが多くなり、手帳は持ち歩かなくなった。

でも、たまに紙に書くこともある。例えば上司に「ちょっといい?」と突然呼ばれたとき。わざわざパソコンを持っていくのもおっくうだけど、手ぶらもよろしくない。で、その辺に転がってる紙を持って行く。

そんな人向けの「A4コピー用紙バインダー(メモ帳代わり)」を革で作りました。

単にA4コピー用紙を挟むだけの、いたってシンプルな作品です。

革はトスカーナというイタリアの革で、きれいなシボが入っているオイル多めの柔らかい革です。1デシ230円。た、たかい・・・

実は今度退職する人がいて、その人のプレゼントにと作成しました。プレゼントだけに、コバはすさまじく磨きました♪

もらってくれる人、喜んでくれることを祈りつつ、コバ磨きまくりました。

作り方

  • 315×228で革を切り出す
    – 315=297+10+3*2(縫いしろ)+1(切り落とし)*2)
    – 228=210+10+3*2+1*2
    ⁻ 厚さは1.6mmを使いました
  • 305×218でボンテックス(型紙)を切り出す
  • 革の裏側に、5mmで線を引く(ボンテックスを貼る際のガイド)
  • 革・ボンテックスにゴムのりを全体に塗る
    (端だけ糊付けすると革がたわむので全体に糊付け。
     貼る範囲が広いのでゴムのりがGood)
  • 革とボンテックスを貼り合わせる
  • 本体の、紙留めを貼る部分をけがいて、紙留めを貼る
    (紙留めのサイズは適当です。いい塩梅で♪)
  • 面取りをして、ひたすらコバを磨く
    (糸が汚れるのがいやで、僕は先にコバを磨きます)
  • 3mmで縫い合せる

俺の基地1:作業デスク編(在宅+レザークラフト)

6畳くらいの物置小屋化してた部屋を、自分好みな部屋に大改造。

趣味のレザークラフトもできるし、在宅勤務時の仕事場にもできる。そんな部屋を目指してDIYしてみました。

ネットにのってるような広々とした作業スペースを確保できないお父さんの参考になれば幸いです。

ちなみに、俺の基地づくりに電動ドライバーは必須です。最初、ビバホームのレンタルを使っていたのですが、思わぬところにビスを打つことになったりたまにはドリルで穴をあけたくなったりと、レンタルでは対応しきれなくなったためAmazonで購入。

電動ドリルドライバー:4,980円

それでは、作業デスクのお披露目です。

作業デスク:総額10,480円

こだわり1 壁に穴はあけない

はやりのラブリコやディアウォールを使って、壁に穴をあけずに基地づくりしました。

ラブリコ:1,480円、2x4材:598円、ビスあれこれ:500円くらい

ビスは、棚用の12mmと壁掛けモニターの25mmが数本でOKなのですが、他のところにたくさん使うため、まとめ買いしています。

こだわり2 モニターは壁掛けに

レザークラフトをするため、デスクは広々と使いたい。ただ、在宅にも使うのでモニターは必要。ということで、モニターは壁掛けにしました。

ちなみにモニターはACERのH243Hという24型のを使ってます。

モニター壁掛け:1,280円(Amazon)

こだわり3 広々としたカッティングマット!

これは夢でした。A1サイズのカッティングマットを机全体にどーんと配置!
Amazonで買ったんですが、A1サイズの段ボールで送ってきた。折りや曲がりは一切なし。さすがアマゾン♪

A1カッティングマット:3,145円(Amazon)

こだわり4 IKEAのライト

https://dete-diary.com/11202/ を参考にさせていただき、IKEAの照明を買ってきました。これがすこぶるいい!

まず、壁掛け設置ができるんです!あとは机に挟み込むこともできます。俺の基地は当然壁掛け♪

また、可動域がすさまじく広い!机から50㎝くらいの高さに設置しましたが、あらゆるところがくっきり!壁に向ければ間接照明にも。在宅時はそうやってます。

ちなみに、電球はコーナンのノーブランドLED。60ルーメンで十分明るいです。ちなみにパナは1,500円くらい。なんだこの値段の差は。。。

IKEAのライト:1,499円、コーナン電球:398円
(Amazonだとちょっと高いです)

おまけ 棚

俺の基地的には完成なんですが、収納力を増やそうと棚を設置しました。が、柱1本につけたので、不安定です。軽いものしか置けません。空箱や作業中の革なんかを置いてます。L字棚受けとその辺に転がってた金具で補強したら、使えるレベルになりました。

棚は、いつもはベニヤ板(合板12mm)を使ってますが、1点で支えるためたわまない頑丈な棚にしようと、ちょっと奮発しました。

ちょっといい棚(パイン集成材):1,180円、L字棚受け:400円くらい

別の部屋のアレクサの音楽を止める方法

リビングにいるとき、別の部屋からうっすらとアレクサ音楽が聞こえてきた。

止めようとしてリビングにあるアレクサに「音楽止めて」と語りかけても別の部屋のアレクサは歌いっぱなし。

スマホのアレクサアプリで止めるのも面倒くさい。

こんな時にどうするかって話です。

定型アクションを作る

  • 左下のホームボタン→左上の3本線→定型アクションをタップ
    →定型アクション一覧画面が出てくる
  • 右上の「+」ボタンをタップ
    →新規作成の設定画面が出てくる
  • 実行条件を設定→開始フレーズを設定→「(アレクサ、)音楽止めて」と入力し、
    右上の「次へ」をタップ
  • アクションを追加→デバイスの設定→オーディオを停止→すべてのデバイス をタップ
  • 右上の「保存」をタップ

これで、「アレクサ、音楽止めて」というとすべてのアレクサが歌うのをやめてくれました。(すべてのアレクサが歌うのをやめます。その点ご注意ください。)

アレクサの定型アクションはどんどん進化してるようです。

GMailからLINEへ転送する② 特定のメール

以下の記事で、GMailをLINEへ転送する方法を書きました。

が、これでは、全件(もしくは固定キーワードでタイトル検索)転送されてしまいます。ウザいですよね。

というわけで、GMailの分類機能(ラベル)を使って特定のメールだけ転送するようにします。

準備1 GMailで「フィルタ」「ラベル」を作成

まずは仕分けのルールを作りましょう。「フィルタ」にひっかかったメールに「ラベル」を付ける作業です。ちなみにラベルとは、分類みたいなものです。

https://support.google.com/mail/answer/6579?hl=ja を参考に、LINEに転送したい条件でフィルタを作ってください。

その際、ラベルを設定するのを忘れずに!
僕は、LINE転送用の「toLINE」というラベルを作成しました。

準備2 GMail→LINEの転送機能を組み込む

以下の記事のように、GMail→LINEの転送機能を組み込みます。

準備3 プログラムの変更

Google Apps Scriptのプログラムを、1箇所だけ書き換えます。
(書き換えた後、保存ボタンを押すのを忘れずに)

24行目にある「検索条件指定」の部分に、「label:ラベル名」を付け加えます。
以下の例では、「toLINE」というラベルがつくメールをLINEへ転送するようになります。

<変更前>

<変更後> 「toLINE」の箇所を自分で作ったラベル名に置き換えてください。

そして保存ボタンを押せば、それで完成!!

これで、好きな条件でLINEへ転送できるようになりました。(条件を変えたい場合はGMAILのフィルタ/ラベルをいじればOk)

GMailからLINEへ転送する

GMailからLINEへ転送するやり方をまとめました。IFTTTがあれば簡単にできたのですが、IFTTTなき今、「Google Apps Script」を使います。

プログラムを使いますが、コピペして1行変えるだけですので安心して読んでください!

準備その1 LINEとの接続キーをもらう

LINE Notifyというところから通知がくるようになります。
まずはそれを使うためのキー(アクセストークン)をゲットしましょう。

ページ数が多くなるので、別記事にしました。以下をご覧ください。

準備その2 Google Apps Script

次はプログラミングです。
作業をしていると、プログラム画面とかが出てきてビビります。が、、、ビビらないでください!LINEのアクセストークンを1箇所貼り付けるだけです! それ以外は一切変更不要です♪

以下のページを参考にさせていただきました。yuuさんのおかげでビビらずにこのフェーズを乗り越えることができました♪
https://note.com/yuut6/n/nb3528b53ddfa

  • デフォルトで記入されているもの(function myFunction(){})をすべて消し、以下のプログラムをコピペ
var lineToken = "xxxxx"; //LINE notify token
var words = ""; //検索したい文字をスペースで区切って入れてください (例)あああ いいい ううう
var f_body = 0; //0:通知に本文を表示させない、1:通知に本文を表示させる
var interval = 1; //何分前からの新着メールを確認する?


function send_line(Me){
 var payload = {'message' :   Me};
 var options ={
   "method"  : "post",
   "payload" : payload,
   "headers" : {"Authorization" : "Bearer "+ lineToken}  
 };
 UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}


function fetchContactMail() {
 //取得間隔
 var now_time= Math.floor(new Date().getTime() / 1000) ;//現在時刻を変換
 var time_term = now_time - ((60 * interval) + 3); //秒にして+3秒しておく
 
 //検索条件指定
  var strTerms = '(subject:{' + words + '} is:unread after:'+ time_term + ')';
 
 //取得
 var myThreads = GmailApp.search(strTerms);
 var myMsgs = GmailApp.getMessagesForThreads(myThreads);
 var valMsgs = [];
 for(var i = 0; i < myMsgs.length;i++){
   valMsgs[i] = " " + myMsgs[i].slice(-1)[0].getDate().getMonth() + "/"+ myMsgs[i].slice(-1)[0].getDate().getDate() 
    + " " + myMsgs[i].slice(-1)[0].getDate().getHours() + ":" + myMsgs[i].slice(-1)[0].getDate().getMinutes() 
    + "\n[from]" + myMsgs[i].slice(-1)[0].getFrom()
    + "\n" + myMsgs[i].slice(-1)[0].getSubject()
   
   if(f_body == 1){
     valMsgs[i] = valMsgs[i] + "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody();
   }
 }
 
 return valMsgs;
}


function main() {
 new_Me = fetchContactMail()
 if(new_Me.length > 0){
   for(var i = new_Me.length-1; i >= 0; i--){
     send_line(new_Me[i])
   }
 }
}
  • プログラムを書き換える
    1. 1行目の「lineToken=”xxxxxx”の xxxxx を、LINEのアクセストークンに書き換える
      ~2行目以降は変更不要です。お好みで♪~
    2. 2行目はそのままでもOKです。(全部の未読メールがLINEに来ます)
      もしタイトル(subject)に検索をかけたい場合は、 2行目の””の中に、にそのワードをスペースで区切って入力(or条件で検索をかけます)
    3. 3行目もそのままでもOK。もしLINE通知に本文の内容まで載せたい場合は、「0」を「1」に変更してください。
    4. 4行目もそのままでOK。「何分前の未読メールをチェックするか」を指定します。この後の「トリガー設定」にも影響するので、そのままが無難です。
書き換える場所は、ここだけです。
  • プログラムを保存する(Ctrl+Sか、ファイル→保存)
  • 保存ボタンを押すとプロジェクトの名前を聞いてくるので、任意の名前を入力する。(なんでもいいです。以下の画像の「GMAILtoLINE」のところ)

次はテスト実行です!

準備その3 テスト実行

  • まずは自分あてにメールを送信する。
  • 実行→関数を実行→「main」を実行する(1分以内に実行してください)

最初に実行する場合、googleアカウントへの接続承認画面が出てきます。
進めていくと、以下のような画面が出てきてビビりました。

焦らず「詳細」をクリックすると、以下の文章が出てきますので、そこにあるリンク(以下の例では「GMAILtoLINE(安全ではないページ)に移動」)をクリックすればOKです。

  • すでに1分以上経過していると思うので、再度メール送信
  • 実行→関数を実行→「main」を実行する

どうですか?届きましたか?届けば成功です!!

準備その4 トリガーの設定

準備2で作ったプログラムを、1分ごとに実行するための準備です。

  • 編集→「現在のプロジェクトのトリガー」をクリック
  • 右下にある「トリガーを追加」をクリック(見落としがち!)
  • 以下のような設定にする

これで準備はすべて完了!

自分で自分にメールを送って、試してみてください♪1分以内にLINEに通知が届くはず!!

が、これでは、全件(もしくは固定キーワードでタイトル検索)転送されてしまいます。ウザいですよね。

というわけで、特定のメールだけ転送するようにしましょう。(以下の記事にまとめました)

LINE Notifyを使ってみる

~GMailからLINEへ転送するための準備~

以下のサイトを参考にさせていただきました。

https://qiita.com/iitenkida7/items/576a8226ba6584864d95

手順

使うためのキー(アクセストークン)をもらう

  • アクセストークンを発行する
  • トークンをコピーし、メモ帳などに貼りつけておく

これでGMAILからLINEへ転送する準備その1が完了です!
次のステップに進んでください。以下をクリック!!

超便利!おにぎり君(キャプチャーソフト)

超便利!画面キャプチャーソフト「rapture」のご紹介です。
ささっと画面をキャプチャーして、それをパワポに貼ったり画像として保存したりすることって多くないですか?

raptureは、画面キャプチャーをとってもお手軽にさせてくれます。

また、インストール不要でダウンロードしてきたらそのまま使えるのもグッド。会社パソコンとかセキュリティがちがちでむやみにソフトがインストールできないですよね。そんな人でも使えます♪

ちなみに、タスクバーに固定で置いておくのがオススメ。

一つできないのが、「右クリックで出てくるメニューがキャプチャできない」ことです。そんなときはWindowsのスクリーンショットを使ってます。(上の画像とか)

僕は、タスクバーの左端に置いておいて、「Winキー+1」のショートカットでこいつを起動させ、サクッとキャプチャを撮ってます。

上の画像のようにおにぎり君(rapture)を配置しておけば、[Win+1]のショートカットでおにぎり君がサクッと立ち上がります。

有孔ボードのフックを自作

レザークラフトの工具がぐっちゃぐちゃになってきたので、整理整頓をしようと色々調べた。壁に有孔ボードを作ってそこに配置するのが一番すっきりしそう。

有孔ボードは60cm×45cmで750円くらい。とっても安い。しかし!その金具がめっぽう高い。単なるフックが1個500円くらい。50個くらいフックがいるので、買ってられない。

ということで、フックを自作しました。まずは「単純なフック」です。

次に、2つの穴に通す「幅のあるフック」です。

動画に映ってる黄色のペンチなど大きいやつは、単純にわっか部分を大きくすればOKです。