2012年09月08日

外出先で自宅エアコン電源制御

 たまにはAndroidアプリから離れたネタを書こうと思います。

 もう10年ぐらいまえから、外出先から自宅のエアコンの電源を入れることについての計画がありました。この度やっと着手し、一応の完成を見たのでここに書いていきます。

 きっかけは次の記事を読んだことです。

 iモードから自宅のエアコンなどを管理できる「留守モード」

 ここに、

 電源のON/OFFなどをエアコンと通信する際には、リモコンのように赤外線通信で行なうのではなく、「あまり知られていないが、多くのエアコンに装備されている」(担当者)という“HA端子(JEM-A規格)”を通じて行なわれる。


 と、書かれています。これを見た瞬間に、「これは使える!」と思ったものです。

 しかし、HA端子の詳細な仕様や、肝心の自宅エアコンのどこにHA端子があるのか分からず、放置していました。

 当時はエアコンが1台でしたが、引っ越して2台になり、その2台目を分解清掃していたところHA端子を発見したので、着手できた次第です。

 ちなみにHA端子の詳細仕様は、「きっとこんな感じかな?」で作っています。流す電流値やパルス幅などが適当です。

 システムブロック図は以下のようになります。

airconcon_block_diagram.png

 それぞれの要素は、その世界の人には基本的な事柄なのですが、広く薄くの知識が必要なので、すべてを理解して自作するのは難しいかもしれません。

 何回かに分けて、ちょっとずつ説明していこうと思います。



posted by tech4u at 23:34| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2012年08月27日

spモードメール受信BOX 2.30

 spモードメール受信BOX 2.30 をリリースしました。

 修正点は画面遷移の変更です。
 今までは、種類を選ぶ→アイコンを選ぶ→詳細設定 でした。ここで、間に「アイコンを選ぶ」が入るのが個人的にどうにも違和感があり、修正したいと思っていました。
 今バージョンからは、種類を選ぶ→詳細設定 で、詳細設定の中の一つの設定項目として、アイコンを選ぶことができます。
 また、アイコンをユーザーが選ばずとも、それなりの見た目のアイコンがデフォルトで選択されています。(※それなりと思うかは個人差があります)

 そのほか、
・背景の色が明るめになった
・spモードメールがインストールされていない場合に表示されるダイアログのアプリリンクが、旧マーケットからPlayストアへのリンクになった
 など、非常にマイナーな修正があります。

 また、内部を大幅にリファクタリングし、自分好みのソースに仕上がっています。これはユーザーには関係ないですね。自分的には大幅変更なので、バージョンを2.24から2.30に飛ばしてみました。


 画面遷移を変更したのにはもう一つ理由があります。それは、新規メールショートカット作成の改善です。

 新規メールショートカットでの要望に、アドレス帳を参照したいというものがあります。しかし、個人情報保護の観点から、アドレス帳参照権限のあるアプリは敬遠される傾向もあります。この矛盾をどう解決するか悩んでいました。
 そんな折、spモードメールの5400(2012/3/5)で、共有機能が追加されました。この共有から、本アプリの新規メールショートカット作成につなげられれば便利だと思ったのです。
 spモードメールアプリで新規メールのひな形を作り、そこから共有で本アプリに飛ばすと、その内容の新規メールショートカットが作成されるというアイデアです。アドレス帳参照はspモードメールアプリ側でやってもらおうという魂胆です。これで、アドレス帳参照権限をつけずに、間接的な形でアドレス帳参照が可能になります。
 しかし、今までの画面遷移に繋げるのは無理があります。どうしても画面遷移をいじる必要があります。
 画面遷移の変更は思いのほか大変で、今まで面倒で放置してました。
 今回、やっと重い腰を上げて修正に至りました。

 ただ、肝心の共有を受ける機能は未実装です。
 現在、絵文字入力に非対応ですが、共有を受けると絵文字やデコメが来てしまいます。
 その場合、どう処理すべきか、が、大きな課題です。
posted by tech4u at 16:50| Comment(0) | spモードメール受信BOX | このブログの読者になる | 更新情報をチェックする

2012年07月24日

spモードメール通知 5800.00

 spモードメール通知 5800.00 をリリースしました。

 GALAXY NEXUS SC-04D を 4.1にアップデートしたら動かなくなった旨、報告がありましたので、その修正です。ついでに、L-01Dでも動くようになったかもしれません。

 以下、修正の技術的な話を書きます。

 SC-04DにてSQLiteのDBファイルを見ると、L-01Dと違い -journal というサフィックスが付いたファイルが生成されます。L-01Dは前に書いた通り、-walと-shmが生成されます。これらがある場合は、このファイルにもパーミッションを与える必要があります。パーミッションが無いと、DBのオープン時に例外が発生してしまいます。

 前回は単にパーミッションを与える操作だけして、失敗しました。その後のDB内容変更を読み取れませんでした。

 今までは動作中はDBを開きっぱなしにする仕様でした。これは処理の軽量化のため、ひいては省消費電力のためでした。(WEBアプリをやっていると、DBのオープンクローズのオーバーヘッドが非常に気になってしまうのです。)

 開きっぱなしが問題なのではと思い、今回からは開いて読んだらすぐ閉じるようにしました。

 ポーリングでの監視はファイルのタイムスタンプを見ており、タイムスタンプが変わった時だけDBの中身を見に行きます。このためアイドル時(メールが来ないとき)の処理時間(すなわちバッテリ消費量)は変わらないです。

 今回の改修で、多くの最新機種に対応できたのではないかと考えております。

posted by tech4u at 00:32| Comment(13) | spモードメール通知 | このブログの読者になる | 更新情報をチェックする