オマケ Switchbot完全自動化(TaskerからのHTTPリクエスト)
APIによるswitchbot制御(taskerからコマンド発行)
さて、今回はswitchbotの
外部からのコマンド発行方法です。
いや、外部発行自体は1年ほど前に
google scriptからのgas発行で
出来ていたんですが、
taskerに組み込むのが難しく
実用には至れていませんでした。
で、なんとなーく今朝思い立ち
ネットを漁ってたら
このようなサイトを見つけまして。
https://qiita.com/tatuya911/items/301b723e24f289501a2f
で、そのままの記述じゃダメだったので
ちょっと手直したら動いちゃいました。
とりあえず、僕の方ではjavaファイルの作り方から
ヘッダーの仕組みまで、次回から
丁寧丁寧丁寧に解説すると決めてますが
せっかちな兄貴姉貴もいらっしゃると思うので
修正コードとタスクを貼っておきます。
以下javaコード
──────────────────
const token = "☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"
const secret = "★★★★★★★★★★★★★★★★★"
// トークンとタイムスタンプを結合
const t = Date.now();
const data = token + t;
// HMAC-SHA256生成
const hmac = CryptoJS.HmacSHA256(data, secret);
// ハッシュ値のバイト列をbase64エンコード
const sign = CryptoJS.enc.Base64.stringify(hmac);
// ヘッダを作成
const headers = {
"Content-Type": "application/json",
"Authorization": String(token),
"sign": String(sign),
"t": String(t)
};
// ヘッダをTasker用に加工し変数に格納
setGlobal("SBHeader", JSON.stringify(headers).replace(/,/g, "\n").replace(/\{|\}|\"/g, ""));
──────────────────
☆と★をそれぞれ
トークンとシークレットに
置き換えて使ってください。
ちなみにTaskerのタスクはこちら。
https://taskernet.com/shares/?user=AS35m8lAutcM2pg1C5CWy9o%2BqnbpUk9wP4lEsfFlAhEt2tmVqmQpId2zWmtOGl%2FgzXdzw%2FqYJRUE3GRH&id=Task%3Aswitchbot
以下タスク内容です。
────────────────────
タスク: switchbot
A1: Javascript / JavaScript [
パス: switchbot.js
ライブラリ: https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js
自動で終了する: オン
タイムアウト (秒): 1 ]
A2: HTTP リクエスト / Request [
方式: GET
URL: https://api.switch-bot.com/v1.1/devices/
ヘッダー: %SBHeader
タイムアウト (秒): 30
全ての証明書も信頼する: オン
自動でリダイレクトに従う: オン
クッキーを使う: オン
構造を出力 (JSONなど): オン ]
A3: 変数を設定 / Variable Set [
名前: %Switchbot
これに: %http_data
構造を出力 (JSONなど): オン ]
A4: 画面点灯 / Turn On [
ブロック時間 (ヘルプ参照): 100 ]
A5: 待機 / Wait [
ミリ秒: 200
秒: 0
分: 0
時間: 0
日: 0 ]
<変数 %Switchbotを参照して
「◇◇◇◇◇◇」の所に
「デバイスID」 を入力してね。>
A6: HTTP リクエスト / Request [
方式: POST
URL: https://api.switch-bot.com/v1.1/devices/◇◇◇◇◇◇/commands
ヘッダー: %SBHeader
本文: {
"command": "turnOff",
"parameter": "default",
"commandType": "command"
}
タイムアウト (秒): 5
全ての証明書も信頼する: オン
自動でリダイレクトに従う: オン
クッキーを使う: オン
構造を出力 (JSONなど): オン
エラーが発生しても継続:オン ]
──────────────────────────────────
ちなみに他にも、いろいろ解説してます。
ご入り用ならこちらもどうぞ、持ってってくださいな。
macrodroidショートカット(intent&kcm併用)
https://kakuyomu.jp/works/16817330663198601284/episodes/16817330667193119791
(アプリのTextidを参照し、
該当IDのタッチを自動化することで
Bluetoothコントローラー等の外部入力から直に
アプリの動作をショトカ発行出来ます)
(僕はお絵かきアプリに使ってます)
keymapper
https://kakuyomu.jp/works/16817330663198601284/episodes/16817330667184328084
(他のアプリに入力を渡す前に
キーコードを上書きできる、唯一無二のアプリ。
ただし、Taskerやmacrodroidの
タスク・マクロショートカットと
死ぬほど相性が悪い)
(だから、Intent発行をkeymapperで行って
受信させる必要があったんですね)
kcm
https://kakuyomu.jp/works/16817330663198601284/episodes/16817330668018153223
(通常アプリより上の権限で
androidのキーボードをリマップ)
(外部キーボードからの入力を意味のない「f13」等のキーに出来る。
・・・つまり、これをkeymapperと合わせれば・・?)
~~PC関連~~
Vysor
https://kakuyomu.jp/works/16817330663198601284/episodes/16818023213838311738
(PCからAndroid操作を行えるソフト。
画面が割れたスマホなんかを動かしたいときや
PCを動かしながら、他の作業を同じPC画面で
したいときなんかにどうぞ)
nodoka
https://kakuyomu.jp/works/16817330663198601284/episodes/16818023212503628526
(ドライバとしてwindowsに登録
つまり、システムレベルとほぼ同等で
物理キーを変更できる)
(例えば、windowsのシステム的に不可能な
「左手キーボードを二つ繋げ、
片方のみを「右手」配列にする」なんて
曲芸じみたことも出来る、海外でも
まずお目にかかれないソフト)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます