Погодный информер из старого телефона
Не спешите убирать в ящик или выкидывать старый телефон — он еще может вам послужить. Совершив несколько простых действий, получаем полноценный информер с точными часами, прогнозом погоды и другой полезной информацией. Если интересно, прошу под кат.
Описанное решение, упрощенная версия более масштабного проекта экрана умного дома. Данная реализация не требует наличия, как самого умного дома, так и дополнительно оборудования. Потребуется только лишь телефон.
Вообще, всегда страюсь пристраивать телефоны, дарить и т.д., но не всегда получается. Так и случилось с Samsung Galaxy Note — дедушка всех лопат, вроде Galaxy Ultra, iPhone Max и т.д. Покупал его в далеком 2011 году, кстати на немецком Сomputeruniverse. Успешно пользовался им целых 5 лет, заменил на новый, а этот так никуда не пристроил и положил на полку. Но мириться с этим был не готов, поэтому все время пытался его как-то зайдествовать. В частности, он работал в качестве точки доступа WiFi, выступал сервером все того же умного дома. Телефон участвовал в различных эспериментах, например, переводился на постоянное питание, причем напрямую через клеммы, причем сразу на 5v, так как через порт без аккумулятора он не включался, аккумулятор же раздулся до неприличных размеров и физически не вставлялся в слот. Многократно прошивался и после всего этого остался цел и работоспособен. Во раньше делали! Его и решил использовать в проекте. Вместо заслуженного отдыха, старичок отправился работать 24/7. Вкалывают роботы — счастлив человек!

Что касается самой идеи погодного информера, то может возникнуть вопрос — а тут то зачем изобретать велосипед, наверняка уже есть готовые решения? Ну, во-первых, потому что могу, а во-вторых, у меня изначально задача стояла интегрировать дисплей в умный дом — вряд ли имеется что-то, с нужным мне функционалом. Так же у меня было свое видение и идеи, которые хотелось воплотить в жизнь. Да и реализация казалась не особо сложной, впрочем, так оно и оказалось. За основу взят браузер, это web-приложение. Для поставленной задачи, такого подхода, более чем достаточно. Простое, легкое и гибкое решение, при этом кросс-платформенное — универсальное. Самое главное ничего устанавливать не надо, так как порой сделать это просто невозможно.
Браузер мощный инструмент, который дает многое с минимальными накладными расходами, но в случае с телефонами имеется нюанс: он не может запретить переход в спящий режим, т.е. экран будет гаснуть, что неприемлимо в случае с информером. Решение есть. Постоянно работающий экран подразумевает и постоянную зарядку, иначе батареи на долго не хватит. В андроиде же, имеется режим, в котором экран не гаснет при подключенной зарядке, но по умолчанию он скрыт и его нужно открыть. Делается это в настройках. Не скажу за все телефоны, но на самсунгах это: Настройки -> Сведения о телефоне -> Сведения о ПО — в этом меню необходимо 5 раз тапнуть по пункту «Номер сборки», после чего должно появиться сообщение о том, что режим разработчика разблокирован. Далее переходим в Настройки -> Параметры разработчика, где должен быть пункт «Не выключать экран» -> активируем — профит. Если не получается таким образом запретить гануть экрану, существуют другие способы. Например, с помощью специальных приложений «Wakey: Держите экран активным», «Экран включен» и т.д. Кстати, потребление электричества в этом режиме очень скромное — у меня около 1Вт/ч.

Прогноз погоды будем брать у Яндекса, используя бесплатное API. Надо сказать, что информер я делал достаточно давно и за это время произошли некоторые изменения. В частности, Яндекс перенес в архив тариф мой тариф. Вместо него доступен другой, для умных устройств — подходит. В основных тарифах он не отображается, подключение доступно по ссылке https://yandex.ru/pogoda/b2b/smarthome. Необходимо иметь аккаунт в Яндексе и быть авторизованным. Переходим по ссылке и подключаем API (желтая кнопка «Подключиться»), на следующей странице, подтверждаем данные и переходим в панель управления «API для Умного дома», откуда копируем ключ и сохраняем его.
Так же нам потребуются географические координаты для получания прогноза непосредственно по нашему адресу. Получаем их любым удобным способом, например, используя Google Maps: https://www.google.com/maps/ -> выбираем адрес -> клик правой кнопкой мыши -> координаты будут первым пунктом меню (первое значение широта, второе долгота) -> кликаем по нему и сохраняем полученные данные.
Далее, скачиваем один единственный html файл со страницы проекта на github размером ~80Кб — это и есть весь информер. Он содержит в себе конфиг, движок, стили и всю графику — все в одном месте, для упрощения. Открываем в текстовом редакторе и вносим полученные данные, в отмеченные комментариями поля, заменяя установленные по умолчанию. Теперь надо загрузить этот файл на телефон, например, по проводу. Все эти шаги можно проделать и на самом телефоне. Далее нам надо открыть страницу в браузере. Не все умеют работать с локальными файлами. Из проверенных Chrome, Samsung internet, Яндекс браузер — в них, как правило, все работает без проблем. Может возникнуть ситуация, когда система не будет давать выбрать нужное приложение, а сразу открывать через стандартное «средство просмотра HTML», в котором работа информера будет некорректной. В таком случае, можно попробовать открыть непосредственно по прямой ссылке через адресную строку. Предварительно нужно дать права браузеру на доступ к файловой системе. Для Chrome и файла расположенного в Download ссылка будет выглядеть примерно так (ваш путь может отличаться):
Переводим в полноэкранный режим тапом, чтобы скрыть интерфейс браузера. Информер готов.
Провисел так достаточно долго, потом я вспомнил, что у меня есть автомобильное крепление — спилил кронштейн, просверлил отверстие и закрепил уже основательно. Чехол так же отлично подойдет для этих целей, а телефон можно будет легко снять.


Стояла задача не перегружать ни себя, ни информер информацией, поэтому отображается только самое необходимое. Данные расположены по важности и полезности сверху вниз. Первым идут часы, максимально крупные и точные. Специально разработал алгоритм обновления секунды в секунду (если синхронизуя телефона с NTP-сервером работает корректно) — люблю точные часы. Дата с днем недели и годом (в запарке можно забыть и его).
Далее следует блок с фактическим прогнозом погоды. Температура наравне с часами, наиболее часто требуемая информация — так же по максимуму крупно. Под температурой располагаются экстремумы — минимальное и максимально значение за сутки, иногда бывают полезны. Далее облачность, так же инфа первой необходимости. За облачностью блок с ветром, влажностью и давлением. Как мне кажется, выводить просто цифры не самая лучшая идея, так как они, без подготовки, мало чего дают, особенно по началу. Лично мне значение давления в цифрах не дает ничего — не понятно много это или мало, хорошо или плохо. Поэтому, решил как-то это визуализировать, для упрощения восприятия. Хотелось добиться того, чтобы было достаточно брошенного взгляда, для оценки ситуации. Для этого использовал индикаторы, которые опираются на уже известные данные и в зависимости от них заполняются и меняют цвет. Если индикатор красный — на это сразу обращаешь внимание, тогда уже можно и подробно изучить показания. Первый блок посвящен ветру — на него начинаешь смотреть, когда он сильный. По собранной мной статистике, для моего местоположения 15м/c — максимальная скорость ветра, соответственно, когда ветер равен и превышает это значение, индикатор будет красным, а бар будет заполнен полностью. Максимальное значение можно отредактировать в конфигурации, исходя из ваших условий. Так же имеется направление ветра в виде стрелки откуда-куда, северный — холодные и т.д. За ветром следует влажность — ну тут все понятно. Я не специалист по атмосферному давлению, но вроде как низкое хуже переносится, чем высокое, соответственно, чем краснее индикатор, тем ниже давление. Синий индикатор говорит о высоком давлении, и вроде как, при этом выше вероятность выпадения осадков, что так же ассоциируется с этим цветом. Минимальное и максимальное значения, так же установлены в конфиге.

Следующая строка — прогноз на ближайшее время. Когда пилил информер, яндекс предоставлял прогноз именно в таком виде. Сейчас API изменился и прогноз стал более подробным. В частности, добавили почасовую информацию. Как показала практика, усредненный прогноз, на два периода вперед, оказался очень удобным. Прогноз вообще, в принципе, носит приблизительный характер и грузить себя подробной информацией не имеет никакого смысла, да и отображать ее негде на маленьком экране, чтобы не рассматривать с лупой. Так вот, яндекс по прежнему дает средний прогноз по периодам — его и используем, как хорошо зарекомендовавшее себя решение. Принцип работы следующий: сутки делятся на периоды 6-11 часов — утро, 12-17 — день, 18-22 — вечер, 23-5 — ночь. Например, когда на часах 13:30, будет отображаться прогноз на вечер и ночь. Идеально для повседневного использования: выходишь с утра и понимаешь чего ждать днем и вечером, когда будешь возвращаться. Детальный прогноз же, всегда можно получить любым другим способом, в функцию информера это не входит. В периодах, так же отображаются температура, облачность и ветер.

Последний блок посвящен времени суток. Восход-заход — тут все понятно. А вот то что находится между требует пояснения. Первое значение — продолжительность дня. Под ней визуализация суток: вся полоса — это 24 часа, заполняется она соответственно текущему времени. Желтая полоса поверх — световой день, ее ширина меняется в зависимости от продолжительности дня, так же она сдвигается в зависимости от времени восхода и заката. Под баром находится информация о текущем времени суток (день или ночь) и времени до его смены. Возможно этот блок покажется сложным, но если все это выводить напрямую, т.е. так и писать «продолжительность дня», «осталось» и т.д. — то это заняло бы очень много места. В целом, это уже второстепенная информация, которая бывает нужна не так часто, поэтому можно просто вдумчиво изучить, когда это необходимо. Напоследок, фаза луны, которая меняется динамически и так же может быть полезна. Вообще, этот блок носит больше развлекательно-познавательный характер и является своеобразным элементом дизайна.

Все же, работа в альбомной ориентации возможна, но ограничена. Используя широкий экран, мы получаем синхронизированные часы с датой — возможно кому-то этого будет достаточно. API в этом случае подключать не требуется, будем считать это недокументированной возможностью.

Данные обновляются независимо друг от друга и имеют срок годности равный 12 часам. Это означает, что если в течение этого времени не было обновлений, блок перестает отображать. Нужно на случай проблем и для понимая того, что информация является актуальной, а информер вообще работает.
Информер я сделал более 2 лет назад. Были сомнения по поводу выбранной схемы, ее работоспособности, а так же вообще полезности и востребованности такого устройства. Так вот, по прошествии лет, могу сказать: must-have! Редко такое бывает, когда пройдешь мимо и не глянешь на информер. Можно подумать, что это я просто не могу налюбоваться на свою поделку, но судя по домашним, это не так. Была недавно забавная ситуация. Мне показалось, что сила ветра в м/с не совсем понятна, и лучше бы ее выводить в км/ч — ну вроде, так легче представить. Переделал втихую и буквально в тот же день получил тонны хейта в свой адрес, вроде того, что теперь ничего не понятно, ни с кем не считаюсь и бла-бла-бла. Если честно, не думал, что туда еще кто-то смотрит, кроме меня. Пришлось вертать взад. В общем, вещь нужная и полезная. Что касается телефона, мол вывезет ли работу 24/7, что будет с экраном, а это выгорающий oled, не вредно ли аккумулятору постоянная зарядка и т.д. — работает, как часы и не пикает. Экран немного выгорел конечно, видно это лучше всего на сером фоне — не критично. Ну выгорел, да и выгорел, чего бубнить то, отрабатывает вложенные деньги. До сих пор! Кстати, яркость экрана выставлена на минимум, но только лишь по причине того, что для информера этого более, чем достаточно, т.к. экраны телефонов очень яркие. Более того на ночь, яркость автоматически снижается еще на 90% уже самим информером, а утром восстанавливается обратно — сделано опять же для комфорта, чтобы не освещать помещение и не слепить. Более того, в этой версии андроида (LineageOS) телефон можно поворачивать не только набок, но и вообще кверху ногами, что так же может снизить нагрузку на экран. Когда информер отвалился, то провисел так полгода и даже немного выгорел уже с другой стороны, на пользу в общем пошло. Такими темпами, как говорится, «еще походит» столько, сколько нужно.

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

Описанное решение, упрощенная версия более масштабного проекта экрана умного дома. Данная реализация не требует наличия, как самого умного дома, так и дополнительно оборудования. Потребуется только лишь телефон.
Вступление
Желание иметь погодный информер присутствовало давно, но еще больше было желание иметь экран умного дома. Долго размышлял по этому поводу, использовать громоздкие или «тяжелые» решения, вроде постоянно включенного монитора, не хотел. Рассматривал модульные дисплеи, особенно на электронных чернилах — ближе, но уже не так просто. Помимо самого дисплея, требуется контроллер, настройка, изучение программных библиотек — становиться специалистом в этой области не планировал. В последнее время, так же стали появляться т.н. умные экраны, заметил их уже поздно. В общем, долго не знал, как подступить к задаче, пока в голову не пришла идея. У меня, думаю как и у многих, завалялось несколько старых телефонов, пылящихся без дела. Собственно, почему бы не дать им вторую жизнь? Изобретать велосипед, тратить время и силы на сомнительные конструкции не нужно — все уже сделано. Отличный экран (вряд ли модульный дисплей будет такого же качества или сколько он будет стоить?), мощное железо, бесперебойная работа, интерфейсы — это малая часть, того, что дает смартфон и самое главное все это уже настроено, оптимизировано и идеально взаимодействует друг с другом. Потенциал использования телефона, не по прямому назначению, просто огромный.
Вообще, всегда страюсь пристраивать телефоны, дарить и т.д., но не всегда получается. Так и случилось с Samsung Galaxy Note — дедушка всех лопат, вроде Galaxy Ultra, iPhone Max и т.д. Покупал его в далеком 2011 году, кстати на немецком Сomputeruniverse. Успешно пользовался им целых 5 лет, заменил на новый, а этот так никуда не пристроил и положил на полку. Но мириться с этим был не готов, поэтому все время пытался его как-то зайдествовать. В частности, он работал в качестве точки доступа WiFi, выступал сервером все того же умного дома. Телефон участвовал в различных эспериментах, например, переводился на постоянное питание, причем напрямую через клеммы, причем сразу на 5v, так как через порт без аккумулятора он не включался, аккумулятор же раздулся до неприличных размеров и физически не вставлялся в слот. Многократно прошивался и после всего этого остался цел и работоспособен. Во раньше делали! Его и решил использовать в проекте. Вместо заслуженного отдыха, старичок отправился работать 24/7. Вкалывают роботы — счастлив человек!Дополнительная информация

Что касается самой идеи погодного информера, то может возникнуть вопрос — а тут то зачем изобретать велосипед, наверняка уже есть готовые решения? Ну, во-первых, потому что могу, а во-вторых, у меня изначально задача стояла интегрировать дисплей в умный дом — вряд ли имеется что-то, с нужным мне функционалом. Так же у меня было свое видение и идеи, которые хотелось воплотить в жизнь. Да и реализация казалась не особо сложной, впрочем, так оно и оказалось. За основу взят браузер, это web-приложение. Для поставленной задачи, такого подхода, более чем достаточно. Простое, легкое и гибкое решение, при этом кросс-платформенное — универсальное. Самое главное ничего устанавливать не надо, так как порой сделать это просто невозможно.
Настройка и запуск
Итак, приступим. Нам потребуется телефон, в мое случае 14-летней давности — думаю, достаточно старый, для наглядности. Подойдет, в приципе любой, в том числе, демонстрационные юниты, те которые, без модуля связи, так же это может быть частично поломанный аппарат, например, мне попадался с вышедшим из строя модемом. На крайний случай, можно приобрести что-нибудь дешевое или б.у. — вариантов много. Для загрузки прогноза необходим интернет (WiFi так же подойдет). По поводу софта, изначально на моем экземпляре была установлена 2-ая версия андроида, позднее телефон был прошит на 6-ую от 2016 года — на данный момент является устаревшей и неподдерживаемой ОС, а следующем году получит статус исторической. Телефон адски тормозит, ему катастрофически не хватает памяти — то что нужно!Браузер мощный инструмент, который дает многое с минимальными накладными расходами, но в случае с телефонами имеется нюанс: он не может запретить переход в спящий режим, т.е. экран будет гаснуть, что неприемлимо в случае с информером. Решение есть. Постоянно работающий экран подразумевает и постоянную зарядку, иначе батареи на долго не хватит. В андроиде же, имеется режим, в котором экран не гаснет при подключенной зарядке, но по умолчанию он скрыт и его нужно открыть. Делается это в настройках. Не скажу за все телефоны, но на самсунгах это: Настройки -> Сведения о телефоне -> Сведения о ПО — в этом меню необходимо 5 раз тапнуть по пункту «Номер сборки», после чего должно появиться сообщение о том, что режим разработчика разблокирован. Далее переходим в Настройки -> Параметры разработчика, где должен быть пункт «Не выключать экран» -> активируем — профит. Если не получается таким образом запретить гануть экрану, существуют другие способы. Например, с помощью специальных приложений «Wakey: Держите экран активным», «Экран включен» и т.д. Кстати, потребление электричества в этом режиме очень скромное — у меня около 1Вт/ч.
Дополнительная информация

Прогноз погоды будем брать у Яндекса, используя бесплатное API. Надо сказать, что информер я делал достаточно давно и за это время произошли некоторые изменения. В частности, Яндекс перенес в архив тариф мой тариф. Вместо него доступен другой, для умных устройств — подходит. В основных тарифах он не отображается, подключение доступно по ссылке https://yandex.ru/pogoda/b2b/smarthome. Необходимо иметь аккаунт в Яндексе и быть авторизованным. Переходим по ссылке и подключаем API (желтая кнопка «Подключиться»), на следующей странице, подтверждаем данные и переходим в панель управления «API для Умного дома», откуда копируем ключ и сохраняем его.
Дополнительная информация

Дополнительная информация

file:///storage/emulated/0/Download/informer.html или так file:///storage/sdcard0/Download/informer.html Если никак не получается открыть файл, остается только использовать web-сервер. Сгодится любой, существует большое количество бесплатных. Проверяем результат, должно получиться что-то вроде такого:
Переводим в полноэкранный режим тапом, чтобы скрыть интерфейс браузера. Информер готов.Размещение
Так как подразумевается стационарное использование, то необходимо выбрать удобное место с доступом к питанию. Для меня идеальным по всем параметрам оказалось размещение около входной двери. Во-первых, удобно знать прогноз непосредственно перед выходом на улицу. Во-вторых, это является центром квартиры и информер виден из многих мест и при переходах между комнатами. А так же, у меня реализована еще одна функция, которая в принципе заставила заняться проектом (об этом ниже). Для начала лучше устанавливать временно, чтобы определиться с местом. Я использовался двусторонний скотч, как ни странно, телефон висел так продолжительное время, но потом все-таки отклеился и повис на шнурке, хорошо подстраховался.Дополнительная информация

Дополнительная информация

Интерфейс
Информер имеет адаптивный дизайн — это означает, что он должен работать на устройствах с разными экранами. Это по задумке, но могут быть и косяки. Возможна только портретная ориентация. Скажем, так сложилось исторически. Я изначально планировал использовать телефон, для которого вертикальное расположение более естественное и удобное (порт зарядки снизу и т.д.). Планшеты в портретной ориентации, так же подходят, теоретически опять же, проверить, к сожалению, не на чем. Если блоки не помещаются по вертикали или наоборот, много пустого места снизу (актуально для современных смартфонов, имеющих вытянутые экраны), тогда можно попробовать уменьшить или увеличить значение поля .spacer. Переделать на альбомную ориентацию не сложно, но требует полного пересмотра шаблона. На данный момент имеем то, что имеем. В качестве основного оформления используется ночная тема — отличная контрастность, то что надо для информера. Так же, это хорошо смотрится на OLED дисплеях, в полной темноте интерфейс словно висит в воздухе и не имеет рамок, а еще в таком режиме меньше потребление. Кстати, Note 2011 года уже имел на борту OLED-дисплей, даже сегодня не каждый телефон может похвастаться этим. Что касается дизайна, то тут конечно все индивидуально, своей целью ставил максимально легкое считывание информации. В любом случае, при желании, дизайн всегда можно переколхозить на свой вкус и цвет.
Стояла задача не перегружать ни себя, ни информер информацией, поэтому отображается только самое необходимое. Данные расположены по важности и полезности сверху вниз. Первым идут часы, максимально крупные и точные. Специально разработал алгоритм обновления секунды в секунду (если синхронизуя телефона с NTP-сервером работает корректно) — люблю точные часы. Дата с днем недели и годом (в запарке можно забыть и его).
Далее следует блок с фактическим прогнозом погоды. Температура наравне с часами, наиболее часто требуемая информация — так же по максимуму крупно. Под температурой располагаются экстремумы — минимальное и максимально значение за сутки, иногда бывают полезны. Далее облачность, так же инфа первой необходимости. За облачностью блок с ветром, влажностью и давлением. Как мне кажется, выводить просто цифры не самая лучшая идея, так как они, без подготовки, мало чего дают, особенно по началу. Лично мне значение давления в цифрах не дает ничего — не понятно много это или мало, хорошо или плохо. Поэтому, решил как-то это визуализировать, для упрощения восприятия. Хотелось добиться того, чтобы было достаточно брошенного взгляда, для оценки ситуации. Для этого использовал индикаторы, которые опираются на уже известные данные и в зависимости от них заполняются и меняют цвет. Если индикатор красный — на это сразу обращаешь внимание, тогда уже можно и подробно изучить показания. Первый блок посвящен ветру — на него начинаешь смотреть, когда он сильный. По собранной мной статистике, для моего местоположения 15м/c — максимальная скорость ветра, соответственно, когда ветер равен и превышает это значение, индикатор будет красным, а бар будет заполнен полностью. Максимальное значение можно отредактировать в конфигурации, исходя из ваших условий. Так же имеется направление ветра в виде стрелки откуда-куда, северный — холодные и т.д. За ветром следует влажность — ну тут все понятно. Я не специалист по атмосферному давлению, но вроде как низкое хуже переносится, чем высокое, соответственно, чем краснее индикатор, тем ниже давление. Синий индикатор говорит о высоком давлении, и вроде как, при этом выше вероятность выпадения осадков, что так же ассоциируется с этим цветом. Минимальное и максимальное значения, так же установлены в конфиге.

Следующая строка — прогноз на ближайшее время. Когда пилил информер, яндекс предоставлял прогноз именно в таком виде. Сейчас API изменился и прогноз стал более подробным. В частности, добавили почасовую информацию. Как показала практика, усредненный прогноз, на два периода вперед, оказался очень удобным. Прогноз вообще, в принципе, носит приблизительный характер и грузить себя подробной информацией не имеет никакого смысла, да и отображать ее негде на маленьком экране, чтобы не рассматривать с лупой. Так вот, яндекс по прежнему дает средний прогноз по периодам — его и используем, как хорошо зарекомендовавшее себя решение. Принцип работы следующий: сутки делятся на периоды 6-11 часов — утро, 12-17 — день, 18-22 — вечер, 23-5 — ночь. Например, когда на часах 13:30, будет отображаться прогноз на вечер и ночь. Идеально для повседневного использования: выходишь с утра и понимаешь чего ждать днем и вечером, когда будешь возвращаться. Детальный прогноз же, всегда можно получить любым другим способом, в функцию информера это не входит. В периодах, так же отображаются температура, облачность и ветер.

Последний блок посвящен времени суток. Восход-заход — тут все понятно. А вот то что находится между требует пояснения. Первое значение — продолжительность дня. Под ней визуализация суток: вся полоса — это 24 часа, заполняется она соответственно текущему времени. Желтая полоса поверх — световой день, ее ширина меняется в зависимости от продолжительности дня, так же она сдвигается в зависимости от времени восхода и заката. Под баром находится информация о текущем времени суток (день или ночь) и времени до его смены. Возможно этот блок покажется сложным, но если все это выводить напрямую, т.е. так и писать «продолжительность дня», «осталось» и т.д. — то это заняло бы очень много места. В целом, это уже второстепенная информация, которая бывает нужна не так часто, поэтому можно просто вдумчиво изучить, когда это необходимо. Напоследок, фаза луны, которая меняется динамически и так же может быть полезна. Вообще, этот блок носит больше развлекательно-познавательный характер и является своеобразным элементом дизайна.

Все же, работа в альбомной ориентации возможна, но ограничена. Используя широкий экран, мы получаем синхронизированные часы с датой — возможно кому-то этого будет достаточно. API в этом случае подключать не требуется, будем считать это недокументированной возможностью.

для тех, кто любит покрупнее

Про API Яндекса
С подробными правилами можно ознакомиться здесь yandex.ru/legal/apib2c_weather_agreement/, где помимо всего прочего, сказано про лимиты. Так вот лимиты эти достаточно жесткие: 30 обращений в сутки — что еще приемлемо, и, внимание, 380 обращений в месяц. Там же сказано «В случае превышения Пользователем указанных лимитов, доступ к Сервису может быть ограничен». По своему опыту скажу: не может, а точно будет ограничен. Получается, месячный лимит такой, что обращаться к API можно не чаще 1 раза в 2 часа — чего явно маловато, для того чтобы «Создать комфортные условия в доме в зависимости от погоды», как заявлено на промо странице. За 2 часа погода может существенно поменяться. В панели управления же, в колонке «Запросы в месяц», можно увидеть «1000 запросов в месяц», что как бы логично, при лимите 30 запросов в сутки. Чему верить — не понятно, будем полагаться на значение из панели, т.е. 1000. В скриптах есть возможность указания частоты запросов к API, по умолчанию установлен 1 запрос в час, не рекомендую увеличивать это значение. Суточный лимит я превышал, месячный не успел. Возможно частоту придется даже уменьшать, если прогноз не будет отображаться.
Дополнено:
Во время разработки, выяснилось что в этой версии API, Яндекс иногда не отдает данные по давлению. Не понятно с чем это связано, думаю просто баг. Привет разработчикам, тестировщикам и корректорам яндекса. Здесь мои полномочия всё.
Дополнено:
Во время разработки, выяснилось что в этой версии API, Яндекс иногда не отдает данные по давлению. Не понятно с чем это связано, думаю просто баг. Привет разработчикам, тестировщикам и корректорам яндекса. Здесь мои полномочия всё.
Реализация
Представленное решение, внешне похоже на мою реализацию, но имеет существенные внутренние отличия. Главное в том, что это standalone приложение, т.е. это автономная страница, для работы которой вообще не требуется веб-сервер. Мое же версия, классическая связка сервер-клиент, где основная часть работы ведется на сервере. В данном случае, вся работа с API и расчетами происходит непосредственно в браузере. Так же, формат данных, передаваемых яндексом, существенно изменился. Надо сказать, что это не мой профиль, я занимаюсь php, тут же полная противоположность — 100% фронт на чистом javascript и css. Специально для статьи по-быстренькому переписал скрипты на js и немного протестировал — вроде, все ок. Код простой и легкий, но ошибки и баги могут присутствовать. Так же возможны проблемы совместимости, особенно со старым ПО, как по части javascript, так и по части css — все поправимо, но потребуется индивидуальный подход.Информер я сделал более 2 лет назад. Были сомнения по поводу выбранной схемы, ее работоспособности, а так же вообще полезности и востребованности такого устройства. Так вот, по прошествии лет, могу сказать: must-have! Редко такое бывает, когда пройдешь мимо и не глянешь на информер. Можно подумать, что это я просто не могу налюбоваться на свою поделку, но судя по домашним, это не так. Была недавно забавная ситуация. Мне показалось, что сила ветра в м/с не совсем понятна, и лучше бы ее выводить в км/ч — ну вроде, так легче представить. Переделал втихую и буквально в тот же день получил тонны хейта в свой адрес, вроде того, что теперь ничего не понятно, ни с кем не считаюсь и бла-бла-бла. Если честно, не думал, что туда еще кто-то смотрит, кроме меня. Пришлось вертать взад. В общем, вещь нужная и полезная. Что касается телефона, мол вывезет ли работу 24/7, что будет с экраном, а это выгорающий oled, не вредно ли аккумулятору постоянная зарядка и т.д. — работает, как часы и не пикает. Экран немного выгорел конечно, видно это лучше всего на сером фоне — не критично. Ну выгорел, да и выгорел, чего бубнить то, отрабатывает вложенные деньги. До сих пор! Кстати, яркость экрана выставлена на минимум, но только лишь по причине того, что для информера этого более, чем достаточно, т.к. экраны телефонов очень яркие. Более того на ночь, яркость автоматически снижается еще на 90% уже самим информером, а утром восстанавливается обратно — сделано опять же для комфорта, чтобы не освещать помещение и не слепить. Более того, в этой версии андроида (LineageOS) телефон можно поворачивать не только набок, но и вообще кверху ногами, что так же может снизить нагрузку на экран. Когда информер отвалился, то провисел так полгода и даже немного выгорел уже с другой стороны, на пользу в общем пошло. Такими темпами, как говорится, «еще походит» столько, сколько нужно.
Дополнительная информация

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

Заключение
В данной статье, в первую очередь, хотел предложить концепцию использования старых/ненужных устройств в качестве дисплеев, а так же продемонстрировать это на примере реализации простого погодного информера. Вместо того, чтобы трать время, создавая свой дисплей из модулей, и получить сомнительный результат или же тратить деньги на «умный экран» (обычный планшет) и обзавестись проприетарным закрытым решением, завязанным на определенную инфраструктуру и работающим через китайские серверы — можно достать из ящика старенький смартфон и без особых усилий интегрировать его куда угодно. По факту, можно использовать вообще любое устройство с дисплеем и браузером. Используя же телефон с тачскрином, мы получаем не только отличный экран, но полноценный интерфейс для взаимодействия с умным домом, а богатая периферия открывает огромные перспективы и возможности для творчества. На этом у меня все. Спасибо за внимание.
Самые обсуждаемые обзоры
| +230 |
4956
141
|
| +75 |
4996
180
|
| +59 |
2644
102
|
Упс… понял — камеру старого смартфона используете.
habr.com/ru/companies/sochikamera/articles/411037/
у меня датчик освещенности был еще на HTC Touch Diamond, а он уже почти совершеннолетний
Я так понимаю писать свой информер интересно для вывода данных с локальных датчиков, например в дополнение к интернет данным еще и температуру и влажность в помещении, т.к. они естественно отличаются от уличных.
А так конечно тоже думал куда приспособить старые телефоны, поэтому лайкну. )))
дыркуотверстие, то можно и камеру этого смартфона задействовать…Ну или надо как минимум вносить изменения в телефон и убирать акб как источник опасности.
Для экрана предусмотреть всеж или отключение или скринсейвер наверное — чтобы прогноз появлялся по взмаху перед экраном и т.п.
Ну и если уж умный дом то умный дом — интегрировать с каким-нить home assistant чтобы расширить функционал — не только прогноз погоды, но и домашняя обстановка и управление — может пойдет как альтернатива панелькам фирменным управления что продаются…
странно — распространять страшилки ну пустом месте ради самого процесса.
А если по существу — то один из основных симптомов старения лития — это резкое возрастание тока утечки при заряде выше определённого порога по напряжению, и этот порог с дальнейшим старением снижается. Когда аккум на зарядке достигает этого порога, собственно заряжаться он почти прекращает, при этом напряжение ещё не достигло CV фазы контроллера и ток сохраняется высоким. Энергия при этом выделяется чисто на нагрев аккума. Такое пороговое напряжение есть практически в любом старом литиевом аккуме (кобальтовом), просто с завода оно много выше порога заряда и постепенно снижается со старением. Если аккум попытаться перезарядить (в контролируемых условиях) — это напряжение можно легко определить и понять, насколько оно уже близко к порогу заряда, но нельзя определить скорость его снижения (нелинейна). Поэтому предсказать, когда оно опустится ниже порога CV зарядки, не получится (да контроллер и не обучен это делать), поэтому этот момент настаёт внезапно, а вероятность его тем выше, чем старше телефон и чем он активнее пользовался.
Ну а дальше всё просто: вы ставите телефон в режим из статьи, поначалу у вас контроллер заряда корректно заряжает аккум до положенного напряжения и дальше питает телефон напрямую (это не умеют только уж совсем старые контроллеры), аккум понемногу саморазряжается, зарядка снова включает заряд и его дозаряжает, и далее по циклу. Первые недели-месяцы ничего не происходит, телефон не греется, всё нормально, жильцы к нему привыкают. Какой-то десятый — двадцатый — сотый «подзаряд» таки приведёт к снижению вышеописанного порога роста тока утечки ниже напряжения CV заряда и контроллер не отключится, начнётся «вечный заряд» аккума. Сначала ток будет небольшим, нагрева никто не будет замечать (да и проверять никто не будет, привыкнут к девайсу, станет предметом интерьера), но он будет понемногу расти, т.к. деградация аккума продолжится. Будет расти нагрев, а он ускоряет деградацию аккума. Процесс «разгоняется». При этом в телефоне повышается температура и обоим, аккуму и контроллеру становится горячо. А дальше уже не важно: контроллер пробъёт от «плавного перегрева» (при этом очень высока вероятность того, что термозащита не сработает, медленный нагрев для неё — самое сложное условие), либо аккум «очень сильно обидится» и лопнет… И по известным законам это произойдёт тогда, когда никого не будет дома.
но некоторым скучно боятся в одиночку и они настойчиво пытаются напугать окружающих.
ситуация с утечкой во1ых весьма редка, во2ых для борьбы с ней в батарее есть термодатчик.
Можно еще сделать интернет радио.
Можно подробнее, какие клеммы?
включение при приближении курьера (после открытия домофона) или звонка в дверь
трансляция изображения с камеры перед дверью и погоды + реальный датчик дождя из HA
остальное время экран выключен
зарядка при достижении заряда 20% и отключение при 80%
бегать к двери чтобы посмотреть погоду?
имхо, отдельные цифры без указания тенденций не так информативны, гораздо интереснее отображение как в Flowx — графиками.
Стоп, 2-3 диода — это падение на 1.2-1.8 вольт… Во-первых, тогда уж лучше понижайку поставить, а во-вторых- зачем так сильно ронять?
На диодах в зависимости от типа и температуры может падать куда меньше чем 0,6в.
Так что на свой страх и риск.
Ну и в целом — больше 20% мощности всаживать на диодах… некошерно.
или на импульсном с типичным кпд в те же 80%?
Уточняю: мне как-то сразу подумалось о том, что БП прячется в стенку за телефоном (планшетом в моём случае).
совершенно незачем заниматься крохоборством с нулевым результатом.
А БП как раз абсолютно стандартный — просто не на 5 вольт, а на 3.3, раз меня тут так убеждают, что это нормальное напряжение. Что-то вот такое — https://www.aliexpress.com/item/32969155944.html
Вчера знакомый рассказал, что ему притащили в ремонт какую-то хрень, где вместо понижайки 5 на 3,3в воткнули один диод. Железка гарантийный месяц отработала.
Таки да. Правильнее в блоке питания понизить напряжение. Но его же разламывать надо… Не наш путь.
По поводу напряжения — это какой-то очень странный телефон. Потому что если мы его кидаем на зарядку — то там, собственно, 4.2 или сколько там у зарядки верхний предел и будет, так что не может на нём не работать.
ну и экраны, даже ips на постоянке включения «устает», не говоря уж про oled так что двигаемся к чернилам электронным
Если всё равно телефон только на выброс, то пусть будет выброшен уставшим…
а температура — это может быть просто терморезистор.
вот в частности ноте2 тоже ничего лишнего.
Что до «сбрасывает» — ИБП бывают и внешними, прикрывающими весь «умный дом», а то и всю квартиру.
Ну и в целом, конечно, правильный подход — чтобы оно перезагружалось в правильное состояние автоматом, но это отдельный вопрос.
реально происходит следующее — телефон переходит на ЗУ. АКБ разряжается и при определенном пороге снова заряжается от ЗУ. Происходят короткие постоянные циклы заряда вблизи полного заряда. Плохой режим
пропишите в автозапуск, что бы после старта системы все что нужно загружалось (есть такие программы)
Я ее и текущую погоду спрашиваю, и на завтра, и на несколоько дней вперед.
А в остальном очень актуально. Старые телефоны — ценный ресурс, который многие недооценивают.
Самсунг как раз имеет гнилую историю возгораний.
В общем, если не переделывать питание — затея довольно стремная при таком то возрасте.
Но это право хозяина. Его же дом. Ему и… ;)
Можно еще запитать через примитивный механический таймер с зарядкой раз в три часа/сутки.
Можно поставить прогу «умнгая розетка» и заряжать смартфон по падению его акк через эту прогу (прога врубает умную розетку на вкл и вырубает при зарядке батреи).
Идея хорошая, но совсем без переделки аспекта питания все же стремно.
Я бы заменил акк на новый и поставил грамотну. (не постоянную ) систему зарядки…
Я так же не оч понимаю на кой автору 24/7 ночью и днем горящий экран с погодой? Нужно глянуть? Тапнул- глянул.
Идея с камерой на этот же экрана парадняка и этуже прогу хорошая. Понравилось. Это хорошо.
для негашения экрана пользуюсь специальным приложением, про режим разработчика не знал
UPD: через неделю он таки ожил и продолжает радовать цифирками.
var api = '***'; //API Яндекс погода
var lat = 55.681554586825044; //Широта
var lon = 37.51840813998081; //Долгота
var wind_max = 25; //Скорость ветра, максимум, м/с
var pressure_min = 710; //Давление, минимум, мм рт ст
var pressure_max = 770; //Давление, максимум, мм рт ст
Давление отобразятся позднее, это баг API, он не всегда отдает это значение.
по мне так как раз наоборот.
при низком атмосферном давлении-больше вероятность дождя
а при высоком она минимальна
обычно в ясную погоду давление высокое
а перед дождем или во время дождя низкое
я по барометру так и определяю приближение дождя(по цифрам)
но норма она у всех разная, зависит от местности(высота над уровнем моря итд)
и тогда по идее когда давление низкое то полоска должна быть более синяя(больше вероятность дождя)
а если давление высокое то полоска красная( и кстати высокое атмосферное давление хуже переносится людьми с проблемами со здоровьем)
как то так
все как говорится имхо
а идея хорошая возьму на вооружение
и да-как реализовано переключение тапом на камеру?
не, в принципе интересный проект, но честно говоря не понял зачем автор заморачивался при наличии доступного решения. хотя хез, я на планшет древний ставил, может на телефоне хуже будет, ну и режима домофона там точно нет…
через браузер любой работает
только как сделать автозапуск браузера с нужной страницей развернутой на полный экран?
была поделка чемто подобная вашей, тоже полутруп телефона, тоже висел на стене.
были мысли как сделать так чтоб он отключался, помог датчик движения и таскер.
датчик движения подключаем к порту зарядки(без разницы появляется питание при движении или пропадает)
в таскере на это действие заводим включение экрана на определенное время(минута)
в итоге прошли, включился, ушли, уснул. тогда к этому пришел как к самому простому варианту.
этож не полное отключение
если датчик будет дёргать питания то это перезагрузит планшет
а он кабы не 5 сек включается
Тоже использую старенький nexus5 как инфо панель
На скриншоте — графана. Была попытка сделать на node-red но не понравился дизайн
Пробовал виджет яндекса, но не помню почему не понравился.
В качестве браузера (к сожалению двно не обновляемый) WebPanel. Прелесть что он умеет параллельно транслировать с камеры, работать как детектор движения и передавать состояние всех даатчиков телефона. Освещенность, температуры, в нексусе еще есть давление.
Управляется и отправляет все в mqtt (у меня mqtt как шина в умном доме. все через нее идет).
При загрузке запускается автоматом, не дает телефону уснуть.
Давно хотел что-то такое, думал делать это на Arduino, почему-то не подумал о смартфоне.