Страница 88 из 139

Re: Ещё немного обновлений

Добавлено: Пн ноя 27, 2017 12:00 am
zelevova
mad82 писал(а):Подскажите как после обновления включить режим nobodyhomemode. Раньше включался командой callMethod('NobodyHomeMode.activate');
Зайди в настройки метода этого объекта и посмотри настройки вызова родительского метода. У меня в какой то момент слетело на никогда. И режим перестал включаться.

Re: Ещё немного обновлений

Добавлено: Пн ноя 27, 2017 1:09 am
xor
sergejey писал(а):"Инжекции" это на данный момент оптимальный вариант дополнения исполняемого кода в уже существующих методах и они не ограничивают вас в написании собственного кода. Дополнительный код от "простых устройств" не влияет на работу системы, если устройств как таковых не создавалось.
Озвучу только свою точку зрения:
Простые устройства важны, полезны и понижают порог вхождения в систему для новичков. Но в уже действующих системах нередко (судя по форуму, не только у меня) меняется поведение давно отлаженных вещей. Мне пришлось создать новый класс myRooms вместо Rooms, вот с NightMode тоже выяснилось, что я вкладывал в этот объект один смысл, а по идеологии Простых устройств - там другое.
viewtopic.php?f=7&t=3574&start=320#p64296.

Перед каждым новым обновлением в мастер-ветке я уж начал смотреть внимательно на исходники (что само по себе, конечно, неплохо).


Вот бы было здорово, чтобы Простые устройства бы влияли на какие-нибудь Простые объекты.
Чтобы Простой детектор движения влиял на активность в Простой комнате и в Простом Статусе системы НикогоНетДома и тд.

Таким образом сформируется единое множество устройств, объектов, свойств и методов (Простых, или лучше сказать - Стандартных), которые Сергей может развивать как ему видится. Круг этих сущностей будет чётко очерчен.

А пользователи системы уж подстроятся.

Re: Ещё немного обновлений

Добавлено: Вт ноя 28, 2017 11:53 am
ARTik
sergejey писал(а):Ребят, я не очень понимаю, что вы так ополчились на "простые устройства"..
Сергей, ни в коем случае. Функционал нужный для новичков.
sergejey писал(а):Дополнительный код от "простых устройств" не влияет на работу системы, если устройств как таковых не создавалось.
Влияет. Я ничего не прописывал в "простых устройствах" и не разу их не привязывал ни к чему. Где то там в "простых устройствах" зарыта логика что если в комнате есть движение, нужно отключить "режим никого нет дома" и "режим экономии".
Меня немного такая логика не устраивает. У меня постоянная "движуха" в доме ее кошка создает. Поэтому классе Room прописано условие в режиме охраны не реагировать на движение. Конечно можно прописать в датчиках не реагировать в "режиме охрана", но мне желательно знать где эта бестия шляется.

Re: Ещё немного обновлений

Добавлено: Вт ноя 28, 2017 9:23 pm
xor
Может, в интерфейсе как-то метить, что такой-то объект, свойство, метод и тд находится "под влиянием" простых устройств, как сделано типа linked to commands?

Re: Ещё немного обновлений

Добавлено: Ср ноя 29, 2017 8:55 pm
sergejey
Я кажется понял проблему. Да, действительно, в функционале простых устройств есть инъекции в код объектов, которые были в системе традиционно. Я добавлю возможность отключить весь функционал простых устройств.

Re: Ещё немного обновлений

Добавлено: Ср ноя 29, 2017 10:19 pm
sergejey
sergejey писал(а):Я кажется понял проблему. Да, действительно, в функционале простых устройств есть инъекции в код объектов, которые были в системе традиционно. Я добавлю возможность отключить весь функционал простых устройств.
Я добавил в пример конфига опцию отключение обработчиков от простых устройств. Для этого надо в /config.php добавить:

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

Define('DISABLE_SIMPLE_DEVICES',1); 
После этого никакой код из простых устройств не будет выполняться. Инъекции не будут добавляться, а уже добавленные не будут ничего делать.

Re: Ещё немного обновлений

Добавлено: Ср ноя 29, 2017 11:31 pm
xor
Но сами-то простые устройства останутся (хотелось бы - да)?
Эта опция только иньекций будет касаться?

Re: Ещё немного обновлений

Добавлено: Чт ноя 30, 2017 9:17 am
sergejey
xor писал(а):Но сами-то простые устройства останутся (хотелось бы - да)?
Эта опция только иньекций будет касаться?
Эта опция касается всего функционала простых устройств. Если она установлена в 1, то считайте, что этот модуль не работает вовсе.

Re: Ещё немного обновлений

Добавлено: Чт ноя 30, 2017 9:42 am
alternative_4
у меня из-за инъекции простых устройств перестал работать функционал игнорирования некоторых сенсоров движения, активирующих движение (чтобы не считать движением спальню и коридор), из-за этого перестал отрабатывать скрипт Grreting (доброе утро) при первом зарегистрированном утром движении вне игнорируемого периметра.
вызвано это безусловным (при любом движении) вызовом метода NobodyHome.deactivate в классе простых устройств Rooms_onActivity.

предложение для следующей версии (сейчас уже сам подправлю класс) - добавить параметр IgnoreMovement в класс Rooms и проверять его перед вызовом отключения режима "Никого нет дома" (callMethodSafe('NobodyHomeMode.deactivate').

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

if ($this->getProperty("IgnoreMovement")) {
return;
}
возможно, будет полезно многим

Re: Ещё немного обновлений

Добавлено: Чт ноя 30, 2017 10:57 am
sergejey
alternative_4 писал(а):у меня из-за инъекции простых устройств перестал работать функционал игнорирования некоторых сенсоров движения, активирующих движение (чтобы не считать движением спальню и коридор), из-за этого перестал отрабатывать скрипт Grreting (доброе утро) при первом зарегистрированном утром движении вне игнорируемого периметра.
вызвано это безусловным (при любом движении) вызовом метода NobodyHome.deactivate в классе простых устройств Rooms_onActivity.

предложение для следующей версии (сейчас уже сам подправлю класс) - добавить параметр IgnoreMovement в класс Rooms и проверять его перед вызовом отключения режима "Никого нет дома" (callMethodSafe('NobodyHomeMode.deactivate').

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

if ($this->getProperty("IgnoreMovement")) {
return;
} 
возможно, будет полезно многим
В настройках датчика движения в простых устройствах уже есть опция "Игнорировать события от устройства, когда никого нет дома". Собственно, оно как раз для того и предназначено. У меня есть ряд очень чувствительных датчиков, которые на кота реагируют, для них я как раз эту галочку выставляю и тогда сработка этих датчиков не будит дом.