Отлично. А исходники будут? ;)
Да, выкину "как есть" в следующей части.
Вот что-то такое надо добавить в стандартные интерфейсы MDM!
Отлично! Спасибо за статью
Кстати, у меня тоже была мысль встроить планшет в стену. НО я протестировал на двухстороннем скотче и не понравился результат
Купил первый мини айпад, создал страничку для планшета в МД, повесил, сделал янкость всего вкл.. и заметил что через пару часов работы он просто отваливается от вай файя и перестает обновлять страницы, или жутко начинает тупеть на касания.
Как у вас дела с этим?
Для планшета заказано крепление на стену, так удобнее) Страницу стоит переодически перезагружать, чтобы избежать перепополнения кеша браузера. Также экран стоит держать постоянно включеным, чтобы работали Ajax запросы...
и нет зависаний?
Неа...
Может адаптировать под ПУ и оформить модулем?
Для планшета на стене рекомендую https://connect.smartliving.ru/profile/1502/compon...
Можно созвонится вечером например в скайпе, обсудить... я просто не капал сцены/модули и не понимаю как оно работает) могу помочь токо кодом и оптимизацией)
хм.. наверное мой айпад глючный
потому что я отказался и за этого от моей идеи
Спасибо за наводку на Paw. Наконец то могу управлять подсветкой, и выключать экран в режиме НикогоНетДома. В majorDroid эту функцию так и не встроили...
По paw у меня есть даже заготовка модуля. Времени адаптировать как обычно не хватает. https://github.com/directman66/majordomo-mqtt_paw
Если кто допилит, я буду премного благодарен.
Ждем странички со стилями.
Делюсь ссылкой - https://yadi.sk/d/NtX9OrEgrGBK0w Как уже говорил - отдаю как есть. Многое не доделано.
Загрузилось.Очень круто. Теперь было бы круто шаблон натравить на ПУ.
не хватает json/nowtime.php
Предлагаю взяться за задачу разработки интерфейса в коннекте которая. Может Вас это заинтересует? https://connect.smartliving.ru/tasks/249.html думаю когда вы начнете выкладывать наработки бюджет вырастет еще.
А смысл не использовать сцены, когда на сцене вполне реализуется тоже самое? В чём вы видите "кривизну" сцен МДМ?
"Кривизна" не в плане возможностей, а в плане "топорности" интерфейса.
Стандартные элементы да, немого топорные. Но
1) их можно "изуродовать" через css (см. приимер на сцене город из маркета), и привести к более-менее приемлимому виду.
2) Никто их не заставляет использовать, можно юзать чистые html элементы, но при этом не терять функционал сцен (создавать состояния у html элементов, использовать фишки типа "выполнить при клике" и вызывать методы, код, и что хотите...
3) Раз уж взялись свои странички писать - крайне рекомендую использовать для обновления свойств вебсокеты а не аякс...т.к. во-первых получите обновление в реалтайме (в отличие обновления по таймеру в аяксе) во-вторых не будете "долбить" сервер запросами каждый раз как наступит цикл таймера.
вот опять же пример
$.subscribe('wsConnected', function (_) {
var payload;
payload = new Object();
payload.action = 'Subscribe';
payload.data = new Object();
payload.data.TYPE='properties';
payload.data.PROPERTIES='sensor_temp04.value'; //подписываемся на сенсор
wsSocket.send(JSON.stringify(payload));
});
function processPropertiesUpdate(data) {
var obj=jQuery.parseJSON(data);
var objCnt = obj.length;
if (objCnt) {
for(var i=0;i<objCnt;i++) {
if (obj[i]['PROPERTY']=='sensor_temp04.value') {
src_temp1=obj[i]['VALUE'];//вот тут забираем значение
alert(src_temp1);
$.publish('sensor_temp04.value.updated', obj[i]['VALUE']);}
}
}
}$.subscribe('wsData', function (_, response) {
if (response.action=='properties') {
processPropertiesUpdate(response.data);
}
});
А...и если пишите не в домашних страницах, а прямо на отдельной странице - сокеты нужно ещё инициализировать. Подключить websockets.html, или прописать код
<script type="text/javascript" src="/js/jquery.tiny-pubsub.js"></script>
<script>
var wsTimer=0;
var startedWebSockets=0;
function startWebSockets() {
var loc = window.location, new_uri;
var serverUrl='';
if (loc.protocol === "https:") {
serverUrl = "wss:";
} else {
serverUrl = "ws:";
}
serverUrl += "//" + loc.host + ':8001/majordomo';
try {
console.log('Conneting to '+serverUrl);
if (window.MozWebSocket) {
wsSocket = new MozWebSocket(serverUrl);
} else if (window.WebSocket) {
wsSocket = new WebSocket(serverUrl);
}
} catch (e) {
console.log('Failed connecting to '+serverUrl);
return false;
}
wsSocket.binaryType = 'blob';
wsSocket.onopen = function(msg) {
///connected
console.log('WS connected (three.scene)');
startedWebSockets=1;
clearTimeout(wsTimer);
$.publish('wsConnected');
};
wsSocket.onmessage = function(msg) {
console.log('WS data (three.scene)');
var response;
response = JSON.parse(msg.data);
console.log('Action: '+response.action+'; Data: '+response.data);
$.publish('wsData', response);
return;
};
wsSocket.onclose = function(msg) {
//disconnected
startedWebSockets=0;
wsTimer=setTimeout('startWebSockets();', 5*1000);
$.publish('wsDisconnected', []);
console.log('WS disconnected (three.scene)');
return;
};
}
$(document).ready(function(){
startWebSockets();
});
</script>
serverUrl += "//" + loc.host + ':8001/majordomo'; --- порт в конфиге определяется через 'WEBSOCKETS_PORT', можно налететь(
Ну я ж как пример привёл...если человек переопределил порт в конфиге, он наверное знает об этом, и в коде заменит :-D
вот для этого человека и написал)
А можете рассказать поподробней, как управлять яркостью планшета?
Пожалуйста, войдите в систему, чтобы добавлять комментарии Присоединиться!