Гугл календарь. Напоминания и синхронизация календаря google с Умным домом.

Гугл календарь. Напоминания и синхронизация календаря google с Умным домом.

Это видео про синхронизацию календаря google с Умным домом.
Будем создавать задачи в календаре и выводить их в интерфейсе Умного дома.
Создадим виджет гугл календарь и выведем его в HABPanel.
Установим и настроим BINDING google Calendar.

Сегодня поговорим про вывод Google calendar в Умный дом.

Давайте подумаем для чего нам это может пригодиться. Ну например можно создать планировщик задач.
Допустим вы уезжаете в отпуск, а вам надо чтобы Умный дом делал что-нибудь по расписанию и имитировал ваше присутствие.  Как в фильме «Один дома». 
Я делал такое в одном из предыдущих видео, но это надо писать правило под каждое задание. Это сложно. 
А что если использовать для этого гугл календарь. Ведь там очень просто создавать события, а затем выводить их в интерфейсе умного дома. 
Ну а другой вариант - это просто выводить на экран ближайшие события. Я сделал вывод в HABPanel 3-х событий, а если смотреть на телефоне, то можно увидеть ближайшие 5 записей.
Самый просто вариант – это вставить на страницу панели frame, с кодом календаря. Но это не наш метод. Мы не ищем лёгких путей. И так он не будет виден на телефоне и не сможет в дальнейшем управлять устройствами Умного дома.
А теперь что мы сегодня сделаем.
Во первых Гугл календарь у вас уже должен быть установлен. Я не буду рассказывать как это сделать.
Нам будет нужен 1 календарь который мы и будем выводить в панель. Его надо будет обозвать по английски.
И сделать его общедоступным, так как OPENHAB это стороннее приложение,  а Гугл календарь будет работать с ним только как с менее защищённым устройством. Этим мы обойдём проблему с HTTPS.
И ещё я не смог победить такую проблему как 2-факторная аутентификация по телефону. Или как там она называется.
Из этого есть два выхода. 
В простом, который использовал я – это просто создать аккаунт и не включать 2-факторная аутентификацию. 
Посмотреть и отключить можно здесь

Включите “менее безопасные приложения”, войдя в свой новый аккаунт google и посетив этот URL-адрес:
https://myaccount.google.com/u/2/lesssecureapps

Создать там календарь и использовать его.
И второй. Я его не пробовал, но в сообществе OPENHAB говорят, что нужно создать как в первом варианте нового пользователя и дать ему все права, и привязать вывод календаря в OPENHAB к этой учётной записи. Звучит сложно, но вроде всё не так сложно. 

В этом уроке я научу только как выводить события на экран. А как сделать управления устройствами по расписанию – это будет в следующих видео.
При создании или изменении в календаре записи она автоматически появляется в интерфейсе Умного дома. Правда для этого требуется какое-то время. Приблизительно до 2-х минут. 
Я вывожу в панель всего 3 записи, этого вполне достаточно. Вы можете сами сделать и больше, но тогда календарь  будет занимать очень много места.  Конечно вы можете сделать календарь в отдельном окне, и тогда вам будет не важно сколько места он занимает.
Можно сделать вывод разных календарей. 

Теперь давайте приступим к установке Гугл календаря в OPENHAB.
Для начала нам надо установить BINDINGs
Нам понадобятся оба. И для персонально календаря и для групового. Нажимаем ИНСТАЛЛ и ждём пару минут. На крутящиеся картинки не обращаем внимания, они сами не остановятся, но это важно. Календарь установился.  А проверить это можно зайдя в openHAB-conf\services.
 
В разделе "openHAB-conf\services" у вас должно быть 3 файла cfg:
 

Теперь откроем эти файлы или вы можете скопировать мои из архива.
Для работы я создал календарь MyCalendar. Если у вас другой, то во всех трёх файлах замените это название на своё.

caldavCommand.cfg
caldavCommand:readCalendars=MyCalendar

caldavPersonal.cfg
caldavPersonal:usedCalendars=MyCalendar

caldavio.cfg
caldavio:MyCalendar:url=https://www.google.com/calendar/dav/ваша гугл почта /events
caldavio:MyCalendar:username=логин это часть почты до символа собачка
caldavio:MyCalendar:password= вводим пароль от аккаунта
caldavio:MyCalendar:reloadInterval=2
caldavio:MyCalendar:preloadTime=200000
caldavio:MyCalendar:disableCertificateVerification=true


Здесь вроде всё понятно. Так что переходим к созданию, или копированию файлов ITEMS и SITEMAP

В файле ITEMS для каждой записи создано по 4 строчки кода.
1. для вывода названия
2. для времени начала
3. для времени окончания
4. для места встречи

Теперь открываем SITEMAP
Тут совсем всё просто. Я вывел только Название и время начала.

Если вы в basic UI не видите названия и времени, то вам надо перезагрузить OPENHAB.
Возможно, придётся удалить старые конфигурационные файлы из папки 
OPENHAB2/USERDATA/CONFIG/ORG/OPENHAB
И снова перезагрузить сервер. 

Удаляем файлы и перезагружаем сервер. И видим, что у нас появились данные.

Теперь давайте выведем записи в HABPANEL.
Для этого откроем существующую панель или создадим новую. Как хотите.
Я буду делать в панели с погодой. Создаём новый виджет.

Переходим в HABPanel и во вкладку Погода. Открываем редактирование и нажимаем добавить виджет. Выбираем ШАБЛОН. Задаём ему размер 3 к 1. 3 столбика и 1 ряд. И вставляем туда код. Код будет в архиве. Это обычный HTML код. Он отвечает за вывод трёх ближайших событий из гугл календаря. Обзываем виджет Календарь и сохраняем. Теперь смотрим что у нас получилось. Видим, что у нас появился новый столбик. Цвет, размер шрифта и расположения, всё это можно изменить отредактировав код в обычном блокноте. В конце я покажу как это делается. В прошлом видео про вывод погоды я уже показывал как редактировать CSS.

Теперь давайте посмотрим как это работает. Открываем гугл календарь. Создаём новую задачу. Обязательно указываем название, время и место. Сохраняем и видим новую запись. Переходим в HABPanel и пока ничего не видим. Чтобы не ждать долго, я ускорю видео. Видим, что наша запись появилась. Так что всё ОК. 

Теперь попробуем поменять цвета и размер шрифта. Для этого снова переходим в редактирование.

Открываем виджет Календарь. Наверху кода расположен CSS этот код отвечает за визуальное оформление. Здесь указано как и где на странице будут располагаться наши элементы. Это название, время начала и окончания, а так же место встречи.
 
Давайте для примера изменим цвет плашки для вывода даты. Я в основном всегда использую красный цвет, так как его сразу хорошо видно. Сохраняем и смотрим изменения.
Теперь изменим на синий цвет. Как видите здесь всё просто и понятно. Основные цвета можно задавать по английский, а остальные в шестнадцатеричном виде.
Теперь вернём цвет фона обратно и изменим цвет шрифта даты. Сделаем его опять красным. Смотрим изменения. Дата стала красной.

Ну и на последок изменим размер шрифта даты. Сделаем её чуть больше. Мы это уже делали в примере с Погодой. Если что не понятно то пересмотрите это видео.
 В каждом уроке я по чуть-чуть обучаю на примерах, азам программирования. Если вы смотрите все видео, то уже можете сами изменять вид отображения своего html кода. Скоро вы станете гуру вёрстки.  
 А ещё я открыл канал на Дзене. Там будут только статьи про Умный дом. Это будет моя вторая попытка. Первый канал заблокировали в течении суток. Без объяснений. Попробую ещё раз. Так что подписывайтесь на мой дзен канал. Ссылка будет в шапке ютуб канала.

Короче. Всё работает. Кому понравилось, ставьте лайки. Призывать ставить дизлайки не буду. Они сами набегут. Подписывайтесь и ждите новые видео.

Скетчи