Передача данных черех API

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

FredP
Сообщения: 59
Зарегистрирован: Ср авг 23, 2017 5:35 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Передача данных черех API

Сообщение FredP » Пн окт 16, 2017 11:59 am

Сейчас так и сделаю. Посмотрим, что получится. Но все же, разработчикам MD наверное, стоит поискать узкое место....
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Передача данных черех API

Сообщение skysilver » Пн окт 16, 2017 11:59 am

FredP писал(а):Да никакой сверхествестенной задачи.Например, нужно передавать на контроллер уставки температур, влажности, CO2. Положение заслонок вентиляции. Управление шторами.Считаю, вполне естественным ожидать начало движения шторы от нажатия кнопки не более 1 секунды. Для этого мне нужно передавать данные на контроллер хотя бы 2 раза в секунду. Или если я хочу "похолоднее", кондиционер должен вкючиться не через 10 и хорошо бы даже не через 5 секунд...Данные с датчиков можно и раз в 5 секунд, согласен. Хотя, тоже ерунда.
Какое железо используется? Имхо, тут неудачно сама архитектура решения выбрана. Железка сама должна отправлять событие на сервер о нажатии кнопки, например. И никак не наоборот, когда сервак поллит железку запросами раз в секунду, чтобы узнать "а нажал ли кто на ней кнопку или нет".
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
FredP
Сообщения: 59
Зарегистрирован: Ср авг 23, 2017 5:35 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Передача данных черех API

Сообщение FredP » Пн окт 16, 2017 12:07 pm

skysilver писал(а):Какое железо используется? Имхо, тут неудачно сама архитектура решения выбрана. Железка сама должна отправлять событие на сервер о нажатии кнопки, например. И никак не наоборот, когда сервак поллит железку запросами раз в секунду, чтобы узнать "а нажал ли кто на ней кнопку или нет".
Железка: Windows 7 ebmedded на системе с intel atom 1.33 GHz (2 Гб ОЗУ).
Архитектура не оптимальна, но и задача не тривиальна. Эта же железка через MQTT передает-принимает 100 переменных загружая ЦП не более чем на 10% (с отображением на дисплее и учитывая алгоритмы управления, опрос modbus шины и прочие пересчеты напряжений в градусы).
Просто попробовал, добавил 100 переменных. Промышленные скады не подходят для умного дома, нет http интерфейса, дизайн конца 90х... это интерфейс для отладки:
Снимок.PNG
Снимок.PNG (332.34 КБ) 3403 просмотра
За это сообщение автора FredP поблагодарил:
Sergey.Chek (Пн мар 09, 2020 2:46 pm)
Рейтинг: 1.16%
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Передача данных черех API

Сообщение nick7zmail » Пн окт 16, 2017 2:00 pm

FredP писал(а):Сейчас так и сделаю. Посмотрим, что получится. Но все же, разработчикам MD наверное, стоит поискать узкое место....
Узкое место и так видно....база sql и скорость её работы...если откроете график по процессам - скорее всего не МД и апач буду жрать львиную долю процессора, а именно sql процесс.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Передача данных черех API

Сообщение sergejey » Ср окт 18, 2017 11:07 am

Оптимизация МД это задача постоянная, так что по мере сил какой-то прогресс здесь есть, но, как указали выше, база данных это узкое место. Буду только рад, если кто-то подключится для детального анализа всей цепочки, чтобы выяснить самые медленные операции с конкретным таймингом. Для этого надо лезть в код, но тут тоже проблем особых нет -- было бы желание :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
FredP
Сообщения: 59
Зарегистрирован: Ср авг 23, 2017 5:35 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Передача данных черех API

Сообщение FredP » Пт окт 20, 2017 7:08 am

Ну что, всем спасибо за поддержку. Настроил MQTT. Теперь загрузка ЦП не более 20%. Скорость обновления - тоже устраивает: порядка 1-2 секунд, учитывая что я нажимаю кнопку на телефоне - GSM>vpnki.ru>wi-fi>openVPN>MD. Думаю, задержка просто по сети 0.5-1 секунду.
Ответить