Страница 30 из 124

Re: Простые устройства / Simple Devices

Добавлено: Сб ноя 04, 2017 2:59 pm
Gelezako
xor писал(а): И почему Вы работаете с опен/клозе датчиком, а редактируете свойство жизни Smotion в его методе motionDetected?
И у меня в этом файле нет такой строки(

upd. Видимо, файл всё же ...\htdocs\modules\devices\SOpenClose_statusUpdated.php
да, сори, не тот файл указал, я тут одновременно для 2х датчиков логику пишу поэтому ошибся, редактировать в
devices/SOpenClose_statusUpdated.php

Re: Простые устройства / Simple Devices

Добавлено: Сб ноя 04, 2017 3:13 pm
Gelezako
xor писал(а):Да, а не проще ли вместо всего этого в связанной комнате в методе онИдле записать $this->setProperty('SomebodyHere',0);?
Этот метод вызывается по умолчанию через 10 мин. после онАктивити в комнате.
проверил, у менятам и так стоит этот код, но активность вечная всё равно если не редактировать $alive_timeout
Я уже понял что это несколько неверно, буду признателен если подскажите как сделать по нормальному.

Ещё вопрос, вы говорите что
xor писал(а): alive -это ... признак "живости" датчика.
т.е. есть какая-то логика, которая что-то будет делать если от датчика не поступают данные определённое время? Ещё мне не понятно, если для датчика было установлено 2 дня, то почему в Openclose01.aliveTimeout всегда пусто? Я ожидаю что в этом поле как раз будет цифра эквивалент 2 дня. Или я что-то не так понял?

Re: Простые устройства / Simple Devices

Добавлено: Сб ноя 04, 2017 5:35 pm
Gelezako
Ещё вопрос про про RGB-контроллер, добавил его для управления цветом на Ксиоми ночнике шлюза. Вопрос: Чем свойство XiRgb01.colorSaved отличается от XiRgb01.color? Зачем их добавлено 2 штуки?

Re: Простые устройства / Simple Devices

Добавлено: Сб ноя 04, 2017 9:59 pm
xor
Gelezako писал(а):т.е. есть какая-то логика, которая что-то будет делать если от датчика не поступают данные определённое время?
Ну, это признак, что с датчиком что-то случилось и его показаниям/отсутствию показаний нельзя доверять.
Gelezako писал(а):Ещё мне не понятно, если для датчика было установлено 2 дня, то почему в Openclose01.aliveTimeout всегда пусто? Я ожидаю что в этом поле как раз будет цифра эквивалент 2 дня. Или я что-то не так понял?
Два дня ставятся по умолчанию в коде, если Вы ничего не установили в Openclose01.aliveTimeout (см. фрагмент кода из файла). Это такой эквивалент разумной бесконечности
Gelezako писал(а):Ещё вопрос про про RGB-контроллер, добавил его для управления цветом на Ксиоми ночнике шлюза. Вопрос: Чем свойство XiRgb01.colorSaved отличается от XiRgb01.color? Зачем их добавлено 2 штуки?
А это я так понял, что Сергей выключает РГБ, устанавливая черный цвет в колор и запоминая текущий цвет в колор-савед, а когда нужно включить, переписывает сохраненный цвет в колор из колор-савед.
И да, я тоже думаю, что это избыточно - два свойства для цвета. Для выключения достаточно прописывать константу, не трогая свойство цвета

Re: Простые устройства / Simple Devices

Добавлено: Вс ноя 05, 2017 2:13 am
Gelezako
xor писал(а): Два дня ставятся по умолчанию в коде, если Вы ничего не установили в Openclose01.aliveTimeout (см. фрагмент кода из файла). Это такой эквивалент разумной бесконечности
т.е. если я Openclose01.aliveTimeout установлю в 3 минуты, то я как бы переопределю захардкоденое значение в 2 дня? Кста, не подскажите в каких единицах опредляется значение Openclose01.aliveTimeout? Если мне нужно 3 минуты, то сколько надо вписать?

Re: Простые устройства / Simple Devices

Добавлено: Вс ноя 05, 2017 2:36 am
xor
Я же про это писал уже:
viewtopic.php?f=7&t=3574&start=280#p63354

Там можно только целое число часов почему-то прописать.
Если (int) убрать, можно и дроби туда вписывать. Но это значит - опять править файл Сергея, т.е., это до следующего обновления.

Re: Простые устройства / Simple Devices

Добавлено: Вс ноя 05, 2017 11:41 pm
Gelezako
ну да, замкнутый круг получается, оформил вопрос на гитхабе, буду ждать ответа от Сергея. Вот кому интересно
https://github.com/sergejey/majordomo/issues/150

Re: Простые устройства / Simple Devices

Добавлено: Пн ноя 06, 2017 12:32 pm
nick7zmail
Сергей...кажется нашел причину "нерабочести" выключателей в меню.
Элементы сцены (как, видимо и элементы дашборда) используют методы TurnOn / TurnOff. С ними вопросов никаких нет.
А вот с выключателями меню (как и с командами sg('устройство.статус')), собственно беда. Они просто перещелкивают свойство статус. Свойство в свою очередь подтягивает метод statusUpdated. А в этом методе нету вызова TurnOn/TurnOff.

Стоило дописать

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

elseif ($this->class_title == 'SRelays') {
if ($this->getProperty('status')) {
 $this->callMethodSafe('turnOn');
} else {
 $this->callMethodSafe('turnOff');
}
}
к

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

if ($this->class_title == 'SMotions' && $params['NEW_VALUE'] && !timeOutExists($ot.'_motion_timer_status')) {
    $this->callMethodSafe('motionDetected',array('statusUpdated'=>1));
} elseif ($this->class_title == 'SButtons' && $params['NEW_VALUE'] && !timeOutExists($ot.'_pressed_status')) {
    $this->callMethodSafe('pressed',array('statusUpdated'=>1));
}
и всё заработало, как надо. Поправь, если в чем-то не прав (Может этот вызов в другом месте прописан?). Если прав - просьба докинуть в обновление очередное.

Re: Простые устройства / Simple Devices

Добавлено: Пн ноя 06, 2017 1:41 pm
Gelezako
nick7zmail, предлагайте свой Pull requests прямо в проекте на гитхабе, так намного проще и быстрей внести ваш фикс.

Re: Простые устройства / Simple Devices

Добавлено: Пн ноя 06, 2017 1:47 pm
nick7zmail
Я как то предложил пул реквест...до сих пор вспоминается...при первых 2х попытах он показывал около 2х тысяч обновлений, хотя я изменил 3 файла...потом вроде получилось что-то более удачное, но в обновлениях системы почему-то аж 3 раза моё обновление проскочило...так что у Сергея тоже там что-то не легко прошло видимо)))

Плюс я не уверен в своей правоте. Может по задумке Сергея методы TurnOn/TurnOff как-то по-другому вызываются при смене статуса...