SwitchBot API

情報


SwitchBot API V 1.1 認證


459目のつけ所が名無しさん (ワッチョイW 135d-zI/H [59.158.102.2])2022/12/10(土) 18:06:21.34ID:hOSM41fL0>>462>>527

>>457
雑なコードですまんが


function main(){
const token ="xxxx";
const secret ="xxxx"
const nonce = "xxxx"
const t = Date.now();

const data = token + t + nonce;

var hash = CryptoJS.HmacSHA256(data, secret);
var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
var sign = hashInBase64;



460目のつけ所が名無しさん (ワッチョイW 135d-zI/H [59.158.102.2])2022/12/10(土) 18:06:31.43ID:hOSM41fL0

var body ={
"commandType": "command",
"command": "turnOff",
"parameter": "default"
};

var json = JSON.stringify(body);

xhr.open('post','https://api.switch-bot.com/v1.1/devices/xxxxxxxx/commands',false);

xhr.setRequestHeader('Content-Type', 'application/json; charset=utf8');
xhr.setRequestHeader('Authorization', token);
xhr.setRequestHeader('nonce', nonce);
xhr.setRequestHeader('t', t);
xhr.setRequestHeader('sign', sign);

xhr.send(json);
setGlobal("LOG", xhr.status + " : " + xhr.response);
}

main();



461目のつけ所が名無しさん (ワッチョイW 135d-zI/H [59.158.102.2])2022/12/10(土) 18:07:38.46ID:hOSM41fL0

これインポートして使ってる
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js

https://lavender.5ch.net/test/read.cgi/kaden/1669677005/

function main(){
const token = 'ここにトークン'
const secret = 'ここに暗証番号'
const nonce = '適当な文字列'
const t = Date.now();

const data = token + t + nonce;

var hash = CryptoJS.HmacSHA256(data, secret);
var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
var sign = hashInBase64;

var body ={
"commandType": "command",
"command": "unlock",
"parameter": "default"
};



591目のつけ所が名無しさん (ワッチョイ 132d-3TNT [61.198.88.249])2022/12/14(水) 22:36:44.81ID:670T82ju0

var json = JSON.stringify(body);

var xhr = new XMLHttpRequest();
xhr.open('post','https://api.switch-bot.com/v1.1/devices/ここにロックのデバイスID/commands',false);

xhr.setRequestHeader('Content-Type', 'application/json; charset=utf8');
xhr.setRequestHeader('Authorization', token);
xhr.setRequestHeader('nonce', nonce);
xhr.setRequestHeader('t', t);
xhr.setRequestHeader('sign', sign);

xhr.send(json);
setGlobal("LOG", xhr.status + " : " + xhr.response);
}

main();

以上です。このjsファイルをAndroidの適当な場所に置き、TaskerのTaskで
そのJavaScriptファイルのパスを指定して動作させようとしました

https://lavender.5ch.net/test/read.cgi/kaden/1669677005/

Google Apps Script


應用情報

  • 2023年3月に発売された「Hub2」

  • InfluxDB + Grafana in Docker

上圖來源

https://zenn.dev/tanny/articles/a5c0fa5c2230a7


SwitchBot API 1.0 應用例

https://moritalous.pages.dev/425eea056025aae18d41

cURL

$ token="「トークンの取得」にかかれている文字列"
$ curl -s -H "Authorization:${token}" https://api.switch-bot.com/v1.0/devices | jq "."
{
  "statusCode": 100,
  "body": {
    "deviceList": [
      {
        "deviceId": "6055F938A492", <- ココ
        "deviceName": "プラグミニ(JP) 92",
        "deviceType": "Plug Mini (JP)",
        "enableCloudService": true,
        "hubDeviceId": ""
      },
(...snip...)
  },
  "message": "success"
}
# 機器の電源が入ってない時
 
$ deviceid=6055F938A492
$ curl -s -H "Authorization:${token}" "https://api.switch-bot.com/v1.0/devices/${deviceid}/status" | jq "."
{
  "statusCode": 100,
  "body": {
    "deviceId": "6055F938A492",
    "deviceType": "Plug Mini (JP)",
    "hubDeviceId": "6055F938A492",
    "power": "on",
    "voltage": 100.5,
    "weight": 0,
    "electricityOfDay": 633,
    "electricCurrent": 0
  },
  "message": "success"
}
# 機器の電源が入ってる時
 
$ curl -s -H "Authorization:${token}" "https://api.switch-bot.com/v1.0/devices/${deviceid}/status" | jq "."
{
  "statusCode": 100,
  "body": {
    "deviceId": "6055F938A492",
    "deviceType": "Plug Mini (JP)",
    "hubDeviceId": "6055F938A492",
    "power": "on",
    "voltage": 100.5,
    "weight": 41.5,
    "electricityOfDay": 632,
    "electricCurrent": 0.012
  },
  "message": "success"
}

以上出自 https://sekki.net/wordpress/?p=895


この記事が気に入ったらサポートをしてみませんか?