Заголовки при работе из самописного ПО

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 12:05

Может дело в том, что кнопку нажимаю не я, а само реле по пакету команды? Скорость нажатия = скорости реле. И когда 30 в секунду - работает вроде, а когда быстрее - пропуски. Пока еще пробую разную конфигурацию сервера, выясняю скорость. Будет возможность воспроизвести проблему на windows, если пришлю exe?

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 13:03

Команда 21:2 выполняется со скоростью 52-60 раза в секунду по факту Done. Это 2 клиента через WiFi AP связано. Если по Lan, то 83 выполненных команды 21:2 в секунду. Порт их считает четко (400 команд отправлял и 400 добавляется на счетчике порта). Но вот на сервер приходит около половины - 192-214 штук. Может мега так и должна пропускать отчеты о состоянии входа при максимальной загрузке Lan? Ведь первый и последний отчет с In порта приходит всегда четко.
Последний раз редактировалось zidky 26 авг 2018, 13:25, всего редактировалось 1 раз.

xsash
Сообщения: 239
Зарегистрирован: 08 авг 2016, 12:27

Re: Заголовки при работе из самописного ПО

Сообщение xsash » 26 авг 2018, 13:04

А можете подсказать, "зачем так часто"?

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 13:34

xsash писал(а):
26 авг 2018, 13:04
А можете подсказать, "зачем так часто"?
Хитренький Вы, конечно, но не могу. Да и сам пока не знаю. Отлаживаю часть обмена в своем ПО, нагружаю чтоб выявить баги в нем и избежать проблем в части целого комплекса управления.

Но вот в качестве полезного примера, у меня накопилась очередь команд на отработку из 3 штук и если их слать без задержки, сразу после Done, то отчеты бывает теряются. Например, ленту rgb нужно фильтровать по частоте команд из WEB-палитры цвета, иначе она способна вызвать такие нагрузки по скорости. Если в этот момент сработает датчик, не могу быть уверен что он примется сервером. Сначала думал проблема у моего сервера, но дамп трафика вроде как это опровергает.

xsash
Сообщения: 239
Зарегистрирован: 08 авг 2016, 12:27

Re: Заголовки при работе из самописного ПО

Сообщение xsash » 26 авг 2018, 13:57

Да я просто вспоминаю мысль Андрея в каком-то топике (да и не только его) - "такой сценарий использования не возможен или вы заложили под свои задачи не то железо"

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 14:01

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

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 14:14

В крайнем случае можно читать счетчик входа и сравнивать со счетчиком событий, которые пришли на сервер, достигая точности. Но вдруг имеет место просто какая-то проблема у меня, которую нужно устранить и не чесать "правое ухо левой ногой".
Последний раз редактировалось zidky 26 авг 2018, 14:17, всего редактировалось 1 раз.

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

Re: Заголовки при работе из самописного ПО

Сообщение Ruslan » 26 авг 2018, 14:17

Только что освежил в памяти, для чего нужен режим Raw. Этот "секрет" я узнал из справки (https://ab-log.ru/smart-house/ethernet/megad-2561). Читать нужно, начиная с фрагмента "Raw - параметр отключает встроенную защиту от дребезга. Когда человек нажимает на обычный выключатель или кнопку, то"...

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 17:11

А может есть пример скрипта-сервера на php с логированием? Чтоб я его запустил и проверил как он будет отрабатывать события с контакта датчика. Или какой другой сервер для виндовс.

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

Re: Заголовки при работе из самописного ПО

Сообщение Ruslan » 26 авг 2018, 18:08

Может сейчас "сморожу" чушь, но вот есть такая система УД Мажордомо. Там в ведется логи Апача, лог системных ошибок. Я не сильно в этом разбираюсь, но если спросить на форуме, подскажут что к чему (https://majordomo.smartliving.ru). Под Windows устанавливается без проблем. Пишите любые скрипты на PHP.
Тут рассказывал, как подружить Мегу и Мажордомо (https://ab-log.ru/forum/viewtopic.php?f=1&t=1328).

xsash
Сообщения: 239
Зарегистрирован: 08 авг 2016, 12:27

Re: Заголовки при работе из самописного ПО

Сообщение xsash » 26 авг 2018, 19:57

Код: Выделить всё

<?php
$file = fopen('log.txt', 'a');
foreach ($_REQUEST as $key => $val)
{
	$time = time();
	$timeZ = date("d.m.Y H:i:s", $time);
	fwrite($file, $timeZ." // ".$time.": ".$key . ' => ' . $val . "\n");
}
fwrite($file, "\n");
fclose($file);
?>

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 20:51

xsash, объясните, для чего этот код? Это ведь не сервер, а вывод лога вроде?

xsash
Сообщения: 239
Зарегистрирован: 08 авг 2016, 12:27

Re: Заголовки при работе из самописного ПО

Сообщение xsash » 26 авг 2018, 21:00

Ну это самый примитивный php скрипт. Сохраняете как xxx.php, заливаете себе на любой web сервер и указываете этот скрипт в меге
https://www.ab-log.ru/files/Image/smart ... server.gif

Скрипт сохраняет при обращении все входящие данные (GET и POST) в файл log.txt с указанием времени в двух форматах d.m.Y H:i:s и UNIX
там увидите параметры и значения, которые отправляет мега

Код также можно вставить в рабочий php скрипт, допустим в самое начало или конец php файла

Вот кусок лога старого, для проверки СМС

Код: Выделить всё

20.04.2018 17:30:07 // 1524234607: st => 1

20.04.2018 17:30:32 // 1524234632: st => 1
20.04.2018 17:30:32 // 1524234632: mdid => testMegaID

20.04.2018 17:32:33 // 1524234753: sms_phone =>  79170000000
20.04.2018 17:32:33 // 1524234753: sms_text => test

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Заголовки при работе из самописного ПО

Сообщение Andrey_B » 26 авг 2018, 22:14

zidky писал(а):
26 авг 2018, 13:03
Команда 21:2 выполняется со скоростью 52-60 раза в секунду по факту Done. Это 2 клиента через WiFi AP связано. Если по Lan, то 83 выполненных команды 21:2 в секунду.
Устройство MegaD-2561 используется для решения задач домашней (и не только) автоматизации.
В реальных условиях обычно не требуется обрабатывать сотни отдельных TCP-сессий в секунду (а это отправка и прием более тысячи пакетов в секунду). Такую задачу даже трудно себе представить на реальном объекте.
Между тем, любое устройство можно подвергнуть DDoS-атаке. Абсолютно любое. Не будет проблем при 80 командах в секунду, будет при 800 или при 8000. В микроконтроллере ограниченный объем оперативной памяти, поэтому нет возможности распараллеливать сессии, делать очереди. И если микроконтроллер будет в буквальном смысле завален командами сервера, то вполне вероятно, что он не будет успевать отправлять события по входам. Но это очень синтетическая ситуация. Повторю, при частоте в 30 команд от сервера в секунду и при очень быстром нажатии на клавишу реальной кнопки (до 12 раз в секунду) я не выявил ни одного пропуска. Однако при многократном увеличении частоты событий в 3-5-10 раз, это вполне возможно. Где-то эта грань все равно будет.

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 26 авг 2018, 23:10

xsash, очень благодарен за скрипт и объяснение!
Выяснил что некоторые изменения порта входа при повышенной скорости срабатываний действительно не доходят до сервера и на php, а не только на самописной программе. Сами же команды выполняются у меня со скоростью до 80 команд в секунду без сбоев. Так же их считает четко и внутренний счетчик порта. Если датчик меняет состояние 20 раз в секунду, то отчеты приходят все. Это приемлемая скорость.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Заголовки при работе из самописного ПО

Сообщение Alex_Jet » 27 авг 2018, 06:23

zidky писал(а):
26 авг 2018, 23:10
Это приемлемая скорость.
Боюсь спросить - для чего приемлемая скорость? Будете оцифровывать сигнал с помощью MegaD и управлять RGBW цветомузыкой? В реальных задачах такая скорость избыточна.
Еще интересно - что у Вас за релюшка, которая выдерживает такие нагрузки - 60 срабатываний в минуту без дребезга...

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 27 авг 2018, 14:12

Alex_Jet, не бойтесь и не стесняйтесь - спрашивайте.
Приемлемая скорость для 14-28 датчиков, если они вдруг условно одновременно захотят сработать и по ним всем нужно будет принять решение.
Про управлять цветомузыкой - может в будущем и будет, интересная мысль! То есть планирую важные системные голосовые уведомления отсвечивать на rgb.
А релюшка у меня стандартная встроенная в исполнительный блок, 80 отработок в секунду без сбоев с контролем по счетчику на In контакте! Антидребезг на контакте был отключен.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Заголовки при работе из самописного ПО

Сообщение Alex_Jet » 27 авг 2018, 20:15

Все это условности и не более того. Вы не кандидат наук случайно с таким подходом? Сделать такие синтетические тесты чтобы понять реальную скорость работы с MegaD...
Столько датчиков одновременно в доме (даже многоквартирном) никогда не сработает. Тем более подавляющее большинство наиболее необходимых датчиков надо опрашивать, а не ждать от них "трапа".
Про цветомузыку - это была шутка из разряда "каждому проекту своё подходящее железо"!
Бедные и бледные контакты реле...

zidky
Сообщения: 162
Зарегистрирован: 19 авг 2018, 03:42

Re: Заголовки при работе из самописного ПО

Сообщение zidky » 27 авг 2018, 21:32

Alex_Jet писал(а):
27 авг 2018, 20:15
никогда не сработает
Слово "никогда" вывожу старательно из своего обихода и всем желаю того-же. "Маловероятно" - более подходит. Но когда пишешь свой сервер, то не хочется чтоб это "маловероятно" ему гарантированно ломало мозги. Синтетично нагружал, чтоб выявить барьеры у модуля ПО или у меги, но за кандидата наук спасибо.

К тому же, может когда такое сработать - отключить/плохо вставить/выдернуть колодку от ин-модуля и сразу или после перезагрузки меги отработают большинство Act и все датчики дружно пошлют изменения серверу. Как защититься от этого пока не придумал, но быть таки может.
Alex_Jet писал(а):
27 авг 2018, 20:15
Бедные и бледные контакты реле...
Ну это у новых бледные. У моих реле после тестов они волне даже загорелые.

alexsis_76

Re: Заголовки при работе из самописного ПО

Сообщение alexsis_76 » 28 авг 2018, 03:35

если они вдруг условно одновременно захотят сработать и по ним всем нужно будет принять решение
они могут сработать все сразу и еще столько же в один момент , вот только обработаны они будут все равно друг за другом а не одновременно, сама по себе мега может работать очень быстро,главные тормоза в http.Если Вы будете работать на голом TCP скорость возрастет.

Ответить