imaizumeの個人メモ

コードとか旅とか飯とか

macOS システム設定の「ダウンロードしたアプリケーションの実行」の許可ボタンを何度押しても反応しないのは非純正マウスが理由だった!?

ダウンロードしたアプリケーションの実行」の許可ボタンが何度押しても反応しない

High Sierraにアップグレードした後に、Karabina Elementsを開いた所、システム設定で外部アプリケーションの実行を許可するようにダイアログが出た。

[blogcard url="https://github.com/tekezo/Karabiner-Elements"]

そこで システム設定>セキュリティとプライバシー>外部アプリケーションの許可 に飛んで許可ボタンを押したのだが、ボタンを押しても何も怒らない。

https://twitter.com/felix_schwarz/status/908690187219283970

この方の動画にあるような現象が自分にも起きた。

なおこの方はスクリーン共有機能を提供しているアプリをOFFにすれば直るとおっしゃっているが、自分は特にそういった設定はしていないので違う模様。

もちろん、OSはあの悪名高きHight Sierra、バグ多すぎだろ...

mac純正の入力デバイスからでないと反応しない⁉

そこでさらに調べたところ、Karabina Elementsのgithub issueにも同様の現象で困っている方たちが。

[blogcard url="https://github.com/tekezo/Karabiner-Elements/issues/1017"]

上記issueでの回答を見たところ、トラックパッドからの入力でないとというものが目についた。

実は自分もクラムシェルモードmacbook Proを動かしていてbluetoothマウスを接続していたので、試しにトラックパッドでクリックしたところちゃんと反応した。

コメント内での回答は例えば

https://github.com/tekezo/Karabiner-Elements/issues/1017#issuecomment-335165442

...(略)... If you have this problem try to disable any apps that my capture and forward clicks. The click must come from the touchpad directly. << pulling my hair out >> (訳) ... 問題があるなら、クリックイベントをキャプチャーしてフォワードしているアプリを全部切ってみて。クリックはタッチパッドから直接入力されたものじゃないとダメみたいだ

 

https://github.com/tekezo/Karabiner-Elements/issues/1017#issuecomment-363904363

FWIW, I had a similar issue in 10.13.3. ...(中略)... It was ultimately due to the use of a third-party mouse from Logitech. I plugged in my Magic Mouse, click on the "approve" and things started to work as advertised. (訳) 役に立つかわからないけど自分も 10.13.3 で似たようなことになっている ... これは完全にLogitechのようなサードパーティー製マウスを使っているのが原因だ。自分はマジックマウスを接続して「許可」を押したら他の人みたいに直ったよ。

なるほど、どうもサードパーティー製のポインティングデバイスを使ってはダメらしい。

しかし、少し手前にはワコムペンタブレットなら動いたという声も

https://github.com/tekezo/Karabiner-Elements/issues/1017#issuecomment-344077728

I was clicking like crazy that button and nothing happened then I tried clicking with a wacom pen using my wacom tablet and it worked!!! (訳) 死ぬほどクリックしまくってたけど何も起こらなくて、ワコムのペンタブでやってみたらうまくいった!!!

あと、会社のmacbook proも普段はクラムシェルモードでマウスをつなげて操作しているが、上記の問題は発生していない。

ただこのマウスは有線マウスなので、もしかしたらサードパーティー製でもワイヤードマウスは大丈夫なのかもしれない...

まとめ

上記をまとめると、システム設定のボタンが正しく動く入力デバイスは以下の通りと思われる。

日本語の情報がなく1ヶ月くらい困っていたのでまとめておきました。

Google Home Mini / IRKit / Wemo で一人暮らしでも快適に冬場を過ごせるスマートホームを実現した、しかも予算たったの1万円!

朝起きたら部屋が暖かく、家に帰ったらお湯が沸いている生活

昨年から都内で一人暮らしを始めた。

やってみると、意外にも生活で困ることはなく順調に秋までは過ごせていたのだが、冬になるとどうしても部屋が寒くなり生活リズムに支障をきたすようになった。

当たり前だが、一人暮らしだと誰かが先に起きて部屋を温めてくれている...なんてことは起きない。

もともと冬季うつ病の傾向がある自分は、冬の朝にはめっぽう弱く、仕事で何もなくても朝起きるのがかなり辛くなってしまった。

なのでタイトルのスマートホームを実現するまで、自分は願わくば

  • 朝起きる30分前にエアコンを付けてくれて
  • 起きる時間には照明を付いていて
  • そのまま台所ではお湯が沸いており
  • 帰宅した時も部屋は温かくお湯が沸いていてほしい

そんな生活が送りたいと思っていたのだった。

そんな生活が1万円で実現できてしまった

というのは、前置きで、結論としては、上記の生活は全てスマートホームによって実現できてしまった。

しかもかけた総額は...なんとたったの1万円!

何をどう実現しているかは次の図をご覧いただきたい。

我が家のスマートホームのシステム構成

いろいろと書いているが、要は

  1. スマホGoogle Home Miniを入力にして
  2. アプリまたはIFTTT経由で
  3. IRKitやWemoにリクエストを飛ばし
  4. それらが家電の電源・赤外線入力を操作する

というのが上記の流れだ。

その際、新たに自分が購入したツールは次の3つである。

  1. Google Home Mini
  2. IRKit (現在販売停止中ですが中古ならAmazonで手に入ります!!)
  3. Belkin WeMo 家庭用電源リモートスイッチ

タイトルにある「1万円で」というのには、昨年ビックカメラでGoogle Home Mini半額キャンペーンをやっていて自分はその時に3,000円でGetできたのに加えて、Wemoのスイッチを社内のイベントで景品としてもらっているという事情はある。

だがそれらを元値で買ったとしても、IRKitが7,000円程度だったので総額2万円に収まるのであれば良い投資ではないだろうか (残念ながらIRKitは2018年1月現在Amazonでの取扱が停止しているが)。

どうやって実現しているかの詳細

ステップ1: IFTTTへの入力

Google Home Mini

家ではGoogle Home Mini、外出先ではスマートフォンから、IFTTTへHTTPリクエストを送る。

リビングのモニター下にGoogle Home Miniを置いているが、家は6.5畳の1Kなのでキッチンや玄関からでも音声操作ができる。

スマートスピーカーに声が届きやすいという意味では、狭い家も悪くない。

ステップ2: IFTTTからWemoやIRKitへ通知する

Google Home Miniやスマホを経由してスマートスイッチを操作するIFTTTレシピを作成している

続いてIFTTT上でIRKit / Wemoを操作するためのレシピを作成する。

"If" についてはGoogle Home Miniのキーワード、GPS、時間などなど好きなものを設定すれば良い。

次に "Then" について、Wemoの場合は既にインテグレーションがあるのだが、IRKitはインテグレーションがない。

そのため、WebhookでHTTPリクエストを飛ばす必要があるが、肝心の「どのようなパラメータを付けてどこにリクエストを飛ばせばよいか」については、以下のポストを参考に設定したのでここでは割愛させて頂く。

[blogcard url="https://qiita.com/jyoshida/items/cf550d6b645ef69aae28"]

[blogcard url="https://qiita.com/ikeyasu/items/dfb991007a31d5aa03c2"]

やってみた感じ、clientkeyの取得部分が若干面倒ではあったものの、一度やってしまえばコピペで使いまわせるし、リモコンの信号もコピーペしてどこかに保存しておくことをオススメする。

ステップ3: IRKitからエアコンと照明に赤外線で信号を送信

話が前後するが、IRKitはインターネット経由で赤外線を操作できる小型のスマートリモコンで、赤外線で操作できるものは何でも対応している。

家電に付属しているリモコンからIRKitに赤外線を送信することで、IRKitがそれを覚えてくれる。

よって

  • エアコン
  • 照明
  • 扇風機
  • テレビ

などが操作できる。

自分は机の下にこんな感じで雑多に置いている (下のNTTルーター横にある白いのがIRKit)

小さくて軽い故に向きがずれて赤外線が届かなくなることがあるため、テープかなにかで固定するのがベター。

IRKit

これでようやくインターネット経由で赤外線が操作できるようになる、めでたしめでたし。

前述の通り、IRKit自体が簡易のHTTPサーバーとなっていて、リモコン信号をパラメータにくっつけてリクエストを外から送ることで、他のサービス(ここではIFTTT)からの操作も可能である。

もちろんIRKitの専用アプリもあり、IFTTTなどの連携が必要ない場合はアプリ上でボタン化すれば良いのでそれだけでも自分は十分便利だと思っている。

IRKitのアプリを使えば操作を簡単にボタン化できる

今の家ではエアコンと照明が赤外線リモコン操作に対応している。

なので、IFTTT経由で平日朝起きる30分前にエアコンをONにし、かつ起きる時間には照明を付けられるというわけである。

これはもちろん帰宅時も同じで、IFTTTでGPSによるフックが可能なため、家に近づいたらエアコンと照明を付けるのもお手の物。

(自分は家が駅から近く、かつ最寄りよりも先の駅まで行く用事が頻繁にあるためここはIRKitのアプリで操作している)

ではGoogle Home Miniの出番はどこか。

Google Home MiniもIFTTTへの入力になれるので、音声でのエアコン/照明操作はコマンドとして登録しておく。

そうすればいつもより早い時間に起きることになっても、布団から出ずにエアコンと照明を操作できるし、何よりいちいちリモコンを探す必要もない。

なので最近はほとんどリモコンは使わずに、Google Home Miniの音声コマンドのみで操作している感じである。

ステップ4: Wemoでお湯を沸かす

ではお湯を沸かす件はどうなったか。

これはWemoの方で実現している。

wemoは電気ケトルと繋いでいる

Wemoはインターネット経由で操作できるスマートスイッチで、自分が持っているのは通電を切り替えるだけのものである。

これ以外にも、最近は電球や遠隔モニターなどいくつかのラインナップがあるらしい。

現代の多くのデジタル家電では電気的にスイッチを入れなければいけないため、通電を切り替えるだけのスイッチは正直使い道がないと思っていた。

ところが最近、自宅の電気ケトルのスイッチ部分がアナログであるという点に気づいた。

これを利用すれば、通電がOFFの状態で水を入れた電気ケトルのスイッチをONにしておき (もちろん沸騰はしない)、通電したタイミングでケトルを沸騰させることが可能である。

よって、朝起きた瞬間に暖かいコーヒーを飲み、寒い夜も帰宅したらお茶を飲める生活が実現できたわけである。

...え、ホットミルクが飲みたい? なら電子レンジでも良いのだ!

そう、なぜなら我が家の電子レンジはアナログなゼンマイ式(?)のタイマー式電子レンジだからである (7,8時間牛乳を冷蔵庫から出すことにはなるが)

以上を考えると、意外とアナログな家電ほど、スマートホームには向いているのではないかと思い始めた。

電源を入れるだけのような家電の方が割安なスマートスイッチでIoT化を実現できてしまう気がするのは自分だけだろうか。

もちろんIRKitやWemoなしで、家電を直接Wifi経由で操作できるならそれがベストだし、Chrome Castのように別の端末から繋いだ家電のコマンドを操作(自動でテレビを付けてHDMI入力に切り替える的な)してくれば理想だ。

でもそこまでできる未来は少なくとも5年, 10年はかかると思うし、何より家電ごと買い替えないといけないので単純にお金がかかるというのも難点だ。

まとめ

  • Google Home MiniとIRKitとWemoで冬場も快適な生活を実現できる!
  • Google Home は汎用性も高くこれからもアップデートが来るのでとりあえず買っておこう!
  • IRKitは売っていないので代替品を探すか持っている人から買い取ろう (それくらいの価値はある!)
  • アナログな家電を持っている人こそWemoスイッチを買ってみよう!

ぜひ一人暮らしであまり金銭的余裕がない人でも、快適な生活を実現する方法があるということを知ってほしいと思う次第である。

 

macOS High Sierraでスクリーンロックのやり方がちょっと便利になっていた件

KeyChain Accessがメニューバーに表示できない

先日自宅のMacbook PromacOS High Sierraにアップグレードした。

自分のマシンは自宅のみで使うためスクリーンをロックする必要が無く、KeyChain Accessのメニューを表示させていなかった。

詳しくは以下のリンクを見ていただければわかるが、簡単に言うとKeyChain Accessの設定画面に「メニューバーに状況を表示」という項目があり、チェックするとメニューバーにアイコンが追加されて、そこからスクリーンロックができるようになっていた。

[blogcard url="http://inforati.jp/apple/mac-tips-techniques/application-hints/how-to-lock-keychain-or-display-easily-in-macos.html"]

 

自分はHigh Sierraにした後に、上記のような方法で簡単にスクリーンロックできるよう設定したかったのだが、自分の設定画面ではなぜか上記のメニューが表示されなかった。

最初なぜ項目がなくなっていたのか分からなかったが、どうもHigh Sierraに上げたのが原因ではないかという仮説に行き着き調べてみることに。

スクリーンロックはAppleメニューに追加されていた

すると同じような問題で困っている人を発見!

[blogcard url="https://apple.stackexchange.com/questions/300006/high-sierra-10-13-keychain-access-menubar-item-missing"]

 

その答えは

"Lock Screen" is now available via the Apple menu. (訳: Appleメニューに「スクリーンロック」が追加されたよ)

 

なんと、KeyChain Accessの機能だったものがAppleメニュー (電源OFFとかを表示するメニュー) に追加されたとのこと 😄

Hight SierraでAppleメニューにスクリーンロックが追加された

確認してみると、確かにメニューに追加されていた ❗

しかも嬉しいことにCtrl + Cmd + Qでロックできるショートカットまでついていてこれは便利、めでたしめでたし。

会社のマシンもアップグレードしたら、離席する時ちょっと楽になるかも 😉

普通に「High Sierraでできること」的な記事に書いても良いレベルの機能だと思うのだが、特に調べてて引っかからなかったのはなぜだろうか。