NEWS
Вопросы по написанию скриптов
-
Тогда надо было писать что у них все единицы измерения не верно воспроизводятся У меня скорость ветра в km/h он тоже не верно воспроизводит.
Вопрос, а как в лог записать сообщение с пометкой warn?
-
Вопрос, а как в лог записать сообщение с пометкой warn? `
log('This is warning', 'warn');
-
Извиняюсь, может н в ту ветку.
По логированию, какие ещё есть варианты,(info,warning,error) знаю
-
> По логированию, какие ещё есть варианты,(info,warning,error) знаю
debug -
А возможно например создать свой уровень
function(code){ if (code !== 0) { log('что-то там: ' + code); } else { log('OK'); }
и его логировать отдельно,а ещё лучше засунуть его в переменную или типа того.
Тогда появится возможность вести что-то вроде лога событий которые происходят (например работают из скриптов)
-
А возможно например создать свой уровень
function(code){ if (code !== 0) { log('что-то там: ' + code); } else { log('OK'); }
и его логировать отдельно,а ещё лучше засунуть его в переменную или типа того.
Тогда появится возможность вести что-то вроде лога событий которые происходят (например работают из скриптов) `
Нет нельзя. И я пока не понял зачем ещё. Если хочешь, то можешь сам писать в переменную список событий. -
Bluefox, можно привести пару пример для чего можно использовать enums?
-
Например состояния плеера:
'stop;play;paused'
Тогда значения состояния 0,1 и 2 автоматически будут показыватся в admin, как stop, play…
Вот в принципе и всё.
-
А в виде кода можно как нибудь изобразить?
-
Как правильно сделать несколько таймаутов? Нужно мегой помигать через 2 сек.
Вот так срабатывает первый setTimeout
var url = 'http://192.168.0.14/sec/?cmd=7:2';
request(url);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 2000);
Если делаю вложенные, то работает, но так ведь и запутаться можно.
setTimeout(function(){
request(url);
setTimeout(function(){ request(url); }, 2000);
}, 2000);
Есть ли более красивый/правильный пример?
-
Как правильно сделать несколько таймаутов? Нужно мегой помигать через 2 сек.
Вот так срабатывает первый setTimeout
var url = 'http://192.168.0.14/sec/?cmd=7:2';
request(url);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 2000);
Если делаю вложенные, то работает, но так ведь и запутаться можно.
setTimeout(function(){
request(url);
setTimeout(function(){ request(url); }, 2000);
}, 2000);
Есть ли более красивый/правильный пример? `
setTimeoutvar url = 'http://192.168.0.14/sec/?cmd=7:2';
request(url);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 4000);
setTimeout(function(){ request(url); }, 6000);
-
Спасибо, работает
-
Как правильно сделать несколько таймаутов? Нужно мегой помигать через 2 сек.
Вот так срабатывает первый setTimeout
var url = 'http://192.168.0.14/sec/?cmd=7:2';
request(url);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 2000);
Если делаю вложенные, то работает, но так ведь и запутаться можно.
setTimeout(function(){
request(url);
setTimeout(function(){ request(url); }, 2000);
}, 2000);
Есть ли более красивый/правильный пример? `
setTimeoutvar url = 'http://192.168.0.14/sec/?cmd=7:2';
request(url);
setTimeout(function(){ request(url); }, 2000);
setTimeout(function(){ request(url); }, 4000);
setTimeout(function(){ request(url); }, 6000); `
Правильнее будет сделать так:
var url = 'http://192.168.0.14/sec/?cmd=7:2'; function blink(count) { if (count === undefined) count = 0; if (count > 3) return; request(url); setTimeout(blink, 2000, count + 1); } blink();
-
`var idSayIt = "sayit.0.tts.text"; var message = []; message.push('Доброе утро.'); message.push('За окном 7 градусов.'); message.push('Прогноз погоды на завтра'); for(var i=0; i<message.length; i++){/setstate/(idsayit,/message[i]);/log(message[i]);/}<e=""></message.length;>` Почему данный код работает не корректно, то есть может второе сообщение проговорить два раза, а последнее не произнести?[/i][/i]
-
`var idSayIt = "sayit.0.tts.text"; var message = []; message.push('Доброе утро.'); message.push('За окном 7 градусов.'); message.push('Прогноз погоды на завтра'); for(var i=0; i<message.length; i++){/setstate/(idsayit,/message[i]);/log(message[i]);/}<e=""></message.length;>` Почему данный код работает не корректно, то есть может второе сообщение проговорить два раза, а последнее не произнести? А в лог норм выводит?[/i][/i] ``` `
-
В лог да, нормально
-
В лог да, нормально `
Данные пишутся без задержки, я думаю в этом причина, может сделать опрос закончилось ли прогаваривание текущего потом подавать на вывод следующие данные -
Попробуй так:
`var idSayIt = "sayit.0.tts.text"; var message = []; message.push({text: 'Доброе утро.', interval: 3000}); message.push({text: 'За окном 7 градусов.', interval: 4000}); message.push({text: 'Прогноз погоды на завтра', interval: 5000}); var interval = 0; for(var i=0; i<message.length; i++){/settimeout(function/(text)/{/setstate/(idsayit,/text);/log(text);/},/interval,/message[i].text);/interval/+="message[i].interval;" }<e=""></message.length;>` [2678_error.png](/assets/uploads/files/2678_error.png) [/i][/i]
-
Можно ли как то отследить изменение объекта, если в этот объект происходит запись одного и того же значения (например: up), но с интервалом например в 2-3 секунды?
Я пока только так придумал:
on('javascript.0.kodi.ExecuteAction',function (obj) { if(obj.newState.val !== false){ sendCommand(obj.newState.val); setState('javascript.0.kodi.ExecuteAction', false) } });
Может лучше есть решение?
-
on({id: 'javascript.0.kodi.ExecuteAction', change: 'any'}, function (obj) { sendCommand(obj.newState.val); });