2017-09-03

Raspberry PiとLIRCによるエアコン操作でハマったこと

先人のあとを辿る。

エアコン信号は長いので、irrecordではできない。

mode2で信号を記録して、整形後にconfファイルに貼り付ける。

スクリプトを作って変換してもいいけど、

 -mオプションをつければ、最初から貼り付け可能フォーマットで保存できる(ただ、後述の分析時はつけないほうがよい)

ここまでは良かった。

ところが、エアコン以外は操作できるのに、肝心のエアコンダイキン製)は操作できない。

原因は記録時にpulseとspaceの割合がずれること。

エアコンデータ量が多いためか、周期(ticks?)が短く、

ズレの影響が許容値を超えるんだと思われる。

本当は1:1になるべきところが、5:3とかになる。

なので、pulseとその次のspaceを足して2で割った値を並べ、あるべき時間を推測する。

まりデータビットは1:1か1:3なので、そうなるように補正してやる。

大体一定時間だけずれているので、適当代表値を決めて、

データに対して、シフトさせるだけでも動く場合が多い。

(pulse'=pulse-⊿、space'=space+⊿)

ただ、ときどき変な長さが交じるので、

ちゃんと長さを読み取って、あるべき時間を吐かせるとなお良い。


その他

  • Raspbian (Stretch) でのLIRC設定は→に書いてある。助かる。http://raspibb2.blogspot.jp/2017/
  • mode2で記録するときに、頭に長いspaceがついてないやつは記録失敗している。
  • confファイルraw codeがちゃんと奇数個になってないと動かない。一箇所でも間違っていると、unknown remote: "xxxx"って言われるので、わかりにくい。


おわり。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん