NEWS
Вопросы по написанию скриптов
-
Странности с indexof
! var arr_name = [], arr_work = [];
! sendTo('sql.0', 'query', "SELECT name FROM work.work GROUP BY name", function(res) {
! if (res.error) {
! console.error(res.error);
! }
! for (var a in res.result) {
! arr_name.push(res.result[a].name);
! }
! if(prev_command === name_cust && arr_work.indexOf(command) < 0){
! for (var a in arr_work) {
! log(arr_work[a]);
! }
! log(typeof(arr_work));
! log(arr_work.indexOf(command));возвращает -1, хо 1 элемент в массиве, хоть несколько. Правда элементы кириллический текст. `
Что пишет в лог?! ```
var arr_name = [], arr_work = []; ! sendTo('sql.0', 'query', "SELECT name FROM work.work GROUP BY name", function(res) { if (res.error) { console.error(res.error); } for (var a in res.result) { arr_name.push(res.result[a].name); } log('Масиив = ' + JSON.stringify(arr_name)); ! if(prev_command === name_cust && ~arr_work.indexOf(command)){ for (var b in arr_work) { log(arr_work[b]); } log(typeof(arr_work)); log(arr_work.indexOf(command)); } ! });
[/b] -
Есть ли возможность подписаться на открытие(загрузку) web-страницы, созданной в vis?
Другими словами при открытии определённой страницы (/vis/index.html#mypage) надо запустить определённую функцию, созданную в "Скриптах" админки ( на стороне сервера).
-
Код
! ````
sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM smsd.inbox WHERE ID = ' + id, function(res) {
if (res.error) {
log(res.error);
}
a = {"phone" : res.result[0].SenderNumber,
"time" : formatDate(new Date(res.result[0].ReceivingDateTime), 'DD.MM.YYYY hh:mm'),
"text" : res.result[0].TextDecoded
};
setState('sms.in.phone', res.result[0].SenderNumber);
setState('sms.in.time', formatDate(new Date(res.result[0].ReceivingDateTime), 'DD.MM.YYYY hh:mm'));
setState('sms.in.text', res.result[0].TextDecoded);
//setState('sms.in.json', a);
setState('sms.in.json', JSON.stringify(res));
setState('sms.in.id', id);
}); -
Поделитесь кто то скриптом управления шаговым двигателем или ссылкой на форуме где почитать.
Планирую с MegaESP через драйвер ULN2003.
Спасибо.
-
Поделитесь кто то скриптом управления шаговым двигателем или ссылкой на форуме где почитать.
Планирую с MegaESP через драйвер ULN2003.
Спасибо. `
А причем тут скрипт? Пиши прошивку для есп, а из иоб будешь задавать только угол поворота или скорость и шаги -
Поделитесь кто то скриптом управления шаговым двигателем или ссылкой на форуме где почитать.
Планирую с MegaESP через драйвер ULN2003.
Спасибо. `
Или посмотрите в сторону прошивки wifi-iot, там шаговый реализован, а с iob можно через mqtt связать. -
А причем тут скрипт? `
Через скрипт нереально?Просто хотелось какой то унификации, и не выделять одно устройство только для двигателя.
Я конечно не программист, но как то не вижу принципиальной разницы ноги будет дергать прошивка, или внешняя прога.
Поправьте если ошибаюсь
-
А причем тут скрипт? `
Через скрипт нереально?Просто хотелось какой то унификации, и не выделять одно устройство только для двигателя.
Я конечно не программист, но как то не вижу принципиальной разницы ноги будет дергать прошивка, или внешняя прога.
Поправьте если ошибаюсь ` а задержки?
-
а задержки? `
1-2 секунды или больше?Мне же не робота строить, а клапаны, шторы открыть/закрыть.
-
а задержки? `
1-2 секунды или больше?Мне же не робота строить, а клапаны, шторы открыть/закрыть. `
Ага, давай прикинем грубо:Угол одного шага возмем 1.8. Т.е. для одного полного оборота надо 360/1.8 = 200 импульсов.
Если у тебя задержка между импульсами 1-2 сек т.е. 1-0,5 Гц. Дальше продолжать?
Если хочется управлять ШД надо начать с теории.
-
В Log упало сообщение "Спасайся кто может' …......
Нужно включить лампочку по этому сообщению. Как?
Может переменная у loga есть на которую можно оформить подписку?
-
В Log упало сообщение "Спасайся кто может' …......
Нужно включить лампочку по этому сообщению. Как?
Может переменная у loga есть на которую можно оформить подписку? `
надо просто сообщение это не в лог кидать а в переменную -
Не ясно я объяснил
Пример
mysensors.02016-12-09 19:23:06.993 info mysensors.0 Log :TSP:MSG:SEND 0-0-1-1 s=3,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=fail:0
если st=fail звоним в колокола.
в случае st=ok все ок.
Как то так. т.е нужно анализировать служебный Log.
-
Не ясно я объяснил
Пример
mysensors.02016-12-09 19:23:06.993 info mysensors.0 Log :TSP:MSG:SEND 0-0-1-1 s=3,c=1,t=2,pt=0,l=1,sg=0,ft=0,st=fail:0
если st=fail звоним в колокола.
в случае st=ok все ок.
Как то так. т.е нужно анализировать служебный Log. `
что такое st? -
st в логе это предположительно статус передачи команды устройству.
но это не так важно, другой пример
mysensors.0 2016-12-09 19:57:12.613 info disconnected
как организовать реакцию на это сообщение
или на вот такое
megad.0 2016-12-09 19:54:58.765 warn Got error by request to 192.168.2.14: connect EHOSTUNREACH 192.168.2.14:80
-
st в логе это предположительно статус передачи команды устройству.
но это не так важно, другой пример
mysensors.0 2016-12-09 19:57:12.613 info disconnected
как организовать реакцию на это сообщение
или на вот такое
megad.0 2016-12-09 19:54:58.765 warn Got error by request to 192.168.2.14: connect EHOSTUNREACH 192.168.2.14:80 `
ну в таком случае тебе скорее всего надо парсить файл логов используя скрипт и модуль fs -
Спасибо.
Вообщем дело темное
-
Спасибо.
Вообщем дело темное `
Да темного нету ничего, главное начать и можно разобраться https://nodejs.org/api/fs.html -
Установлен драйвер MySQL.
Данные пишутся во внешнюю БД.
Скрипт
! ` > var mysql = require('mysql');
var connection = mysql.createConnection({
host: '192.168.1.110',
user: 'iobroker',
password: 'iobroker',
database: 'iobroker',
//socketPath: '/var/run/mysqld/mysqld.sock'
});
//создаем подключение к базе
connection.connect(function(err) {
if (err) {
log('error connecting: ' + err.stack);
return;
}
log('connected as id ' + connection.threadId);
}); `
Выдает ошибку:
! javascript.0 script.js.My.sql: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/mysql' at script.js.My.sql:1:13
! javascript.0 script.js.My.sql: TypeError: Cannot read property 'createConnection' of undefined at script.js.My.sql:3:23 -
Установлен драйвер MySQL.
Данные пишутся во внешнюю БД.
Скрипт
! ` > var mysql = require('mysql');
var connection = mysql.createConnection({
host: '192.168.1.110',
user: 'iobroker',
password: 'iobroker',
database: 'iobroker',
//socketPath: '/var/run/mysqld/mysqld.sock'
});
//создаем подключение к базе
connection.connect(function(err) {
if (err) {
log('error connecting: ' + err.stack);
return;
}
log('connected as id ' + connection.threadId);
}); `
Выдает ошибку:
! javascript.0 script.js.My.sql: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/mysql' at script.js.My.sql:1:13
! javascript.0 script.js.My.sql: TypeError: Cannot read property 'createConnection' of undefined at script.js.My.sql:3:23 ` втнастройках js добавь пакет mysql