太陽光チャージコントローラ 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ソースを解析した方が、目的達成には近道。 のはず。 発電状況取得方法の検証 ということで、…

日本の男性は、働きすぎだ。

男性は、仕事もして家事育児もしてるとイクメンと言われる。 今日書いた記事。/「 #もしも定時で帰れたら」 が切実で日本やばいと思った。 : まだ東京で消耗してるの? https://t.co/CLHvCxxdtG pic.twitter.com/LMS8LjiNAg— イケダハヤト (@IHayato) 2016年12月10日 子供が熱を出しても、奥さんに任せておけばいいんじゃないか?という意識の上司もまだまだ多いらしい。 確かに仕事から疲れて帰って来てから、やるべきことを終わるべき時間までにやることは大変。 でも、それは今の時代、働く子持ち女性でもほぼ毎日当たり前のように、大体のお母さんは、旦那さんの帰りが遅く、誰に褒められる訳でもなくそれを一人でやっている。 終身雇用もなくなり、給与の羽振りも変わり、物価も学費も高くなり。 一馬力では不安が多い世の中になった。 もちろん女性の生き方に、選択肢が増えているプラス面もあるけど。 昔とはもう全然違うのに、男性の働き方は昔と変わっていない。 日本の男性は、働きすぎだ。…

池田勇人さんによる「新しい働き方」勉強会。近い将来「他社」より「機械」との差別化を迫られる未来。

社長繋がりで開催する運びとなった、池田勇人さんによる「新しい働き方」勉強会。 開催場所は静岡県の掛川にある、これまた社長出資のお店でした。 池田勇人さんのブログに、すごい情報量の勉強会資料が惜しみなくアップされているので、ぜひ一読を。 資料アップしました。/ エンジニア派遣会社「リツアン」の野中社長がイーロン・マスク知らなかったので、掛川で講演をしてきました。 : まだ東京で消耗してるの? https://t.co/c58QnqWnvK pic.twitter.com/w6TjbXW2Ps— イケダハヤト (@IHayato) 2016年12月9日 ここで得た学びは多すぎて書き出し切れないので、特に強く印象に残ったキーワードを軸にしたトピックを挙げます。 made by human 機械と比較して作業が遅く、不正確で、長時間労働できない人に代わって、機械がモノやサービスを提供するのが当たり前の未来になるのは確実。 実際、既に倉庫番や物流、資産運用まで人工知能が活用されている世の中。 機械と比較して生産性が著しく低い人間は、社会に「新しい価値」を生み出す必要があると。 今では "made in Japan" や "made in China" のように使われている言葉が、 "made by…

vimのテンプレート機能でコーディングを3倍楽にする方法。

コードを書き始めるとき、毎回同じことを書くのは時間の無駄ですよね。 典型例がソースコードのライセンス条文だったり、HTMLの雛形タグだったり、Markdownの章立てだったりすると思います。 .vimrcを設定する vimであれば、こんな風な設定を.vimrcに書いといて、テンプレートとなるファイルを${HOME}/.vim/templateに置くだけで無駄を省くことができます。 autocmd BufNewFile *.py 0r $HOME/.vim/template/python.txt autocmd BufNewFile *.md 0r $HOME/.vim/template/markdown.txt autocmd BufNewFile *.uml 0r $HOME/.vim/template/plantuml.txt plantumlソーステンプレートを作成する 特にオススメなのがplantumlソースのテンプレート。 こんな形で予め網羅的に書いといて、.vimrcと一緒に適当なVMSにpushしておくと良いです。 ' sequence diagram @startuml hide footbox actor Foo1 boundary Foo2 control…

学習計画を立てる(未)

ただのメモ書きです。 だいぶ溜まってるな・・・。 画像処理、機械学習 OpenCV OpenCVで物体検出器を作る Python Pycon 野球データを使った解析、MicroPython Pythonでよく使われる機械学習ライブラリ 技法 UML Javaで学ぶUML class図 デザインパターン Javaで学ぶデザインパターン 完全コンストラクタパターン 言語 HTML5 HTML入門 CSS school color_zilla C++ EffectiveC++入門 ロベールのC++教室 C Unity 2D/3Dゲームプログラミング入門 猫でもわかる Python Celery タスクキュー boost::python pywin32 PythonからWin32APIを呼び出す他 Flaskチュートリアル PyGame Jinja2 asyncio Pythonにおける非同期処理: asyncio逆引きリファレンス Pythonのジェネレータ、コルーチン、ネイティブコルーチン、そしてasync/await asyncioを用いたpythonの高速なスクレイピング 副業…

快適!全部入りメディアサーバ自作のススメ。

超低消費電力なARMマイコンLinuxサーバとして活用できるRaspberry Pi。 我が家では、既に販売終了している初代のRaspberry Pi 1 Model Aが現役で活躍中です。 そんな我が家の家庭内LAN上に張り巡らせた、超快適環境を提供してくれるサーバ群を紹介します。 というより、そろそろ整理しておかないと、壊れた時に困りそうな気がして、慌てて書き出したというのが正直なところ^^; 提供サービス一覧@Raspberry Pi 低消費電力を活かして、Raspberry Piには常時稼働が必要な、それでいて負荷が少ないサービスを割り当てるのが得策です。OpenVPNは負荷が低いサービスに入るのか…? 一般的なマイコンより高性能とはいえ、さすがにx86 Core2/CoreiなどのCPUには劣るARM。目的が違うのでしょうがない。 そういうわけで、我が家では以下のサービスがRaspberry Piで稼働しています。ディストリは標準的なraspbian。 サーバサイド クライアントサイド 名称 価格 概要 名称 価格 概要 OpenVPN free 家庭内LANに安全にアクセス。 OpenVPN Connect free iOSアプリ。家庭内LANに安全にアクセス。 OpenVPN Connect free Androidアプリ。機能はiOSアプリと同様。 BIND9 free 家庭内LANの名前解決に。…

収穫祭@2016年11月26日 - あまり経験がないヤーコンの食べ方3つとその食感。

今回はただの日記。収穫祭レポートです。 …といっても、写真の野菜たちはそのほとんどがお隣区画の方からの頂き物。ありがたや。 我が家の区画は育ちが悪く、まだ食べられる状態ではありません。特にチンゲンサイ。なんでこんなに立派に育つんだろう…?こういうところで技術の差を感じる。 こちらもお隣さん区画で育てていたヤーコン。大漁すぎて、むしろもっと持って帰ってと、たくさん頂きました。 でもこれ、どうやって食べるの…? ヤーコンとは 外観はこんなんです。 というか、そもそもヤーコンって何?と思って調べてみました。 ヤーコン(英: Yacón、学名:Smallanthus sonchifolius)はキク科スマランサス属(英語版)[1]の多年草。 根にフラクトオリゴ糖(英語版)が多く、甘みがあり、食用にされる。 ヤーコンを「アンデス・ポテト」と呼ぶ例もあるが、同じくアンデス産のジャガイモと紛らわしく、不適当である。 出典:Wikpedia。 畑指導してくれる副市長さんも、アンデスのジャガイモと言ってたなぁ。Wikipediaは不適当と言っているけども。そしてその食べ方も教えてくれました。 ヤーコンの食べ方 主に以下の3通りに調理していただくといい感じだとか。 1. 輪切り/半月切りにして酢醤油でいただく 2.…

DIY家具の設計にAUTODESK製3D CAD Fusion 360を導入したい件。

借りてる部屋の寸法にぴったり合う本棚って、なかなかないんですよね。 セミ・フルオーダーの本棚や家具を作ってくれる工房はもちろんあるんですが、よほどお金に困っていない富裕層以外はちょっと手が出ないし、そもそもそこまでする気にならないし。 嫁も簡単に「作っちゃえば?」と言ってくるので、重い腰を上げて作ってみました。本棚をDIYで。せっかくなので今借りてる部屋にぴったり合わせた寸法で。 手書き設計(落書き)してみる 汚い。・・・まぁ、上のは概略なので。次はマトモです。 棚の背面は空けていて、壁の凹凸に合わせて底と天板の一部に切り欠きを入れています。 あとで出てくる完成品の写真を見れば分かると思うんですが・・・ やっぱりこういうのはタイトルにある通り、3D CADで書いてみたいですよね。 完成予想図を3次元モデルで見られるし、何より最近は3Dプリンタがお手頃価格になってきただけでなく、DMM.makeみたいに会員制で機材を使える場や、FabCafeのようなカフェスタイルのお店も増えてきたので、3D CADスキルを身につけておくと色々と楽しそうです。 DMM.make AKIBAが3Dプリント講座を開講 - https://t.co/zHEhFthmU3 #dmm #dmmmakeakiba #MakersCollege #3dプリンタ #3dprinter #3dプリンティング #教育 #tech #スタートアップ— id.arts (@idarts_jp) 2016年7月30日…

ちょっとしたコマンドラインツールをpythonで作る時に便利なargparseのテストで気をつけるべきこと。

ちょっとしたコマンドラインツールをpythonで作る時に便利なargparseなんですが、位置引数ありparserが出す例外をテストするコードを書いて初めて知ったことがありました。 そのメモ書きになります。 位置引数とは argparseの公式ページにも載っている通り、コマンドライン実行時に必須となる引数のことです。以下引用。 位置引数は次のように作成します: >>> >>> parser.add_argument('bar') parse_args() が呼ばれたとき、オプション引数は接頭辞 - により識別され、それ以外の引数は位置引数として扱われます: >>> >>> parser = argparse.ArgumentParser(prog='PROG') >>> parser.add_argument('-f', '--foo') >>> parser.add_argument('bar') >>> parser.…

呼び出し規約とは?stdcallとはなんぞや?という話。

昔WindowsCEプラットフォームで製品開発していた時も、素のWin32APIを叩いてテストアプリを作ったりしていたけれど、今思うとあまり理解しないままに使って作っていたんだなぁ…と、今更ながら思う。 ARMで言う所のeabiみたいなもんか。関数を呼び出すということ - Web/DB プログラミング徹底解説 https://t.co/Bb6Nw5icCO @sharethisより— takashi ando (@takashi7ando) 2016年10月27日 上のリンク先、「関数を呼び出すということ」なんて超基本じゃん!などと思うなかれ、かなり深いところまで掘り下げて解説されています。 最も具体的で身近な例としては、「Win32APIと標準Cライブラリとでは、スタックの巻き戻し方が違うんだよ」という点です。そうだったんだ!と、目から鱗でした^^; そんな__stdcallの規約、大元の情報は以下のMicrosoft本家ページに記載されています。 Win32APIの呼び出し規約 Cライブラリはこちらです。 Cライブラリの規約__cdecl ちなみに、上記の規約ページでも触れていますが、スマホなどの組み込み機器で確固たる地位を築き上げたARMプロセッサは、インテルのx86プロセッサとは全く異なるCPUなので、当然規約も違います。 検索したら、ARM社ではなく、なぜかMicrosoft の解説ページがトップに出てきたんですが… そのままリンク貼っちゃいます^^; ARM ABI 規則の概要 なんでこんなもん調べだしたのかというと… 今後仕事でWindows上で動かす業務効率化するスクリプトを書く機会が増えそうで、…