private void completeLogin(Channel channel, Session session, User user, DashBoard dash, Device device, int msgId) { log.debug("completeLogin. {}", channel); session.addHardChannel(channel); channel.write(ok(msgId)); String body = dash.buildPMMessage(device.id); if (dash.isActive && body != null) { channel.write(makeASCIIStringMessage(HARDWARE, HARDWARE_PIN_MODE_MSG_ID, body)); } channel.flush(); String responseBody = String.valueOf(dash.id) + DEVICE_SEPARATOR + device.id; session.sendToApps(HARDWARE_CONNECTED, msgId, dash.id, responseBody); log.trace("Connected device id {}, dash id {}", device.id, dash.id); device.connected(); if (device.firstConnectTime == 0) { device.firstConnectTime = device.connectTime; } if (allowStoreIp) { device.lastLoggedIP = IPUtils.getIp(channel.remoteAddress()); } log.info("{} hardware joined.", user.email); }