NEWS
Драйвер Mega-ESP
-
И
з
в
и
н
и
м
н
е
б
ы
html 
В
п
р
и
н
ц
и
п
е
М
С
Р
23017
н
е
д
о
л
ж
е
н
м
е
ш
а
т
ь
. `
т
а
к
?<title>MegaESP</title>[Back](/sec/) -- Ports -- [P10 - IN](/sec/?mc=10) [P11 - IN](/sec/?mc=11) [P12 - IN](/sec/?mc=12) [P13 - IN](/sec/?mc=13) [P14 - IN](/sec/?mc=14) [P15 - IN](/sec/?mc=15) [P16 - IN](/sec/?mc=16) [P17 - IN](/sec/?mc=17) [P18 - OUT](/sec/?mc=18) [P19 - OUT](/sec/?mc=19) [P20 - OUT](/sec/?mc=20) [P21 - OUT](/sec/?mc=21) [P22 - OUT](/sec/?mc=22) [P23 - OUT](/sec/?mc=23) [P24 - OUT](/sec/?mc=24) [P25 - OUT](/sec/?mc=25)<title>MegaESP</title>[Back](/sec/?mc=1) (pin A0) P10/OFF <form action="/sec/">Type: <select name="in"><option value="0">OUT</option><option value="1" selected="">IN</option></select> mod <select name="pm"><option value="0">P</option><option value="1">P&R</option><option value="2" selected="">R</option></select> | <select name="rm"><option value="0" selected="">Default</option><option value="1">Act</option></select> Act: </form> ```` `OUT html
с
к
и
н
ь
. -
OUT html
с
к
и
н
ь
. `<title>MegaESP</title>[Back](/sec/?mc=1) (pin B0) P18/OFF [ON](/sec/?mc=18&cmd=18:1) <form action="/sec/">Type: <select name="in"><option value="0" selected="">OUT</option><option value="1">IN</option></select> | <select name="dm"><option value="0" selected="">OFF</option><option value="1">ON</option></select> </form> -
С
п
а
с
и
б
о
з
а
д
р
а
й
в
е
р
.
Н
и
к
а
к
н
е
п
о
й
м
у
ч
т
о
я
д
е
л
а
ю
н
е
т
а
к
…
М
у
ч
а
я
RGB
В
о
б
ъ
е
к
т
а
х
з
н
а
ч
е
н
и
е
у
п
о
р
т
а
PWM - true.
К
о
г
д
а
м
е
н
я
ю
з
н
а
ч
е
н
и
е
,
т
о
о
н
о
п
р
а
к
т
и
ч
е
с
к
и
м
г
н
о
в
е
н
н
о
в
о
з
в
р
а
щ
а
е
т
с
я
с
н
о
в
а
в
true.
В
к
о
н
ф
и
г
е
д
р
а
й
в
е
р
а
Р
О
Л
Ь
у
к
а
з
ы
в
а
л
и
value
и
level
и
п
у
с
т
о
,
в
с
е
р
а
в
н
о
и
л
и
true
и
л
и
false
в
м
е
с
т
о
з
н
а
ч
е
н
и
й
о
т
0
д
о
255.P9
с
ADC
в
ы
д
а
е
т
в
с
е
г
д
а
к
а
к
и
н
у
ж
н
о
ц
и
ф
р
ы
.PS:
С
MQTT
р
а
б
о
т
а
л
о
х
о
р
о
ш
о
. -
С
п
а
с
и
б
о
з
а
д
р
а
й
в
е
р
.
Н
и
к
а
к
н
е
п
о
й
м
у
ч
т
о
я
д
е
л
а
ю
н
е
т
а
к
…
М
у
ч
а
я
RGB
В
о
б
ъ
е
к
т
а
х
з
н
а
ч
е
н
и
е
у
п
о
р
т
а
PWM - true.
К
о
г
д
а
м
е
н
я
ю
з
н
а
ч
е
н
и
е
,
т
о
о
н
о
п
р
а
к
т
и
ч
е
с
к
и
м
г
н
о
в
е
н
н
о
в
о
з
в
р
а
щ
а
е
т
с
я
с
н
о
в
а
в
true.
В
к
о
н
ф
и
г
е
д
р
а
й
в
е
р
а
Р
О
Л
Ь
у
к
а
з
ы
в
а
л
и
value
и
level
и
п
у
с
т
о
,
в
с
е
р
а
в
н
о
и
л
и
true
и
л
и
false
в
м
е
с
т
о
з
н
а
ч
е
н
и
й
о
т
0
д
о
255.P9
с
ADC
в
ы
д
а
е
т
в
с
е
г
д
а
к
а
к
и
н
у
ж
н
о
ц
и
ф
р
ы
.PS:
С
MQTT
р
а
б
о
т
а
л
о
х
о
р
о
ш
о
. `
О
б
н
о
в
и
с
ь
н
а
0.0.2
н
о
е
щ
ё
п
о
к
а
н
е
р
а
б
о
т
а
е
т
RGB
с
е
й
ч
а
с
к
а
к
р
а
с
д
е
л
а
ю
,
н
е
в
ы
х
о
д
и
т
:xcd /opt/iobroker npm install https://github.com/ausHaus/ioBroker.megaesp/tarball/master/ iobroker upload megaesp iobroker restart megaesp -
Bluefox
п
о
м
о
г
и
,
н
и
к
а
к
к
о
м
а
н
д
у
с
'http://espIP/sec/?pt=3&r=25&g=180&b=164'
в
ы
в
е
с
т
и
н
е
м
о
г
у
в
main.js sendCommandToRGB,
т
о
в
с
ё
о
д
н
о
г
о
ц
в
е
т
а
т
о
Send command "pt=2&r=undefined&g=undefined&b=128" to 192.168.1.20 :xmain.js "function sendCommandToRGB"
function sendCommandToRGB(port, value) { //'http://espIP/sec/?pt=3&r=25&g=25&b=25' ////////////////////////////// var data = 'pt=' + port + (value || 0); ////////////////////////////// var parts = adapter.config.ip.split(':'); var options = { host: parts[0], port: parts[1] || 80, path: '/' + adapter.config.password + '/?' + data }; adapter.log.debug('Send command "' + data + '" to ' + adapter.config.ip); // Set up the request http.get(options, function (res) { var xmldata = ''; res.setEncoding('utf8'); res.on('error', function (e) { adapter.log.warn(e.toString()); }); res.on('data', function (chunk) { xmldata += chunk; }); res.on('end', function () { adapter.log.debug('Response "' + xmldata + '"'); }); }).on('error', function (e) { adapter.log.warn('Got error by post request ' + e.toString()); }); }main.js "sendCommandToRGB"
adapter.on('stateChange', function (id, state) { if (id && state && !state.ack) { if (!ports[id]) { adapter.log.error('Unknown port ID ' + id); return; ........ ........ if (parseFloat(state.val) == state.val) { // If number => set position state.val = parseFloat(state.val); if (state.val < 0) { adapter.log.warn(': invalid control value ' + state.val + '. Value must be positive'); state.val = 0; } ........ ........ if (ports[id].common.type == 'string') { //////////////////////////////////////////////////// } else if (id.indexOf('_red') !== -1) { var red = (ports[id].native.red, state.val); adapter.log.debug('R: ' + red); } else if (id.indexOf('_green') !== -1) { var green = (ports[id].native.green, state.val); adapter.log.debug('G: ' + green); } else if (id.indexOf('_blue') !== -1) { var blue = (ports[id].native.blue, state.val); adapter.log.debug('B: ' + blue); adapter.log.debug('RGB: ' + red + green + blue); state.val = ('&r=' + red + '&g=' + green + '&b=' + blue); sendCommandToRGB(ports[id].native.port, state.val); ////////////////////////////////////////// } else { ports[id].native.offset = parseFloat(ports[id].native.offset || 0) || 0; ports[id].native.factor = parseFloat(ports[id].native.factor || 1) || 1; state.val = (state.val - ports[id].native.offset) / ports[id].native.factor; state.val = Math.round(state.val); sendCommand(ports[id].native.port, state.val); } } } });log
megaesp.0 2016-08-23 02:27:58.730 debug megaesp.0 Response "Back P2 val. 0-255 megaesp.0 2016-08-23 02:27:58.730 debug megaesp.0 Send command "pt=2&r=undefined&g=undefined&b=128" to 192.168.1.20 megaesp.0 2016-08-23 02:27:58.729 debug megaesp.0 RGB: undefinedundefined128 megaesp.0 2016-08-23 02:27:58.729 debug megaesp.0 B: 128 megaesp.0 2016-08-23 02:27:58.729 info megaesp.0 try to control megaesp.0.p2_P2_blue with 128 megaesp.0 2016-08-23 02:27:58.729 debug megaesp.0 G: 130 megaesp.0 2016-08-23 02:27:58.729 info megaesp.0 try to control megaesp.0.p2_P2_green with 130 megaesp.0 2016-08-23 02:27:58.728 debug inMem message megaesp.0.* megaesp.0.p2_P2_blue megaesp.0 2016-08-23 02:27:58.728 debug inMem message megaesp.0.* megaesp.0.p2_P2_green megaesp.0 2016-08-23 02:27:58.686 debug megaesp.0 R: 185 megaesp.0 2016-08-23 02:27:58.686 info megaesp.0 try to control megaesp.0.p2_P2_red with 185 megaesp.0 2016-08-23 02:27:58.684 debug inMem message megaesp.0.* megaesp.0.p2_P2_red -
О
б
н
о
в
и
с
ь
н
а
0.0.2
н
о
е
щ
ё
п
о
к
а
н
е
р
а
б
о
т
а
е
т
RGB
с
е
й
ч
а
с
к
а
к
р
а
с
д
е
л
а
ю
,
н
е
в
ы
х
о
д
и
т
:xcd /opt/iobroker npm install https://github.com/ausHaus/ioBroker.megaesp/tarball/master/ iobroker upload megaesp iobroker restart megaesp ```` `
Д
а
у
м
е
н
я
и
т
а
к
0.0.2
в
е
р
с
и
я
.
Я
и
с
п
о
л
ь
з
у
ю
т
р
и
в
ы
х
о
д
а
к
а
к
PWM,
а
н
е
WS2811
…
И
л
и
м
о
ж
н
о
RGB
п
о
д
к
л
ю
ч
и
т
ь
п
о
д
р
у
г
о
м
у
?
Ч
т
о
з
а
м
е
т
и
л
,
е
с
л
и
и
с
п
о
л
ь
з
у
ю
Philips HUE
и
RGB color,
т
о
ц
в
е
т
а
р
е
г
у
л
и
р
у
ю
т
с
я
...
А
е
с
л
и
farbtastic
т
о
н
е
т
.
А
з
н
а
ч
е
н
и
я
е
с
л
и
с
м
о
т
р
е
т
ь
-
т
о
true!!!
О
б
ъ
е
к
т
ы
ц
в
е
т
о
в
п
р
о
п
и
с
ы
в
а
ю
в
о
в
к
л
а
д
к
е
R.G.B. -
Bluefox
п
о
м
о
г
и
,
н
и
к
а
к
к
о
м
а
н
д
у
с
'http://espIP/sec/?pt=3&r=25&g=180&b=164'
в
ы
в
е
с
т
и
н
е
м
о
г
у
в
main.js sendCommandToRGB,
т
о
в
с
ё
о
д
н
о
г
о
ц
в
е
т
а
т
о
Send command "pt=2&r=undefined&g=undefined&b=128" to 192.168.1.20 :xmain.js "function sendCommandToRGB" `
М
н
е
б
ы
л
о
б
ы
п
р
о
щ
е
,
е
с
л
и
б
ы
к
о
д
б
ы
л
н
а
г
и
т
е
.! ```
`var rgbs = {};
! ....
! function sendCommandToRGB(rgbId) {
rgbs[rgbId].timer = null;
var port = ports[rgbId + '_blue'].native.port;//'http://espIP/sec/?pt=3&r=25&g=25&b=25' var data = 'pt=' + port + '&r=' + (rgbs[rgbId].red || 0) + '&g=' + (rgbs[rgbId].green || 0) + '&b=' + (rgbs[rgbId].blue || 0);! var parts = adapter.config.ip.split(':');
! var options = {
host: parts[0],
port: parts[1] || 80,
path: '/' + adapter.config.password + '/?' + data
};
adapter.log.debug('Send command "' + data + '" to ' + adapter.config.ip);
// Set up the request
http.get(options, function (res) {
var xmldata = '';
res.setEncoding('utf8');
res.on('error', function (e) {
adapter.log.warn(e.toString());
});
res.on('data', function (chunk) {
xmldata += chunk;
});
res.on('end', function () {
adapter.log.debug('Response "' + xmldata + '"');
});
}).on('error', function (e) {
adapter.log.warn('Got error by post request ' + e.toString());
});
}
! .....
! adapter.on('stateChange', function (id, state) {
....
if (ports[id].common.type === 'string') { ////////////////////////////////////////////////////
! } else if (id.match(/_red|_blue|green^/)) {
var pos = id.lastIndexOf('');
var rgbId = id.substring(0, pos);
var color = id.substring(pos + 1);rgbs[rgbId] = rgbs[rgbId] || {}; rgbs[rgbId][color] = state.val; // stop timer if running if (rgbs[rgbId].timer) clearTimeout(rgbs[rgbId].timer); // if no more changes in 100 ms, send command to device rgbs[rgbId].timer = setTimeout(sendCommandToRGB, 100, rgbId); } else { ... }`[/color] -
Bluefox
п
о
м
о
г
и
,
н
и
к
а
к
к
о
м
а
н
д
у
с
'http://espIP/sec/?pt=3&r=25&g=180&b=164'
в
ы
в
е
с
т
и
н
е
м
о
г
у
в
main.js sendCommandToRGB,
т
о
в
с
ё
о
д
н
о
г
о
ц
в
е
т
а
т
о
Send command "pt=2&r=undefined&g=undefined&b=128" to 192.168.1.20 :xmain.js "function sendCommandToRGB" `
М
н
е
б
ы
л
о
б
ы
п
р
о
щ
е
,
е
с
л
и
б
ы
к
о
д
б
ы
л
н
а
г
и
т
е
.! ```
`var rgbs = {};
! ....
! function sendCommandToRGB(rgbId) {
rgbs[rgbId].timer = null;
var port = ports[rgbId + '_blue'].native.port;//'http://espIP/sec/?pt=3&r=25&g=25&b=25'
var data = 'pt=' + port + '&r=' + (rgbs[rgbId].red || 0) + '&g=' + (rgbs[rgbId].green || 0) + '&b=' + (rgbs[rgbId].blue || 0);! var parts = adapter.config.ip.split(':');
! var options = {
host: parts[0],
port: parts[1] || 80,
path: '/' + adapter.config.password + '/?' + data
};
adapter.log.debug('Send command "' + data + '" to ' + adapter.config.ip);
// Set up the request
http.get(options, function (res) {
var xmldata = '';
res.setEncoding('utf8');
res.on('error', function (e) {
adapter.log.warn(e.toString());
});
res.on('data', function (chunk) {
xmldata += chunk;
});
res.on('end', function () {
adapter.log.debug('Response "' + xmldata + '"');
});
}).on('error', function (e) {
adapter.log.warn('Got error by post request ' + e.toString());
});
}
! .....
! adapter.on('stateChange', function (id, state) {
....
if (ports[id].common.type === 'string') { ////////////////////////////////////////////////////
! } else if (id.match(/_red|_blue|green^/)) {
var pos = id.lastIndexOf('');
var rgbId = id.substring(0, pos);
var color = id.substring(pos + 1);rgbs[rgbId] = rgbs[rgbId] || {}; rgbs[rgbId][color] = state.val; // stop timer if running if (rgbs[rgbId].timer) clearTimeout(rgbs[rgbId].timer); // if no more changes in 100 ms, send command to device rgbs[rgbId].timer = setTimeout(sendCommandToRGB, 100, rgbId);} else {
...
}`
С
п
а
с
и
б
о
,
с
е
й
ч
а
с
б
у
д
у
п
р
о
б
ы
в
а
т
ь

!
У
ж
е
д
в
е
н
е
д
е
л
и
т
а
м
:roll: https://github.com/ausHaus/ioBroker.megaesp
! P.S.
В
с
ё
в
р
о
д
е
н
е
п
л
о
х
о
н
о
о
д
и
н
ц
в
е
т
о
т
п
р
а
в
л
я
е
т
н
а
"cmd"
~~[code]~~megaesp-0 2016-08-23 17:52:39.516 debug Response for 192.168.1.20[all]: 155;255;80;temp:20.00/hum:79.60;temp:19.50;ON;RGB;NC;NC;33 megaesp-0 2016-08-23 17:52:39.420 debug getPortState http://192.168.1.20/sec/?cmd=all megaesp-0 2016-08-23 17:52:35.634 debug Response "Back P6 val. 0-255 megaesp-0 2016-08-23 17:52:35.615 debug Send command "pt=6&r=255&g=209&b=0" to 192.168.1.20 inMem 2016-08-23 17:52:35.591 debug message megaesp.0.* megaesp.0.p6_P6 val=null, ack=true, ts=1471963955585, q=0, from=system.adapter.megaesp.0, lc=1471961464774 megaesp-0 2016-08-23 17:52:35.568 debug Response "Done" megaesp-0 2016-08-23 17:52:35.547 debug Send command "cmd=6:43" to 192.168.1.20 megaesp-0 2016-08-23 17:52:35.546 info try to control megaesp.0.p6_P6_blue with 43 inMem 2016-08-23 17:52:35.541 debug message megaesp.0.* megaesp.0.p6_P6_blue val=43, ack=false, ts=1471963955507, q=0, from=system.adapter.socketio.0, lc=1471963954498 megaesp-0 2016-08-23 17:52:35.514 info try to control megaesp.0.p6_P6_green with 209 inMem 2016-08-23 17:52:35.511 debug message megaesp.0.* megaesp.0.p6_P6_green val=209, ack=false, ts=1471963955497, q=0, from=system.adapter.socketio.0, lc=1471963954490 megaesp-0 2016-08-23 17:52:35.486 info try to control megaesp.0.p6_P6_red with 255 inMem 2016-08-23 17:52:35.479 debug message megaesp.0.* megaesp.0.p6_P6_red val=255, ack=false, ts=1471963955466, q=0, from=system.adapter.socketio.0, lc=1471963952798[/code]
! P.S.2
Д
о
б
а
в
и
л
"....|blue|^..."
~~[code]~~} else if (id.match(/_red|_green|_blue|_^/)) {[/code]
р
а
б
о
т
а
е
т
н
о
р
м
а
л
ь
н
о
[/color]
``` ` -
Ч
т
о
з
а
м
е
т
и
л
,
е
с
л
и
и
с
п
о
л
ь
з
у
ю
Philips HUE
и
RGB color,
т
о
ц
в
е
т
а
р
е
г
у
л
и
р
у
ю
т
с
я
…
А
е
с
л
и
farbtastic
т
о
н
е
т
.
А
з
н
а
ч
е
н
и
я
е
с
л
и
с
м
о
т
р
е
т
ь
-
т
о
true!!!
О
б
ъ
е
к
т
ы
ц
в
е
т
о
в
п
р
о
п
и
с
ы
в
а
ю
в
о
в
к
л
а
д
к
е
R.G.B.
П
о
д
п
р
а
в
и
л
,
п
р
о
б
у
й
0.0.3cd /opt/iobroker npm install https://github.com/ausHaus/ioBroker.megaesp/tarball/master/ iobroker upload megaesp iobroker restart megaesp -
Ч
т
о
з
а
м
е
т
и
л
,
е
с
л
и
и
с
п
о
л
ь
з
у
ю
Philips HUE
и
RGB color,
т
о
ц
в
е
т
а
р
е
г
у
л
и
р
у
ю
т
с
я
…
А
е
с
л
и
farbtastic
т
о
н
е
т
.
А
з
н
а
ч
е
н
и
я
е
с
л
и
с
м
о
т
р
е
т
ь
-
т
о
true!!!
О
б
ъ
е
к
т
ы
ц
в
е
т
о
в
п
р
о
п
и
с
ы
в
а
ю
в
о
в
к
л
а
д
к
е
R.G.B.
П
о
д
п
р
а
в
и
л
,
п
р
о
б
у
й
0.0.3cd /opt/iobroker npm install https://github.com/ausHaus/ioBroker.megaesp/tarball/master/ iobroker upload megaesp iobroker restart megaesp ```` `
С
п
а
с
и
б
о
!
Т
е
п
е
р
ь
н
о
р
м
.PS:
А
у
В
а
с
P6
к
а
к
с
к
о
н
ф
и
г
у
р
и
р
о
в
а
н
?
В
о
п
р
о
с
с
н
я
т
…
п
о
н
я
л
ч
т
о
WS2811.
А
к
т
о
в
с
т
р
е
ч
а
л
в
п
р
о
д
а
ж
е
и
г
д
е
WS2811
в
DIP
к
о
р
п
у
с
е
,
ч
т
о
б
ы
о
т
д
е
л
ь
н
о
к
н
е
м
у
у
с
и
л
и
т
е
л
и
п
о
д
к
л
ю
ч
и
т
ь
м
о
ж
н
о
б
ы
л
о
. -
Bluefox
п
о
м
о
г
и
,
н
и
к
а
к
к
о
м
а
н
д
у
с
'http://espIP/sec/?pt=3&r=25&g=180&b=164'
в
ы
в
е
с
т
и
н
е
м
о
г
у
в
main.js sendCommandToRGB,
т
о
в
с
ё
о
д
н
о
г
о
ц
в
е
т
а
т
о
Send command "pt=2&r=undefined&g=undefined&b=128" to 192.168.1.20 :xmain.js "function sendCommandToRGB" `
М
н
е
б
ы
л
о
б
ы
п
р
о
щ
е
,
е
с
л
и
б
ы
к
о
д
б
ы
л
н
а
г
и
т
е
.! ```
`var rgbs = {};
! ....
! function sendCommandToRGB(rgbId) {
rgbs[rgbId].timer = null;
var port = ports[rgbId + '_blue'].native.port;//'http://espIP/sec/?pt=3&r=25&g=25&b=25' var data = 'pt=' + port + '&r=' + (rgbs[rgbId].red || 0) + '&g=' + (rgbs[rgbId].green || 0) + '&b=' + (rgbs[rgbId].blue || 0);! var parts = adapter.config.ip.split(':');
! var options = {
host: parts[0],
port: parts[1] || 80,
path: '/' + adapter.config.password + '/?' + data
};
adapter.log.debug('Send command "' + data + '" to ' + adapter.config.ip);
// Set up the request
http.get(options, function (res) {
var xmldata = '';
res.setEncoding('utf8');
res.on('error', function (e) {
adapter.log.warn(e.toString());
});
res.on('data', function (chunk) {
xmldata += chunk;
});
res.on('end', function () {
adapter.log.debug('Response "' + xmldata + '"');
});
}).on('error', function (e) {
adapter.log.warn('Got error by post request ' + e.toString());
});
}
! .....
! adapter.on('stateChange', function (id, state) {
....
if (ports[id].common.type === 'string') { ////////////////////////////////////////////////////
! } else if (id.match(/_red|_blue|green^/)) {
var pos = id.lastIndexOf('');
var rgbId = id.substring(0, pos);
var color = id.substring(pos + 1);rgbs[rgbId] = rgbs[rgbId] || {}; rgbs[rgbId][color] = state.val; // stop timer if running if (rgbs[rgbId].timer) clearTimeout(rgbs[rgbId].timer); // if no more changes in 100 ms, send command to device rgbs[rgbId].timer = setTimeout(sendCommandToRGB, 100, rgbId); } else { ... }`
С
п
а
с
и
б
о
,
с
е
й
ч
а
с
б
у
д
у
п
р
о
б
ы
в
а
т
ь

!
У
ж
е
д
в
е
н
е
д
е
л
и
т
а
м
:roll: https://github.com/ausHaus/ioBroker.megaesp
! P.S.
В
с
ё
в
р
о
д
е
н
е
п
л
о
х
о
н
о
о
д
и
н
ц
в
е
т
о
т
п
р
а
в
л
я
е
т
н
а
"cmd"
~~[code]~~megaesp-0 2016-08-23 17:52:39.516 debug Response for 192.168.1.20[all]: 155;255;80;temp:20.00/hum:79.60;temp:19.50;ON;RGB;NC;NC;33 megaesp-0 2016-08-23 17:52:39.420 debug getPortState http://192.168.1.20/sec/?cmd=all megaesp-0 2016-08-23 17:52:35.634 debug Response "Back P6 val. 0-255 megaesp-0 2016-08-23 17:52:35.615 debug Send command "pt=6&r=255&g=209&b=0" to 192.168.1.20 inMem 2016-08-23 17:52:35.591 debug message megaesp.0.* megaesp.0.p6_P6 val=null, ack=true, ts=1471963955585, q=0, from=system.adapter.megaesp.0, lc=1471961464774 megaesp-0 2016-08-23 17:52:35.568 debug Response "Done" megaesp-0 2016-08-23 17:52:35.547 debug Send command "cmd=6:43" to 192.168.1.20 megaesp-0 2016-08-23 17:52:35.546 info try to control megaesp.0.p6_P6_blue with 43 inMem 2016-08-23 17:52:35.541 debug message megaesp.0.* megaesp.0.p6_P6_blue val=43, ack=false, ts=1471963955507, q=0, from=system.adapter.socketio.0, lc=1471963954498 megaesp-0 2016-08-23 17:52:35.514 info try to control megaesp.0.p6_P6_green with 209 inMem 2016-08-23 17:52:35.511 debug message megaesp.0.* megaesp.0.p6_P6_green val=209, ack=false, ts=1471963955497, q=0, from=system.adapter.socketio.0, lc=1471963954490 megaesp-0 2016-08-23 17:52:35.486 info try to control megaesp.0.p6_P6_red with 255 inMem 2016-08-23 17:52:35.479 debug message megaesp.0.* megaesp.0.p6_P6_red val=255, ack=false, ts=1471963955466, q=0, from=system.adapter.socketio.0, lc=1471963952798[/code]
! P.S.2
Д
о
б
а
в
и
л
"....|blue|^..."
~~[code]~~} else if (id.match(/_red|_green|_blue|_^/)) {[/code]
р
а
б
о
т
а
е
т
н
о
р
м
а
л
ь
н
о
filename="RGB.png" index="0">~~
Т
а
м
о
ш
и
б
к
а
б
ы
л
а
в
regexp.
Я
т
е
б
е
pull request
о
т
п
р
а
в
и
л
.[/color]
``` -
@MSapogov:`
П
о
д
п
р
а
в
и
л
,
п
р
о
б
у
й
0.0.3cd /opt/iobroker npm install https://github.com/ausHaus/ioBroker.megaesp/tarball/master/ iobroker upload megaesp iobroker restart megaesp ```` `
С
п
а
с
и
б
о
!
Т
е
п
е
р
ь
н
о
р
м
.PS:
А
у
В
а
с
P6
к
а
к
с
к
о
н
ф
и
г
у
р
и
р
о
в
а
н
?
В
о
п
р
о
с
с
н
я
т
…
п
о
н
я
л
ч
т
о
WS2811.
А
к
т
о
в
с
т
р
е
ч
а
л
в
п
р
о
д
а
ж
е
и
г
д
е
WS2811
в
DIP
к
о
р
п
у
с
е
,
ч
т
о
б
ы
о
т
д
е
л
ь
н
о
к
н
е
м
у
у
с
и
л
и
т
е
л
и
п
о
д
к
л
ю
ч
и
т
ь
м
о
ж
н
о
б
ы
л
о
. `
В
а
р
и
а
н
т
о
в
м
о
р
е
https://www.google.com/search?q=WS2811+
…
dlaMmvM%3A
Е
с
л
и
я
п
р
а
в
и
л
ь
н
о
п
о
н
и
м
а
ю
э
т
о
с
и
г
н
а
л
ь
н
а
я
л
и
н
и
я
и
н
а
л
е
н
т
е
к
к
а
ж
д
о
й
WS2811
п
о
д
к
л
ю
ч
е
н
ы
т
р
и
д
и
о
д
а
R,G,B, WS2812
т
а
м
в
д
и
о
д
е
в
с
ё
у
ж
е
з
а
с
у
н
у
т
о
ч
и
п
,R,G,B.
З
а
ч
е
м
у
с
и
л
и
т
е
л
ь
? -
Е
с
л
и
я
п
р
а
в
и
л
ь
н
о
п
о
н
и
м
а
ю
э
т
о
с
и
г
н
а
л
ь
н
а
я
л
и
н
и
я
и
н
а
л
е
н
т
е
к
к
а
ж
д
о
й
WS2811
п
о
д
к
л
ю
ч
е
н
ы
т
р
и
д
и
о
д
а
R,G,B, WS2812
т
а
м
в
д
и
о
д
е
в
с
ё
у
ж
е
з
а
с
у
н
у
т
о
ч
и
п
,R,G,B.
З
а
ч
е
м
у
с
и
л
и
т
е
л
ь
? `
Э
т
о
в
т
о
м
с
л
у
ч
а
е
е
с
л
и
х
о
ч
е
т
с
я
и
с
п
о
л
ь
з
ы
в
а
т
ь
у
ж
е
и
м
е
ю
щ
и
е
с
я
с
в
е
т
о
в
ы
е
л
и
н
и
и
RGB.
У
м
е
н
я
н
е
т
з
а
д
а
ч
и
у
п
р
а
в
л
я
т
ь
к
а
ж
д
ы
м
д
и
о
д
о
м
в
л
и
н
и
и
.
П
р
о
с
т
о
э
к
о
н
о
м
и
я
п
о
GPIO
п
о
л
у
ч
а
е
т
с
я
. -
Е
с
л
и
я
п
р
а
в
и
л
ь
н
о
п
о
н
и
м
а
ю
э
т
о
с
и
г
н
а
л
ь
н
а
я
л
и
н
и
я
и
н
а
л
е
н
т
е
к
к
а
ж
д
о
й
WS2811
п
о
д
к
л
ю
ч
е
н
ы
т
р
и
д
и
о
д
а
R,G,B, WS2812
т
а
м
в
д
и
о
д
е
в
с
ё
у
ж
е
з
а
с
у
н
у
т
о
ч
и
п
,R,G,B.
З
а
ч
е
м
у
с
и
л
и
т
е
л
ь
? `
Э
т
о
в
т
о
м
с
л
у
ч
а
е
е
с
л
и
х
о
ч
е
т
с
я
и
с
п
о
л
ь
з
ы
в
а
т
ь
у
ж
е
и
м
е
ю
щ
и
е
с
я
с
в
е
т
о
в
ы
е
л
и
н
и
и
RGB.
У
м
е
н
я
н
е
т
з
а
д
а
ч
и
у
п
р
а
в
л
я
т
ь
к
а
ж
д
ы
м
д
и
о
д
о
м
в
л
и
н
и
и
.
П
р
о
с
т
о
э
к
о
н
о
м
и
я
п
о
GPIO
п
о
л
у
ч
а
е
т
с
я
. `
Я
д
у
м
а
ю
н
а
э
т
о
т
с
л
у
ч
а
й
е
с
т
ь
и
п
о
д
д
е
р
ж
и
в
а
е
т
с
я
п
р
о
ш
и
в
к
о
й
р
а
с
ш
и
р
и
т
е
л
ь
ш
и
м
п
о
р
т
о
в
PCA9685.
К
с
т
а
т
и
е
щ
ё
м
о
ж
н
о
з
а
к
а
з
а
т
ь
г
о
л
у
ю
п
л
а
т
у
http://www.ab-log.ru/forum/viewtopic.ph
…
180#p22605 -
Bluefox
п
о
м
о
г
а
й
192.168.1.20/sec
Э
т
о
с
т
а
н
д
а
р
т
т
о
л
ь
к
о
ESP
у
к
о
т
о
р
о
й
9(
н
а
с
т
р
а
и
в
а
е
м
ы
х
"pty"
п
о
р
т
о
в
) + 1(
в
с
е
г
д
а
ADC
и
т
о
л
ь
к
о
н
а
э
т
о
м
п
о
р
т
у
P9)
В
с
ё
э
т
о
у
н
а
с
с
д
е
л
а
н
о
н
а
90%
П
р
и
п
о
д
к
л
ю
ч
е
н
и
и
у
с
т
р
о
й
с
т
в
п
о
I2C
ш
и
н
е
,
н
а
192.168.1.20/sec
п
о
я
в
л
я
ю
т
с
я
д
о
п
о
л
н
и
т
е
л
ь
н
ы
е
у
с
т
р
о
й
с
т
в
а
.
–
EXT-IO--(MCP23017)
н
а
ч
и
н
а
я
с
P10-...(mc=10;..)
п
о
р
т
ы
,
в
с
е
15(
н
а
с
т
р
а
и
в
а
е
м
ы
х
"in"
п
о
р
т
о
в
)
м
о
г
у
т
б
ы
т
ь
IN(in=1)/OUT(in=0).--EXT-PWM--
(PCA9685)
н
а
ч
и
н
а
я
с
P10-...(pc=10;..)
п
о
р
т
ы
,
в
с
е
15
т
о
л
ь
к
о
PWM.--Ext-DS--
(BMP085/180)
н
а
ч
и
н
а
я
с
P10 (bm=10)(BME280)
н
а
ч
и
н
а
я
с
P10 (be=10)(BH1750)
н
а
ч
и
н
а
я
с
P10 (bh=10)
в
к
о
н
ц
е
в
с
е
г
д
а
е
с
л
и
п
о
д
к
л
ю
ч
ё
н
LCD (lcd=1),
п
о
к
а
ч
т
о
н
е
в
а
ж
н
о
!

html<title>MegaESP</title>MegaESP api by [ab-log.ru](http://ab-log.ru) (fw: 0.33b3) [Config](/sec/cfg/) -- Ports -- [P0 - IN](/sec/?pt=0) [P1 - PWM_OUT](/sec/?pt=1) [P2 - SL_OUT](/sec/?pt=2) [P3 - DS](/sec/?pt=3) [P4 - DS](/sec/?pt=4) [P5 - SW_OUT](/sec/?pt=5) [P6 - WS281x](/sec/?pt=6) [P7 - I2C_SDA](/sec/?pt=7) [P8 - I2C_SCL](/sec/?pt=8) [P9 - ADC](/sec/?pt=9) -- ExtIO -- [EXT - IO](/sec/?mc=1) [LCD](/sec/?lcd=1)
–
EXT-IO--!

html<title>MegaESP</title>[Back](/sec/) -- Ports -- [P10 - IN](/sec/?mc=10) [P11 - IN](/sec/?mc=11) [P12 - IN](/sec/?mc=12) [P13 - OUT](/sec/?mc=13) [P14 - OUT](/sec/?mc=14) [P15 - OUT](/sec/?mc=15) [P16 - OUT](/sec/?mc=16) [P17 - OUT](/sec/?mc=17) [P18 - OUT](/sec/?mc=18) [P19 - OUT](/sec/?mc=19) [P20 - IN](/sec/?mc=20) [P21 - OUT](/sec/?mc=21) [P22 - OUT](/sec/?mc=22) [P23 - OUT](/sec/?mc=23) [P24 - OUT](/sec/?mc=24) [P25 - OUT](/sec/?mc=25)
–
EXT-IO----Ext-DS--
<title>MegaESP</title> MegaESP api by[ab-log.ru](http://ab-log.ru)(fw: 0.33b4) [Config](/sec/cfg/) -- Ports -- [P0 - NC](/sec/?pt=0) [P1 - PWM_OUT](/sec/?pt=1) [P2 - NC](/sec/?pt=2) [P3 - WS281x](/sec/?pt=3) [P4 - DS](/sec/?pt=4) [P5 - DS](/sec/?pt=5) [P6 - NC](/sec/?pt=6) [P7 - I2C_SDA](/sec/?pt=7) [P8 - I2C_SCL](/sec/?pt=8) [P9 - ADC](/sec/?pt=9) -- ExtIO -- [EXT - IO](/sec/?mc=1) [EXT - PWM](/sec/?pc=1) -- ExtDS -- [BMP085/180](/sec/?bm=1) [BME280](/sec/?be=1) [BH1750](/sec/?bh=1)
О
т
с
ю
д
а
в
о
п
р
о
с
1.
К
а
к
о
г
р
а
н
и
ч
и
т
ь
о
п
р
о
с
path: '/' + pass + '/?pt=' + port c 0
д
о
9
и
п
р
о
д
о
л
ж
и
т
ь
о
п
р
о
с
c 10
…
. path: '/' + pass + '/?mc=' + port , path: '/' + pass + '/?pc=' + port , path: '/' + pass + '/?bm=' + port , path: '/' + pass + '/?be=' + port , path: '/' + pass + '/?bh=' + port ?function detectPortConfig(ip, pass, length, callback, port, result) { if (port === undefined) { port = 0; result = []; } else { port++; if (port >= length) { return callback(result); } } var parts = ip.split(':'); var options = { host: parts[0], port: parts[1] || 80, path: '/' + pass + '/?pt=' + port }; adapter.log.info('read config from port: http://' + ip + options.path); ....... -
MegaD
с
а
м
а
я
с
л
о
ж
н
а
я
с
и
с
т
е
м
а
в
п
р
и
н
ц
и
п
е
р
е
а
л
и
з
а
ц
и
и
к
о
н
ф
и
г
у
р
а
ц
и
и
.
У
н
е
ё
м
о
ж
е
т
б
ы
т
ь
100
р
а
з
л
и
ч
н
ы
х
в
и
д
о
в
н
а
с
т
р
о
е
к
.
И
н
и
к
а
к
о
й
в
о
з
м
о
ж
н
о
с
т
и
с
ч
и
т
а
т
ь
э
т
у
к
о
н
ф
и
г
у
р
а
ц
и
ю
,
к
р
о
м
е
,
к
а
к
п
а
р
с
и
т
ь
HTML
с
т
р
а
н
и
ц
ы
.
П
р
о
ш
л
ы
й
в
е
к
..
Я
у
ж
е
п
и
с
а
л
http://www.ab-log.ru/forum/viewtopic.ph
…
=80#p22955
н
о
о
н
и
х
о
т
я
т
о
с
т
а
в
а
т
ь
с
я
в
п
р
о
ш
л
о
м
в
е
к
е
...
Я
п
о
н
и
м
а
ю
,
е
с
л
и
д
е
й
с
т
в
и
т
е
л
ь
н
о
м
е
с
т
а
в
п
а
м
я
т
и
н
е
т
.
Н
о
в
esp
т
о
в
р
о
д
е
б
о
л
ь
ш
е
в
с
е
г
о
.
П
о
ч
е
м
у
н
е
п
р
о
п
а
р
с
и
т
ь
г
л
а
в
н
у
ю
с
т
р
а
н
и
ц
у
п
р
о
с
т
о
regexp?var m = body.match(/[](\/([^) ```` [Как результат:/sec/?pt=0
/sec/?pt=1
/sec/?pt=2
/sec/?pt=3
/sec/?pt=4
/sec/?pt=5
/sec/?pt=6
/sec/?pt=7
/sec/?pt=8
/sec/?pt=9
/sec/?mc=1
/sec/?pc=1
/sec/?bm=1
/sec/?be=1
/sec/?bh=1 -
MegaD
с
а
м
а
я
с
л
о
ж
н
а
я
с
и
с
т
е
м
а
в
п
р
и
н
ц
и
п
е
р
е
а
л
и
з
а
ц
и
и
к
о
н
ф
и
г
у
р
а
ц
и
и
.
У
н
е
ё
м
о
ж
е
т
б
ы
т
ь
100
р
а
з
л
и
ч
н
ы
х
в
и
д
о
в
н
а
с
т
р
о
е
к
.
И
н
и
к
а
к
о
й
в
о
з
м
о
ж
н
о
с
т
и
с
ч
и
т
а
т
ь
э
т
у
к
о
н
ф
и
г
у
р
а
ц
и
ю
,
к
р
о
м
е
,
к
а
к
п
а
р
с
и
т
ь
HTML
с
т
р
а
н
и
ц
ы
.
П
р
о
ш
л
ы
й
в
е
к
..
Я
у
ж
е
п
и
с
а
л
http://www.ab-log.ru/forum/viewtopic.ph
…
=80#p22955
н
о
о
н
и
х
о
т
я
т
о
с
т
а
в
а
т
ь
с
я
в
п
р
о
ш
л
о
м
в
е
к
е
...
Я
п
о
н
и
м
а
ю
,
е
с
л
и
д
е
й
с
т
в
и
т
е
л
ь
н
о
м
е
с
т
а
в
п
а
м
я
т
и
н
е
т
.
Н
о
в
esp
т
о
в
р
о
д
е
б
о
л
ь
ш
е
в
с
е
г
о
.
П
о
ч
е
м
у
н
е
п
р
о
п
а
р
с
и
т
ь
г
л
а
в
н
у
ю
с
т
р
а
н
и
ц
у
п
р
о
с
т
о
regexp?var m = body.match(/[](\/([^) ```` [Как результат:/sec/?pt=0
/sec/?pt=1
/sec/?pt=2
/sec/?pt=3
/sec/?pt=4
/sec/?pt=5
/sec/?pt=6
/sec/?pt=7
/sec/?pt=8
/sec/?pt=9
/sec/?mc=1
/sec/?pc=1
/sec/?bm=1
/sec/?be=1
/sec/?bh=1](\/([^) ` [По твоему примеру нагородил вот такой скрипт](\/([^)
[request ( 'http://192.168.1.20/sec', function ( error, response, body ) {
if ( !error && response.statusCode == 200 ) {
var m = body.match(/](/([^)[](/([^)>! 22:09:07.207 [info] javascript.3 script.js.1A_testESP: /sec/?pt=0 >! 22:09:07.208 [info] javascript.3 script.js.1A_testESP: /sec/?pt=1 >! 22:09:07.208 [info] javascript.3 script.js.1A_testESP: /sec/?pt=2 >! 22:09:07.208 [info] javascript.3 script.js.1A_testESP: /sec/?pt=3 >! 22:09:07.208 [info] javascript.3 script.js.1A_testESP: /sec/?pt=4 >! 22:09:07.209 [info] javascript.3 script.js.1A_testESP: /sec/?pt=5 >! 22:09:07.209 [info] javascript.3 script.js.1A_testESP: /sec/?pt=6 >! 22:09:07.209 [info] javascript.3 script.js.1A_testESP: /sec/?pt=7 >! 22:09:07.209 [info] javascript.3 script.js.1A_testESP: /sec/?pt=8 >! 22:09:07.210 [info] javascript.3 script.js.1A_testESP: /sec/?pt=9 >! 22:09:07.262 [info] javascript.3 script.js.1A_testESP: /sec/?mc=10 >! 22:09:07.264 [info] javascript.3 script.js.1A_testESP: /sec/?mc=11 >! 22:09:07.265 [info] javascript.3 script.js.1A_testESP: /sec/?mc=12 >! 22:09:07.265 [info] javascript.3 script.js.1A_testESP: /sec/?mc=13 >! 22:09:07.265 [info] javascript.3 script.js.1A_testESP: /sec/?mc=14 >! 22:09:07.265 [info] javascript.3 script.js.1A_testESP: /sec/?mc=15 >! 22:09:07.265 [info] javascript.3 script.js.1A_testESP: /sec/?mc=16 >! 22:09:07.266 [info] javascript.3 script.js.1A_testESP: /sec/?mc=17 >! 22:09:07.266 [info] javascript.3 script.js.1A_testESP: /sec/?mc=18 >! 22:09:07.266 [info] javascript.3 script.js.1A_testESP: /sec/?mc=19 >! 22:09:07.266 [info] javascript.3 script.js.1A_testESP: /sec/?mc=20 >! 22:09:07.266 [info] javascript.3 script.js.1A_testESP: /sec/?mc=21 >! 22:09:07.267 [info] javascript.3 script.js.1A_testESP: /sec/?mc=22 >! 22:09:07.267 [info] javascript.3 script.js.1A_testESP: /sec/?mc=23 >! 22:09:07.267 [info] javascript.3 script.js.1A_testESP: /sec/?mc=24 >! 22:09:07.267 [info] javascript.3 script.js.1A_testESP: /sec/?mc=25 >! 22:09:07.333 [info] javascript.3 script.js.1A_testESP: /sec/?lcd=1&cl=1 >! 22:09:07.335 [info] javascript.3 script.js.1A_testESP: /sec/?lcd=1&bl=1 >! 22:09:07.336 [info] javascript.3 script.js.1A_testESP: /sec/?lcd=1&bl=2 Подскажи как его оптимизировать, и всунуть в драйвер](\/([^)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden