Home Assistant、AdGuard Home、8ドルのスマートコンセントでブレインロットを防ぐ
(romanklasen.com)- インターネットは開発業務とコミュニケーションに不可欠だが、ソーシャルメディアや広告のような依存性のある要素を完全に遮断することも、無制限に許可することも難しい
- ネットワーク遮断はスマートフォンで Wi-Fi を切れば回避でき、家族が業務・調査目的でソーシャルメディアを必要とするため、常時遮断は適していない
- Zigbee スマートプラグのボタンを押すと AdGuard Home のカスタムフィルタリングを15分間オフにし、その後1時間のクールダウン中は再度押せないように自動化する
- gli.net ルーター上の AdGuard Home では、組み込みのサービス遮断ではなくカスタムルールをトグル対象にし、Home Assistant の「Filtering」スイッチで制御する
- Wi-Fi 回避まで防ぐ解決策ではないが、ソーシャルメディア利用を小さな単位に制限して節制の練習を助ける仕組みとして機能する
完全遮断と無制限許可の間にある問題
- インターネットは広告、注意散漫、スポンサーコンテンツ、悪いニュース、ソーシャルメディアのせいで負担になるが、ソフトウェア開発や人とのコミュニケーションには不可欠なインフラでもある
- ネットワーク全体の広告ブロッカーでソーシャルメディアを止めても、スマートフォンで Wi-Fi を切ればモバイルデータでそのままスクロールし続けられる
- 家族が業務、調査、個人的な利用のためにソーシャルメディアを必要とすることがあり、完全遮断は実行しにくい
- 同時に、2人の大人にインターネットを制限なく許可するやり方も望む結果にはならない
Neil Chen のアイデアを家庭内ネットワーク向けに変形
- Neil Chen のアイデアは、スマートプラグで uBlock Origin のリストを書き換え、気が散るコンテンツへのアクセスを一時的に許可する方式
- ここでは「ボタンを押すと制限時間だけ許可」という構造はそのままに、uBlock Origin の代わりに既に使っているAdGuard HomeとHome Assistantを組み合わせる
- 必要な構成要素はシンプル
- AdGuard Home がある gli.net ルーター
- Home Assistant
- Zigbee スイッチ類
- 少しの余裕時間
ボタンを押すと15分許可、その後1時間クールダウン
- 目標は、ボタンを押したときにソーシャルメディアへのアクセスを一時的に許可し、15分後にフィルタを再び有効にすること
- 許可時間が終わったら1時間のクールダウンを設け、すぐにもう一度ボタンを押せないようにする
- Zigbee 対応スマートプラグがこのボタン役に適したデバイスとして使われる
- 全体の流れは、ボタン入力、フィルタ無効化、制限時間満了、フィルタ再有効化の順で進む
gli.net ルーターで AdGuard Home 制御を準備
- gli.net の OpenWRT ベースのルーターには AdGuard Home が便利に統合されている
- 遮断するサービスは AdGuard Home のカスタムルールとして設定する必要がある
- 組み込みのサービス遮断機能は「カスタム」として扱われないようだ
- そのため組み込みのサービス遮断は自動化でオン・オフしづらい対象になる
- AdGuard Home API は OpenAPI YAML として提供され、通常のユーザー名とパスワードでログインする
- ルーターの既定インターフェースは認証を迂回して統合されているため、API アクセスに使う AdGuard Home のユーザー名・パスワードが初期状態では存在しない
- GL.iNet フォーラムの投稿では、既存の統合を壊さずにユーザーを追加する方法を案内している
/etc/Adguard/config.yamlのusers: []をユーザー項目に変更する- 例では
adminの bcrypt ハッシュを使っているが、実際のパスワードとして使う値ではないと明記されている - bcrypt ハッシュは CyberChefで生成できる
Home Assistant 自動化フロー
- Home Assistant の AdGuard Home 統合はやや機能が削られているが、必要な動作は実行できる
- 公開されるスイッチのうち「Filtering」は、カスタムフィルタルールの適用をオン・オフするスイッチ
- 自動化は Zigbee スマートプラグがオンになるイベントをトリガーとして使う
- 実行条件は2つ
- 最後に無効化した時点から1時間超経過したかを確認する
- 現在 AdGuard override が無効状態かを確認する
- 条件を満たすと自動化は次の順で進む
input_boolean.adguard_override_activeをオンにするinput_datetime.last_adguard_disableに現在時刻を記録するswitch.adguard_home_filterungをオフにして AdGuard フィルタリングを無効化する- 14分待つ
- スマートプラグを15回オフ・オンし、2秒間隔で繰り返す
- AdGuard フィルタリングを再びオンにする
- スマートプラグと override 状態をオフにする
- 条件を満たさない場合は、2秒後にスマートプラグだけをオフにする既定動作で終わる
- 自動化の
modeはsingleで、同時に複数回実行されないように構成されている
残る限界
- この方式では、スマートフォンで Wi-Fi を切ってモバイルデータでソーシャルメディアを見続ける行為までは防げない
- 目的はあらゆる回避を封じることではなく、ソーシャルメディアを少量利用に制限し、節制を練習できるようにすることにある
まだコメントはありません。