去年の秋ぐらいに raspberry pi が不調になり、そのタイミングから自室のco2モニタリングが動かなくなっていた。
当初いくつか試したところハードウェアのトラブルが疑わしいように感じた。ので、新しく CO2mini を購入し直すことにしたがメーカー欠品ということでこの春まで手に入らなかった*1。
時は流れ、春先に新品が届いたのだがAmazonの袋に入った状態で半年ほど寝かしていたところ、昨晩急にやる気が発生したのでやっと開封した。こういうやる気任せなのがダメなんだよな、多分、わかっちゃいるんだけど、、、。
で、新しいデバイスでもやっぱり動かない。これはソフトが怪しいということで既存の Python モジュールで動かしてみると普通に値が読み取れる。
どうやら自作のソフトがダメだったっぽい。不思議なこともある*2。新しいハードウェアでは暗号化が解かれているらしいけど、当時はハードも変えてないわけだし。
ともかくハードの問題じゃなさそうだし、もし新しいハードが非暗号化版だとすると逆に古いコードは動かないことがわかったので https://github.com/heinemml/CO2Meter/ で mackerel の拡張を作り直した。
udev ルールは上記のリポジトリの README をそのまま利用させてもらった。作り直した拡張は以下の通り。
実行時は以下のような形で co2mini の置き場所とデバイスがマウントされているパスを指定する。
./mackerel-plugin-co2mini --local bed-side --path /dev/co2mini0