OK, so after reading a little more, I did the RetroAch setup and compared the ES to the RA generated configs,
So using ES setup :
input_device = "小米蓝牙手柄"
input_driver = "udev"
input_r_y_plus_axis = "+5"
input_l3_btn = "13"
input_r_x_minus_axis = "-2"
input_start_btn = "11"
input_exit_emulator_btn = "11"
input_l_y_minus_axis = "-1"
input_up_btn = "h0up"
input_r_y_minus_axis = "-5"
input_a_btn = "0"
input_b_btn = "1"
input_reset_btn = "1"
input_down_btn = "h0down"
input_l_x_plus_axis = "+0"
input_l_y_plus_axis = "+1"
input_r3_btn = "14"
input_right_btn = "h0right"
input_state_slot_increase_btn = "h0right"
input_x_btn = "3"
input_menu_toggle_btn = "3"
input_select_btn = "10"
input_enable_hotkey_btn = "10"
input_l_x_minus_axis = "-0"
input_y_btn = "4"
input_left_btn = "h0left"
input_state_slot_decrease_btn = "h0left"
input_r_x_plus_axis = "+2"
And then using the RetroArch:
input_device = "小米蓝牙手柄"
input_driver = "udev"
input_r_y_plus_axis = "+5"
input_l3_btn = "17"
input_r_x_minus_axis = "-2"
input_start_btn = "15"
input_exit_emulator_btn = "11"
input_l_y_minus_axis = "-1"
input_up_btn = "h0up"
input_r_y_minus_axis = "-5"
input_a_btn = "4"
input_b_btn = "5"
input_reset_btn = "1"
input_down_btn = "h0down"
input_l_x_plus_axis = "+0"
input_l_y_plus_axis = "+1"
input_r3_btn = "18"
input_right_btn = "h0right"
input_state_slot_increase_btn = "h0right"
input_x_btn = "7"
input_menu_toggle_btn = "3"
input_select_btn = "14"
input_enable_hotkey_btn = "10"
input_l_x_minus_axis = "-0"
input_y_btn = "8"
input_left_btn = "h0left"
input_state_slot_decrease_btn = "h0left"
input_r_x_plus_axis = "+2"
input_l_btn = "10"
input_r_btn = "11"
input_l2_btn = "12"
input_r2_btn = "13"
It seems the 小米蓝牙手柄.cfg file changes, its like RetroArch reads a different key to what ES reads.
I will do as mentioned above and just restore this config after updating each time.