InfoPiВерсия 2.0.0

Автор: Дмитрий Канн Чтение на 2 мин

Что мы всё про коронавирус да про коронавирус? Давайте лучше о хорошем.

Я наконец-то нашёл время для радикального обновления своего информационного дисплея на базе микрокомпьютера Raspberry Pi, известного как InfoPi.

Об истории его создания я рассказывал четыре года назад.

Вторая версия

Во второй инкарнации InfoPi переделано практически всё:

  • Код переписан с AngularJS на Angular 9.
  • Бэкенд (веб-сервер) на Python больше не требуется.
  • Приложение упаковывается в единый .deb-пакет вместе с браузером Electron и разворачивается на Raspberry Pi одной командой.
  • Изменён внешний вид.

Внешний вид

Выглядит дисплей нынче следующим образом:

Скриншот InfoPi 2.0.0.
Скриншот InfoPi 2.0.0.

Если сравнить его с предыдущей версией:

  • Показатели текущей погоды переехали вверх.
  • Анимация Buienradar передвинута влево.
  • Прогноз погоды находится справа от Buienradar, добавлен график температуры.
  • Времена отправления поездов и автобусов отображаются бок-о-бок.
  • Курсы криптовалют выкинуты как малоактуальные.
  • Добавлено отображение новостей из RSS-потока.

Особенно удобны, на мой взгляд, новые графики максимальной и минимальной дневной температуры в прогнозе погоды (работает на Chart.js):

Графики дневной температуры InfoPi.
Графики дневной температуры InfoPi.

Здесь отображаются предсказанные Buienradar границы дневной и ночной температур. При этом хорошо заметно, что чем дальше в будущем предсказание, тем шире разброс значений.

Angular

Как известно, при переходе от первой (называвшейся AngularJS) к любой последующей версии Angular код приходится переписывать полностью. Что я и сделал.

Также я избавился от бэкенда на Python. Его единственной функцией был обход ограничений CORS-политик браузера, не позволявших веб-странице приложения запрашивать данные с других доменов (например, сайта NS).

В новой версии InfoPi во время разработки и отладки политика обходится с помощью CORS-прокси (такого как CORS Anywhere). Здесь присутствует, конечно, риск того, что вы делитесь своим API-токеном со сторонним сервисом.

В финальной же версии приложения, исполняющейся в браузере Electron, CORS enforcement отключается в самом браузере. Поскольку InfoPi — система неинтерактивная, она только отображает данные, то никакого риска от несоблюдения ограничений политики здесь нет.

Дайте две!

Если вам интересно попробовать самим собрать экземпляр устройства и настроить его под свои нужды, милости прошу в GitHub-репозиторий приложения.

В репозитории присутствует пример конфигурации (src/environments/config.sample.ts), который нужно скопировать и поменять по вкусу, просто следуйте за README.

В планах

Тесты, больше тестов! ■

Подписаться на обновления блога:

Комментарии

Поделиться: