Switchbot を linux のコマンドラインで制御する nodejs のプログラム switchbot-cli が公開されている。
switchbot-cli
https://github.com/shizuka-na-kazushi/switchbot-cli
インストールも簡単。最初の起動時の token,secret の登録の時に、入力がエコーバックされないので戸惑ったけど。
$ sudo npm install -g switchbot-cli $ switchbot-cli : First please register 'token' and 'secret' obtained by SwitchBot mobile app: token: トークンを入力(エコーバックされない) secret: シークレットを入力(エコーバックされない) $ switchbot-cli device list ------- device list -------- deviceId deviceType deviceName yyyyyyyyyyyy "remote with screen" "学習リモコン" zzzzzzzzzzzz "MeterPro(CO2)" "温湿度計CO2・リビング" : aaaaaaaaaaaa "Hub Mini" "switchbot-hubmini" ------- infrared remote list -------- deviceId deviceType hubDeviceId deviceName bb-bbbbbbbbbbbb-cccccccc "Air Conditioner" aaaaaaaaaaaa "エアコン" bb-bbbbbbbbbbbb-dddddddd "DIY Fan" aaaaaaaaaaaa "扇風機" bb-bbbbbbbbbbbb-eeeeeeee "DIY Light" aaaaaaaaaaaa "リビングの照明" : bb-bbbbbbbbbbbb-ffffffff "TV" aaaaaaaaaaaa "テレビ"
設定は、$HOME/.cache/switchbot-cli/cert.json に保存されている。
使い方
((( 温湿度計CO2 を読み取る )))
$ switchbot-cli device -d zzzzzzzzzzzz status
{
"statusCode": 100,
"body": {
"version": "V1.6",
"temperature": 22.7,
"battery": 100,
"humidity": 57,
"CO2": 859,
"deviceId": "zzzzzzzzzzzz",
"deviceType": "MeterPro(CO2)",
"hubDeviceId": "000000000000"
},
"message": "success"
}
((( 赤外線リモコン経由で TV をつける )))
$ switchbot-cli device -d bb-bbbbbbbbbbbb-ffffffff turnOn
赤外線リモコンで、特定のボタンを操作したいんだけど、現時点のバージョンではできないみたい。