tizen.moe

tizen.moe

USB赤外線リモコンアドバンスをLinux (ubuntu) で使うメモ (4)

blog.tizen.moe

f:id:moguriso:20170711102202p:plain

ボタン押す度に意味なく画面遷移してしまっていたのを直した

<th>
    <form name="light-on">
        <input type=button value="電灯(Full)" onclick="lightOn()">
    </form>
</th>

こんな感じでhtmlではjsのmethod呼ぶだけにしてjsの中身でガチャガチャ呼ばせる。

public_html/cmd.js at master · moguriso/public_html · GitHub

responseは来てるはずだけど自分で定義したprintデバッグみたいなもんなのでどうでもいい(少なくとも今は。。。)

マルチファンクションボタンを追加

before:<会社行く時> エアコンOFF押して、扇風機OFF押して、電灯OFF押す
after:<会社行く時> 出社ボタン押す(↑を中で勝手にやる)

そもそも毎度ボタンを3つも押すようなI/Fにした奴が悪い。・・・と思っても既製品はそうそう直せないのでそう言う点(のみ)良い点。

至近にやりたい事

  • 現在の部屋の状態をファジーに観察するUI(flash動画のリアルタイムストリーミング代替)の用意
  • イケてないI/Fの改善、スマホにちゃんと対応

もうちょっと後でも良いのでやりたい事

  • センサー使って温度/湿度等をセンシング
  • センシング情報を用いてエアコン/扇風機の自動制御
    • 風量系で”扇風機OFF”認識時に風量が上がる場合はONと判断して扇風機をOFFする(扇風機のリモコンはON/OFF信号共通なので。。。)
  • 人感センサで人検知
  • センシング情報を用いて電灯ONとかカメラON/OFFとか
  • HDレコーダーのHDMI画面をキャプチャして録画再生画面になっていたら自動でチャンネル表示に戻す
    • 超個人的な録画事情による

更に後で良いのでやりたい事

  • 操作部分の音声制御化
    • スマホ取り出したりマウスでボタンポチとか超イケてない


and so on...

特定のHDDだけエラーを吐きまくる(2)

blog.tizen.moe

続き。

tl;dr

必要だった対応は2点。

  1. 拡張カードSATAポートに繋いでいた一部ケーブルを別のSATAポートに替える→エラーは未発生に
  2. /etc/fstabに/dev/mdxと直書きしていたのをuuidで記述するように修正→しないとOS起動でこける

対策3:電源分岐ケーブルを買い直す

結論:再現

対策4:電源の分岐を少なくする

そもそもSATA1本から4分岐させているのも悪い?

結論:再現

対策5:SATAの根本を別のところに替える


増設したカードの一部ポートがオカシイのではないかという被疑。幸い、PCIカード上のSATAが1個空いていた+バックアップとして載っている元OSドライブもボチボチ不要になっているので2箇所を替えてみてお試し。

結果:今のところATA13のエラーは再現しなくなった。

ポートが悪いのかホコリでも噛んでいたか・・・

追加対策:fstabの記述をべた書きからUUID記述に修正

(※)冒頭記載の通りこれを追加しないとOSが正常起動しなくなる

USB HDDをソフトウェアRAIDでミラーリングして家庭内ストレージを作った - unknownplace.org

対応の順番としては

  1. mdx を mdadm --createで一度全部作り直す
  2. update-initramfs -u
  3. ファイルシステム作ってマウント試す→問題ないことを確認
  4. mdxのuuidをblkidで調べて直書きの箇所をUUIDに修正
  5. /etc/mdadm/mdadm.confにUSB側のは書かない(これも重要)

sudo rebootしても正常起動出来るようになった。しんどかった。。。orz

特定のHDDだけエラーを吐きまくる(1)

具体的には以下のエラーを吐きまくって遅い。

[ 854.902330] ata13.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 854.902340] ata13.00: failed command: WRITE DMA EXT
[ 854.902350] ata13.00: cmd 35/00:40:00:08:f4/00:05:01:00:00/e0 tag 18 dma 688128 out
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[ 854.902355] ata13.00: status: { DRDY }
[ 854.902361] ata13: hard resetting link
[ 855.230255] ata13: SATA link up 6.0 Gbps (SStatus 133 SControl 310)
[ 855.234587] ata13.00: configured for UDMA/33
[ 855.234592] ata13.00: device reported invalid CHS sector 0
[ 855.234596] ata13: EH complete

終いには他のHDDを巻き込むのか raid5 の4台が全部removed。(なお、この手のエラーが出るHDDは大体故障しているというのがもっぱらの情報。。。)

対策1:内蔵に替える

もともとUSB接続のHDDケースに入れていたので内臓に変えてみた。

暫くは安定していたみたいに見えたのに急に不安定になって他のHDDも同様のエラーを吐き始める。よくよく確認したら内蔵用に買ったSATA電源ケーブルがかしめ部分が甘かったのか1本抜けてた


(↑の白い側の電源(黄色)が外に出てた。これはやばい。。。)

対策2:HDDの交換

対策1中は「1台だけが故障被疑」だと思っていたので、取りあえず1台買い足した

のですが、対策1中に電源脱落して全HDD認識しなくなったり、件のエラーが全HDDで発生したりしたので別のHDDをさらに買い足した

が、同じ内臓のとろこに繋いだら同じエラーが出た模様。( ´∀`)Σ⊂(゚Д゚ ) なんでやねん!

取りあえずUSBケースに替えたら出なくなった。ここで怪しいのは電源だろうか。。。

まとめ

  • 故障被疑のHDDはさっさと取り外そう
  • 強引に安物ケーブルで内蔵電源分岐するのも良くない
  • 安物買いの銭失いなので信用しきれないリファブリッシュものは買うべきではない

。。。。orz

地味にQoLを上げる日用品

実は一人暮らしをはじめた直後くらいに買ったもの。特に梅雨時期などで外に干せない時期に大変重宝しています。が、1点ウザイ点が3.5Lタンクが梅雨の時期には直にいっぱいになって毎回捨てる必要があります。ちょっと高い除湿機なら連続排水(捨てなくても常時排水口とかに垂れ流す機能)がついてるのになぁ、、、と思っていたら、この子にも普通に付いてました。

monostudio.jp

タカギ(takagi) クリア耐圧ホース 3m PH08015CB003TM
タカギ(takagi)
売り上げランキング: 165

大は小を兼ねると思って3m買いましたがぶっちゃけ1mで十分でした。(切って使ってます。。。)

・・・何かもう1つ書こうと思ったのに忘れてしまった。。。。

寿命を買い取ってもらった。一年につき、一万円で。

奇妙なタイトルだと思ったらとてもおもしろい。

原作もおすすめ。

あとがきの作者コメントがとてもいい

      • 追記

オススメされたWeb版も読んでみました*1

三日間の幸福

*1:あってるかどうか不明ですが・・・

USB赤外線リモコンアドバンスをLinux (ubuntu) で使うメモ (3)

f:id:moguriso:20170704001344p:plain

blog.tizen.moe

取りあえずコマンドで各種リモコンデータを操作出来るようにしたのでWebから操作出来るようにI/Fを追加した。

sgykfjsm.github.io
qiita.com

概ね↑のコードを参照させていただいた。(と言うか、ほぼそのまま、、、orz)

github.com

↑のURLを適当にでっち上げたhtmlから呼ぶだけ

いろいろ問題があるので後でなんとかしたいけど必要最低限やりたいことは出来るようになった。部屋のリアルタイムストリーミングはffserver/ffmpegで適当にWebカメラの内容をswfに変換して出してるだけ。*1この角度なら扇風機とエアコンがついてるかもよく分かる、と。(ゴテゴテだけどちょっとIoTっぽくなった)

エアコンの温度と扇風機の強さは今は変更出来ません(そこも学習させればいいだけではありますが・・・もう良いメンドイ、眠い。。。。)

*1:気が向いたら別にPostするかも

USB赤外線リモコンアドバンスをLinux (ubuntu) で使うメモ (2)

blog.tizen.moe

ちょっとした問題点の調査と解決。

NEC LEDシーリングライトの信号が学習できなかった

うんうん唸って結局こちらを拝見し

qiita.com

どうもミソは↓の一文だった模様。

リモコンから出力される波形は38kHz(=約26us)なので,これよりも小さいサンプリング周波数でサンプリングします.

github.com

こちらのコマンドを拝借していたので、取得時の周波数はデフォルトで38kHzになっていてこれだとチト早すぎる模様。

$ ./bto_advanced_USBIR_cmd -r -f 36000

とか指定して取れば良いはず。が、

$ ./bto_advanced_USBIR_cmd -r -f 36000
エラー: -fオプションは-dオプションまたは-rオプションを指定した場合のみ使用できます。

と、怒られる。どうもコード読むと条件判定間違ってる臭いので↓のパッチを当てる

diff --git bto_advanced_USBIR_cmd.c bto_advanced_USBIR_cmd.c
index 955b295..223c975 100644
--- bto_advanced_USBIR_cmd.c
+++ bto_advanced_USBIR_cmd.c
@@ -424,7 +424,7 @@ else if(((!type_flag)&&(code_flag||Code_flag))||(((!code_flag)&&(!Code_flag))&&t
   fprintf(stderr, "エラー: -tオプションと-cまたは-Cオプションとは必ずセットで指定して下さい。\n");
   exit(1);
 }
-else if(((!data_flag)||(!read_flag))&&freq_flag)
+else if(((!data_flag)&&(!read_flag))&&freq_flag)
 {
   fprintf(stderr, "エラー: -fオプションは-dオプションまたは-rオプションを指定した場合のみ使用できます。\n");
   exit(1);

これで取ったものと -f ツケないで取ったものだと2byte目とか明らかに違う。が、 -t NEC -c `cat xxx.txt` だとNG(反応しない)

$ ./bto_advanced_USBIR_cmd -d `cat xxx.txt`

なら反応した。ナンデダロ~ォ♪*1ナンデダロ~♪

*1:乂(゚д゚ ;)≡(; ゚д゚)乂