homebridgeの一部が不具合
便利に使っている音声制御機能、しかし昨日から照明が消えない。google-home ではなく、元の Apple の Homeアプリで動かすと、アイコンに ! マークが付いている。ブラウザのリモコン機能は動くので、赤外線の光が届かないのかと思って気づくのが遅れた。(ブラウザ版は raspberry-pi でなく、自宅サーバで動いている)
原因は、raspberry-pi を stretch から buster に更新して、python の設定がおかしくなったみたい。
$ /usr/local/bin/broadlink bed-light power
Traceback (most recent call last):
File "/usr/local/etc/python-broadlink/cli/broadlink_cli", line 8, in <module>
import broadlink
ModuleNotFoundError: No module named 'broadlink'
しかたがないので、python-broadlink を入れ直し。default の python が 2.x 系か 3.x 系かの違いが原因のようなので、明示的に python3 系でインストール。
$ sudo install python3-dev python3-pip $ sudo pip3 install broadlink
Raspberry Pi buster 更新でトラブル
自宅の Raspberry-Pi を buster に更新してみた。
定番の /etc/apt/sources.list の stretch を buster に書き換えて、
$ sudo aptitude update ; sudo aptitude safe-upgrade 大量にインストール... $ sudo reboot
しかし、起動時に eth0 も認識せずに、emergency mode になってしまった。
root パスワードでログインし、手作業で eth0 を認識させて…。
原因としては、raspi-copies-and-fills が原因のようなので、削除。
$ sudo aptitude purge raspi-copies-and-fills
bind9でfilter-aaaaがpluginになる
自宅サーバを使っていて、raspberry-pi の更新をかけていたら、IPv6アドレスにつながらないトラブル発生。
我が家では、上流が IPv4-only だけど、自宅内の機器間のに IPv6 も使えるようにしている。このため、DNS の設定では、bind9 に、filter-aaaa-on-v4 の設定を加え、IPv4 の機器からの問い合わせには、IPv4 のみを返答することで、対応していた。
しかし、改めて “nslookup www.google.com 192.168.xx.xx” を実行したら、IPv4からの問い合わせの癖に、しっかり IPv6 が返ってきている。
調べてみると、bind9 (9.14)から filter-aaaa 機能は plugin になるみたい。んで、自宅サーバは 9.11→9.16 により filter-aaaa がoffになったのが原因…と思ったけど、syslog をみると “–enable-filter-aaaa”付きでcompileされてるし、”option ‘filter-aaaa-on-v4’ is obsolete and should be removed” と表示されてるから、現状では、まだ使えているはず。
ひとまず IPv6 オフ
ラズバイは、ひとまず下記の設定で、IPv6 をオフにしておく。
$ sudo /etc/sysctl.conf ((下記を追加)) net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 $ sudo sysctl -p
これは、IPv6 が戻ったら、元に戻そう。
bind9 に plugin の filter-aaaa 設定
plugin になったら、下記のような設定をするようだけど、うまくいかないので近日中に要対応。
$ sudo vi /etc/bind/named.conf.options
plugin query "/usr/lib/x86_64-linux-gnu/named/filter-aaaa.so" {
filter-aaaa-on-v4 yes ;
filter-aaaa-on-v6 yes ;
filter-aaaa { any ; }
} ;
homebridge-config-ui-x を入れる
Appleの家電制御のためのHomeKitと互換性のあるソフト homebridge だけど、以前より家電の赤外線リモコンで活用しているが、google home との連携もさせたくって、homebridge-gsh を入れようとしたが、nodejs のバージョンが古く、インストールに失敗していた。
Google Home Mini で家電を制御するために、iPhone に eRemote 用のアプリを入れて、制御もしているけど、テレビなどの電源ボタンがトグル動作で、ON/OFF を正しく認識しないので、操作性が悪い。homebridge では、テレビにつけた Raspberry-Pi から、cec-client を使って、電源操作や入力切替操作が行えるので、基本は homebridge ベースに切り替えたい。
インストール
今回、nodejs のリポジトリを nodejs の本家を使うように設定して、nodejs を最新の 12.x に上げる。合わせて、設定ユーザインタフェースが便利な、homebridge-config-ui-x を入れてみた。
# リポジトリを登録 $ curl -sL https://deb.nodesource.com/setup_12.x | sudo bash - $ sudo aptitude update ; sudo aptitude safe-upgrade # Node.js のインストール $ sudo aptitude install -y nodejs $ sudo npm install -g npm # homebridge-config-ui-x のインストール $ sudo npm install -g homebridge-config-ui-x
config-ui-x を使えば、config.json の編集機能があるし、その編集も各モジュール単位で編集もできるので便利。一部のモジュールは、config.json で触る必要があって、その切り分けで手間取った。
この Web-UI では、スイッチの操作で時間のかかる処理のコマンドで、一部動きがおかしいのもあるけど、スマホ版だと問題なく動くようなので、この画面はあくまで設定用かな。
サーバダウン
朝起きて、”OK, Google” と叫んでも、”WiFiが繋がっていない”とのエラー。確認すると、サーバが落ちている。サーバでDHCPも動かしているので、サーバが落ちると家の中のネットワークが全部動かなくなる。それらしい時間 2020/08/20,01:15 頃の syslog などを確認するが、心配な log もあるけど、通してみると定常的な spam 系のアクセスっぽいので、原因不明。
サーバもそれなりに長期間運用しているので、新たに /var/log/trouble というフォルダを作って、syslog, messages, access.log, error.log などをコピーしておく。
WordPress 5.5 を適用
WordPressを触っていたら、version 5.5 が公開となったみたい。
新しい機能なのか、編集画面に URL 張り付けただけで、↓うまく引用してくれらぁ。
homebridge-peopleの設定
homebridgeの記事を探していたら、homebridge-people を見つける。ping の結果を、人感センサーの ON/OFF 情報として扱うことができる。ping のホスト名をスマホのIPアドレスを指定すれば、自宅に居る/居ないとして把握できる。
$ sudo npm install -g homebridge-people
$ emacs .homebridge/config.json
"platforms": [
{
"platform": "People",
"threshold" : 15,
"anyoneSensor" : false,
"nooneSensor" : false,
"webhookPort": 51828,
"cacheDirectory": "./.node-persist/storage",
"pingInterval": 10000,
"ignoreReEnterExitSeconds": 0,
"people" : [
{
"name" : "斉藤徹",
"target" : "iphonex-tsaitoh",
"threshold" : 15,
"pingInterval": 10000,
"ignoreReEnterExitSeconds": 0
}
]
}
]
本当は、ホームハブを導入することで、Home のオートメーションと連動させて、○○が家に帰ったら、○○するといったことができるんだけど、ホームハブが無いのでできない。そうなってくると、HomePod が欲しくなってくる。











