見出し画像

twBlueScanをSwitchBotの温度・湿度センサーに対応する開発

昨日、日中歩いたのでよく眠れました。今朝は気がつけば5時でした。遅く始めましたが何とかマニュアルの記事を3本書きました。

です。
朝食後は、昨日、購入した。SwitchBotの温度・湿度センサー

をtwBlueScanに対応させるための開発です。

とかの記事を参考にして対応できました。対応するためのポイントは
Scanモードをアクティブにすることと、測定データがServiceDataに入っていることです。買ってきて電池をいれるだけで使えます。スマフォのアプリで設定する必要はありません。デコードする処理は、

func sendSwitchBoxEnv(d *BluetoothDeviceEnt) {
	bat := int(d.EnvData[4] & 0x7f)
	temp := float64(int(d.EnvData[5]&0x0f))/10.0 + float64(d.EnvData[6]&0x7f)
	if (d.EnvData[6] & 0x80) != 0x80 {
		temp *= -1.0
	}
	hum := float64(int(d.EnvData[7] & 0x7f))
	if debug {
		log.Printf("swbox temp=%.02f,hum=%.02f,bat=%d", temp, hum, bat)
	}
	syslogCh <- fmt.Sprintf("type=SwBoxEnv,address=%s,name=%s,rssi=%d,temp=%.02f,hum=%.02f,bat=%d",
		d.Address, d.Name, d.RSSI,
		temp, hum, bat,
	)
}

のような感じです。

twitterを見ていたら、

という面白いツールを見つけました。
試しにセンサーの絵を書いて見ました。 画像ではないです。

┌────────────────┐    ┌────────────────────┐
│                │    │                    │
│                │    │                    │
│    SwitchBox   │    │  OMRON Env Sensor  │
│                │    │                    │
│                │    │                    │
└────────────────┘    └────────────────────┘
           ▲           ▲
           │           │
           │           │
           │           │
           │           │
          ┌┴───────────┴──┐
          │               │
          │   twBlueScan  │
          │               │
          └───────────────┘

明日に続く

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。