Отображение на Kindle календаря IoT (wi-fi кнопки)
В статье Умная wi-fi кнопка описано, как вы можете регистрировать в Google Calendar события от кнопки Amazon Dash Button.
Ниже рассказывается, как показать этот календарь на вашем старом Amazon Kindle, который вы можете повесить на стену.
Конечно, календарь можно вывести и на компьютер или планшет. Например, всего за $49 ($39 на регулярно проводимых распродажах) вы можете купить Amazon Fire HD 7. Или, за сравнимые деньги, недорогой китайский планшет. Но чтобы он висел на стене постоянно включенным, вам надо подводить к нему питание и решать вопрос работы без батареи (потому что батарея в режиме постоянно подключения все равно быстро деградирует).
Настройки
Помимо настройки кнопок в settings.json
и buttons.json
, описанной в
Установка на Synology умной wi-fi кнопки,
вам необходимо настроить параметры отображения событий.
Это делается в разделе dashboards
. Настраивается картинка для дней, в которых не было событий empty_image
(т.е.
дни, которые прогуляли). Также в календаре можно отмечать уважительные отсутствия (как события описанные в
absents
, для них в прогулянные по событиям от кнопки дни будут отображаться другие картинки).
Например, если имеется в absent
элемент с summary
равным Sick
, и вы введете в календарь кнопки
событие с таким названием, то в течение этого события вместо empty_image
будет показываться картинка,
указанная в этом элементе.
Поскольку на календаре также показывается погода (раз уж висит на стене Kindle, пусть и погоду тоже показывает),
то, если вам хотелось бы видеть местную погоду, а не погоду в Питере, надо настроить ваши географические координаты.
Сделать это можно с помощью карт Google.
Полученные координаты укажите в settings.json
в параметрах latitude
и longitude
.
Также вам надо получить
ключ API openweathermap и поместить его в файл
openweathermap_key.json
вместе с остальными файлами настроек (при желании можете изменить путь к этому файлу
в параметре openweathermap_key_file_name
в settings.json
).
Установка на Synology
Добавляем в Docker image с моим приложением iot-calendar:
Когда он скачается, можно создавать Docker контейнер из этого image.
Вы можете вместо выполнения описанной ниже инструкции импортировать
мои настройки контейнера.
Они предполагают, что файлы с секретами и настройками
вы разместили на своем Synology в каталоге docker/amazon-dash-private
.
Ниже же описано, как сделать все это самостоятельно.
Два раза кликните по скачанному image, это запустит процесс создания контейнера Docker.
В Advanced settings
-> Volume
подключите к контейнеру каталог /amazon-dash-private
с секретами доступа к
календарю Google и прочими настройками приложения.
Скачайте примеры этих файлов
и разместите в любом удобном вам месте на Synology.
Например, у меня они находятся на томе Synology в каталоге
docker/amazon-dash-private
:
А в Port Settings
сделайте видимым снаружи порт 4444
, на котором работает приложение.
В Package Center
отключите автообновление Docker.
Поскольку после автообновления не перезапускаются контейнеры и ваши Docker приложения неожиданно перестанут работать.
Лучше обновлять вручную и перезапускать нужные контейнеры.
Не Synology
Вам надо положить amazon-dash-hack.json
и прочие файлы в каталог
amazon-dash-private
и добавить в командную строку docker:
-v $PWD/amazon-dash-private:/amazon-dash-private:ro
$PWD в данном случае говорит о том, что каталог amazon-dash-private
размещен в том же каталоге,
в котором вы запускаете docker. Если это не так, то измените это соотвествующим образом.
Календарь событий
Откройте в браузере <ваш сервер>:4444
, вы увидете список настроенных в вашем файле settings.json
дашбордов (dashboards
).
<ваш сервер>:4444?b=<идентификатор дашборда>
покажет страницу с черно-белым вариантом календаря,
<ваш сервер>:4444?b=<идентификатор дашборда>&style=seaborn-talk
с цветным. В эту страницу встроен
скрипт который вызывает ее авто-обновление.
Само изображение можно получить <ваш сервер>:4444/dashboard.png?b=<идентификатор дашборда>
.
По умолчанию оно черно-белое и повернуто на 90 градусов, для лучшего показа на Kindle. При желании, вы можете выбрать другие
стили (они влияют, на цветовую гамму, шрифты, дизайн осей графиков и пр.).
Поддерживаемые стили можно посмотреть например
тут.
Например, <ваш сервер>:4444/dashboard.png?b=<идентификатор дашборда>&style=seaborn-talk&rotate=0
.
Также можно выключить включенный по умолчанию рукописный стиль xkcd=0
(этот стиль накладывается
после описанного выше основного стиля и изменяет ряд параметров отображения).
Если вам не нравятся пиктограммы которое я использую при рисовании календаря, вы можете выбрать любые другие, например, на Noun Project.