Пожелания к разработчику

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Пожелания к разработчику

Сообщение Victor_S » Ср авг 19, 2015 3:50 pm

sergejey писал(а): поставить ссылку на конкретную сцену.
Я уже спрашивал где-то, но так и не получил ответа...
Сцены - это именно отдельные элементы(как домашние страницы) или части одной домашней страницы? Почему спрашиваю. Сейчас у меня 5 или 6 сцен, одна из которых сильно насыщена информерами и графиками(которые используют яваскрипт). Так вот при ошибке в каком-нибудь скрипте я вижу все сцены сразу в виде одной страницы с пролистыванием вниз. Ну и вообще из-за этой, информативной, но редко используемой сцены, загрузка сцен происходит с очень большой задержкой. Я правда не пробовал указывать url конкретной сцены(только сейчас сообразил...:)), просто вызываю scenes.htm.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Пожелания к разработчику

Сообщение sergejey » Ср авг 19, 2015 3:55 pm

Victor_S писал(а):
sergejey писал(а): поставить ссылку на конкретную сцену.
Я уже спрашивал где-то, но так и не получил ответа...
Сцены - это именно отдельные элементы(как домашние страницы) или части одной домашней страницы? Почему спрашиваю. Сейчас у меня 5 или 6 сцен, одна из которых сильно насыщена информерами и графиками(которые используют яваскрипт). Так вот при ошибке в каком-нибудь скрипте я вижу все сцены сразу в виде одной страницы с пролистыванием вниз. Ну и вообще из-за этой, информативной, но редко используемой сцены, загрузка сцен происходит с очень большой задержкой. Я правда не пробовал указывать url конкретной сцены(только сейчас сообразил...:)), просто вызываю scenes.htm.
Домашние страницы это именно разные страницы, которые загружаются по мере необходимости их использования. Сцены могут быть все выведены в одну домашнюю страницу (при этом используется переключатель, встроенный в модуль сцен), но могут быть загружены и по одной. В последнем случае каждая домашняя страница должна быть определена как ссылка на конкретную сцену, при этом подгрузка отдельных сцен будет осуществляться по запросу конкретной домашней страницы. Я лично предпочитаю использовать последний вариант, т.к. загрузка одной сцены работает гораздо быстрее, чем загрузка всех сцен, однако, в ущерб времени переключения между сценами. Как-то так.
За это сообщение автора sergejey поблагодарил:
Victor_S (Ср авг 19, 2015 4:02 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Пожелания к разработчику

Сообщение Victor_S » Ср авг 19, 2015 4:03 pm

Понял, спасибо, поэксперементирую на досуге...
Sturgeon
Сообщения: 36
Зарегистрирован: Вт ноя 17, 2015 5:52 pm
Благодарил (а): 14 раз
Поблагодарили: 7 раз

Re: Пожелания к разработчику

Сообщение Sturgeon » Сб ноя 28, 2015 7:49 am

У меня тоже есть пожелание :). Я только начал осваивать систему, не имея абсолютно никаких навыков в программировании. И сейчас для меня самая большая проблема это разобраться где какие файлы лежат, кто за что отвечает, понять структуру сервера. Например, в какой-нибудь теме имеется красивый график и код, который его выводит. Так вот самая большая непонятность для меня сейчас это куда этот код вставить. Скорее всего я потихоньку разберусь со всем и буду смеяться над своими первыми вопросами на форуме. Но сейчас для новичка очень не хватает документации и подробного описания. Возможно каких-то комментариев в коде.
Аватара пользователя
foxvlad
Сообщения: 287
Зарегистрирован: Пн сен 22, 2014 3:18 pm
Откуда: Сочи
Благодарил (а): 78 раз
Поблагодарили: 78 раз
Контактная информация:

Re: Пожелания к разработчику

Сообщение foxvlad » Ср янв 13, 2016 2:35 pm

sergejey писал(а):Слайдер для сцен есть в планах (как и ещё несколько элементов), но пока до него руки не дошли :(
Будет со временем обязательно...
Как та очередь к данным планам не приближается, все есть, что надо для меня в данном софте, вот слайдера на сцену ну очень не хватает.

Может кто-то уже сам замутил слайдер для сцен, может не просто, может через костыли, поделитесь пожалуйста.
NightRider
Сообщения: 70
Зарегистрирован: Пт авг 21, 2015 2:27 pm
Благодарил (а): 8 раз
Поблагодарили: 4 раза

Re: Пожелания к разработчику

Сообщение NightRider » Ср янв 20, 2016 12:51 am

Предыстория: запустил mysensors на raspberry pi2, спустя какое-то время стал замечать что периодически не срабатывают команды. При недолгом поиске в логе, обнаружил:

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

Expire send set rollback : NL_service.command=0,5
Благо код открытый - начал разбираться... Выяснилось что такие сообщения могут появляться в логе, когда модуль не успевает отправить сообщение за отведенное время (дефолтно 2 сек.). Дальнейший анализ выявил торможения при вызове функции setProperty, а точнее той ее части, где она чистит историю. Вот подтверждение из лога медленных запросов:

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

# Query_time: 2.968386  Lock_time: 0.000378 Rows_sent: 0  Rows_examined: 132731
SET timestamp=1453233305;
DELETE FROM phistory WHERE VALUE_ID='658' AND TO_DAYS(NOW())-TO_DAYS(ADDED)>30; 
Проверил, индекс на VALUE_ID есть, добавил еще на ADDED, немного ускорилось, но не значительно.

Собственно теперь сам вопрос/предложение: (я уже видел где-то на форуме, но поиском не нашел) Возможно ли реализовать хранение истории похожим образом как rrd, когда свежие показания наиболее детальны, а более старые хранятся укрупненно? Таким образом заметно снизится размер таблицы phistory и ускорятся запросы к ней.
Как вариант, в системе можно заменить параметр "Хранить историю дней" на параметр "Сценарий хранения". Последние можно будет предустановить в настройках, например следующим образом в 3 градации:
от 0 до 1 дня - хранить все записи
от 1 до 7 дней - хранить с интервалом 1 час
от 7 до 365 дней - хранить с интервалом 1 день
А само "сжатие" истории вынести в отдельный скрипт, который бы запускался скажем раз в сутки, а не при каждом установке свойства.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Пожелания к разработчику

Сообщение sergejey » Ср янв 20, 2016 4:01 pm

NightRider писал(а):Предыстория: запустил mysensors на raspberry pi2, спустя какое-то время стал замечать что периодически не срабатывают команды. При недолгом поиске в логе, обнаружил:

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

Expire send set rollback : NL_service.command=0,5
Благо код открытый - начал разбираться... Выяснилось что такие сообщения могут появляться в логе, когда модуль не успевает отправить сообщение за отведенное время (дефолтно 2 сек.). Дальнейший анализ выявил торможения при вызове функции setProperty, а точнее той ее части, где она чистит историю. Вот подтверждение из лога медленных запросов:

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

# Query_time: 2.968386  Lock_time: 0.000378 Rows_sent: 0  Rows_examined: 132731
SET timestamp=1453233305;
DELETE FROM phistory WHERE VALUE_ID='658' AND TO_DAYS(NOW())-TO_DAYS(ADDED)>30;
Проверил, индекс на VALUE_ID есть, добавил еще на ADDED, немного ускорилось, но не значительно.

Собственно теперь сам вопрос/предложение: (я уже видел где-то на форуме, но поиском не нашел) Возможно ли реализовать хранение истории похожим образом как rrd, когда свежие показания наиболее детальны, а более старые хранятся укрупненно? Таким образом заметно снизится размер таблицы phistory и ускорятся запросы к ней.
Как вариант, в системе можно заменить параметр "Хранить историю дней" на параметр "Сценарий хранения". Последние можно будет предустановить в настройках, например следующим образом в 3 градации:
от 0 до 1 дня - хранить все записи
от 1 до 7 дней - хранить с интервалом 1 час
от 7 до 365 дней - хранить с интервалом 1 день
А само "сжатие" истории вынести в отдельный скрипт, который бы запускался скажем раз в сутки, а не при каждом установке свойства.
Спасибо за расследование -- на самом деле есть такая проблема, но я немного по-другому думал её решать.
Во-первых, когда-то уже обсуждалась тема оптимизации данных и даже был написан скрипт для решения этой задачи, но он достаточно сложный и вообще мало кто им пользуется. Есть идея сделать отдельный модуль для настройки оптимизации хранения данных, но пока до него руки не дошли.
Другой вариант решения (и к которому я склоняюсь) -- не писать данные в историю вовсе в момент установки значения, чтобы не тратить на это время. Откладывать запись в отдельную очередь, которую обрабатывать на фоне. Т.е. пользователь ничего не потеряет, если запись в историю будет через секунду (или даже через несколько секунд), но при этом реакция системы будет быстрее.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Пожелания к разработчику

Сообщение slgeo » Ср янв 20, 2016 4:54 pm

sergejey писал(а): Другой вариант решения (и к которому я склоняюсь) -- не писать данные в историю вовсе в момент установки значения, чтобы не тратить на это время. Откладывать запись в отдельную очередь, которую обрабатывать на фоне. Т.е. пользователь ничего не потеряет, если запись в историю будет через секунду (или даже через несколько секунд), но при этом реакция системы будет быстрее.
Вот только вычислить ошибку или тормоза в коде, который исполняется через время будет еще сложнее.
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
NightRider
Сообщения: 70
Зарегистрирован: Пт авг 21, 2015 2:27 pm
Благодарил (а): 8 раз
Поблагодарили: 4 раза

Re: Пожелания к разработчику

Сообщение NightRider » Ср янв 20, 2016 6:07 pm

Спасибо за расследование -- на самом деле есть такая проблема, но я немного по-другому думал её решать.
Во-первых, когда-то уже обсуждалась тема оптимизации данных и даже был написан скрипт для решения этой задачи, но он достаточно сложный и вообще мало кто им пользуется. Есть идея сделать отдельный модуль для настройки оптимизации хранения данных, но пока до него руки не дошли.
Другой вариант решения (и к которому я склоняюсь) -- не писать данные в историю вовсе в момент установки значения, чтобы не тратить на это время. Откладывать запись в отдельную очередь, которую обрабатывать на фоне. Т.е. пользователь ничего не потеряет, если запись в историю будет через секунду (или даже через несколько секунд), но при этом реакция системы будет быстрее.
Спасибо за ссылку, скрипт то что нужно, уже запустил! Да, для него бы модуль настройки и чтобы ставить на регламент раз в какое-то время - было бы супер!
Да, поддерживаю, чтение и установка свойств объектов должны быть максимально быстрыми. Только думаю добавить без условий запись в историю это быстро (можно оставить), а вот "подчистку" точно нужно выносить в регламент.
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Пожелания к разработчику

Сообщение Victor_S » Чт янв 21, 2016 8:06 am

C хранением истории есть такое пожелание. Нужна возможность установки времени хранения свойства объекта, а не класса. Поясню, у меня два устройства(объекта) одного класса, одно в числе прочего меряет температуру на улице, другое температуру в парилке. Первое значение я бы хотел хранить год или даже больше(периодически оптимизируя), а для второго и недели достаточно. Но разнести их я не могу, и таких случаев немало. Поэтому приходится либо хранить кучу ненужных данных, либо отказываться от хранения полезных...:(
Ответить