Страница 146 из 217

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср ноя 14, 2018 11:24 pm
Sas
к чему свойство датчика motion прицеплено в классе?
у меня раньше в к свойству motion был прицеплен метод on_motion где был примерно такой код
$this->setProperty('status',1);
а к свойству no_motion был привязан метод no_motion
где был такой примерно такой код
if($params['NEW_VALUE'] == '120' ){
$this->setProperty('status',0);
}
можно и без no_motion, но придется создавать таймер и двигать его при движении
Теперь я выкинул все статусы движения в Rooms и натравил сцены на их свойства

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Чт ноя 15, 2018 1:10 am
woow
Ron писал(а): Ср ноя 14, 2018 1:58 pm От куба приходит все реактивно.
Ротейт к примеру прилетает за 1 секунду.
вот такой код получился:

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

if (gg('Liustra.status1')==0 && gg('Liustra.status2')==0){
//usleep(500000);
sleep(1); 
getURL("http://192.168.1.173/control?cmd=GPIO,12,1");
	}
else if (gg('Liustra.status1')==1 && gg('Liustra.status2')==0){
//usleep(500000);
sleep(1);  
getURL("http://192.168.1.173/control?cmd=GPIO,13,1");
	}
else if (gg('Liustra.status1')==1 && gg('Liustra.status2')==1){ 
//usleep(500000);
sleep(1); 
getURL("http://192.168.1.173/control?cmd=GPIO,12,0");
	}
else if (gg('Liustra.status1')==0 && gg('Liustra.status2')==1){
//usleep(500000);
sleep(1); 
getURL("http://192.168.1.173/control?cmd=GPIO,13,0");
	}
с 0,5секунды работает всё ровно хаотично, с 1секундой задержки более менее меньше ложных срабатываний, но все же есть, не знаю пока как будет с тремя лампами. Попробую применить вкл -поворот 180, а выкл--поворот90, моментальный вех вкл/выкл тряска в воздухе.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Чт ноя 15, 2018 9:50 am
skyrider
Sas писал(а): Ср ноя 14, 2018 11:24 pm к чему свойство датчика motion прицеплено в классе?
Все датчики заведены через простые устройства, в модуле Xiaomi Home к motion привязано - Связанный объект(XiMotion03)>Связанное св-во(status)>Метод(motionDetected). Больше ничего не менял, т.е. все так как система настроила автоматом через связку модуля Xiaomi Home+Простые устройства и все это прекрасно работало до вчерашнего дня. А теперь XiMotion.status постоянно равно 1, и естественно на сцене висит и не исчезает красный датчика движения, раньше после сработки датчика был отсчет времени ,10 секунд назад, 20 секунд назад, 30 секунд назад, затем красный круг со сцены исчезал.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Чт ноя 15, 2018 10:18 am
skysilver
skyrider писал(а): Чт ноя 15, 2018 9:50 amв модуле Xiaomi Home к motion привязано - Связанный объект(XiMotion03)>Связанное св-во(status)>Метод(motionDetected). Больше ничего не менял, т.е. все так как система настроила автоматом через связку модуля Xiaomi Home+Простые устройства
Не должно там быть метода. Автоматом только свойство привязывается. Метод - это уже твое творчество. Это первое.
Второе. Видимо, у тебя не запускаются таймеры, которые должны сбрасывать статус ПУ в ноль. Смотри работу таймеров в ИксРей и статус цикла exec. Либо в самих ПУ это время (Время активности (секунд)) стоит не корректное.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Чт ноя 15, 2018 11:17 am
nick7zmail
woow писал(а): Чт ноя 15, 2018 1:10 am с 0,5секунды работает всё ровно хаотично, с 1секундой задержки более менее меньше ложных срабатываний, но все же есть, не знаю пока как будет с тремя лампами. Попробую применить вкл -поворот 180, а выкл--поворот90, моментальный вех вкл/выкл тряска в воздухе.
Попробуй так.

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

$lamp1=gg('Liustra.status1');
$lamp2=gg('Liustra.status2');
if (!$lamp1 && !$lamp2){
getURL("http://192.168.1.173/control?cmd=GPIO,12,1");
	}
else if ($lamp1 && !$lamp2){ 
getURL("http://192.168.1.173/control?cmd=GPIO,13,1");
	}
else if ($lamp1 && $lamp2){ 
getURL("http://192.168.1.173/control?cmd=GPIO,12,0");
	}
else if (!$lamp1 && $lamp1){
getURL("http://192.168.1.173/control?cmd=GPIO,13,0");
	}

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Чт ноя 15, 2018 1:43 pm
skyrider
skysilver писал(а): Чт ноя 15, 2018 10:18 am Не должно там быть метода. Автоматом только свойство привязывается. Метод - это уже твое творчество. Это первое.
Второе. Видимо, у тебя не запускаются таймеры, которые должны сбрасывать статус ПУ в ноль. Смотри работу таймеров в ИксРей и статус цикла exec. Либо в самих ПУ это время (Время активности (секунд)) стоит не корректное.
Удалил датчик движения со сцены, удалил в простых устройствах, в модуле Xiaomi Home к motion добавляю через кнопку Добавить
https://yadi.sk/i/Z8ymxxAJzdaQrw
https://yadi.sk/i/U_AGg6KQ-OYZhg
Вываливаются ошибки:

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

Details
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
DELETE FROM jobs WHERE TITLE LIKE 'HomeBridgeMode'

Details
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
INSERT INTO `jobs`(`TITLE`, `COMMANDS`, `RUNTIME`, `EXPIRE`) VALUES('HomeBridgeMode', 'sg(\'HomeBridge.mode\',\'\');', '2018-11-15 13:04:42', '2018-11-15 13:34:42')

Details
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
INSERT INTO `jobs`(`TITLE`, `COMMANDS`, `RUNTIME`, `EXPIRE`) VALUES('HomeBridgeMode', 'sg(\'HomeBridge.mode\',\'\');', '2018-11-15 13:04:42', '2018-11-15 13:34:42')
В итоге датчик привязывается автоматом, но мочему-то вместе с методом motionDetected
https://yadi.sk/i/YvfXNRqoqT5Nnw
В xray закладка timers посмотрел, там вот такая ошибка, по тексту вижу что что то посыпалось, но что с этим делать незнаю

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

Details
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
SELECT jobs.* FROM jobs WHERE EXPIRED!=1 AND PROCESSED!=1 AND 1 ORDER BY jobs.RUNTIME
В простых устройствах Время активности (секунд) ничего не выставлено, ставлю 30, опять вываливается ошибка:

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

Details
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
DELETE FROM jobs WHERE TITLE LIKE 'HomeBridgeMode'


Details
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
INSERT INTO `jobs`(`TITLE`, `COMMANDS`, `RUNTIME`, `EXPIRE`) VALUES('HomeBridgeMode', 'sg(\'HomeBridge.mode\',\'\');', '2018-11-15 13:22:26', '2018-11-15 13:52:26')
Значение 30 секунд в итоге выставляется но это не помогает.
Модулем MQTT(HomeBridge) не пользуюсь вообще, может в нем дело и его нужно удалить?

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Чт ноя 15, 2018 2:07 pm
skysilver
Чини таблицу. Написано же 145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
Из-за этого у тебя вообще никакие таймеры не работают.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Чт ноя 15, 2018 3:33 pm
skyrider
skysilver писал(а): Чт ноя 15, 2018 2:07 pm Чини таблицу. Написано же 145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
Из-за этого у тебя вообще никакие таймеры не работают.
Спасибо, понял, буду пробовать.

UPD. Через несколько часов.
Починил таблицу jobs, таймеры запустились, датчики движения заработали корректно, уважаемый skysilver оказался прав, благодарю.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Пт ноя 16, 2018 10:21 am
woow
nick7zmail писал(а): Чт ноя 15, 2018 11:17 am Попробуй так.

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

$lamp1=gg('Liustra.status1');
$lamp2=gg('Liustra.status2');
if (!$lamp1 && !$lamp2){
getURL("http://192.168.1.173/control?cmd=GPIO,12,1");
	}
else if ($lamp1 && !$lamp2){ 
getURL("http://192.168.1.173/control?cmd=GPIO,13,1");
	}
else if ($lamp1 && $lamp2){ 
getURL("http://192.168.1.173/control?cmd=GPIO,12,0");
	}
else if (!$lamp1 && $lamp1){
getURL("http://192.168.1.173/control?cmd=GPIO,13,0");
	}
Вашу переработку моего кода я так понимаю , как придать иную форму, объект-свойство через переменную, о в сущности не чего не изменилось хаос присутствует. Всё таки я считаю нужны "тормоза" sleep так более стабильно работает, но в принципе всё ровно не рискну ставить в люстру. Нужен какой то более утонченный код, что в промежутке времени (напр.1 секунды) обрабатывается поступившая команда и потом проверяется изменилось ли что то и только потом ждёт следующую, но иногда сигнал теряется и в этом случае опять проблема всё повиснет, тогда нужен какой то таймер чтобы всё становилось в изначальное состояние после 1,5 секунды. Ну я это так примитивно наверное рассуждаю. А так скорей всего куб не предназначен ка выполнение таких команд, одно действие одна однотипная команда.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Пт ноя 16, 2018 10:56 am
nick7zmail
нет...разница не только в "форме". в вашем случае переменные забирались каждый раз. А это значит что могло произойти так, что 1 условие выполнилось, выполнилась команда, а потом свойства снова забираются, и оно может прилететь уже измененным, и выполнится вторая конструкция (идеологически при elseif так быть не должно...но вдруг)...

В остальном всё ок. Никакой хаотичности быть не должно, если всё правильно связано. Смотрите не выполняется ли часом этот метод при обновлении свойства, когда значение прилетает с лампы.