Posts on javascript

太陽光チャージコントローラ TS-MPPT-60 のステータス取得用Pythonパッケージを作ってみた。

自作した自家発電機の状態を監視するシステムの根幹部分をどうやって作ったか、の記録。 コントローラがブラウザに返すhtml/jsをリバースして作ったんですが、一応メーカのエンジニアに問い合わせてOK頂いたので、安心して公開することにします。 まずはチャージコントローラ選別 「発電状況を外部から取得できるコントローラ」って、意外と少ないんです。少なくとも個人で手が出る価格帯の範囲では。 外部から取得できないなら、センサー類を自前で揃えて自作するしかないのだけど、家電が使える容量のシステムだと流す電流量が多いので、それに耐えるセンサーとなると… コストが嵩むことになります。そもそも入手できないかも…。 そこでこのTristar社製チャージコントローラTS-MPPT-60です。 日本円で10万円程度にも関わらず、標準でEthernetポートを備えている上、HTTP経由でバッテリ電圧、太陽光パネル電圧、充電流量、放電流量、ヒートシンク温度に至るまで様々な情報を得ることができる、お得感満載な製品です。 太陽電池充放電コントローラー TS-MPPT-60posted with カエレバ 電菱 Amazonで調べる楽天市場で調べる この情報を収集する手段を用意し、収集したデータをXivelyといったクラウド上のデータベースに記録してグラフ化したい、というわけです。 Tristar社製 TS-MPPT-60 API仕様 TS-MPPT-60から得る情報や、その取得方法の仕様はTriStar-MPPT Modbus specification documentを見れば分かるよと、Tristar社のエンジニアの方が教えてくれたんですが… 結構な文量な上、まさに「仕様書」って感じで読みづらい。 ならば、ブラウザ経由でチャージコントローラにアクセスした際に参照するJavascriptソースを解析した方が、目的達成には近道。 のはず。 発電状況取得方法の検証 ということで、…

発電状況を可視化してインターネット経由で参照したい、特異な人のためのノウハウ。

自家発電し始めたら、近未来的なかっこいい絵面で発電状況を管理したいと思ってたんですよね。 で、作ったのがこれ、発電状況管理用ダッシュボードです。 上段が太陽光パネルからの電流量(ArrayCurrent)と充電流量(ChargeCurrent)を示しています。下段は太陽光パネルの電圧(ArrayVoltage)、蓄電池の電圧(BatteryBoltage)、蓄電池の目標電圧(TargetVoltage)です。 さらに下の方に行くと、単独のグラフで見たいパラメータを並べてます。チャージコントローラのヒートシンク温度とかですね。 こういったデータを簡単にグラフで可視化してくれるオンラインサービスがいくつかあります。 実際に使ってみたのは以下の3つで、最終的には最も使いやすく、可視化後の見た目が良いkeenioに落ち着きました。 keenio m2x xively 参考までに、xivelyだと以下のような無機質なグラフになります。 xivelyは、挙げた3つのサービのなかで最も簡単に可視化できる利点を持ってますが、逆に何も変更できないのが欠点です。上の無機質なグラフ一択なんです…。 更に致命的な欠点もあって、時々過去データを紛失します。その上、10分間隔なんて長いインターバル置いてデータを送っていても、時々エラーで受け付けてくれません。 といった感じで、他に良いサービスはないものか… と探していたら、m2xというサービスを見つけました。 m2xだと以下のようなグラフになります。 サーバは安定しているようなんですが、この見た目がなんとも…。 xivelyより後発のm2xでも満足できず、さらに後発のkeenioに辿り着きました。 keenioは、xivelyやm2xとは違って、オンラインのデータベースを提供するようなサービスです。グラフで可視化してブラウザから参照できるような仕組みは、基本的に提供してくれません。 が、…