Реклама Renault


В зависимости от погоды


Вам говорят это просто? Не верьте.

Реклама Renault


В зависимости от погоды


Вам говорят это просто? Не верьте.

Вместе с Денисом Храмовым и компанией Sunlight Outdoor мы делали рекламный контент, зависящий от погоды.

Вот проблемы, которые пришлось решать.

Задача

Санлайт - владелец 70-метрового медиафасада на Шоссе Энтузиастов. Если ехать по третьему кольцу, его невозможно пропустить.

Медиафасад Sunlight Outdoor на Ш.Энтузиастов

Рекламную кампанию Renault Kaptur задумали привязать к погоде. Не к температурным значениям, а к общему состоянию: солнечно, пасмурно, дождь и т.п.

Логика такая: если на улице солнечно, показываем машину в солнечном свете. Если дождь, то в интерьере дождя. Попутно сообщаем погоду.

Девиз - "Renault Kaptur. Твой выбор в любую погоду."

Из-за долгих согласований делали за две недели. Сначала я тоже думал что это огромный срок. По моим прикидкам, работы на три дня. Взять погоду с источника, настроить логику показов в зависимости от данных. Оказалось все не так просто.

1

Медиаплеер

Несмотря на размер, разрешение медиафасада всего 1500х400px. Используется один медиаплеер HMP200.

Где живет точная погода

В погодных виджетах SpinetiX встроено 4 источника данных. На выбор:

Просто зайдите на каждый из них. Погода везде будет разная.

Это не значит что кто-то хуже или лучше. Гисметео создал целый FAQ, посвященный вопросам "Почему у меня за окном снег, а вы показываете +15". Это реальная проблема. В погоде куча методик расчета, и показания точными не бывают.

Наш опыт показывает, что наиболее точный и удобный в использовании ресурс - OpenWeatherMap. Это профессиональный сервис погоды, с огромным количеством температурных станций и очень мощным API. Есть бесплатный тариф и несколько платных. Бесплатный тариф имеет ограничение по количеству запросов сервиса в минуту (60), нельзя использовать 16-дневный прогноз, аптайм 95%, и еще ряд несущественных ограничений.

OpenWeatherMap.org

Любимый погодный ресурс. Выдает в JSON и XML. Любые разрезы погоды по датам, история, прогнозы. Детализация до координат на карте. Есть платная подписка.

Тем не менее, мы рекомендуем использовать платный тариф. Без аптайма 99% и дальности прогноза можно прожить. А вот неизменность API вам гарантируют только на платном тарифе. Столкнулись с этим на личном опыте, поэтому предостерегаю. Провайдером был незначительно изменен синтаксис запросов, поэтому в один момент погода просто перестала работать. Конечно, об изменении API было написано на сайте. Но кто же туда ходит?

Товарищ режиссер, эта... у нас проблемы с бесплатным API. Телерадиокомпания BBC (c)

Платные сервисы

Стабильная работа. Отсутствие сюрпризов.

Совет: купите девелоперский пакет. Его 3 тыс. запросов в минуту хватит на все ваши проекты.

Логика работы

Дневное освещение. Под каждый тип погоды (ясно, пасмурно, дождь и т.д.) есть свой видеофайл с машиной. В разном освещении и декоре, соответствующем погоде.

Ночь. Все то же самое, только в ночном освещении.

Всего 20 (9 день + 9 ночь это на каждый тип погоды. Плюс два лишних - для ошибки получения погоды. В этом случае - нейтральное изображение, дневное или ночное).

Поверх видео плеер рисует текстовое описание погоды (ясно, облачно, дождь), и пишет градусы. Если что-то пошло не так (нет интернета, нет погоды, погода отличается от предыдущей более чем на 10 градусов, ошибка запроса и т.п.) - ничего не пишем. Просто показывается нейтральный ролик, соответствующий времени суток.

Логика проекта в Xmind
Схема работы

Чертите схемы

Это помогает в согласовании деталей и самодисциплине.

Совет: используйте программу Xmind. Она бесплатная. Мы используем ее повсеместно, от сценариев до карты контента.

Как сделали

Был создан переключатель, в котором можно каждому типу погоды назначить что воспроизводить.

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

Если "Ясно", то показываем на экране "Видео 1". Если "Облачно", то "Видео 2". Позднее видеофайлы поменяли на календари, но пока пробуем так.

Скриншот переключателя погоды
Назначение сценариев типам погоды

"Создали переключатель" это я для солидности. На самом деле взяли стандартный Switch из библиотеки виджетов, и немного доделали.


Облачно и температуру 14 градусов виджет пишет сам, поверх сценария. Фирменными шрифтами Renault.

Скриншот Elementi: погода поверх контента фирменными шрифтами
Виджет погоды и шрифты заказчика

Настраиваемые параметры

Соответствие сценариев типам погоды пользователь настраивает сам.

Совет: делайте пользовательский интерфейс сразу. Можно было сделать все в коде. Позднее сценарии изменялись 4 раза. Мы не пожалели.

На странице свойств пользователь выбирает источник погодных данных и интервал опроса

Источник данных может ссылаться на город, координаты, район и т.п. Пользователь сам может экспериментировать с точной погодой.

Скриншот Elementi: пользователь выбирает источник данных погоды и интервал опроса
Выбор источника данных погоды и интервала опроса

Пример источника рядом с медиафасадом (Лефортово): http://api.openweathermap.org/data/2.5/weather?lat=55.748786&lon=37.696355&units=metric&APPID=(Сюда пишется ключ клиента, без него работать не будет). Это запрос по координатам.

Это просто Москва, по коду города: http://api.openweathermap.org/data/2.5/weather?id=524901&units=metric&APPID=. На самом деле это Кремль.

Это тоже Москва, но по названию: http://api.openweathermap.org/data/2.5/weather?q=moscow,russia&units=metric&APPID=. Разницы в температуре нет. А в надежности есть. Используйте коды, а не названия городов. У кода меньше вероятность поменяться.


Путем суточного прогона выяснили, что более точно - Лефортово по координатам.

Как получить ключ клиента

APPID можно получить сразу после регистрации. Это не сложно. Занимает 3 минуты.

Проверяйте

У программистов на демонстрациях всегда все работает. В поле - нет. Единственный способ дать им по наглым щщам - вдумчиво протестировать в лаборатории и найти ошибки.

Самый лучший тест - поставить систему работать на несколько дней, и следить. Смотреть логи, смотреть глазами.

В нашем случае на каждом макете написали кто он такой (Макет день 1 (ясно) это значит видеофайл соответствует состоянию погоды "Ясно", показывается в светлое время суток), сделали погодным слоям подложку, и смотрели. Конечно, не 24 часа в сутки, но смотрели.

Кто ищет тот всегда найдет.

Скриншот проверки контента в лаборатории
Проверка в лаборатории

Народный мониторинг

В процессе теста погоды с OpenWeatherMap обнаружилось явное несоответствие температуры несколько раз в час. Причины неизвестны, но сервис погоды выдавал колебания плюс-минус 10 градусов.

С одной стороны, это не критично. Мы пристально следили именно за состоянием погоды (ясно, пасмурно, дождь). Потому что самое худшее что может быть - заказчик стоит перед медиафасадом, с лица стекает дождь, грохочет гром, а на экране написано "Ясно", машина в солнечных лучиках и т.п. Таких ситуаций не было. Состояние погоды отображается точно.

С температурой проще, она показывается просто для информации. Но внутренний перфекционист бунтовал, и пришлось искать кляп.

Нам помог сервис Народный мониторинг

Сервис Народный мониторинг. Респект энтузиастам.

Здесь собираются люди, у которых есть собственные погодные станции. Они отдают сервису данные, а сервис показывает их на карте и отдает через API.

Мы нашли станцию рядом с медиафасадом, подключились через API сервиса к ней, и стали отображать температуру оттуда.

Здесь тоже не обошлось без проблем. Помогло тестирование. Еще раз убедились, насколько это важно.

Судя по всему, раз в сутки на датчик станции лупило солнце. В солнечный день температура в течение 30 минут была на 15-20 градусов больше.

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

Народный мониторинг

Сервис энтузиастов-погодников. Участники отдают сервису данные со своих погодных станций. Есть бесплатный API.

Раздел для программистов

Парсеры данных написаны вручную, на javascript и jSignage

Всего два парсера. Первый для OpenWeatherMap (состояния погоды). Второй для narodmon.ru (температура). В сумме около 200 строк кода.

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

200 строк, Карл! Если ты не программист, но все равно зачем-то читаешь это, знай: это чудовищно мало.

Код виджета погоды
Код виджета погоды

jSignage

Библиотека SpinetiX, помогающая в заказной разработке. То же самое, что jQuery, только для плееров SpinetiX. Web программистами осваивается за 1 день.

ЗАПОМНИТЬ

1. Погода будет врать. С этим надо смириться.

2. Удобный проф. ресурс с данными и API - OpenWeatherMap.org

3. Удобный народный ресурс с данными и API - Народный мониторинг

4. Используйте платную подписку. Жизнь без неприятных сюрпризов.

5. При настройке данных используйте коды городов, а не названия.

6. Чертите схемы: логические, проекта, контента, подключений. Xmind в помощь.

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

8. Проверяйте работу системы несколько дней. Да, ломать глаза. А что делать.


Денис Храмов, спасибо тебе за терпение, бесконечные тесты и профессиональный подход к делу.

Вам рассказывают про кейс digital signage с погодозависимым контентом?
Либо это огромный труд по тонкой настройке обхода ошибок погоды, либо халтура.