これまで HTTP POST や、Termux: Widget で SwitchBot を制御して、スマホの充電が 80% または 90% になったら自動で電源オフにするように対応してきました。
自動化は MacroDroid を使っています。
SwitchBot に挿し込んだ USB 電源アダプターの電源供給を自動で断つことにより、スマホの充電サイクルを「やさしい充電」にするためです。
Sharp や OPPO 機の中には 80% 充電状態で自動的にダイレクト給電に切り替えて「やさしい充電」にしてくれる機種がありますが、そうでない機種を同様に「やさしい充電」にしたいわけです。
HTTP POST 方式
Android 機を、SwitchBot を使って 90% 充電で自動停止させる
マクロは下記ですが、詳細は当該記事を参照ください。
デバイスID はモザイクをかけています |
curl コマンドがスクリプト実行では機能しないため、HTTP POST で代替しています。
※ curl が機能しないのは機種のよるか、Root 化して Android ネイティブ Linux で curl をインストールするかが必要と思われる
Termux: Widget 方式
MacroDroid で任意のシェルを自動実行させる方法
マクロは下記ですが、詳細は当該記事を参照ください。
[1回の繰り返し]を開始 部分はロック解除処理をしています |
ホーム画面に配置した Termux: Widget をクリックするため、いったん画面をオフ(ロック)、再度画面をオンにしロック画面を解除、然る後にホーム画面上の Widget をクリックすることで SwitchBot の電源をオフにしています。
Termux: Tasker プラグイン方式
今回は Termux: Tasker プラグインで行うやり方で、マクロは下記です。
赤く囲んで示したのが Termux: Tasker プラグインを使って SW_off.sh というシェルを実行するようにした箇所です。
SW_off.sh の中身は、下図のようになっていて curl で SwitchBot の電源をオフにするコマンドが記述されています。
このときの curl は Termux で動作していますので、Android のネイティブ Linux のそれとは異なります。
デバイスID とトークンはモザイクをかけています |
それでは具体的なやり方を説明します。
事前作業:Termux を使って必要なパッケージをインストールしておきます。
pkg update
pkg upgrade
pkg install curl nano vim
termux-setup-storage
MacroDroid と Tasker の権限に[Run command in Termux environment]の許可をしておきます。
1.F-Droid の Termux: Tasker plug-in をインストールします
「好ましくない機能」とありますが気にしません
2.Termux で、ディレクトリ ".termux" 配下に "tasker" ディレクトリを作成し、".termux" と "tasker" に実行権を与えます
3."tasker" の中に "SW_off.sh" ファイルを作成し、実行権を与えます
4.SW_off.sh に下記を書き込みます
エディター(または nano、vim)を使って書き込みます
デバイスID とトークン は SwitchBot アプリの設定から抽出します
curl -X POST "https://api.switch-bot.com/v1.0/devices/<デバイスID>/commands" \
-H "Content-Type: application/json; charset=utf8" \
-H "Authorization: Bearer <トークン> " \
-d '{"command": "turnOff", "parameter": "default", "commandType": "command"}'
"turnOff" が電源オフの指示になります
"turnOn" は 電源オンの指示になります
5.MacroDroid の設定をします
アクション:「アプリ」⇨「Tasker/Locale プラグイン」をタップし「Termux: Tasker」をタップすると「Termux イベント」が現れます
これをタップします
次の画面で「Executable ~~」欄に「S」を入力すると SW_off.sh が現れます
"SW_off.sh" をタップします
右上の マークをタップし、反映させます
次の画面になりますが、なにもせずに「OK」とします
次の画面に戻ります
この段階でアクションを試して SwitchBot の電源オフを確認しておきます
うまく電源オフになれば問題ありませんが、そうでない場合は最初から確認ください
トリガー:「バッテリー残量の変化」で >= 80% とします
ほかのアクションを追加設定します(説明は割愛)
マクロのタイトルを記入し右下のチェックマークで保存します
以上でマクロの設定は完了です。
このやり方はほかのシェルやコマンド(群)を記述可能なので自由度が高く、HTTP POST 方式や Widget 方式に比して大変優れています。
さらに Python プログラムにも対応可能です。
0 件のコメント:
コメントを投稿