Парсер погоды на ESP8266
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Парсер погоды на ESP8266
Тема погоды на форуме: viewtopic.php?f=63&t=4645 а также большого количества условно бесплатных программ в интернете, вдохновили к написанию пользовательского блока. Основа всех программ, в вышеуказанном топике, написана на библиотеке ArduinoJson 5 версий. В FLProg последних версий используется 6 Json. Отсюда и "пляски с бубном".
Пользовательский блок написан в 6 Json. Для сервиса используется интернет ресурс: https://openweathermap.org, в котором зарегистрировавшись, можно получить бесплатно ключ API. На странице: https://openweathermap.org/city/ введя свой город, в конце адреса ссылки получите код города ( https://openweathermap.org/city/578072). Здесь: https://home.openweathermap.org/api_keys хранятся ваши ключи API, а также высылаются на указанный вами адрес почты. Назначение входов и выходов в комментариях.
Сам блок: [spoiler] [/spoiler]
Скриншот ESPUI[spoiler] [/spoiler]
Пример использования блока: Для контроля времени опроса погоды добавил выход unix в пользовательский блок: Для перевода UNIX, пользовательский блок брать здесь: viewtopic.php?f=84&t=6879
Пользовательский блок прогноза погоды по выбору временной точки. Период точек на сайте: openweathermap.org равен 3 часам. При установке переменной mCnt числа от 1 до 23 (временной точки), прогноз выдается по конечному числу, т.е. например: число 5 Х 3 =15 часов. Прогноз на время через 15 часов.
Из за ограничения динамической памяти в ESP8266, прогноз на 2 суток.
Пользовательский блок прогноза погоды:
[spoiler] [/spoiler]
Пользовательский блок написан в 6 Json. Для сервиса используется интернет ресурс: https://openweathermap.org, в котором зарегистрировавшись, можно получить бесплатно ключ API. На странице: https://openweathermap.org/city/ введя свой город, в конце адреса ссылки получите код города ( https://openweathermap.org/city/578072). Здесь: https://home.openweathermap.org/api_keys хранятся ваши ключи API, а также высылаются на указанный вами адрес почты. Назначение входов и выходов в комментариях.
Сам блок: [spoiler] [/spoiler]
Скриншот ESPUI[spoiler] [/spoiler]
Пример использования блока: Для контроля времени опроса погоды добавил выход unix в пользовательский блок: Для перевода UNIX, пользовательский блок брать здесь: viewtopic.php?f=84&t=6879
Пользовательский блок прогноза погоды по выбору временной точки. Период точек на сайте: openweathermap.org равен 3 часам. При установке переменной mCnt числа от 1 до 23 (временной точки), прогноз выдается по конечному числу, т.е. например: число 5 Х 3 =15 часов. Прогноз на время через 15 часов.
Из за ограничения динамической памяти в ESP8266, прогноз на 2 суток.
Пользовательский блок прогноза погоды:
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось rogekam 20 мар 2021, 10:33, всего редактировалось 5 раз.
Парсер погоды на ESP8266
Добрый день.
скетч выдает ошибку
'DynamicJsonDocument' was not declared in this scope
выделяется строка
json ver 6.17.3
Отправлено спустя 3 минуты 36 секунд:
Отправлено спустя 2 часа 42 минуты 2 секунды:
[ref]rogekam[/ref],
вы не рассматривали возможности ЕСП8266 на обработку данного запроса?
https://openweathermap.org/forecast5
ответ приходит на 15690 знаков
246 строк
скетч выдает ошибку
'DynamicJsonDocument' was not declared in this scope
выделяется строка
Код: Выделить всё
DynamicJsonDocument doc(2048);
Отправлено спустя 3 минуты 36 секунд:
помогла зачистка старой библиотеки ArduinoJson вручнуюQwert855 писал(а): 14 мар 2021, 19:28 Добрый день.
скетч выдает ошибку
'DynamicJsonDocument' was not declared in this scope
выделяется строкаjson ver 6.17.3Код: Выделить всё
DynamicJsonDocument doc(2048);
Отправлено спустя 2 часа 42 минуты 2 секунды:
[ref]rogekam[/ref],
вы не рассматривали возможности ЕСП8266 на обработку данного запроса?
https://openweathermap.org/forecast5
ответ приходит на 15690 знаков
246 строк
-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Парсер погоды на ESP8266
Да, прогноз погоды на 5 дней, с интервалом 3 часа. Ограничив избыточную информацию(конечно субъективно), выборочно, основные параметры: температура, давление, осадки в виде стилизованной таблицы. Выйдет три строки по 8 столбцов.Qwert855 писал(а): 14 мар 2021, 22:13 rogekam,
вы не рассматривали возможности ЕСП8266 на обработку данного запроса?
https://openweathermap.org/forecast5
Парсер погоды на ESP8266
можно поток входящий отрезать или нужно принять все 16тыс знаков а уже из них отрезать знаки?
при возможность попробую как есп себя поведет если поставить 16 тыс знаков и попытаться обработать их
при возможность попробую как есп себя поведет если поставить 16 тыс знаков и попытаться обработать их

-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Парсер погоды на ESP8266
Выложил в шапке пользовательский блок прогноза погоды. Прогноз на 2 суток из за малого объёма динамической памяти в ESP8266.Qwert855 писал(а): 14 мар 2021, 22:13 rogekam,
вы не рассматривали возможности ЕСП8266 на обработку данного запроса?
https://openweathermap.org/forecast5
Парсер погоды на ESP8266
спасибо.rogekam писал(а): 18 мар 2021, 19:38Выложил в шапке пользовательский блок прогноза погоды. Прогноз на 2 суток из за малого объёма динамической памяти в ESP8266.Qwert855 писал(а): 14 мар 2021, 22:13 rogekam,
вы не рассматривали возможности ЕСП8266 на обработку данного запроса?
https://openweathermap.org/forecast5
как раз интересует запрос не далее 2х суточного прогноза, дальше парсить прост нет смысла. там уже не прогноз а игра в шарады.
оптимальный прогноз на 3 и 24 часа.
Отправлено спустя 10 минут 30 секунд:
вход - mCnt - необходимо устанавливать 0,1,2 и производить опросы?
Отправлено спустя 15 минут 40 секунд:
если я правильно понял логику и данные парсятся последовательно из разных участков ответа, то вероятно на блоке не хватает статуса удачного ответа (Rtrig)
-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Парсер погоды на ESP8266
вход - mCnt -необходимо устанавливать 1, 2 и т.д. до 23. При "0" парсинга нет, так как нет запроса. 1, 2, 3 это метки времени, последовательно по нарастающей через 3 часа - 00, 03, 06, 09, - 12 именно эти метки установлены на сайте. Можно выбрать только количество меток, но не их расположение. Поэтому при метке например 8, ответ API будет такой:Qwert855 писал(а): 18 мар 2021, 21:47 вход - mCnt - необходимо устанавливать 0,1,2 и производить опросы?
Отправлено спустя 15 минут 40 секунд:
если я правильно понял логику и данные парсятся последовательно из разных участков ответа, то вероятно на блоке не хватает статуса удачного ответа (Rtrig)
[scroll]HTTP/1.1 200 OK
Server: openresty
Date: Thu, 18 Mar 2021 20:14:47 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 3233
Connection: close
X-Cache-Key: /data/2.5/forecast?cnt=8&id=578072&units=metric
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST
{
"cod": "200",
"message": 0,
"cnt": 8,
"list": [
{
"dt": 1616101200,
"main": {
"temp": -0.25,
"feels_like": -4.54,
"temp_min": -0.51,
"temp_max": -0.25,
"pressure": 1008,
"sea_level": 1008,
"grnd_level": 989,
"humidity": 85,
"temp_kf": 0.26
},
"weather": [
{
"id": 804,
"main": "Clouds",
"description": "overcast clouds",
"icon": "04n"
}
],
"clouds": {
"all": 87
},
"wind": {
"speed": 2.81,
"deg": 16
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "n"
},
"dt_txt": "2021-03-18 21:00:00"
},
{
"dt": 1616112000,
"main": {
"temp": -0.68,
"feels_like": -5.08,
"temp_min": -0.87,
"temp_max": -0.68,
"pressure": 1010,
"sea_level": 1010,
"grnd_level": 990,
"humidity": 83,
"temp_kf": 0.19
},
"weather": [
{
"id": 804,
"main": "Clouds",
"description": "overcast clouds",
"icon": "04n"
}
],
"clouds": {
"all": 94
},
"wind": {
"speed": 2.85,
"deg": 12
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "n"
},
"dt_txt": "2021-03-19 00:00:00"
},
{
"dt": 1616122800,
"main": {
"temp": -2.06,
"feels_like": -6.13,
"temp_min": -2.2,
"temp_max": -2.06,
"pressure": 1010,
"sea_level": 1010,
"grnd_level": 989,
"humidity": 87,
"temp_kf": 0.14
},
"weather": [
{
"id": 803,
"main": "Clouds",
"description": "broken clouds",
"icon": "04n"
}
],
"clouds": {
"all": 60
},
"wind": {
"speed": 2.26,
"deg": 13
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "n"
},
"dt_txt": "2021-03-19 03:00:00"
},
{
"dt": 1616133600,
"main": {
"temp": -0.44,
"feels_like": -5.01,
"temp_min": -0.44,
"temp_max": -0.44,
"pressure": 1011,
"sea_level": 1011,
"grnd_level": 990,
"humidity": 74,
"temp_kf": 0
},
"weather": [
{
"id": 803,
"main": "Clouds",
"description": "broken clouds",
"icon": "04d"
}
],
"clouds": {
"all": 64
},
"wind": {
"speed": 2.88,
"deg": 21
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "d"
},
"dt_txt": "2021-03-19 06:00:00"
},
{
"dt": 1616144400,
"main": {
"temp": 0.97,
"feels_like": -3.4,
"temp_min": 0.97,
"temp_max": 0.97,
"pressure": 1012,
"sea_level": 1012,
"grnd_level": 991,
"humidity": 68,
"temp_kf": 0
},
"weather": [
{
"id": 804,
"main": "Clouds",
"description": "overcast clouds",
"icon": "04d"
}
],
"clouds": {
"all": 97
},
"wind": {
"speed": 2.63,
"deg": 17
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "d"
},
"dt_txt": "2021-03-19 09:00:00"
},
{
"dt": 1616155200,
"main": {
"temp": 1.68,
"feels_like": -2.25,
"temp_min": 1.68,
"temp_max": 1.68,
"pressure": 1012,
"sea_level": 1012,
"grnd_level": 992,
"humidity": 68,
"temp_kf": 0
},
"weather": [
{
"id": 804,
"main": "Clouds",
"description": "overcast clouds",
"icon": "04d"
}
],
"clouds": {
"all": 98
},
"wind": {
"speed": 2.11,
"deg": 6
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "d"
},
"dt_txt": "2021-03-19 12:00:00"
},
{
"dt": 1616166000,
"main": {
"temp": 1.08,
"feels_like": -2.81,
"temp_min": 1.08,
"temp_max": 1.08,
"pressure": 1013,
"sea_level": 1013,
"grnd_level": 993,
"humidity": 75,
"temp_kf": 0
},
"weather": [
{
"id": 804,
"main": "Clouds",
"description": "overcast clouds",
"icon": "04d"
}
],
"clouds": {
"all": 99
},
"wind": {
"speed": 2.18,
"deg": 4
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "d"
},
"dt_txt": "2021-03-19 15:00:00"
},
{
"dt": 1616176800,
"main": {
"temp": 0.29,
"feels_like": -3.66,
"temp_min": 0.29,
"temp_max": 0.29,
"pressure": 1014,
"sea_level": 1014,
"grnd_level": 994,
"humidity": 81,
"temp_kf": 0
},
"weather": [
{
"id": 804,
"main": "Clouds",
"description": "overcast clouds",
"icon": "04n"
}
],
"clouds": {
"all": 100
},
"wind": {
"speed": 2.31,
"deg": 37
},
"visibility": 10000,
"pop": 0,
"sys": {
"pod": "n"
},
"dt_txt": "2021-03-19 18:00:00"
}
],
"city": {
"id": 578072,
"name": "Belgorod",
"coord": {
"lat": 50.61,
"lon": 36.58
},
"country": "RU",
"population": 0,
"timezone": 10800,
"sunrise": 1616038857,
"sunset": 1616082154[/scroll]
Здесь 8 блоков, парсинг последнего 8 блока, соответственно и время. Т.е. если mCnt=2, то прогноз через 6 часов, а mCnt=8 - прогноз через 24 часа, те 8 метка. В блоке выводиться время, соответствующее метке.
Парсер погоды на ESP8266
потестил обновленный блок. очень удобный.
включил в него смену языка и вывод Weather condition codes ID отсюда https://openweathermap.org/weather-conditions
[ref]rogekam[/ref], просьба добавить в блок импульс на удачный запрос, с UNIX выходом все супер информативно. в целом можно и его отслеживать как статус чтения
включил в него смену языка и вывод Weather condition codes ID отсюда https://openweathermap.org/weather-conditions
[ref]rogekam[/ref], просьба добавить в блок импульс на удачный запрос, с UNIX выходом все супер информативно. в целом можно и его отслеживать как статус чтения
-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Парсер погоды на ESP8266
Обновил п. блок прогноза погоды. Добавил "видимость". Изменил формат точки времени, теперь выход в формате string. Добавлять выходных параметров можно еще, (их два десятка), на любителя, но считаю избыточным. Данные на сервере погоды обновляются 10-20 минут. Так что стучать не стоит. В параметрах, период опроса, выставить в пределах 10 мин.Qwert855 писал(а): 19 мар 2021, 19:03 потестил обновленный блок. очень удобный.
включил в него смену языка и вывод Weather condition codes ID отсюда https://openweathermap.org/weather-conditions
[ref]rogekam[/ref], просьба добавить в блок импульс на удачный запрос, с UNIX выходом все супер информативно. в целом можно и его отслеживать как статус чтения
Парсер погоды на ESP8266
Доброго времени суток.
rogekam, вы не рассматривали возможность получения погоды с gismeteo.ru или с яндекс погоды?
rogekam, вы не рассматривали возможность получения погоды с gismeteo.ru или с яндекс погоды?
Парсер погоды на ESP8266
Привет.
у всех работает стабильно блок?
обратил внимание что ЕСП 01 уходит в перезагрузку раз в 3-4 дня.
убрал все что можно кроме данного блока и блока адресных диодов (как дисплей)
[ref]Егор[/ref],
впечатление что где то что то переполняется, такое возможно?
у всех работает стабильно блок?
обратил внимание что ЕСП 01 уходит в перезагрузку раз в 3-4 дня.
убрал все что можно кроме данного блока и блока адресных диодов (как дисплей)
[ref]Егор[/ref],
впечатление что где то что то переполняется, такое возможно?
Парсер погоды на ESP8266
Уважаемые, приветствую. Подскажите, как знак "+" или "-" значения температуры получить ?
У меня при такой схеме выводится на дисплей просто числовое значение без знака...
У меня при такой схеме выводится на дисплей просто числовое значение без знака...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Парсер погоды на ESP8266
При такой схеме включения..., на дисплееm0l0dec писал(а): 08 апр 2022, 06:19 У меня при такой схеме выводится на дисплей просто числовое значение без знака...

Парсер погоды на ESP8266
Схему приложил на скриншоте... в предыдущем сообщении. В личные сообщения я вам писал еще.
Там пользовательский блок "forecast" к выходу которого подключен преобразователь строк и затем стандартный блок дисплея 1602.
Залил на хостинг картинок и еще раз приложил скриншот ниже:


Парсер погоды на ESP8266
В личку ответил, файл проекта, для примера, приложил здесь и в личку тоже отправил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Парсер погоды на ESP8266
кто то может разъяснить, почему не отображается знак "+" или "-", моя ошибка или что, как исправить ?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя