• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Поиск значения на web-странице

Не подскажите, что это может быть.
Поставил в цикл (10сек). Примерно раз 20 возвращает значение. Потом еще раз десять пишет что коннектится , но результатов нет.
Потом перезагрузка с такими сообщениями по uart :
Exception (29):
epc1=0x4020bfe6 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000004 depc=0x00000000
ctx: cont
sp: 3ffeff30 end: 3fff0400 offset: 01a0
>>>stack>>>
3fff00d0: 00820000 00000082 3fff7bbc 40218e62
3fff00e0: 3ffef380 3fffb86c 3fff7bbc 4021905c
3fff00f0: 3fff9a6c 00000208 3fff2edc 40100670
3fff0100: 00000104 000025a8 000004b5 00000042
3fff0110: 00000040 00000082 3fff82e4 40219375
3fff0120: 00800000 00000080 00000000 00000041
3fff0130: 00000040 0000003f 3fff86f4 00000041
3fff0140: 3fff2cbc 3fff82e4 3fff86f4 3fff8754
3fff0150: 3fff9b68 ffffffff 3fffb86c 40204774
3fff0160: 00000040 3fffb86c 3fff82e4 3fffb86c
3fff0170: 00000040 3fffb86c 3fff82e4 40219eaf
3fff0180: 3fff6aac 0000003f e76fa774 00000001
3fff0190: 3fffb86c 3fff870c 3fff82e4 00000001
3fff01a0: 00000010 3fffb86c 0000000f 4021a104
3fff01b0: 3fff86f4 3fff873c 0000000f 00000001
3fff01c0: 00000001 3fff85d4 3fff32c9 40218f08
3fff01d0: 00000100 3fffb52c 3fff32c7 00000000
3fff01e0: 00000100 3fffb52c 3fff32c7 4021b28d
3fff01f0: 3fff0220 00000000 000000d0 00000030
3fff0200: 591e6315 3fffbfec 3fff0f24 00000004
3fff0210: 3fff32c1 3fff69d4 3fff32c1 40215f88
3fff0220: 08150303 496606eb 8f1da1a7 cfce1af8
3fff0230: 6646c32c ed359519 4af8cc4b 0a49103f
3fff0240: c202089e 42c6874a cfdbbec4 63153fd2
3fff0250: 3fff32c1 00000004 3fff69d4 4021641d
3fff0260: 0e7423a7 88c88506 d7e81ed1 4021368c
3fff0270: 4444e74a 3fffc6fc 3ffef3e0 4020f1f1
3fff0280: 00000000 00000004 00000004 4020359c
3fff0290: 00000009 00001109 00000064 40204734
3fff02a0: 00000050 00000000 0000002b 00000004
3fff02b0: 3fff32c1 00000004 3fff69d4 00000004
3fff02c0: 3fff32c1 00000004 3fff69d4 40215d90
3fff02d0: 1c3a4a2a 00000000 00000000 00000026
3fff02e0: 0000005b 3fff32c1 3fff69d4 4021616c
3fff02f0: 0000000f 3fff32f4 3fff69d4 401004d8
3fff0300: 3fff0358 0000000e 00000010 3fff1484
3fff0310: 402033f0 3fff69d4 3fff0350 01000000
3fff0320: 3fff0358 00072249 3fff69d4 40215ef8
3fff0330: 4010500c 3ffe851c 3fff10cc 3fff1484
3fff0340: 3fffb7fc 00072249 3fff10cc 40203bd1
3fff0350: 3fff69d4 3fff5414 402046bc 3ffef3e0
3fff0360: 00003a98 00003a98 00003a98 4020136f
3fff0370: 3ffef110 00000000 3fffb7fc 3ffef3cc
3fff0380: 000001bb 3ffe851c 3ffef110 40203e1f
3fff0390: 000001bb 3ffef110 3ffe851c 3ffef3cc
3fff03a0: 000001bb 3ffef110 3ffe851c 40203ec5
3fff03b0: 40107158 964c2ad4 40107158 964c2ad4
3fff03c0: 3ffe851c 00000000 3ffef110 40202265
3fff03d0: 00000000 00000000 00000001 3ffef3cc
3fff03e0: 3fffdad0 00000000 3ffef3c4 40204708
3fff03f0: feefeffe feefeffe 3ffef3e0 40100710
<<<stack<<<
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v614f7c32
~ld

upd. Взял другую плату (другое техническое исполнение). Тоже самое.
Завел две переменные для подсчета количества подключений к сайту и кол-ва полученных ответов.
connected
count_connection=34
count_result=27

Значения count_connection и count_result всегда разные , но отличие +- 3-5 значений.

Exception (29):
epc1=0x4020bfee epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000100 depc=0x00000000
ctx: cont
sp: 3ffeff80 end: 3fff0400 offset: 01a0
........
 
Последнее редактирование:

pvvx

Активный участник сообщества
Для сайта он отдает полтора килограмма html кода :)
полезное из него только в самом конце
body:[{"temp":"+11&deg;","wt":null,"ws":"4.8 , <span class=\"wind wind-S\" title=\"south\"><\/span>","p":"734 ","rh":"88%","img":"d430"}]} )
На странице килограммов ещё больше и ссылка на страницу "плавающая"...
Не подскажите, что это может быть.
Поставил в цикл (10сек). Примерно раз 20 возвращает значение. Потом еще раз десять пишет что коннектится , но результатов нет.
В примере нет корректных закрытий сессии и освобождений ресурсов.
Пример был сделан путем копипаста с других и дописана одна функция. Цель - показать саму методу по вашему вопросу, а не как красиво писать текст C++ и не претендует на комплексное решение. Полную задачу вы не описывали, ТЗ не давали, и для таких решений есть раздел "Предложения о выполнении проектов на заказ".
 
Последнее редактирование:
В примере нет корректных закрытий сессии и освобождений ресурсов.
Пример был сделан путем копипаста с других и дописана одна функция. Цель - показать саму методу по вашему вопросу, а не как красиво писать текст C++ и не претендует на комплексное решение. Полную задачу вы не описывали, ТЗ не давали, и для таких решений есть раздел "Предложения о выполнении проектов на заказ".
Не могли бы Вы показать как правильно закрывать web сессию. По поводу освобождения ресурсов имеется ввиду ресурсы которые отвечают за web соединение или за парсинг страницы. И в Вашем примере и в моем проблема вылазит одна и та же , хотя у меня в примере после окончания парсинга все переменные сбрасываются (обнуляются). Могу предположить , что проблема все таки кроется в web соединении. Смущает количество соединений (30 раз +- 3). Почему именно это количество ?
По поводу задачи, конкретного ТЗ не было. Был интерес понять саму возможность парсинга страницы с нахождением значений по ключевому слову. За что Вам еще раз большое спасибо.
Интерес возник после изучения интернета , где объясняли отличие "умного дома" от "автоматизированого дома" . Хотел понял , сможет ли система принимать действия опираясь не на полученные данные с фиксированных датчиков (температуры , освещенности ) , а самой искать в интернете , к примеру погоду по ключевому слову.
 

pvvx

Активный участник сообщества
Не могли бы Вы показать как правильно закрывать web сессию. По поводу освобождения ресурсов имеется ввиду ресурсы которые отвечают за web соединение или за парсинг страницы. И в Вашем примере и в моем проблема вылазит одна и та же , хотя у меня в примере после окончания парсинга все переменные сбрасываются (обнуляются). Могу предположить , что проблема все таки кроется в web соединении. Смущает количество соединений (30 раз +- 3). Почему именно это количество ?
Основная причина данного вылета в библиотеках Arduino для ESP8266. Я не использую ESP8266 и не смотрел, что там в них. Концепции Arduino не предусматривают повторное использование многих функций и не содержат функций освобождения ресурсов. В данном случае надо искать или писать корректную деинициализацию сессии TLS.
Возможно там происходит фрагментация heap, а проверок на это не стоит. В итоге, перед новым соединением желательно закрыть всё, начиная с соединения WiFi. Убрать фрагментацию heap можно только полностью освободив всё.

По поводу задачи, конкретного ТЗ не было. Был интерес понять саму возможность парсинга страницы с нахождением значений по ключевому слову. За что Вам еще раз большое спасибо.
Интерес возник после изучения интернета , где объясняли отличие "умного дома" от "автоматизированого дома" . Хотел понял , сможет ли система принимать действия опираясь не на полученные данные с фиксированных датчиков (температуры , освещенности ) , а самой искать в интернете , к примеру погоду по ключевому слову.
К примеру "погоду" - это исключительно человеческий прибамбас, не подчиняющийся никаким физическим факторам, как и местное время, названия местности и прочее. Для их формирования работают какие-то шаблоны и предрассудки, ритуалы и парадигмы, схожие с вирусной структурой/поведением и простой автомат не в силах вычислить где взять необходимые для показа значения. Нейронный процессор так-же не в состоянии дать 100% ответ...
 
Последнее редактирование:
К примеру "погоду" - это исключительно человеческий прибамбас, не подчиняющийся никаким физическим факторам, как и местное время, названия местности и прочее. Для их формирования работают какие-то шаблоны и предрассудки, ритуалы и парадигмы, схожие с вирусной структурой/поведением и простой автомат не в силах вычислить где взять необходимые для показа значения. Нейронный процессор так-же не в состоянии дать 100% ответ...
Я наверное не так выразился. Я имел ввиду строить работу процессора не на внутренних датчиках , а на показаниях в интернете . Пусть даже на заранее прописанных сайтах.
К примеру что может Arduino:
- показать текущую температуру;
- показать текущую влажность.

А я хотел узнать , сможет ли Arduino (ESP8266) на сайте глянуть погоду на завтра , и решить , поливать огород сегодня или нет. Или если лесть в высокие материи , то поливать огород только по особым фазам луны. Ну это так, к примеру
Ваш пример показал, что теоретически (хотя уже и практически) это возможно.
 

pvvx

Активный участник сообщества
А я хотел узнать , сможет ли Arduino (ESP8266) на сайте глянуть погоду на завтра , и решить , поливать огород сегодня или нет. Ну это так, к примеру
Ваш пример показал, что теоретически (хотя уже и практически) это возможно.
Нет - не сможет. Сайт может изменяться (всунут рекламу или переадресацию).
Если вы поставите местные датчики, то поливка будет работать с большим выхлопом урожайности и меньшими ошибками. Всё в природе имеет достаточно большую долю автономности и не опирается на данные где-то там, за горами. Долговременный прогноз на область всё равно вам не рассчитать, а его действие на вашу грядку будет зависеть от местных факторов.
Речь то идет не о IoT, а о выпендривании и показухе – типа у меня фото-рамка показывает погоду, а у вас нет… Горшку с цветком совершенно пофиг что там говорит "прогноз погоды". У него свой - местный микроклимат.

Простейший бытовой пример – объявляют что гололед, я выезжаю и наблюдаю кучки авто с бегающими вокруг человечками на КАД, успешно объезжая их на полном приводе и правильной резине, не понимая что у них за проблемы. :) Авто тоже сказала что “возможен гололед”, но не обращалась в Инет. Т.е. для меня эти сообщения и информация ничего не значит и не нужна для решения задачи. Составляет только развлекушки. Но и развлекушки тоже не решает – в каждом семейном авто стоят камеры с HD записью и заснять дуриков для выкладывания в Инет позволяют. Аналогично и с информацией о пробках в Инет – нефиг ездить во время паломничества толпы с работы и на работу. На свою собственную опоздать невозможно.

У метео центров и станций есть свои каналы и форматы передачи информации – от туда и берут данные. Ищите или создайте такую услугу, тогда и будет возможно учитывать эти данные в вашем огороде на несколько Гар… Только к IoT это как относится?



 
Последнее редактирование:

Алексей.

Active member
dimamukhin,
Подскажите, почему всё же нужно читать (парсить) страницы именно этого сайта, может проще воспользоваться api погодных сервисов?
 
Подскажите, почему всё же нужно читать (парсить) страницы именно этого сайта, может проще воспользоваться api погодных сервисов?
Я это просто для примера привел . Хотел понять , возможно ли получить данные с любого сайта.
 

Алексей.

Active member
Я это просто для примера привел . Хотел понять , возможно ли получить данные с любого сайта.
Немного не обычный пример, с толку сбивает.
Страницы, как правило, рассчитаны на живого человека, ему и банеры подсунуть можно.
api - как раз для приложения, рекламу ему не нет смысла отдавать, оно же робот :)
 

pvvx

Активный участник сообщества
Немного не обычный пример, с толку сбивает.
Страницы, как правило, рассчитаны на живого человека, ему и банеры подсунуть можно.
api - как раз для приложения, рекламу ему не нет смысла отдавать, оно же робот :)
Не подскажите каналы потоковых данных со станций наблюдения? Ну например кардиограмму магнитного поля с дискретом от 100 точек в сек? И станций от 3-х для триангуляции?
А то какое-то "api" - ни о чем не говорит, какие адреса, порты и протоколы (явки и пароли)... Может я хочу посмотреть движение поездов в районе :) На среднем протонном магнитометре по характеристике спада и фаз затухания поезд нормально виден за 5..7 км...
По этому я думаю мы не дождемся нормальных “метео” данных для всех, пока запреты не прорвет какая крупная корпорация типа Google…

Для пользователей есть масса сетей станций типа ФКУ Упрдор 'Холмогоры' - метео и видео-контроль на дорогах
Там ещё светло: КМ 1475+100 A/Д Р-21 "КОЛА" https://ud-holmogory.ru/maintenance/meteo/getobject.php?id=182 :)
HTML:
<b>Состояние погоды на 2018-04-27 22:02:04</b><br />
Температура воздуха: -1.3 &deg;C<br />
Влажность воздуха: 86.1 %<br />
Ветер: Северный, 0 м/с<br />
Осадки: без осадков
</p>
 
Последнее редактирование:
Сверху Снизу