Re: Простые устройства / Simple Devices
Добавлено: Вс май 03, 2020 10:39 am
А это как?
видиш нев_валуе и олд_валуе одинаковые - тоесть у тебя по приходу данных постоячнно выполняется метод.
Более полутора лет прошло, а воз и ныне там.diver писал(а): Ср сен 05, 2018 2:25 pmВообще, борьбы было много:skysilver писал(а): Ср сен 05, 2018 1:44 pm А в чем конкретно несовместимость? Поди подгоним одно под другое. )
Дефолтный SDimmers_turnOff.phpПриводил к тому, что в начале лампа выключалась, потом устанавливалась яркость в 0, а поскольку такой яркости не бывает, она менялась на 1. Следовательно через некоторое время зажигалась на минималке...Чуть с ума не сошел, пока понял в чем дело, поменял порядок строк - вылечил...Код: Выделить всё
$this->setProperty('status', 0); $this->setProperty('level', 0);
У меня может быть странные условия - в комнате люстра на 5 xiaomi ламп. Поскольку простые устройства оперируют всякими $this и прочими вещами - лампы ведут себя не адекватно, такие лампы надо включать/выключать прямым sg("лампа.свойство",1/0) иначе - новогодняя иллюминация с жуткими задержками. Тут видимо дело, даже не в перфомансе железа, а в производительности кода...
Если вводить еще выключатель, который своими методами выключает лампы (а не прямым sg("лампа.свойство",1/0)), то получаем, что выключатель выключил... лампы увидели изменения статуса и включились...
В общем, если честно - надоело ловить баги - проще написать свои простые, может быть не универсальные, методы.
Простые устройства оставлю для всяких градусников. Ибо даже реакцию на датчик движения пришлось допиливать![]()
а вы на той страничке до конца дочитали?Plug писал(а): Вс май 03, 2020 10:07 pmБолее полутора лет прошло, а воз и ныне там.diver писал(а): Ср сен 05, 2018 2:25 pmВообще, борьбы было много:skysilver писал(а): Ср сен 05, 2018 1:44 pm А в чем конкретно несовместимость? Поди подгоним одно под другое. )
Дефолтный SDimmers_turnOff.phpПриводил к тому, что в начале лампа выключалась, потом устанавливалась яркость в 0, а поскольку такой яркости не бывает, она менялась на 1. Следовательно через некоторое время зажигалась на минималке...Чуть с ума не сошел, пока понял в чем дело, поменял порядок строк - вылечил...Код: Выделить всё
$this->setProperty('status', 0); $this->setProperty('level', 0);
У меня может быть странные условия - в комнате люстра на 5 xiaomi ламп. Поскольку простые устройства оперируют всякими $this и прочими вещами - лампы ведут себя не адекватно, такие лампы надо включать/выключать прямым sg("лампа.свойство",1/0) иначе - новогодняя иллюминация с жуткими задержками. Тут видимо дело, даже не в перфомансе железа, а в производительности кода...
Если вводить еще выключатель, который своими методами выключает лампы (а не прямым sg("лампа.свойство",1/0)), то получаем, что выключатель выключил... лампы увидели изменения статуса и включились...
В общем, если честно - надоело ловить баги - проще написать свои простые, может быть не универсальные, методы.
Простые устройства оставлю для всяких градусников. Ибо даже реакцию на датчик движения пришлось допиливать![]()
![]()
Начни отсюда - https://github.com/sergejey/majordomo/b ... ample#L104Bagir писал(а): Пт май 08, 2020 12:52 pm Добрые люди, 112 страниц не осилю, подскажите, а как полностью отключить Простыне устройства? пробовал убирать код
/* begin injection of {SDevices} */
require(DIR_MODULES. .....
/* end injection of {SDevices} */
Но он заново прописывается в методах. До обновления с очень старой версии, код не мешал, но теперь происходят чудеса. Особенно в объектах комнат. При этом самих простых устройств у меня нету. Логика настроена по старинке, на взаимодействии объектов разных классов.
Код: Выделить всё
if (timeBetween(getGlobal('SunRiseTime'),getGlobal('SunSetTime')) && getGlobal('isDark')=="1") {
setGlobal("isDark",0);
callMethod('DarknessMode.deactivate');
} elseif (!timeBetween(getGlobal('SunRiseTime'),getGlobal('SunSetTime')) && getGlobal('isDark')!="1") {
setGlobal("isDark",1);
callMethod('DarknessMode.activate');
}