WxBeacon2に保存されているデータをPCから読み込む

投稿者: | 2022年1月30日

WxBeacon2(=2JCIE-BL01)に保存されているデータをPCから読み出したいと思って調査。
検索すると本体をブロードキャストモード変更にしてリアルタイムにつど受け取る方法はよく見かける。
しかし本体内部に保存されているデータの読み出し方法について書いてあるところが見当たらないので自分でpythonのスクリプトを作成してみた。

github

作成したスクリプトはこちら
https://github.com/ichinomoto/omron_env_monitor

機能

・引数にMACアドレスだけ指定した場合は最後に保存されたデータを表示する
・本体内に保存されているデータをすべて取得する
・出力ファイルを指定することによりcsvとして出力する
・ページ指定でも出力可能
・bluepyを使用しているのでRasPiなどのLinux環境専用

使い方

help表示

$python3 omron_env_monitor -h

またはgithubの方に書いてあるのでそちらで。

オプションを何も指定しなければ最後に保存されているデータを表示する

$python3 omron_env_monitor xx:xx:xx:xx:xx:xx

保存データをすべて読み出してcsvファイルに保存する

$python3 omron_env_monitor -a -o output.csv xx:xx:xx:xx:xx:xx

特定のページの情報を取得する(以下は10ページ目の場合)

$python3 omron_env_monitor -p 10 xx:xx:xx:xx:xx:xx

電池交換後に時刻設定を行う

$python3 omron_env_monitor --set-time xx:xx:xx:xx:xx:xx

その他

・bluepyと内部でdateコマンドを使っているのでLinux環境専用
・マニュアルのフローではデータの読み出しに入る前に状態フラグを確認するということになっているが、その辺りはちゃんと実装していない。

その他2

・データの保持され方
WxBeacon2では1ページに13行のデータを保持しており、読み出し時にはページと行を指定することにより任意のデータが読み出しできる。マニュアルの保存可能時刻から計算するとページは2048まで有るもよう。
時刻情報はページ単位で保持しており、各ページの開始時刻を取得して保存間隔x行番号を足すことでそれぞれのデータの保存時刻を計算する必要がある。