@Lost, Добрый день! Недавно стал разбираться с IntraHouse и пришлось потрать время пока не наткнулся на ваше сообщение в этой ветке и еще в соседней. Оба случая подтверждаю, все тоже самое. Из ситуации вышел сценарием, который состряпал из разных примеров. В моей задаче нужно получать данные со счетчика Mercury 200.02 через шлюз MegaD. Вот что получилось и работает стабильно несколько дней (запросы удаленные, через VPN): getMercury() { require('http').get('http://192.168.2.14/sec/?uart_tx=000816F063&mode=rs485', res => { //C38D - CRC16 Modbus if (res.statusCode != 200) { res.resume(); this.log('Error code: ' +res.statusCode); rawError("rawError", res.statusCode); voltage.assign("volt", 0); current.assign("current", 0); power.assign("power", 0); return; } else { //this.log('Start sleep 100ms'); const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < 100); //this.log('End sleep 100ms'); require('http').get('http://192.168.2.14/sec/?uart_rx=1&mode=rs485', res => { let rawData = ''; res.on('data', chunk => { rawData += chunk; rawData1 = rawData; }); if (rawData1.includes('CRC Error')) { this.log('rawData= '+rawData1); rawError.assign("rawError", rawData1); } else { res.on('end', () => { const arr = rawData.split("|"); res.resume(); const volt = Number(arr[5]+arr[6])/10; const tok = Number(arr[7]+arr[8])/100; const watt = Number(arr[9]+arr[10]+arr[11]); voltage.assign("volt", volt); current.assign("current", tok); power.assign("power", watt); this.log('getResponse body= '+rawData+ ' Volt='+volt ); }); } }); } }); // Запрос следующего цикла через 5 сек this.startTimer('T2', 5, 'getMercury'); },