В меню управления я настроил выключатель так
Простые устройства / Simple Devices
Модератор: immortal
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Простые устройства / Simple Devices
Хочу понять ошибку. У меня имеется выключатель без обратной связи. Есть вопросы про статус. Я настроил выключатели с помощью методов turnOn и turnOff. Кросс-вызов метода не наблюдается. Настроил блокировку на запуск метода turnOn, метод turnOn запускается, только, если я дома, в ночное время тоже не запускается. Но мне не понятно одно, когда стоит блокировка метода и я запускаю метод turnOn, свет не включается, но в свойстве статус стоит значение 1, индикатор выключателя горит, а по факту свет не включен. Это моя ошибка или системы?
В меню управления я настроил выключатель так
В методе turnOn я настроил блокировку на запуск метода - метод запустится, если я дома. В настройке "Вызывать родительский метод" я поставил галочку "перед выполнением кода". Если выбрать никогда, то метод не вызывает родительский метод, но тогда не будет работать запуск метода.
В меню управления я настроил выключатель так
СпойлерПоказать
СпойлерПоказать
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Простые устройства / Simple Devices
1) Чисто в теории ноубодихоуммод - это режим "никого нет дома". Т.е. когда вы дома он по логике должен быть выключен (=0)...а вы при включенном метод запускаете. Это раз. Ну это так...к логике придирка...
2) По вашему случаю - метод то вы заблокировали, а изменение свойства то кто блокировать будет? Оно зависит от того - как вы вызываете смену статуса выключателя. Эту блокировку либо на том уровне надо ставить, либо здесь уже постфактум возвращать в 0 (то есть добавить к если блок иначе, и принудительно статус в 0 поставить. Но я бы блокировку уровнем выше произвёл бы, там где вызывается включение выключателя.
2) По вашему случаю - метод то вы заблокировали, а изменение свойства то кто блокировать будет? Оно зависит от того - как вы вызываете смену статуса выключателя. Эту блокировку либо на том уровне надо ставить, либо здесь уже постфактум возвращать в 0 (то есть добавить к если блок иначе, и принудительно статус в 0 поставить. Но я бы блокировку уровнем выше произвёл бы, там где вызывается включение выключателя.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Простые устройства / Simple Devices
1) у меня Кто-то дома настроен иначе, я создал объект DivanHomeMode и имеются значения 0, 1 и 2. Где 0 - не дома, 1 - дома, 2 - сплю. Если меня нет дома, то методы и сценария не будут запускаться, если я сплю, то дневные сценария также не будут запускаться. В методе turnOn я указал что метод можно запускать, если я дома, когда значение имеет 1.
2) Я правильно понимаю, что в методе statusUpdated тоже нужно ставить блокировку? Например так, если меня нет дома и если при запуске метода turnOn у switch.status будет стоять значение 1, то поставить 0. Просто я думал, что этот способ не верный или это действительно не верный способ?
3) В родительском методе прописана своя логика require(DIR_MODULES.'devices/SControllers_turnOn.php'); или require(DIR_MODULES.'devices/SControllers_turnOff.php');. Какой нужно прописать код, чтобы запускался метод?
2) Я правильно понимаю, что в методе statusUpdated тоже нужно ставить блокировку? Например так, если меня нет дома и если при запуске метода turnOn у switch.status будет стоять значение 1, то поставить 0. Просто я думал, что этот способ не верный или это действительно не верный способ?
3) В родительском методе прописана своя логика require(DIR_MODULES.'devices/SControllers_turnOn.php'); или require(DIR_MODULES.'devices/SControllers_turnOff.php');. Какой нужно прописать код, чтобы запускался метод?
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
-
- Сообщения: 2113
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 317 раз
- Поблагодарили: 466 раз
Re: Простые устройства / Simple Devices

здесь можно ничего не дописывать, а просто выбрать вызывать родительский послеDivan писал(а): ↑Вс окт 20, 2019 1:01 pmНастроил блокировку на запуск метода turnOn, метод turnOn запускается, только, если я дома, в ночное время тоже не запускается. Но мне не понятно одно, когда стоит блокировка метода и я запускаю метод turnOn, свет не включается, но в свойстве статус стоит значение 1, индикатор выключателя горит, а по факту свет не включен. Это моя ошибка или системы?
но это при такой реализации
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Простые устройства / Simple Devices
Я так делал, но в таком случае не запускается метод turnOn. Что происходит? Пришел домой, у объекта Кто-то дома DivanHomeMode выставляется значение 1 и запускается метод turnOn для выключателя. Если я выберу "Никогда", то свет не включится, а статус выставляется 1 и показывает что свет включился, если я выберу запускать родительский метод перед выполнением кода, то свет включится и статус будет 1. Видимо вся проблема в логике родительского метода. Может нужно удалить стандартный код require(DIR_MODULES.'devices/SControllers_turnOn.php'); и прописать свой код, только вот какой код прописать?
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Простые устройства / Simple Devices
А если я в родительском методе turnOn пропишу код $this->setProperty("status",1);, то после обновления MD этот код не сотрется?
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Простые устройства / Simple Devices
В turnOn/TurnOff особо логики никакой нет. Они просто меняют свойства на 1/0 при вызове. Трогать require соответственно не надо...
В своё время в модуле бродлинка тоже в turnOn/turnOff рекомендовал вписывать код включения/выключения радиовыключателей. Пока это не доходило до подобных тонкостей. Потом выяснилось что таки привильнее вписывать в statusUpdated, и статья чуть поправилась https://kb.mjdm.ru/broadlink_rm_switch_sd/. Т.е. основное действие должно происходить в statusUpdated. Отключать родительские методы тоже не стоит. И всё равно в вашем случае не вижу полной картины...откуда вызывается смена статуса выключателя, каким кодом... Код блокировки показали, ок...но там ссылка почему то на darknessMode, а не на NobodyHome как вы говорили...в любом случае чтобы что то дельное посоветовать - нужна полная картина.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 2113
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 317 раз
- Поблагодарили: 466 раз
Re: Простые устройства / Simple Devices
у меня у большинства вызов родительского либо поменян, либо отключен
просто нужно понимать (а там они даже в разных потоках запускаются)
ну и структуру ПУ понять, то ТС в трех березах бродит и чето там мутит через тернии

Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Простые устройства / Simple Devices
я отказался от такого способа https://kb.mjdm.ru/broadlink_rm_switch_sd/. Проще тогда в методе statusUpdated прописать правило, что если я не дома, то при статусе 1 текущего объекта, установить 0, а в методах turnOn/turnOff не отключать родительский вызов, тогда и методы будут отрабатывать и статус будет работать верно.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Простые устройства / Simple Devices
не сотрется.
- За это сообщение автора nick7zmail поблагодарил:
- Divan (Пн окт 21, 2019 1:25 am)
- Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<