スキップしてメイン コンテンツに移動

投稿

Siri とショートカット

アップルの相談窓口に相談して、なぜショートカットから実行するとEメールが送信出来るのに、それをSiriで実行させると送信出来ないのか問い合わせました。
で、担当者として技術部門に問い合わせてくれていますが、回答には一週間は掛かるとの事。
で、私に言われたので、自分でも試してみて、やはり送信出来ないことも確認出来たそうです。
また同時にMMSだとメッセージが送信できるのですが、ショートカットからだと件名を入力出来ません。
そのためタグを利用できず、これまた使い物になりません。

で、色々調べていたら、ショートカットから直接 URLを叩けることがわかりました。


で、上図の様な形でショートカットから直接BeebotteにURLを投げてやります。 これならSiriからもちゃんと起動してくれます。 その上Eメールの送受信と、IFTTTでの処理を飛び越して、直接Beebotteにデータを投げるので、反応時間がかなり短くなります。 それでもSiriを使うと、Siriがショートカットを判断して実行するまでの時間がそこそこかかるのですが、これなら待ち時間がほとんど無くなります。
アップルの相談窓口はiPhoneの一般的な使い方以外には全くの素人なので、Beebotteは勿論、そこそこ有名と思うIFTTTも全く知りませんでしたので、ともかくSiriから定型文章のメールの送り方しか聞けませんでした。 もしBeebotte というか、URLを叩いてデータを送るという事を理解出来れば『とりあえず、メールのことは調べますけど、やりたいことは直接URLを叩けば良いので・・・」とショートカットの機能を紹介してくれたのでしょうけどね。 回り道をしてしまいました。
しかし、こう言ったことが簡単にできるなら、「ホーム」アプリを使う必要も薄れますね。 何もホームアプリを使わず、ショートカットを使って自宅内のサーバーに好きな指示が送れますから。 ますます楽しみが増えそうです。

最近の投稿

自宅のIT化(その5)iPhone とSiriのショートカット

大詰めとして、iPhone からIFTTTに如何に簡単にメールするかと言う作業を行います。
iOS 12で実装された「ショートカット」を使います。
以下のアイコンのアプリですね。

起動すればショートカットの一覧画面になりますが、まだ何も登録されていないはずです。


私のライブラリには既にいくつか登録されています。
とりあえず「ショートカットを作成」を選択して、ショートカットを作成して見ましょう。


この作成画面から、検索欄に「メール」と入力して、表示された一覧から「メールを送信」を選択します。


上記の画面が表示されますから、作成シートのスイッチをオフにして、送信元には自分が IFTTTに登録したメールアドレスを、宛先にはIFTTTの送信先メールアドレスである「trigger@applet.ifttt.com」を入力し、件名には前にWebhookで設定したキーワードの「#Open」を入力します。
もちろんキーワードは自分で設定したものを入力してください。
で、右上に表示されているのマークをタップします。


の画面が表示されるので、ショートカットの名前をつけ、必要に応じて「ホーム画面に追加」や「Siriに追加」を選択してください。 アイコンも選択肢があるのでそこから選択してください。 私は上矢印風のアイコンを利用してみました。 上のショートカットの画面に表示されていますね。 同時にホーム画面にも同じアイコンが追加してあります。
で、このアイコンをタップすれば、IFTTTに「#Open」という表題のメールが送信され、そこからWebhook経由でRaspberry piのBeebotteに通知され、アプリ(私の場合はシェルスクリプト )が起動されます。 で、スクリプトが動いてサーボを動かし、リモコンのスイッチを押してくれます。 同様にしてシャッターを閉めるのも「#Close」と言う件名のメールをショートカットで送信してやれば良いだけ。
で、Siriに「開けて」と頼むとちゃんとショートカットの「開けて」を呼び出して実行して・・・ ? くれません。 いや正確に言うとショートカットの起動はしている様なのですが、メールを送信する前にショートカットの実行を終了してしまっている様です。
う〜ん 困ったぞ。
ショートカットは間違いなく動きます。
ショートカットのアイコンをタップすれば、多少の…

自宅のIT化 その4 BeeBottとIFTTTの設定

実際の設定の話となります。
先ずはデータを仲介するBeeBotteの設定からです。
こちらのウェブサイトから新規ユーザーとして登録します。
https://beebotte.com/

ユーザ登録後にログインすると以下の様な画面になっているはず。


右上の「Create New」のボタンを押して新しいリンクを作ります。









ここで Cannel Name には好きな名前を。
私の場合はガレージのシャッタのコントロールだったので「Garage」にしています。
Cannel Description は説明書きなので好きな文言を。
Resource name は今回はShutter としました。
Resource Description はこれも説明書きなので好きな文言を、
その次の選択肢はよく分からなかったのでとりあえずString を選択しました。
で、Create Cannel してできたのが最初の画面の Garage のチャンネルです。
test は最初から出来ていました。

で、この Garage をクリックすると出来上がったチャンネルが表示されます。





で大事なのが赤字で表示された「Channel Token:」です。
要するにこれがこの「Garage」のチャンネルに対するパスワードになります。

次にIFTTTの設定ですが、こちらは使った方が多いのでは?
以下のウェブサイトからログインします。
初めての方はIDを取得してください。

https://ifttt.com/

ログインして New Appletを選択すると以下の作成画面となります。








まずは動作条件を設定するので、ブルーで表示されている「+this」をクリックして、以下の画面からE-Mailをタップします。




右のタグ付きのメールの方を選択します。


まずがシャッターを開ける方の設定なので、Tagには「#Open」としました。 締める方は「#Close」ですがここも自分のシステムの都合で適当なタグをつけてください。

これで作成ボタンを押すと、今度は


先の条件から今度はどう処理するかの選定です。 検索欄に「web」と入力すると、Webhooks が表示されるので、これを選択。




















そのまま表示されたものを選択して処理を入力します。




URLの欄は以下のURLの「=」の後ろにbeebotteで指定されたChannel Toke…

自宅のIT化 その3(iPhone のショートカットの利用)

もともとガレージのシャッターは音声で開け閉めできたら面白いし便利(車の中ではスイッチを押すより、声で動かせれば便利のはず)と言う事(一応リモコンの数を増やしたいと言う表向き(家族向け言い訳は本音とは別))で始めた事でもありますので、もう一度原点に戻ってみようと。
iPhone のホームアプリでの利用は何故かSiriが上手く反応しないし、ホームアプリの動作も純正品でないのが問題なのか、動作が不安定だしその時々で反応時間が全く違ってしまいます。

で、iOS12になって追加された機能が「ショートカット」色々な事が組み合わせて実行できます。
今までも帰るコールなどはメッセージを利用して声だけで「今から帰る」とか「何処何処を出発」なんてSiriに頼んで送信していました。
提携のメールならこのショートカットでホーム画面に登録したアイコンをタップするだけで済みそうです。
しかもSiriにもショートカットを直接教え込んで動かしてくれる機能も付きました。

これを利用すれば、IFTTTに定型メールが送れる。
それを起点にIFTTT から自宅のサーバーに指示が出せるはずとなれば後は色々ググってみるだけ。
なんとなくそれっぽいのが出てきます。
Google HOMEを使って、本来は対応品でない家電を動かしたい人は大勢いますね。
とりあえずは IFTTTからWebhookを利用してBeebotte経由で自宅サーバー(Raspberryなど)という経路が見えてきました。

ところでWebhookってなんじゃ? と言う人は多いと思います。
REST通信の話ですが、良い説明はないかと探したらこんな面白い説明を見つけました。
これならば素人にもわかりやすい!

Webhookって何?を子どもでもわかるように描いてみた

だん吉さんありがとうございます。

って訳で、「IFTTTから投げたデータをどうやって受けるの?」と言うところがBeebotte以降ですね。
というか、自宅からWebアクセスする先がBeeBotteのサーバーと言う形。

REST通信を素人が気楽に使えるとは思っていませんでした。
いやー最近のサービスの充実はすごいですね。

自宅のネットワークのサーバーにインターネット側からデータを送りつけようとすると、DMZの設計は勿論、外部からアクセスするためのDDNSとかの仕組みも必要とかでちょっと面倒だ…

自宅のIT化 その2(Bluetooth Low Energy)

ガレージのシャッターの開閉に合わせて電灯を点けたりするのは玄関の電灯を点けたりするのとほぼ同じ手法。
違うのは点けるタイミングが時間(日没時間が基準)そのものなのか、シャッターが開いた時に日没後か、日没前かを判断して点けるかどうかの違いだけ。
ですから基本的には玄関の照明の記事の内容そのまま。
あとはスイッチが玄関は押す度にオン・オフが切り替わるタイプだから、いま点灯しているかの判断が必要(手動でもオンオフできる様にするため)ですが、ガレージはシーソー式。オンならともかくオン側を押すし、オフならオフ側を押すだけ。
今点灯しているのか、消灯しているかの判断は不要。
天気が悪くて薄暗い時は手動で点灯している事もありますから、シャッターが閉まる時は常に消灯させ(ついていなければ空振りするだけ)、開けるときだけは夜かどうか判断して点けるかどうかを決めるだけ。
より単純になるだけですね。

で、問題はリモコンの数を増やそうという方。
ダイソーで三百円で売っているリモコンシャッターは音量を上げる信号を出せます。
これを利用してスマホの写真機能で音量ボタンでシャッターを切っているのですが、簡単な改造で Android 用の押しボタンを音量を下げる様にも出来るのです。
この2種類の信号を使って、ガレージのシャッターの上げ下げを行わせようという魂胆。
改造記事はこちらを参照しました。

ダイソーでスマホ用Bluetoothリモートシャッターを発見→分解→ちょい改造:ウェブ情報実験室

宮里圭介様 ありがとうございました。


で、これを1台だけではリモコンを増やすという形にはならないので、複数個用意して使おうという魂胆です。
これまた複数のBLE機器(この場合はサーバーが複数という形)を利用するとなると、単純に Arduino のサンプルプログラムでは使い物になりません。
そこで見つけたのが、こちらの記事。

ダイソー BLE リモートシャッター で SwitchBot を操る

こばさん ありがとうございます。

しかしこの記事を参考に2台のリモコンをつないでみると・・・なんか変。
1台はスムーズにつながるのですが、もう一台がうまく繋がらない。
とりあえず1台だけ繋ぐ様に弄ってみても特定の1台は上手く繋がりません。
でもiPhoneにつないで見ると2台とも問題なく動作します。
うーん! どうして?

自宅のIT化 その1

まずはシャッターが開いているかどうかの判断だけ。
それをガレージ内から居間にX-Beeで飛ばしてArduino(ESP-32)で受けるだけの単純な構成。
取り立てて記事にする様な内容ではありません。
強いて言えばステータスの変化を受けて処理をするのにESP-32を使っている事ぐらい。

ESP-32と言えばBluetoothとWi-Fiを内蔵している事が一番の売り。
とりあえずはWi-Fiを利用してシャッターのステータスをRaspberry pi にでも送って、そちらでガレージの照明のコントロールをしてやれば楽かなと言った気楽な感じ。
まぁ、自分(ESP-32)でコントロールしても良いのですが、ネットから日の出、日の入り時刻を取り込んで点灯すべきかの判断をさせる処理部分を考えるのが面倒というのが、処理を外だしにしている理由。
UDPでRaspberry に投げてやれば良いだろうという安易な考えです。

で、ちょっとだけ凝ったのは外観。
これを見越してディズニーランドでR2D2のお菓子のケースを(あくまでも目的はケース。中身のお菓子は単なるおまけ)購入しました。
この中に装置を仕込んで、多分レンズ部分(目)だろうと想定される場所にLEDを仕込もうという事です。
だからLEDを3つにしないでRGBのLED一つで済ます設計。

予想通りにLEDの直径とレンズ部分の直径がぴったり。
綺麗に収まりました。
電源はESPは結構電気を喰う(無線関係の突入電流がでかい)ので、USB電源として(本体などは3.3V仕様)5Vで2A以上の電源を使用しました。

中身の製作記事は今回は省略。
ちょっとネットを漁ればこの手の記事はゴロゴロ出てきますので、わざわざ私が書く程の事じゃない(自分用の備忘録もいらないだろいうという判断)ので。

で、出来上がったのがこちら。





まぁ、可愛く出来たと思いますので、これならば居間においても家族から文句は出ないだろうと。 続きはこちら。

自宅のIT化?

以前ガレージのシャッターをiPhoneから開け閉めしたいという話を書きましたが、色々不具合が出たので、利用を停止していました。
何しろガレージの照明(蛍光灯)を点けるとノイズで自動的に照明スイッチをオフにしてくれるので、照明が使えないというトラブル。
当然即停止ですよね(笑)。

忙しい事も有ったのですが、最初にシャッターが開きっぱなしになった事を知らせる様に作った安いラジコン自動車を改造した表示器(送信機のスイッチ部分から配線を引き出して、シャッターでマイクロスイッチを踏みつけてコントロール。車のモーターの代わりに自己点滅式のLEDを取り付けてシャッターが開くとヘッドライトが点滅)が壊れた(それでも何年使ったんだろう? 元は取れた?)事もあり、ちょっと本気で直しました。

まず、シャッターの開閉の判断は前回のシステムで利用したドア用のマグネットスイッチ。
シャッターの上下に取り付けて、閉まるとしたのスイッチがオフ。
開ききると上のスイッチがオフ。
両方ともオンならば開いている最中か、閉まる途中かなので、その直前の状態を見ておけば判断可能(ただし締めてる途中で一旦止めてまた開き直すなんてことは判断出来ません)として、4つのステータスを見る事にしました。
それをRGBのLEDで閉まっていない時は3色の点滅で表示させる様にグレードアップをする事に。

で、これには以前仕事でテストしたX-Beeが余っていたのでこれを利用する事に。
X-BeeはGPIO端子を持っていて、このステータスが変化した時にデータを送ってきてくれるというので、ガレージ側はX-Bee単体で利用。
受ける側はX-BeeとESP-32(Arduino開発環境)を使い、ステータスの変化を捉えて、LEDを点けてやる事にしました。
でも実際に点けて見るとなんか寂しいので、M34-2LというLED点滅用駆動ICを利用して点滅させてやる様にしました。
このICを使うと電圧制限抵抗を入れなくても良いので楽でもあります。

で、ESP-32がWi-FiやBluetoothを内蔵している事を利用して、日没時間を判断して照明の自動オンオフに(懲りもせずに)再挑戦する事にしました。
今回はノイズ対策もしっかりせねば。

で、ついでにシャッターのリモコンも動かしてやろうと画策しました。
シャッター用のリモコンが1個1万5千円程するの…