オマケ 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のシステム的に不可能な

「左手キーボードを二つ繋げ、

片方のみを「右手」配列にする」なんて

曲芸じみたことも出来る、海外でも

まずお目にかかれないソフト)




  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る