Автор Тема: Z5R WEB - web-json и отвратительная работа по нему[РЕШЕНО]  (Прочитано 24691 раз)

astashov

  • Пользователь
  • *****
  • Сообщений: 72
Ребята здравствуйте.

За три последнии дня совсем замучился с этим режимом работы.

Как только подключаешь его к скрипту, он скидывает пачку событий, сколько накопил, и начинает подряд, в каждую итерацию слать сначала power_on, а уже потом ping
И так повторяется без конца.

И не совсем понятно как именно работает check_access. Иногда сразу хорошо спрашивает и сервер ему отвечает granded, но чаще всего на скрипт даже запрос о разрешения доступа не приходит.

Если контроллер долго не передает информацию, например после ночи, то контроллер может в принципе перестать ее подавать.
т.е. из основных вопросов:
1) почему перезагружается
2) почему не всегда спрашивает check_access
3) почему регулярно шлет power_on и следом ping, если формально перезагрузки не было. И аптайт об этом рассказал

Вот пример power_on запроса и ответа сервера к нему

Запрос от контроллера к серверу

16:12:44.880888 IP 192.168.100.2.39021 > 192.168.100.1.4545: Flags [P.], seq 1351113626:1351113986, ack 559712264, win 1825, options [nop,nop,TS val 952060 ecr 397353636], length 360
POST /z5rweb/z5rweb.php HTTP/1.1
Host: 192.168.100.1:4545
Accept: */*
User-Agent: Z5R WEB
Conection: close
Content-type: application/json
Content-Length: 193

{"type":"Z5RWEB","sn":44640,"messages":[{"id":1911165193,"operation":"power_on","fw":"3.24","conn_fw":"1.0.128","active":0,"mode":0,"controller_ip":"192.168.100.2","reader_protocol":"dallas"}]}


Ответ сервера на запрос от контроллера
16:12:44.881364 ethertype IPv4, IP 192.168.100.1.4545 > 192.168.100.2.39021: Flags [P.], seq 559712264:559712646, ack 1351113986, win 235, options [nop,nop,TS val 397353636 ecr 952060], length 382
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 06 Jun 2018 10:12:44 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 121
Connection: keep-alive
X-Powered-By: PHP/5.6.33-0+deb8u1
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache

{"date":"2018-06-06 16:12:44","interval":5,"messages":[{"id":1911165193,"operation":"set_active","active":1,"online":1}]}


Пожалуйста подскажите.
« Последнее редактирование: 13 Июня 2018, 17:00 от astashov »

astashov

  • Пользователь
  • *****
  • Сообщений: 72
Так же интересно почему он по два раза присылает запросы. Два раза подряд один и тот же запрос.

И следом вариант с ping запросом-ответом

16:12:44.982335 IP 192.168.100.2.39022 > 192.168.100.1.4545: Flags [P.], seq 3760511315:3760511611, ack 450982953, win 1825, options [nop,nop,TS val 952070 ecr 397353661], length 296
POST /z5rweb/z5rweb.php HTTP/1.1
Host: 192.168.100.1:4545
Accept: */*
User-Agent: Z5R WEB
Conection: close
Content-type: application/json
Content-Length: 129

{"type":"Z5RWEB","sn":44640,"messages":[{ "id":1911165193, "success":1},{"id":269441500,"operation":"ping","active":1,"mode":0}]}


Ответ сервера на этот запрос:
16:12:44.982797 IP 192.168.100.1.4545 > 192.168.100.2.39022: Flags [P.], seq 450982953:450983272, ack 3760511611, win 235, options [nop,nop,TS val 397353662 ecr 952070], length 319
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 06 Jun 2018 10:12:44 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 59
Connection: keep-alive
X-Powered-By: PHP/5.6.33-0+deb8u1
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache

{"date":"2018-06-06 16:12:44","interval":5,"messages":null}

Murat

  • Пользователь
  • *****
  • Сообщений: 5
контроллер отправляет информацию о событиях или запрос управления  до тех пор пока не получит ответ (подтверждение ) от сервера
если он не получает подтверждения то начинает отправлять POWER_ON, так как считает, что связь потеряна.
подробнее об обмене данными в презентации
http://json.il78.com/json.pdf

Murat

  • Пользователь
  • *****
  • Сообщений: 5
для PHP сервера.  Не понятное поведение может быть связано с отправкой информации об ошибках, что контроллер не в состоянии переварить.  Что бы отключить отправку таких сообщений
добавьте такой текст  php_flag display_errors off в файл  .htaccess

Murat

  • Пользователь
  • *****
  • Сообщений: 5
{"date":"2018-06-06 16:12:44","interval":5,"messages":null}
- ответ сервера с ошибкой, обратите внимание "messages":[""]

astashov

  • Пользователь
  • *****
  • Сообщений: 72
{"date":"2018-06-06 16:12:44","interval":5,"messages":null}
- ответ сервера с ошибкой, обратите внимание "messages":[""]
Этот пример я взял из диагностики через
Цитировать
Подключаться для проверки можно к серверу: http://json.il78.com
Смотреть на :  http://json.il78.com/2/

Цитировать
Не понятное поведение может быть связано с отправкой информации об ошибках, что контроллер не в состоянии переварить.
Ну конечно же нет. Я же привел пакетики. Что получает сервер от контроллера и что отдает. Там нет никаких ошибок. Я могу написать что больше 10 лет админю более сотни серверов, и поэтому такие вещи знаю не по наслышке, но не буду.... :)

контроллер отправляет информацию о событиях или запрос управления  до тех пор пока не получит ответ (подтверждение ) от сервера
если он не получает подтверждения то начинает отправлять POWER_ON, так как считает, что связь потеряна.
подробнее об обмене данными в презентации
http://json.il78.com/json.pdf
Окей, что бы не быть голословным, вот полный путь "счастливого" power_on

Цитировать
18:52:34.915349 IP 192.168.100.2.41099 > 192.168.100.1.4545: Flags [P.], seq 4147671979:4147672338, ack 3736399321, win 1825, options [nop,nop,TS val 1911064 ecr 399751145], length 359
POST /z5rweb/z5rweb.php HTTP/1.1
Host: 192.168.100.1:4545
Accept: */*
User-Agent: Z5R WEB
Conection: close
Content-type: application/json
Content-Length: 192

{"type":"Z5RWEB","sn":44640,"messages":[{"id":568637651,"operation":"power_on","fw":"3.24","conn_fw":"1.0.128","active":0,"mode":0,"controller_ip":"192.168.100.2","reader_protocol":"dallas"}]}

Цитировать
18:52:34.915863 IP 192.168.100.1.4545 > 192.168.100.2.41099: Flags [P.], seq 3736399321:3736399702, ack 4147672338, win 235, options [nop,nop,TS val 399751145 ecr 1911064], length 381
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 06 Jun 2018 12:52:34 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 120
Connection: keep-alive
X-Powered-By: PHP/5.6.33-0+deb8u1
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache

{"date":"2018-06-06 18:52:34","interval":5,"messages":[{"id":568637651,"operation":"set_active","active":1,"online":1}]}


Цитировать
18:52:35.012185 ethertype IPv4, IP 192.168.100.2.41100 > 192.168.100.1.4545: Flags [P.], seq 128828847:128829142, ack 3166035494, win 1825, options [nop,nop,TS val 1911073 ecr 399751169], length 295
POST /z5rweb/z5rweb.php HTTP/1.1
Host: 192.168.100.1:4545
Accept: */*
User-Agent: Z5R WEB
Conection: close
Content-type: application/json
Content-Length: 128

{"type":"Z5RWEB","sn":44640,"messages":[{ "id":568637651, "success":1},{"id":681928291,"operation":"ping","active":1,"mode":0}]}

Прошу обратить внимание, что в этом "счастливом" пути указывается один и тот же id. Т.е. 568637651. И сервер радостно сообщает  что { "id":568637651, "success":1}
Вроде все замечательно, но нет, на следующей итерации(спустя interval секунд) опять все заного.

Если же на пинг не отвечать, так как по протоколу не обязательно, и возвращать серверу пустую строку(что то ведь вернуть все равно надо), то это ровным счетом ни на что не влияет. И скуд через interval секунд все равно говорит что он power_on
« Последнее редактирование: 06 Июня 2018, 16:01 от astashov »

astashov

  • Пользователь
  • *****
  • Сообщений: 72
Уважаемые товарищи разработчики или специалисты технической поддержки и сопровождения клиентов, я понимаю что никто никому ничего не обязан персонально, и если нет обращения в саппорт официального, то можно и не смотреть, но переводить в плоскость общения с саппортом через почту не сильно хочется. Т.к. проблема может быть не только у меня, а и у других пользователей.
Напишите пожалуйста хоть что ни будь.
Ведь и возвращать устройство обратно тоже нет никакого желания(в данный момент она не выполняет заявленных возможностей, так как одна из возможностей работа в режиме web-json).  А для работы в автономном режиме у нас другая, младшая модель. Которая с автономным режимом справляется на ура. Но мы купили эту, и она работает как попало.

Пожалуйста проявите активность, ответьте.

п.с.: я взял скуд только из за того, что есть интерфейс внешнего управления контроллером через консольный линукс через web-json. И я подумал что с удовольствием в качестве хобби напишу интерфейс управления. А тут не получается делать. Контроллер не адекватно себя ведет. И посмотрел что есть поддержка.
Готов участвовать в тестировании и отсылать данные.
Только не молчите.

п.п.с: к пользователям данного скуд: если у Вас тоже неадекватно ведет себя устройство, напишите пожалуйста.  Или наоборот. Все хорошо. Желательно с указанием версии прошивок. Спасибо.

murat351

  • Пользователь
  • *****
  • Сообщений: 72
Все зависит от задачи.
Если нужно решить проблему присылайте полноценный лог обмена данными
, например, за 15 секунд.

Во всех ваших примерах нет законченного обмена.

 какая версия прошивки контроллера и модуля связи?
я проверю на http://json.il78.com
впрочем, это можете сделать и сами.


murat351

  • Пользователь
  • *****
  • Сообщений: 72
для оперативной связи есть  Онлайн-консультант: sp.il78.com

astashov

  • Пользователь
  • *****
  • Сообщений: 72
Все зависит от задачи.
Если нужно решить проблему присылайте полноценный лог обмена данными
, например, за 15 секунд.
Окей. Сейчас соберу сетевой дамп за минуту с включенным интервалом в 5 секунд.

Во всех ваших примерах нет законченного обмена.
Простите, а можно для себя, что бы в будущем были более полные сообщения: а что значит нет законченного обмена?
Нужно показать повторяемость? Или что? Потому что в примере одна итерация закончена полностью, и описал через interval секунд ситуация повторяется.
В моем понимание что обмен закончен.

какая версия прошивки контроллера и модуля связи?
Эта информация есть в первом запросе от контроллера в моем сообщении.
Версия прошивки ,"fw":"3.24","conn_fw":"1.0.128"

я проверю на http://json.il78.com
впрочем, это можете сделать и сами.
Дело в том, что иногда контроллер перестает говорить power_on и только передает ping, а чаще всего он постоянно говорит power_on

В любом случае, текущий пример, который я указан ранее верный? Контроллеру должен был понравиться такой обмен информацией? Раз он в конце сказал  "success":1

Я не прикапываюсь к Вашему ответу, просто хочу понять, это я немного не дописываю информацию которая необходима для решения вопроса, или Вы прочитали по диагонали и не увидели то что я написал все полностью, что посчитал достаточным для ответа специалистов.

murat351

  • Пользователь
  • *****
  • Сообщений: 72
одна итерация закончена полностью, и описал через interval секунд ситуация повторяется.
В моем понимание что обмен закончен.

после этой операции должен быть ping и ответ на него

murat351

  • Пользователь
  • *****
  • Сообщений: 72
Версия прошивки ,"fw":"3.24","conn_fw":"1.0.128"
- ок принял

astashov

  • Пользователь
  • *****
  • Сообщений: 72
одна итерация закончена полностью, и описал через interval секунд ситуация повторяется.
В моем понимание что обмен закончен.

после этой операции должен быть ping и ответ на него

эээ. Ну я написал что
Цитировать
{"type":"Z5RWEB","sn":44640,"messages":[{ "id":568637651, "success":1},{"id":681928291,"operation":"ping","active":1,"mode":0}]}
А ответ по протоколу не обязателен.

murat351

  • Пользователь
  • *****
  • Сообщений: 72
А ответ по протоколу не обязателен.
если на ping не отвечать, как контроллер поймет, что сервер активен?

Важно!
в зависимости от режима работы
если напинг нет ответа 1 или 5 раз
то контроллер считает, что связь потеряна
и повторяет  POWER_ON

astashov

  • Пользователь
  • *****
  • Сообщений: 72
Файл с сетевым дампом общения контроллера и сервера