Category Archives: USB電力計

USB電力計 サンワサプライ TAP-TST10をLinuxで使ってみた


サンワサプライから発売された「ワットモニターUSB TAP-TST10」というUSB接続タイプの電力計をLinuxで使ってみた。

埜中公博さんの「SANWA SUPPLY TAP-TST10 control tool」を使ってデータ取得しました。
githubにある「taptst10ctl.py」をCentOS6で動作させてみました。
(2013/11/19: 公開場所が変わりました「https://github.com/nonakap/taptst10ctl」。USBのデバイスへのアクセス手法の違いで「taptst10ctl.py」と「taptst10ctl0.py」があります)

# python taptst10ctl.py
Traceback (most recent call last):
  File "taptst10ctl.py", line 42, in <module>
    import usb.core
ImportError: No module named usb.core
#

あー・・・pyusbが入ってないからか・・・
pyusb-1.0.0a2.zipをダウンロードしてきて「python setup.py install」

# python taptst10ctl.py
Traceback (most recent call last):
  File "taptst10ctl.py", line 60, in <module>
    dev.set_configuration()
  File "/usr/lib/python2.6/site-packages/usb/core.py", line 547, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "/usr/lib/python2.6/site-packages/usb/core.py", line 92, in managed_set_configuration
    self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 503, in set_configuration
    _check(_lib.libusb_set_configuration(dev_handle, config_value))
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 403, in _check
    raise USBError(_str_error[ret], ret, _libusb_errno[ret])
usb.core.USBError: [Errno 16] Resource busy
#

「Resource busy」と何か別のプログラムが使っているらしい。

USBRH driver for Linux を CentOS 5 で使う」で紹介されている手法、手動でusbhidの認識を解除してみる方法を行ってみた。

# cd /sys/bus/usb/drivers/usbhid
#  ls -l
lrwxrwxrwx 1 root root    0  7月 17 09:38 2013 4-2:1.0 -> ../../../../devices/pci0000:00/0000:00:12.1/usb4/4-2/4-2:1.0
--w------- 1 root root 4096  7月 17 09:25 2013 bind
lrwxrwxrwx 1 root root    0  7月 17 09:25 2013 module -> ../../../../module/usbhid
--w------- 1 root root 4096  7月 17 09:25 2013 new_id
--w------- 1 root root 4096  7月 17 09:25 2013 remove_id
--w------- 1 root root 4096  7月 17 09:25 2013 uevent
--w------- 1 root root 4096  7月 17 09:25 2013 unbind
# echo "4-2:1.0" > unbind
# ls
bind  module  new_id  remove_id  uevent  unbind
#

これでusbhidを解除できたので、改めて実行。

# .taptst10ctl.py
No.,DateTime,Watt,kWh
1,2013/07/13 07:50,0.0,0.00
2,2013/07/13 08:00,47.0,0.00
3,2013/07/13 08:10,44.8,0.01
4,2013/07/13 08:20,18.5,0.01
5,2013/07/13 08:30,18.5,0.01
6,2013/07/13 08:40,18.1,0.02
<略>
637,2013/07/17 18:00,87.4,2.76
638,2013/07/17 18:10,83.8,2.78
639,2013/07/17 18:20,83.3,2.79
640,2013/07/17 18:30,82.8,2.80
641,2013/07/17 18:40,80.9,2.82
#

ちなみに、時々、以下のような感じで実行に失敗します。
その場合は、再実行すれば、だいたい大丈夫です。

# ./taptst10ctl.py
Traceback (most recent call last):
  File "./taptst10ctl.py", line 92, in <module>
    data = dev.read(ENDPOINT, 17, intf, 1000)
  File "/usr/lib/python2.6/site-packages/usb/core.py", line 654, in read
    self.__get_timeout(timeout)
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 559, in intr_read
    timeout)
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 641, in __read
    timeout))
  File "/usr/lib/python2.6/site-packages/usb/backend/libusb10.py", line 403, in _check
    raise USBError(_str_error[ret], ret, _libusb_errno[ret])
usb.core.USBError: [Errno 110] Operation timed out
#

USB電力計 サンワサプライ TAP-TST10を分解してみた


サンワサプライから発売された「ワットモニターUSB TAP-TST10」というUSB接続タイプの電力計っぽいのの情報を調べようとしていたが行き詰まった。
仕方が無いので、分解してみることにした。

ごく細のトルクスねじを4本外すと、こんな感じで2つに割れます。
IMG_0199s

液晶を外すとこんな感じです。
IMG_0200s

液晶と基盤を結ぶ端子とかケーブルが見当たらないのですが、どうやって接続されているのかよくわかりません・・・

基盤の下はこんな感じ
IMG_0202

IMG_0205

こんな感じで、基板上には「Prodigit」というチップがいくつか載っていました。

その他、基板上にあるシルク印刷

基板:「P/N 652205901 rE」

AC入力のあたりに以下の記載
F2=15A/250V/99C
E310726
CH-D
94V-0

重要そうなチップ表面
・PRODIGIT IC045
・ATMLH216
・PRODIGIT IC031

ここらへんから情報を調べてみると、博計電子(Prodigit Electronics)というものが出てくる。

ここの製品一覧をみるとサンワサプライ TAP-TST5にそっくりな2000MS12 100V / 50Hz ( Japan Type)とかがある。

アメリカ法人のPower Monitor製品一覧にもTAP-TST5相当の「8-in-1 Precision e Power Monitor ( Model 2000M Plug-in Power Monitor )」のページがある。

よって、おそらく、このTAP-TST10もProdigit社開発だと思われるが、同等製品は見当たらなかった。

USB電力計 サンワサプライ TAP-TST10のWindowsでの利用方法


サンワサプライから発売された「ワットモニターUSB TAP-TST10」というUSB接続タイプの電力計っぽいのをAmazonで購入した。

Windowsで使う場合の話を書くのを忘れていた。

TAP-TST10をWindowsにつなぐと以下の様な感じで認識される。

devman-001
devman-003
devman-002

そう、特殊なドライバ無しに、認識される。

では、どうやって、計測したデータを取り出すのか?

専用のアプリケーションを使って、計測データを取り出すことになる。
gra-40days

↑は、2日ちょっといろいろ通電させてみた後に、アプリで計測データを拾ってみたところ。
「計測データ」ボタンを押すと、TAP-TAT10内に保存されている計測済みのデータを収集し、このようなグラフにしてくれるのはいいのですが、横軸(X-Axis)が「40日」で、縦軸(Y-Axis)が「1500ワット」なんて設定になっているところに、「3日」と「100ワット以内の消費電力」なもんだから、小さくてよく分からない。

gra-7days

「7日」「300ワット」にすると↑のような感じになります。

上記のインタフェースを見ればわかるように、基本的には「計測済みデータの表示」用のアプリケーションです。

「いま使っている消費電力は、ずばりいくら!?」

という疑問には答えられないものになっています。

このアプリのスゴイところは、なんと、このご時世にVisual Basic 6.0で作成されているということ。
なので、アプリのインストーラがVB6.0関連DLLをインストールしてきます。

いやー、2013年にもなってそんなソフトがあるとは思いませんでしたよ。
appli
しかも、今時、program files以下に、収集したデータをMDB形式で保存ですよ!

まとめ
・Windows上ではHIDデバイス認識となり、特殊なドライバは不要
・特殊なアプリを使わないと収集したデータを取り出すことはできない
・アプリに、リアルタイム表示機能は搭載されていない
・データ収集間隔は「10分」。変更できるかどうかは不明
・初回電源オン時から強制的に10分カウントが開始される模様
・専用アプリはVB6.0で作られてる

参考:csv出力の内容

No.,DateTime,Watt,kWh
    1,2013/07/13-06:37:11,0,0
    2,2013/07/13-06:47:11,47,0
    3,2013/07/13-06:57:11,44.8,0.01
    4,2013/07/13-07:07:11,18.5,0.01
    5,2013/07/13-07:17:11,18.5,0.01
    6,2013/07/13-07:27:11,18.1,0.02
    7,2013/07/13-07:37:11,18.5,0.02
    8,2013/07/13-07:47:11,18.7,0.02
    9,2013/07/13-07:57:11,17.9,0.03
<略>
  486,2013/07/16-15:27:11,59.6,0.78
  487,2013/07/16-15:37:11,60.3,0.79
  488,2013/07/16-15:47:11,59.5,0.8
  489,2013/07/16-15:57:11,60.1,0.81
  490,2013/07/16-16:07:11,59.6,0.82
  491,2013/07/16-16:17:11,60.1,0.83
  492,2013/07/16-16:27:11,61.1,0.84
  493,2013/07/16-16:37:11,59.9,0.85
  494,2013/07/16-16:47:11,60.2,0.86
  495,2013/07/16-16:57:11,60.5,0.87
  496,2013/07/16-17:07:11,60.5,0.88
  497,2013/07/16-17:17:11,61.5,0.89

USB電力計 サンワサプライ TAP-TST10をLinuxにつなげてみた


サンワサプライから発売された「ワットモニターUSB TAP-TST10」というUSB接続タイプの電力計っぽいのをAmazonで購入した。

ちょうどタイミングが良かったらしく、送料込みで 6082円でした。
(Amazonマーケットプレイス:NANOS-S。青森県弘前発送。発注から発送まで2日弱、到着まで+1日)

Windows8につなげたら、標準のHIDドライバだけで認識。
専用アプリを使うと、測定済みのデータが収集できる、という感じのものだった。
リアルタイム計測の表示は、専用アプリ内には見当たらなかった。

さて・・・Linuxにつなげてみますか!!

# dmesg | tail -4
usb 2-2: new full speed USB device using uhci_hcd and address 2
usb 2-2: configuration #1 chosen from 1 choice
drivers/usb/input/hid-core.c: timeout initializing reports
hiddev96,hidraw96: USB HID v1.10 Device [Weltrent Semiconductor, Inc. HID Device] on usb-0000:00:1d.0-2
# lsusb | grep Weltrend
Bus 002 Device 002: ID 040b:2201 Weltrend Semiconductor
#

なぜか「Weltrend Semiconductor」と「Weltrent Semiconductor」の2種類の表記がある。
さらに詳細をlsusb -vで見てみると下記の通りだが、検索してみたところ「Weltrend Semiconductor」が正当のようだ。

# lsusb -v -s 002:002
Bus 002 Device 002: ID 040b:2201 Weltrend Semiconductor
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x040b Weltrend Semiconductor
  idProduct          0x2201
  bcdDevice            0.02
  iManufacturer           1 Weltrent Semiconductor, Inc.
  iProduct                2 HID Device
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           50
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      71
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
        UNRECOGNIZED:  09 21 00 01 00 01 22 47 00
#

単純にUSBで接続するにあたり、「USB HID Controller WT65xxシリーズ」を使っているだけのようで、このベンダは電力計とは直接つながりはなさそうな感じである。

# cat /proc/bus/usb/devices
<略>
T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=040b ProdID=2201 Rev= 0.02
S:  Manufacturer=Weltrent Semiconductor, Inc.
S:  Product=HID Device
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
E:  Ad=01(O) Atr=03(Int.) MxPS=  64 Ivl=1ms
<略>
#

ざっと検索してみたところ、「ID 040b:2201」というデバイスの例は見当たらないようだ。
(ID 040b:2011とかはある)

USBプロトコル解析とかになると、機材無いからできないねん・・・

USB電力計 サンワサプライ TAP-TST10を買った(が未到着


AKIBA PC Hotline!に「測定データがPCで確認できる安価な電力計が発売、実売約7千円」という記事が掲載されていた。

サンワサプライから「ワットモニターUSB TAP-TST10」という商品が発売されている、というものである。
TAP-TST10_MA

丁度、このblogを動作させているサーバの消費電力が気になっていたところだったので、非常に興味を惹かれて周辺情報を調べてみた。

「microUSBコネクタでPCと接続可能」で「対応機種:Windows 7(64bit/32bit)・XP」ということなので、ドライバのVIDとか調べれば、他のOSへの流用ができそうかわかるかなぁ、と期待して、ドライバを探してみたのですが、サンワサプライのページには掲載がないという・・・
添付のCD-ROMを見るしかなさそう。

じゃぁ、レビューがあるかを調べたけれど、発売されたばかりで何もなし。

が・・・Amazonで、送料込み 6082円なんて価格で販売されてるじゃないですか

ちょうど、アマゾンギフト券が余ってたところだったので、とりあえず発注してしまいましたw

Amazon自身が取扱じゃないので、いつ発送になるのかが、わかりませんが、届き次第、調査結果を報告する予定です。


関連記事として、以下を書いています。
分解してみた
Windowsで使ってみた
Linuxでの認識状況
Linuxで使ってみた