void ICACHE_FLASH_ATTR dhserial_commands_config(const char *args) {
	uart_send_str("Wi-Fi SSID: ");
	uart_send_line(dhsettings_get_wifi_ssid());
	uart_send_str("DeviceHive Server: ");
	uart_send_line(dhsettings_get_devicehive_server());
	uart_send_str("DeviceHive DeviceId: ");
	uart_send_line(dhsettings_get_devicehive_deviceid());
}
LOCAL void ICACHE_FLASH_ATTR get_server_cb(const char *server) {
	const unsigned int slen = os_strlen(server) + 1;
	char buf[slen];
	int pos = snprintf(buf, slen, "%s", server);
	pos--;
	while(pos >= 0 && (buf[pos] == ' ' || buf[pos] == '/'))
		pos--;
	buf[pos + 1] = 0;

	dhsettings_set_devicehive_server(buf);
	dhuart_send_line("Enter DeviceHive DeviceId. Press Tab button to generate random.");
	dhuart_send_line("Allowed chars are A-Za-z0-9_-");
	dhterminal_set_mode(SM_INPUT_MODE, get_deviceid_cb, generate_deviceid, dhsettings_deviceid_filter, DHSETTINGS_DEVICEID_MAX_LENGTH);
	if(dhsettings_get_devicehive_deviceid()[0] == 0)
		dhterminal_set_input(generate_deviceid(""));
	else
		dhterminal_set_input(dhsettings_get_devicehive_deviceid());
}