Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
yden
Сообщения: 141
Зарегистрирован: Пн авг 22, 2016 10:03 am
Благодарил (а): 28 раз
Поблагодарили: 5 раз

Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение yden » Чт апр 05, 2018 5:27 am

Здравствуйте.
Подскажите пожалуйста.
Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта? Пробовал в методе turnOff этого объекта вставить код: sg('RelesvetKux.off', 1);. Не отрабатывает.
Это выключатель. Турнофф срабатывает:
https://photos.app.goo.gl/xIClD8Xxq666K9K12

Это топик мктт, который двигает есп. Турн офф не срабатывает:
https://photos.app.goo.gl/ePaxZvo9MEiRnWIq1

Телегой срабатывание проверяю:
https://photos.app.goo.gl/HXloqc4Ra5G0fMrh1

благодарю
Jilber
Сообщения: 717
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 117 раз
Поблагодарили: 113 раз

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение Jilber » Чт апр 05, 2018 5:57 am

Т.е. при изменении свойства "status" надо изменить ещё и другое свойство ?
1. Шаблон поведения - На основе значей свойств:
СпойлерПоказать
Шаблон.jpg
Шаблон.jpg (82.85 КБ) 4830 просмотров
2. Модуль PropTransfer.
За это сообщение автора Jilber поблагодарил:
yden (Чт апр 05, 2018 6:44 am)
Рейтинг: 1.16%
yden
Сообщения: 141
Зарегистрирован: Пн авг 22, 2016 10:03 am
Благодарил (а): 28 раз
Поблагодарили: 5 раз

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение yden » Чт апр 05, 2018 6:48 am

Чтобы не плодить темы, спрошу здесь.
Нужно сделать задержку изменения статуса объекта.
Код:
if (gg('ReleSvetBanya.status'))
{
/*setTimeOut("timer_zabor","sg('ReleSvetBanya.status', 0)", 60*15);*/

sg('ReleSvetBanya.status', 0);
sg('banya_cs.need_on', 0);
}

Нужно чтобы минут 15 ReleSvetBanya.status был 1, потом стал 0.
С setTimeOut не могу разобраться.

благодарю
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение Chainik » Чт апр 05, 2018 9:21 am

yden писал(а):
Чт апр 05, 2018 6:48 am
Нужно чтобы минут 15 ReleSvetBanya.status был 1, потом стал 0.
С setTimeOut не могу разобраться.
Попробуйте заменить двойные кавычки на одинарные. Ну т.е.

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

setTimeOut('timer_zabor','sg('ReleSvetBanya.status',0)',60*15);
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение nick7zmail » Чт апр 05, 2018 9:49 am

Эт точно не сработает))) апострафы внутри других апострафов (собственно как и кавычки внутри кавычек) как минимум экранировать надо.

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

setTimeOut('timer_zabor','sg(\'ReleSvetBanya.status\',0)', 60*15);
А их сочетание - как раз без экранирующих слэшей вполне обходится.
А так у человека всё правильно было...таймер в xray появляется хотя бы?

Кстати не вам ли я как раз свет на заборе настраивал по условиям?)) timer_zabor - прост че то вспоминается такое)
Имена таймеров тоже не должны конфликтовать. Так что назовите хотя бы timer_banya)...иначе у вас timer_zabor (если он активен) просто будет перезаписывать команду, и она так и не выполнится.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение xor » Чт апр 05, 2018 6:39 pm

Уникальное имя таймера 'zabor_'.time()
И, по моему, сет глобал в таймере внутри кавычек должен заканчиваться ;
как любая строка пхп
Отправлено с моего Redmi 4X через Tapatalk



Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение xor » Чт апр 05, 2018 7:12 pm

xor писал(а):Уникальное имя таймера 'zabor_'.time()
И, по моему, сет глобал в таймере внутри кавычек должен заканчиваться ;
как любая строка пхп
Отправлено с моего Redmi 4X через Tapatalk
https://kb.smartliving.ru/planirovanie-zadach/

Да, в примерах ; стоит

Отправлено с моего Redmi 4X через Tapatalk

Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение Chainik » Чт апр 05, 2018 7:35 pm

xor писал(а): Уникальное имя таймера 'zabor_'.time()
И, по моему, сет глобал в таймере внутри кавычек должен заканчиваться ;
как любая строка пхп
Точно! Тогда должно сработать так

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

setTimeOut("timer_zabor","sg('ReleSvetBanya.status',0);",60*15);
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Как кодом изменить свойство объекта в классе Relays при изменении статуса объекта

Сообщение nick7zmail » Чт апр 05, 2018 7:59 pm

Ну раньше и без ; работало. Хотя согласен, не лишним будет)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить