ホーム » コンピュータ » Linux (ページ 9)

Linux」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

homebridge用にnode.jsの更新

家電制御用に動かしている Raspberry Pi の homebridge のために、node.js と npm の更新。

ついでに、最新の node.js を 16.3 にアップグレードしてみた。

$ sudo systemctl stop homebridge
$ sudo curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
$ sudo systemctl stop homebridge
$ sudo apt-get install -y nodejs
$ sudo systemctl start homebridge
$ sudo npm update
$ sudo node -v
16.3.0
$ sudo npm -v
7.15.1

SwitchBot の制御が動かなくなり、プラグインを別の物に切り替え。

rsyslogの設定

Buffalo のルータのログをサーバに保存する設定。ルータを更新した時に、syslog 設定までやってなかった。ということで、改めて設定。

出力するファシリティは、local1 なので、以下の設定を加える。
以前に、設定した時は、/etc/rsyslog.conf を触ったけど、Debian流で /etc/rsyslog.d に local1.conf ファイルにまとめる。

サーバ側の設定

(( /etc/rsyslog.d/local1.conf ))
#
module(load="imudp")
input(type="imudp" port="514")
local1.*   /var/log/local1.log
#
(( /etc/logrotate.d/rsyslog ))
  /var/log/messages
+ /var/log/local1.log

ルータ側の設定

ラズパイのフレームバッファ出力

家電制御とhomebridge専用のRaspberry-Piだけど、HDMI制御用にテレビに繋がっているし、ラズパイの動作状況なりを出力させられないかと思っていた。

X11 の GUI の autologin を使うのが定番だろうけど、X11 が動いているだけで、OS リソースをかなり食っちゃうので、あまりやりたくなかった。

でも、フレームバッファ出力で映像を出すための fbi コマンドをみつける。

そこで、wkhtmltopdf パッケージの wkhtmltoimage コマンドを使って、状況表示のページをキャプチャさせ、その画像を fbi コマンドで、フレームバッファ表示させてみた。

/usr/bin/wkhtmltoimage --width 1200 --height 800 \
    -q 'http://www.example.co.jp' /tmp/web.png
/usr/bin/sudo /usr/bin/fbi -T 1 -d /dev/fb0 --noverbose \
    /tmp/web.png > /dev/null 2>&1

proxyサーバヒット率1%

以前より、自宅内のCache Proxyサーバって、ヒット率低いのはわかっていたけど、一応動かしていたSquid。これまた気まぐれに cache のヒット率確認したら、1%。意味ないね。

自分しか使ってないだろうと、これまた気まぐれにばっさりと、aptitude purge squid したら、子供と奥さんが「ネット切れた」と駆け込んできた。proxy自動設定のproxy.pacとかも置いといたので、想定外に使ってたのね。

ということで、家族に「proxy はずしてね」と伝え、proxy.pac を、return “DIRECT”; に修正しておく。

homebridgeのlogrotate

raspberry-pi で動かしている homebridge の LOG もそれなりに成長するので、logrotate で切り詰める。
設定したけど、うまく出力してくれていないので、postrotate 機能で、homebridge を再起動するようにする必要あり。

/var/lib/homebridge/homebridge.log
{
    weekly
    rotate 10
    compress
    delaycompress
    missingok
    notifempty
    create 644 homebridge homebridge
    postrotate
        /bin/systemctl restart homebridge
    endscript
}

google home が動かなかったな…

そういえば、先日の朝とか、いつもの Google home mini に「照明つけて」とか言っても、ネットワークにつながっていないとかいって動かなかったけど、google のトラブルが原因か。

我が家では、家電制御は、Google Home mini → homebridge-gsh → homebridge だから、我が家のネットワークの問題(mydns.jpの接続トラブルで逆引き失敗することがある)で、homebridge-gsh が動かないと思っていたけど、google さんがトラブっていりゃうごかないよね。

まあ、homebridge は Home アプリで操作が普通で、”Hey Siri!” で操作できるし、記事みたいに何もできなることはないし。

サーバをspeepさせない

職場で実験用にセットアップしたサーバが、ほっておくと sleep で繋がらなくなる。

下記の設定で、sleep, suspend,hibernate 機能を停止する必要あり。

$ sudo systemctl mask sleep.target suspend.target hibernate.target

UPSがself-testでブザーとまらず

3年物のAPCのUPS APC ES 550(BE550G-JP)が、朝の5:00にブザーが鳴って止まらず。

電圧異常かと思って、電源ボタンを押したら停止。でも、サーバはシャットダウン操作してないで落ちてる。

LOGを確認すると、apcupsd の self-test 機能が動いて、バッテリーの交換時期なので、ブザーを鳴らしたみたい。マニュアルを見ると「停止条件は『電源オフ』」実は、ひと月前にも同じようにブザーが鳴って、今回は2回目。self-test の期間は、2週間に設定されているみたいなので、このままだと、また叩き起こされそう。

電源異常じゃないのならバッテリー交換とも思うけど調べると交換バッテリー7000円。前のUPSは、保持時間が多少落ちようとも無視して本来2~3年の寿命の物を5年以上使ってた。今回も劣化を無視してもう少し使いたい。

apctestでbattery dateを修正

UPS監視ソフトの apcupsd の付属ソフトに、apctest でセルフテストを直にさせようと思ったけど、上手く動かない。でも、battery の日付を書き換えるコマンドがある。寿命をだますということで、試しにバッテリー交換してないけど日付を書き換えてみた。これで、だませるかな。

(2020/12/28:追記) バッテリーが消耗していれば、battery-date を修正しても、朝の4:45に再びブザーが鳴り響き、効果なかった。(T_T;

ついでに、夜中にバッテリー警告で起こされるのもつらいので、警告音を DISABLE にできるみたい。munin で、バッテリー状況は観察してるし、自宅サーバだし「落ちてもたかがしれている状態」なので、問題ないだろう。とはいいながら、エラーが改めてでなくなるのを確認するまでは、ENABLE にしておくか。

$ sudo systemctl stop apcupsd.service
$ sudo apctest
(略)
Please select the function you want to perform.
1)  Test kill UPS power
2)  Perform self-test
3)  Read last self-test result
4)  View/Change battery date
:
Select function number: 4
Current battery date: 09/12/2016
Enter new battery date (MM/DD/YYYY), blank to quit: 09/12/2020
:
6)  View/Change alarm behavior
:
Select function number: 6
Current alarm setting: DISABLED
Press...
 E to Enable alarms
 D to Disable alarms
 Q to Quit with no changes
Your choice: Select function: q

apcupsd.conf の修正

(2020/12/28) 何らかの selft-test と思って、バッテリー日付の修正を試したが効果が無いので、改めて、正統な selft-test 機能を止める方法。

(( /etc/apcupsd/apcupsd.conf ))
# Self test interval in hours 336=2 weeks, 168=1 week, ON=at power on
# SELFTEST 336 168 ON OFF  (default = 336)
SELFTEST OFF

EdgeRouter-X v2.0.9 をインストール

Edgerouter-X の新しいファームウェア ver 2.0.9 が 11/19 に公開されていた。

v.2.0.9 インストール

EdgeRouter-ERX は、HDD? 領域が不足しているので、インストール前に古いバージョンのイメージファイルを消す必要がある。

$ slogin ubnt@edgerouterx
ubnt:~# delete system image

EdgeRouter の管理画面を開き、v2.0.9 をインストール

v2.0.9の新機能

リリースノートを見ると、

CLI - Add new CLI command "add system image" to automatically
      download and install latest stable firmware.

と書いてあるので、今後は firmware 更新作業は、以下の様にするだけ…ということかな。便利。、

$ slogin ubnt@edgerouterx

ubnt:~$ sudo add system image
ubnt:~$ sudo bash
ubnt:~# add system image

再起動 自作の l2tpd 接続通知の設定ファイルのインストール

$ scp /...../edgeos_ubnt_20180914-notify-l2tpd.tar.gz ubnt@edgerouterx
$ slogin ubnt@edgerouterx
ubnt:~$ sudo bash
ubnt:~# cd /
ubnt:~# tar zxvf ~ubnt/edgeos_ubnt_20180914-notify-l2tpd.tar.gz

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

Google 検索

My Google   Yahoo

Microsoft

ファンサイト