投稿

ラベル(ホームオートメーション)が付いた投稿を表示しています

SwitchBotカーテン+ソーラーパネルをApple HomeKitに組み込んで使う

イメージ
SwitchBotカーテンを運用しはじめて一ヶ月ほど経過したので、別添のソーラーパネルとあわせてレビュー的なものを残そうと思います。 SwitchBotカーテンとは SwtichBotカーテンは、SwitchBotというスマートホーム製品ファミリーに属する製品の1つです。 デザインがなんとなーく北欧っぽい雰囲気を漂わせていますが、中国企業であるWonderlabs社の製品 です。物理ボタンをON/OFFしてくれるSwitchBotボットが有名ですが、他にもスマートリモコンのHub、温湿度計、加湿器、プラグ等色々と製品があり、どれもSwitchBotアプリでまとめて管理できるようになっています。 SwitchBotカーテンはその中の1つですが、これは カーテンレールに取り付けて、ホイールでレール上を左右に移動することでカーテンを開閉するもの ですね。動画を見るとわかりやすいと思います。 取付先のカーテンレールのタイプごとに製品が異なるので、買う時は少し注意が必要かもしれません。U型、I型、ポールタイプと3種類ありますが、日本だと基本的にはU型でしょうかね?私が買ったのもU型です。 なぜ買ったのか なるべくカーテンを開けたい私(部屋に外光が欲しい、観葉植物に日を当てたい)と閉めたい妻(一部の場所から視線が通るのが気になる)の間で微妙な対立 があり、しょーもないことで揉めたくない、というのが主な理由です。 カーテンが昼過ぎまで開いておらずに慌てて開ける 夜になってもカーテンが開きっぱなしで慌てて閉める 窓際は観葉植物が占領していて開閉もややしづらい 開けたあと閉められる、閉めたあと開けられる…となった場合微妙に険悪に なる もう1つは、趣味&暇つぶしですね。 やりたいこと 適切なタイミングで自動で開閉し、開け忘れや閉め忘れをなくします。 日の出時にリビングのカーテンを自動で半開し、観葉植物に日を当てる 仕事開始時点で(妻は寝室で仕事)リビングのカーテンを全開し、部屋に外光を入れる 日没時にリビングのカーテンを全閉して外部からの視線を切る HomeKitに組み込み、シーンと連動して開閉させる 一足先にまとめ SwitchBotカーテン単体の基本的な動作は概ね問題がない SwitchBotカーテンに組み込まれている 「照度に応じて自動開閉する機能」はあまりうまく動作しない H...

iPadが便利すぎて4万程度で使えることが信じ難いレベル

イメージ
 以前から感じていたことですが、在宅時間が伸びてiPadの便利さを実感する機会がますます増えています。うちではiPad mini4というかなり古いデバイスをアームを使ってこんなふうにデスクに固定しており、隣室で休む時は外して持っていっています。 スマホでも機能的には同じことができるのですが、この画面の大きさがいいんですよね。固定モニターとしても十分に機能します。私の具体的な用途はこんな感じです。 📙メディア消費 みんなメインはこれじゃないでしょうか。私は無料漫画サービスとPodcastのニュースの頻度が高いです。 ネット電書サービスやNASに接続して本や漫画を読む Youtube、動画配信サービス、NASに接続して動画を見る RSSリーダーでフィードを読む ニュースアプリでニュースを見る 5chビューアで5chを見る Podcastでニュースを聴く 写真アプリで写真を閲覧、管理する Musicアプリで音楽を聴く 👨‍👩‍👦交流・見守り TwitterとLINEがメインです。これはスマホでやっている人も多いかもしれません。 Sparkでメールを確認・送信する LINEでやり取りする Twitterする Teamviewerで親を遠隔サポートする LINEに日々通知される親の健康状態を確認する Googleマップタイムラインで親の生存を確認する また、 遠隔地の親のスマホの利用状況がLINEで日々家族の情報共有グループに通知される ようになっています(当然許可取得済み)。 🥗家事 レシピの管理と周期的な家事の確認がメインです。買い物はリアル店舗メインなので、ポイント消費ぐらいしか使っていません。 Instapaperでレシピを管理・閲覧する プリセットタイマーアプリで調理手順をコントロールする 残り食材で作れそうなレシピを探す Todoistで周期的な家事の状況を確認する オンラインストアで生活必需品を買う ゴミ出し後の帰還時にスマートロックで鍵を開ける プリセットタイマーが地味に便利で、あらかじめ設定した複数ステップの工程切り替えを順に知らせてくれる ので、玄米のように 沸騰 → 蓋閉め → 火止め → 蒸し と工程が多く時間に厳しい調理工程をコントロールするのが楽になります。 🛌生活・家事 天気、予定、タ...

HomebridgeのIRKitプラグインを色々便利にしました

イメージ
IRKitをSiri、Appleのホームアプリから使う方法としてはHomebridgeとhomebridge-irkitプラグインを使う方法がメジャーです。我が家でもこの組み合わせでAppleホームアプリから家電を操作して便利に使っていました。 homebridge-irkitプラグインの問題 しかしこの組み合わせでは、ホームアプリから シーン(複数のデバイスを同時の切り替える機能)で一度に複数デバイスを操作するとうまく動かないことが ありました。 例えば、我が家ではすべての家電をシャットダウンする「不在中」というシーンを作っていて、そこではIRKitデバイスとして「テレビ」「赤外線プラグにつながったフロアランプ」「エアコン」を同時にオフにしていますが、 たいていはどれか1つかうまくオフになっていません でした。ホームアプリ上では正常にシーンが切り替わったように見えるにもかかわらず、です。 これはおそらく、IRKitが赤外線信号を送る際には一定の時間が必要なため、依頼が殺到すると処理しきれずにうまく信号が発信されないためだと思います。特にエアコンの信号は、「動作モード」「風向き」「ターゲット温度」等の情報を毎回すべて送信する仕組みなので信号がかなり長くなり、赤外線信号の送出にも1秒以上かかってしまいます。このため、エアコン信号の直後に届いた指示はうまく発信されないことがあります。 homebridge-irkit-modプラグインの作成 とはいえIRKitは相当古いデバイスで、既に時代は後継といえるNature Remoに移っています。homebridge-irkitプラグインも最終メンテナンスは5年以上前であり、修正を期待するのも難しいです。よって今回、homebridge-irkitプラグインをForkして修正版を自作することにしました。以下に公開しています。 https://github.com/burabura714/homebridge-irkit-ext このプラグインでは、 送信する赤外線信号の長さを自動判定し、長さに応じてIRKitへの依頼を一定時間待つ ように修正しています。これにより、シーンで複数のIRKitデバイスを利用する場合でも、少なくとも私の環境ではうまく動作するようになりました。 コンフィグファイルの記述は既存のIRKitプラグインとほ...

Outlookのリモート会議予定を自動的に家族に共有して事故を防ぐ

イメージ
職場のOutlook予定表に登録されたリモートワーク会議の予定を、機微情報を削除した状態で日々Googleカレンダーに転記して家族に共有することで、 リモート会議で機微な情報を話している状況で不意に家族が部屋に入ってくる、という事故を最小限の労力で回避している というお話です。 リモートワークのよくある課題 自宅でリモートワークをしていると、 リモート会議で機微な情報について話している最中に家族が自室に入って来そうになる… こんな状況を経験した人は多いと思います。特に、複数が頻繁にリモート会議しながら自宅で仕事を進めている場合、どうしても仕事場を部屋ごと分ける必要があるため、誰かがLDKを占有するような状況が発生しがちです。この場合、セキュリティを維持するために 仕事中のLDK立ち入りを禁止すると、家族は昼間に水すら飲めなく なってしまいます。 解決の方向性:あらかじめ会議予定を共有する 根本的に解決するなら、広い家に引っ越して個別に仕事部屋を作るのが一番なのですが、なかなかそう簡単にはいきません。今の環境でも実行できる解決策としては、 あらかじめリモート会議の予定を家族に共有しておき、その時間は絶対に部屋に立ち入らないようにお願い する、程度が現実的です。 障害:日々の予定を都度確認し、伝達するのは非常に面倒 部屋への立ち入りで若干揉めた後しばらくは、LDKを使っている私が 日々リモート会議の予定を手動でGoogleカレンダーに登録し、ここを見て立ち入り可否を判断するようお願い していました。しかし、毎日翌日以降のリモート会議の予定を確認して手動で1つ1つ登録するのは本当に面倒です。また、当日になって急に入ってくる予定も多く、その場合は私が入力を忘れてしまったり、妻の方で見てくれなかったりします。 そもそもLDKを使っている 私だけがなぜこんな面倒なことを毎日しなくてはいけないのか… それなら私も寝室がいい。しかし、 妻は寝室をどうしても譲ろうとしません… 。てかそのディスプレイもデスクもライトも私のだし、ネットワーク整備したのも私なんだが…。 障害:既存のツールによる自動化は望み薄 こうなると登録を自動化したくなるわけですが、既存の同期ツールではなかなか実現が難しいです。なぜなら、 対象は全ての予定ではなくリモート会議のみで、かつ機微な情報が含まれる可能性がある...

ホームオートメーション Version1.0

イメージ
ここまでいくつか取り組んできたホームオートメーションが一段落したので、いったん記録しておこうと思います。現状、設備は次のようになっています。 この設備を使って出来ることは、こんな感じです。 家電単体を操作する 一番シンプルなやつですね。Mac/iPad/iPhoneのApple Homeアプリ、iPhone/iPad/AndroidのGoogle Homeアプリからタップ、もしくはSiri、Googleアシスタントの音声で次の操作ができます。 エアコン ON/OFF 暖房、冷房、除湿の切り替え 温度変更 テレビ ON/OFF 音量の上下 消音 フロアランプ ON/OFF ダウンライト ON/OFF 色調変更 明るさ変更 スマートロック 解錠 施錠 単体の操作は正直あまり使っていませんね…一番使っているのは、テレビがうるさい時の音量下げかもしれません。 こんな時(よくあります)、MacのHomeアプリからポチポチして静かに音量を下げることができます。 家の状態を確認する Apple Homeアプリ、Google Homeアプリから家の状態を確認できます。操作対象の各デバイスに加えて、リビングの気温、シーン(デバイスの状態の集まり、仕事中、就寝中、リラックスタイム等)の確認ができます。 様々な場所から音楽・Podcastを再生する ダイニングのサウンドバーとリビングのPCスピーカーは Air Play対応しており、Mac/iPhone/iPadから音楽やPodcastの再生先として使う ことができます。こんなふうに使っています。 朝目が覚めると、最新のNHKニュースが枕元のBluetoothスピーカーから流れる 再生先をダイニングに変更しつつダイニングに移動 し、飲み物を飲んだり植物に水をやったり 洗面所で身支度体重測定、洗濯機等で 聴こえづらい場合は再生先をiPadに切り替え 再生先をダイニングのサウンドバーに戻し、落ち着いた音楽を流して 仕事を開始 ベランダ横のマッサージソファで休憩しながらiPadで音楽を再生 ボーカル曲等:PCスピーカーからAir Playで再生 環境音等  :サウンドバーからAir Playで再生 Macで再生したまま移動してきた場合はiPadのRemoteアプリで制御 料理中はサウンドバーからニュースを再生 寝室に移動したら、Bluetoot...

保有銘柄の適時開示情報をLINEに日々通知する

イメージ
適時開示情報を毎度自分から見に行くのが面倒だったので、1日に1度LINEにまとめて通知するようにしてみました。こんな感じです。 仕組み 定時起動したGoogle Apps Script上のプログラムが、①Google Sheetsで管理しているポートフォリオから保有銘柄の証券コード一覧を取得し、②証券コードごとにTDnetに問い合わせて適時開示情報を取得し、③IFTTT経由で④LINEに通知しています。 適時開示情報閲覧サービス:TDnet には公式のWeb APIがないため、やのしんさんが運営してくれているAPIを利用しています。 TDnet(適時開示情報)のWEB-APIプロジェクト(非公式)by Yanoshin もしこのAPIが廃止された場合は、自力でスクレイピングするか、速報性や情報の種類は変わってしまいますが、EDINETの公式APIに切り替える予定です。 動かしかた 1. Applet@IFTTT、 2. Google Apps Script  3. GAS起動トリガー の3つを作ります。 Applet@IFTTT作成 トリガーとしてWebhook、アクションとしてLINEを持つAppletを作ります。IFTTTの基本的な使い方はぐぐればたくさん出てくるので省略しますが、私の場合は次のようなAppletを作りました。送信された値を丸ごとLINEで通知する汎用のAppletです。 Webhookに送信するためのイベント名(上記ではnotify_to_me)とkeyは後で必要になるので控えておきます。keyは以下のDocumentのリンク先から確認できます。keyは個人ごとに払い出されているので、各自で確認します。 Google Apps Script 通知を受けたい銘柄の証券コード(4桁)のリストを記載したGoogle Sheetsを開き、メニューから [ツール] → [スクリプトエディタ] を選んで以下のコードを貼り付けます。冒頭の4つの変数は自分の環境にあわせて書き換えが必要なので、コメントを参照ください。なお、自分の環境でしか動かしていない&JavaScriptのコードも適当なので動かなかったらゴメンナサイ。 // 銘柄リストの記載されたシート名 var sheet_name = "xxxxxxx"; // 銘柄リストの範囲 v...