@Pooh:
Чисто скриптом делать
как-то так: `
Спасибо за пинок в нужном направлении.
Итого инструкция получилась такая:
- 1. В скетче MegaLight указываем порт по которому контроллер будет отправлять запросы на сервер.
В итоге он слушает команды на стандартном 80-м порту а отправляет на том который укажем.
- 2. Создаём папку в модуле JavaScript с понятным именем (например MegaLight1).
- 3. В этой папке создаём скрипт для каждого канала реле. Обозвать можно как угодно чтоб понятно было к какому каналу он имеет отношение.
createState('MegaLight1.lightcenter', '');
on({id: 'javascript.0.MegaLight1.lightcenter', change: 'any'}, function (obj) {
if((obj.newState.from == 'web.0' || obj.newState.from == 'system.adapter.web.0' ) && obj.newState.val == '0'){
request ('http://192.168.120.25/state?c=set&n=3&o=0');
}
if((obj.newState.from == 'web.0' || obj.newState.from == 'system.adapter.web.0' ) && obj.newState.val == '1'){
request ('http://192.168.120.25/state?c=set&n=3&o=1');
}
});
- 4. Там же создаём ещё один скрипт для получения обратной связи от контроллера.
var http = require('http');
var server = http.createServer().listen(8083); // на каком порту слушаем?
server.on('request', function(req, res) {
res.writeHead(200);
var getback = req.url;
var vars = getback.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
}
if (vars[4] == 'on=1') {
var state = 1;
} else {
var state = 0;
}
if (vars[3] == 'id=1') {
setState ('javascript.0.MegaLight1.braright', state);
} else if (vars[3] == 'id=2') {
setState ('javascript.0.MegaLight1.braleft', state);
} else if (vars[3] == 'id=3') {
setState ('javascript.0.MegaLight1.lightcenter', state);
} else if (vars[3] == 'id=4') {
setState ('javascript.0.MegaLight1.lightdop', state);
}
log('Канал ' + vars[3] + ' Состояние-' +state)
});