Планы
Модератор: immortal
-
- Сообщения: 14
- Зарегистрирован: Вт окт 25, 2016 2:41 pm
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: Планы
Кто нибудь реализовывал такое в Планах для датчиков движения?
Если да то поделитесь пожалуйста рецептом, в сценах есть, а на Плане у меня мозгов видимо не хватает реализовать, но очень хочется -
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Планы
Вот пример нечто подобного, правда не в Планах, а на сцене (https://www.ab-log.ru/forum/viewtopic.p ... 022#p47022).
А в вашем примере самое интересное, каким именно образом реализован расчет времени, прошедший с момента срабатывания датчика движения, а также расчет процента использования помещения (если я правильно понял значение процентов рядом с индикатором датчика).
А в вашем примере самое интересное, каким именно образом реализован расчет времени, прошедший с момента срабатывания датчика движения, а также расчет процента использования помещения (если я правильно понял значение процентов рядом с индикатором датчика).
-
- Сообщения: 14
- Зарегистрирован: Вт окт 25, 2016 2:41 pm
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: Планы
На сцене то понятно, картинка как раз и взята со сцены, это уже реализовано до меня в ПУ. Рядом с датчиком показан процент заряда батареи датчика. А вот как это реализовать в Планах не знаю, максимум добился чтобы значения обновлялись при загрузке страницы, но сами по себе значения не обновляются
Использовал этот код:
и вставлял как Компонент - тип HTML блок (в базе пришлось увеличить поле с 255 символов до 5000), но при загрузке страницы все хорошо счетчик работает, а var sDATA = '%TuMotion01.updated%' не обновляется, только при перезагрузке страницы. Дальше не могу сообразить
Использовал этот код:
Код: Выделить всё
<script>
function setInsertData_%TuMotion01.object_id%() {
if(window.intervalUpdateDate_%TuMotion01.object_id%) {
window.clearInterval(intervalUpdateDate_%TuMotion01.object_id%);
}
var currentTime = parseInt(new Date().getTime()/1000);
var sID = '%TuMotion01.object_id%';
var sDATA = '%TuMotion01.updated%';
var diff = currentTime-sDATA;
if(diff <= -21) {
beautyText = '<#LANG_DEVICES_PASSED_INCORRECT_TIME#>';
$('.updatedText-JS-' + sID).text(beautyText);
} else if(diff >= -20 && diff <= 10) {
//Только что
beautyText = '<#LANG_DEVICES_PASSED_NOW#>';
$('.updatedText-JS-' + sID).text(beautyText);
window.intervalUpdateDate_%TuMotion01.object_id% = setInterval(function() {
setInsertData_%TuMotion01.object_id%();
}, 1000);
} else if(diff > 10 && diff <= 600) {
beautyText = secondsToHms(diff, '', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '<#LANG_DEVICES_PASSED_NEW_SECONDS_AGO#>') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.updatedText-JS-' + sID).text(beautyText);
window.intervalUpdateDate_%TuMotion01.object_id% = setInterval(function() {
var currentTime = parseInt(new Date().getTime()/1000);
var diff = currentTime-sDATA;
beautyText = secondsToHms(diff, '', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '<#LANG_DEVICES_PASSED_NEW_SECONDS_AGO#>') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.updatedText-JS-' + sID).text(beautyText);
setInsertData_%TuMotion01.object_id%();
}, 1000);
} else if(diff > 600 && diff <= 7200) {
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.updatedText-JS-' + sID).text(beautyText);
window.intervalUpdateDate_%TuMotion01.object_id% = setInterval(function() {
var currentTime = parseInt(new Date().getTime()/1000);
var diff = currentTime-sDATA;
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.updatedText-JS-' + sID).text(beautyText);
setInsertData_%TuMotion01.object_id%();
}, 61000);
} else if(diff > 7200 && diff < 25200) {
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '', '') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.updatedText-JS-' + sID).text(beautyText);
window.intervalUpdateDate_%TuMotion01.object_id% = setInterval(function() {
var currentTime = parseInt(new Date().getTime()/1000);
var diff = currentTime-sDATA;
//Считаем и делаем красиво
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '', '') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.updatedText-JS-' + sID).text(beautyText);
setInsertData_%TuMotion01.object_id%();
}, 1800000);
} else {
//Дропаем интервал
if(window.intervalUpdateDate_%TuMotion01.object_id%) {
window.clearInterval(intervalUpdateDate_%TuMotion01.object_id%);
}
timeConvertVar = timeConvert(sDATA);
currentTime = new Date();
if(currentTime.getFullYear() == timeConvertVar[2] && twoDigits(currentTime.getMonth()+1) == timeConvertVar[1] && (currentTime.getDate() - timeConvertVar[0]) == 0) {
beautyText = '<#LANG_DEVICES_PASSED_TODAY_IN#> ' + timeConvertVar[3] + ':' + timeConvertVar[4];
} else if(currentTime.getFullYear() == timeConvertVar[2] && twoDigits(currentTime.getMonth()+1) == timeConvertVar[1] && (currentTime.getDate() - timeConvertVar[0]) == 1) {
beautyText = '<#LANG_DEVICES_PASSED_YESTERDAY_IN#> ' + timeConvertVar[3] + ':' + timeConvertVar[4] + ':' + timeConvertVar[5];
} else {
beautyText = timeConvertVar[0] + '.' + timeConvertVar[1] + '.' + timeConvertVar[2] + ' ' + timeConvertVar[3] + ':' + timeConvertVar[4] + ':' + timeConvertVar[5];
}
$('.updatedText-JS-' + sID).text(beautyText);
}
}
$(function() {
if(window.intervalUpdateDate_%TuMotion01.object_id%) {
window.clearInterval(intervalUpdateDate_%TuMotion01.object_id%);
}
setInsertData_%TuMotion01.object_id%();
window.intervalUpdateDate_%TuMotion01.object_id% = setInterval(function() {
setInsertData_%TuMotion01.object_id%();
}, 1000);
});
</script>
<div class="updatedText-JS-%TuMotion01.object_id%" style="font-size: 11px;">...</div>
-
- Сообщения: 14
- Зарегистрирован: Вт окт 25, 2016 2:41 pm
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: Планы
В общем нашел я решение: Кому надо обращайтесь, подскажу.kolizeyalex писал(а): ↑Чт дек 16, 2021 11:19 amКто нибудь реализовывал такое в Планах для датчиков движения?
motion_sensor.png
Если да то поделитесь пожалуйста рецептом, в сценах есть, а на Плане у меня мозгов видимо не хватает реализовать, но очень хочется
Re: Планы
Добрый день!
Подскажите пожалуйста. Знаю, что так можно сделать.
Как правильно подготовить SVG файл, что бы в МД в выпадающем списке не отображались не нужные элементы, но при этом они оставались на виде
Подскажите пожалуйста. Знаю, что так можно сделать.
Как правильно подготовить SVG файл, что бы в МД в выпадающем списке не отображались не нужные элементы, но при этом они оставались на виде