 
 
天下の中国製、USB温度計ドングル。(TEMPerシリーズ最新版?のTEMPer1.4です)  
USB温度計! USB thermometer-528018 
(Amazon.co.jp)
ちょうど丸っこい台座がついた延長ケーブルがあったのでこれも購入しました(笑) 
BUFFALO USB延長ケーブル 2.0対応 スタンド付 2.0m ホワイト BSUC20EDWH 
(Amazon.co.jp)
なかなか思ったデバイスIDのものが手に入らないんだけれど、今回はTEMPer1.4という「HIDで認識するタイプ」のものを購入してみました。 
Linuxで使うので付属CDはいりませんが、Windows用のsetup.exeとmsiが入ってます。 
(そちらの動作はよくわかりません)
とりあえずLinux上では、2013年現在だいたいのディストリビューションでちゃんとTEMPer1.4で認識してくれるみたい。いくつかのLinuxで試したけどdmesgはどれもこんな感じでした。
[71495.072061] usb 3-2: new low-speed USB device number 10 using uhci_hcd 
[71495.247636] usb 3-2: New USB device found, idVendor=0c45, idProduct=7401 
[71495.247643] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 
[71495.247648] usb 3-2: Product: TEMPerV1.4 
[71495.247652] usb 3-2: Manufacturer: RDing 
[71495.266149] input: RDing TEMPerV1.4 as /devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input/input1283 
[71495.266458] hid-generic 0003:0C45:7401.09F5: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-0000:00:1d.1-2/input0 
[71495.281195] hid-generic 0003:0C45:7401.09F6: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-0000:00:1d.1-2/input1 
 
なかなか感触良かったので、いろんな情報を探してfedoraやUbuntuやらで試したけど、最終的にたどり着いたのは以下のモジュール&Ubuntu12.04でビンゴ。 (上のdmesgもUbuntu12.04です) 
※CentOS6.4やfedora19が現状最新。全部は試してないけれど、fedora17ではHIDデバイスとして認識までしていたので、たぶんいけるんじゃないかと思います。 
(動いてたマシンをfedora17→Ubuntu12.04に入れ替えた時点で心が折れたので、動作確認はこれだけ^^;)
Setting up TEMPer USB thermometer on CentOS 
http://www.omniweb.com/wordpress/?p=915
こちらの参照元(本家&ダウンロードリンク)は下記。 
・情報ページ: http://www.penguinsunbound.com/User:goeko/Temp_Sensor 
・ダウンロード: http://momtchil.momtchev.com/files/pcsensor-1.0.0-multi.tgz
まずソースをwgetなりでダウンロード。 
# wget http://momtchil.momtchev.com/files/pcsensor-1.0.0-multi.tgz 
# tar zxvf pcsensor-1.0.0-multi.tgz
tgzを展開すると、udev登録用のサンプルがあるので、/etc/udev/rules.d/に突っ込んでリブートします。 
(USBだからドングル差しなおしでもいい?けど、リブート後の動作が保障できないので安全のため。)
# cd pcsensor-1.0.0-multi 
# cat 99-tempsensor.rules 
SUBSYSTEMS==”usb”, ACTION==”add”, ATTRS{idVendor}==”0c45“, ATTRS{idProduct}==”7401“, MODE=”666” 
# cp -p 99-tempsensor.rules /etc/udev/rules.d/ 
# shutdown -r 0
デバイスIDがさっき確認したdmesgの出力にあったもの(0c45:7401)と同じじゃないと駄目です。たぶん。 
2013/8月現在、市場に出ている「TEMper1.4」はこれになってるはず。
それ以外はHIDで認識するなら、デバイスIDを書き換えてみると動くかもしれないですね。 
(中国産なのでお察しください…ですが。でも現状では1.4が最新で、これ以前のものは入手困難っぽい) 
※dmesg以外にlsusbの出力も見てみるとヒントになるかも。
リブートが終わって起動したら、
# cd pcsensor-1.0.0-multi 
# make clean   ※怪しいのでバイナリは一旦消しましょう。 
# make 
# ./pcsensor -c
これで、下記のような結果を吐いてくれれば成功。
2013/08/18 01:46:55 Temperature 31.12C 
 
デフォルトの出力結果です。 
pcsensor.c のprintfをいじれば数字だけとかも吐けるようになりますね。
ソースをいじったあとは、Perlあたりでラッパーを作り、RDBにINSERTするようなスクリプトを組めば長期間のデータも取れるでしょう。 
参考程度ならcronでファイルに吐いてもいいか。 
Cacti使う人も同様にちょっと修正すればいけると思います。
ただ、うちではときどき取得に失敗するので、単純にファイルに吐くだけじゃなくて「駄目なときはリトライ」が必要になるかも?と思っているところ…
(エラー出力のとき) 
USB interrupt read: Resource temporarily unavailable 
Fatal error> USB read failed
でもまあもう一回「pcsensor -c」を叩けばちゃんと結果が取れます。 
延長ケーブルが駄目っていう初歩的なケースもあるようなので、一応マシンのUSBポートに直接刺してみるといいかも。(ただし、ドングル自体が金属で包まれているので、直接ぶっさしたらマザーボードと同じ温度になりそうですね…^^;)
とりあえず、上記でなんとか値が取れるのがわかったので、今後は取得した温度をWebサーバに送ってWebからグラフを見れるようにしたいなぁ、なんて画策をしています。 
あと、IrDAポートも用意してエアコン自動制御とか…夢が広がりんぐ(笑)
とにかく情報が少ないので、少しでも参考になれば幸いです。 
まあ、買ってきても即ゴミ箱行きって事ももありうるので、一応そういう覚悟をしてから買いましょう。 
(中国製だけに…)
にゃー。