Kindle Weather Display

前回は古いキンドル3を洒落た時計にしました。今回は天気情報にチャレンジしてみます。参考したサイトではDarkSkyを使っていたのですが、調べたらどうも終了らしい、ということでOpenWeatherMapを使うことにしました。やってみると意外と大変で、特に摺り合わせ作業が多く検証にとまどりましたが、どうにかできました。次はサーバからどうやって送り込むかという課題のみです。

ホストサーバーはOpenWrtとArmbian(TV-Box)で試してみました。OpenWrtのフラッシュROMは16GB以上必要です。16MBのフラッシュで収まるか難しいところで、パッケージを整理すればなんとか収まりそうです。USBのある32MBの古いルーターがあったのでそれを使いました。OpenWrtの問題はSVG処理ができないため、Kindle側ですることになります。Kindle側では画像処理のプログラムがないので、ChrootのDebian Wheezyを使います。これ以降のバージョンはKindleのカーネルが古いため使えません。Armbianは最新のDebianが動くのでそちらの方がおすすめです。

この天気アプリは先日セットアップした時計プログラムと交互に表示するように調整します。

0,10,15,20,25,30,40,45,50,55 * * * * sh /mnt/us/timelit/timelit.sh
5,35 * * * * sh /mnt/us/weather-kindle/weather-script.sh
56 0,8,16 * * * sh /mnt/us/weather-kindle/update_time.sh

ホスト側のcron設定例

/etc/cron.d/weather-kindle
0,15,30,45 * * * * root sh -c "/var/lib/weather-kindle-host/weather-kindle.sh"

Kindleとホスト間はP2PのUSBnetで繋げてセキュリティ上問題がある古いキンドルのパケットが外に流れないようにファイヤーウォールを導入します。その際、時間の調整が必要になるのでホスト側にntpサーバをインストールしてKindleからアクセスできるようにしてntpdateで時間を定期的にアップデートします。Kindleのntpdateはどうも相性が悪いらしくアップデートしてくれないので、Debianのntpdateを使っています。

Source

参考

  • https://gitlab.com/iero/Kindle-weather-station/-/tree/master/