пробовал вашу кнопку внедрить, все завелось с пол пинка, управлял светом, все обновляется без обновления страницы, даже если с другой кнопки включитьNightShock писал(а): ↑Пт авг 24, 2018 6:25 pmВсем привет. Совсем недавно поставил себе MajorDoMo.
Сразу же решил написать классы под свои задачи.
Нужен был выключатель на 3 позиции (включить свет = 0, выключить свет = 1 и авто = 2 с использованием датчика движения).
Создал новый класс с единственным свойством "status" и единственным методом "Switch":В шаблоне класса прописал стиль иКод: Выделить всё
$val=$this->getProperty('status'); $val++; if ($val>2) $val=0; $this->setProperty('status',$val);
Использую в сцене как объект.Код: Выделить всё
<a href="#" class='button %.status|"dsgnmoo;xbox;grey;"%' onClick='callMethod("%.Switch");'>%.status|"выкл;вкл;авто;"%</a>
При клике вызывается метод "Switch".
Всё хорошо, но он не обновляется. Переключение происходит, но что бы в этом убедиться - нужно обновлять страницу.
Вопрос как сделать автоматическое обновление отображения объекта в сцене (как это происходит со стандартными выключателями)
А ещё хочется, что бы это работало и при изменение свойств. По MQTT переодически получаю актуальную информацию, её нужно выводить и обновлять, без обновления страницы.
Шаблон класса / Class Template
Модератор: immortal
-
- Сообщения: 530
- Зарегистрирован: Чт авг 20, 2015 11:32 am
- Откуда: Ярославль
- Благодарил (а): 61 раз
- Поблагодарили: 75 раз
- Контактная информация:
Re: Шаблон класса / Class Template
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Шаблон класса / Class Template
sega6549, раз вы уже разобрались с кнопками, может сможете "прикрутить" такие (https://majordomo.smartliving.ru/forum/ ... 0&start=18) переключатели. (Парные круглые переключатели в овалах.) Мы пытались 1,5 года назад, действие по клику добавить удалось (onClick), а вот обратную связь со свойством организовать тогда не получилось.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Шаблон класса / Class Template
Действие выполняется по onclick как там верно подметили. А обратная связь - к примеру через middle-connector. Если сокетами - то div дёргаться будет. Не знаю как этого избежать, уже задавал вопрос в теме про сокеты.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Шаблон класса / Class Template
по поводу обратной связи - https://youtu.be/xZJi5J-Msv4 - вот видео
Див не дергается - только заменяется картинка лампочки
В чем я туплю...???
Див не дергается - только заменяется картинка лампочки
В чем я туплю...???
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Шаблон класса / Class Template
Тут вы взяли как пример "штатную" кнопку, где все уже "привязано" на уровне системы.
А мы пробуем "прикрутить" переключатель, раздобытый на просторах Интернета (https://majordomo.smartliving.ru/forum/ ... 0&start=18).
И здесь возникают вопросы и сложности (особенно для несведующих/малосведующих в программировании).
А мы пробуем "прикрутить" переключатель, раздобытый на просторах Интернета (https://majordomo.smartliving.ru/forum/ ... 0&start=18).
И здесь возникают вопросы и сложности (особенно для несведующих/малосведующих в программировании).
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Шаблон класса / Class Template
Ну во первых он мне не нравится,Chainik писал(а): ↑Чт авг 30, 2018 12:28 pmТут вы взяли как пример "штатную" кнопку, где все уже "привязано" на уровне системы.
А мы пробуем "прикрутить" переключатель, раздобытый на просторах Интернета (https://majordomo.smartliving.ru/forum/ ... 0&start=18).
И здесь возникают вопросы и сложности (особенно для несведующих/малосведующих в программировании).
а во вторых он плох тем что его надо наполовину передывать (оставив только ксс)
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Шаблон класса / Class Template
Мне тоже не то чтобы нравится... Но это только пример. Другими словами, как сделать любой, раздобытый на просторах Интернета переключатель, чтобы он был с обратной связью по свойству?
Просто живой пример для "чайников". Типа, вот сюда добавляем onClick, а сюда механизм реагирования на изменение конкретного свойства (обратная связь).
Просто живой пример для "чайников". Типа, вот сюда добавляем onClick, а сюда механизм реагирования на изменение конкретного свойства (обратная связь).
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Шаблон класса / Class Template
В данном случае выключатель работает за счет стилей для разных дивов...
Поэтому береш обычный ДИВ множиш его на 2 и по свойству обьекта в данном случае - alive (состояние 1 или 0 ) отображаеш за счет style = block or style=none один из дивов.
НО этот метод не очень хорош поскольку он всегда перерисовывает сам ДИВ.
Поэтому береш 2 картинки для выключателя.
всовываеш их в 1 ДИВ и соответственно меняеш сами картинки
в данном случае пример на кнопках... тут изменяется одна кнопка которая заменяет другую...
Этот пример я считаю более правильным потому что если мы имеем сложный ДИВ и в нем очень много другого отображается
ТО тут у нас только заменится кнопка и ВСЕ. (можно конечно сделать одну картинку а менять для нее только ссылку на картинки ) - что тоже сделано в примерах... Но я не понял всего до конца там
НУ ЭТО ТАК Я ПОНЯЛ СТРУКТУРУ ЭТИХ ШАБЛОНОВ..
Поэтому береш обычный ДИВ множиш его на 2 и по свойству обьекта в данном случае - alive (состояние 1 или 0 ) отображаеш за счет style = block or style=none один из дивов.
Код: Выделить всё
<div class="device-header" style='display:%.alive|"none;block"%;float:right;font-size: 50%; font-family: monospace;'></div>
<div class="device-header" style='display:%.alive|"block;none;"%;float:right;font-size: 50%; font-family: monospace;'></div>
Поэтому береш 2 картинки для выключателя.
всовываеш их в 1 ДИВ и соответственно меняеш сами картинки
Код: Выделить всё
<div name="buttons" style="width:310px; height: 45px; ">
<button style='display:%.pause_unpause|"none;block"%; float:left; width:46px;height: 34px;' onClick='ajaxSetGlobal("%.object_title%.pause_unpause", 1);' class="btn btn-custom"><span title="Pause" id="pause" class="glyphicon glyphicon-pause aligned"></span></button>
<button style='display:%.pause_unpause|"block;none"%; float:left;width:46px;height: 34px;' onClick='ajaxSetGlobal("%.object_title%.pause_unpause", 0);' class="btn btn-custom"><span title="UnPause" id="Unpause" class="glyphicon glyphicon-play aligned"></span></button>
</div>
Этот пример я считаю более правильным потому что если мы имеем сложный ДИВ и в нем очень много другого отображается
ТО тут у нас только заменится кнопка и ВСЕ. (можно конечно сделать одну картинку а менять для нее только ссылку на картинки ) - что тоже сделано в примерах... Но я не понял всего до конца там
НУ ЭТО ТАК Я ПОНЯЛ СТРУКТУРУ ЭТИХ ШАБЛОНОВ..
- За это сообщение автора tarasfrompir поблагодарил:
- Chainik (Чт авг 30, 2018 3:07 pm)
- Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Шаблон класса / Class Template
Ну этот прием я освоил (https://majordomo.smartliving.ru/forum/ ... 0&start=10). Кстати, его давным давно еще Сергей приводил где-то на форуме.
Но это, так сказать, простейший случай с заменой картинки. В случае переключателя мы имеем дело, насколько я понимаю, с описанием видоизменения самого элемента посредством css. Если бы научится организовывать обратную связь по свойству, можно было бы "вытворять" вообще любой интерфейс. Нашел понравившийся элемент (переключатель, слайдер, чекбокс и т.д.), добавил onClick и связанное свойство, и вся красота у тебя уже в интерфейсе...
Но это, так сказать, простейший случай с заменой картинки. В случае переключателя мы имеем дело, насколько я понимаю, с описанием видоизменения самого элемента посредством css. Если бы научится организовывать обратную связь по свойству, можно было бы "вытворять" вообще любой интерфейс. Нашел понравившийся элемент (переключатель, слайдер, чекбокс и т.д.), добавил onClick и связанное свойство, и вся красота у тебя уже в интерфейсе...
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Шаблон класса / Class Template
так а ведь по свойству и изменяет состояние картинки - это основная задача вебсокетов - видео выше часть 2 она справедлива для всего что только можна
только свойство надо указывать явное (если это не ПУ) типа rele11mqqtt.status
только свойство надо указывать явное (если это не ПУ) типа rele11mqqtt.status
Спасибо нам ПОМОЖЕТ..!