export type HeatPumpConfig = {
  // --- 0x81 first config ---
  /** A.1.1 -> 0 for off */
  mode: number;
  /** A.1.2 -> 1~7 . Fixed 7. Heat pump model */
  model: number;
  /** A.1.3 -> Outdoor ambient temperature is too low, the shutdown protection temperature setting, transmission value = °C * 2 + 60. Electric heating start cycle temperature setting value(°C*2+60). */
  shutdown_protection_temperature: number;
  /** A.1.4 -> Water tank temperature setting, transmission value = °C. */
  water_tank_temperature: number;
  /** A.1.5 -> Fix as 0. Room heating type, 0 for the floor heating, 1 for the heat sink. */
  heating_type: number;
  /** A.1.6 -> Room floor set temperature, transmission value = °C. */
  heating_floor_temperature: number;
  /** A.1.7, Fix as 0. Electric heating water tank starting temperature, transmission value = °C. */
  electric_heating_water_tank_starting_temperature: number;
  /** A.1.8 -> Cooling mode Water temperature setting, transmission value = °C. */
  cooling_temperature: number;
  /** A.1.9 -> Water tank heating start hysteresis, transmission value = °C; */
  water_tank_hysteresis: number;
  /** A.1.10 -> Room heating start hysteresis, transmission value = °C. */
  heating_hysteresis: number;
  /** A.1.11 -> Fix as 60. Room heating floor heating water maximum temperature, transmission value = °C. */
  heating_water_maximum_temperature: number;
  /** A.1.12 -> Fix as 30. Room heating heat sink mode set temperature, transmission value = °C. */
  heating_heat_sink_temperature: number;
  /** A.1.13 -> Electric heating does not increase the temperature of the start-up time, transmission value = min (minutes). */
  start_time_that_electric_heating_does_not_increase_the_water_temperature: number;
  /** A.1.14 -> 0: automatic control of electric heating in room mode, 1: electric heating in room mode. Delete, fix at 0 */
  room_electric_heating_mode: number;

  // --- 0x82 second config ---
  /** A.2.1 -> Automatic defrost: defrost into the set temperature, transmission value = °C * 2 +60; */
  defrost_into_temperature: number;
  /** A.2.4 -> 0: automatic mode; 1: manual mode; */
  defrost_mode: number;
  /** A.2.5 -> Defrost Exit the set temperature, transfer value = °C * 2 + 60; */
  defrost_exit_temperature: number;
  /** A.2.6 -> Defrost maximum time, transfer value = min (minutes) */
  defrost_maximum_time: number;
  /** A.2.7 -> Defrost entry cycle set time, transfer value = min (minutes) */
  defrost_entry_cycle_time: number;
  /** A.2.8 -> Transmission value = °C; */
  solar_water_pump_open_temperature_difference: number;
  /** A.2.9 -> Off pump cycle transmission value = min (minutes) */
  water_pump_off_cycle_time: number;
  /** A.2.10 -> Transmission value = °C; */
  constant_temperature_difference: number;
  /** A.2.11 -> Fixed sending 60. Water tank temperature correction: -5 °C ~ 5 °C, transmission value = °C +60. */
  water_tank_temperature_correction: number;
  /** A.2.12 -> Fixed sending 60. Water tank temperature correction: -5 °C ~ 5 °C, transmission value = °C +60. */
  water_supply_temperature_correction: number;
  /** A.2.13 -> Function flags */
  function_flags: FunctionFlags;

  // --- 0x83 third config ---
  /** A.3.1 -> Set the heating into the defrost ambient temperature */
  heating_into_the_defrost_ambient_temperature: number;
  /** A.3.2 -> Start the defrosting ambient temperature and coil temperature difference */
  defrosting_start_ambient_coil_temperature_difference: number;
  /** A.3.3 -> Air conditioning mode water pump running mode */
  ac_mode_water_pump_running_mode: number;
  /** A.3.4 -> The ambient temperature corresponding to the outdoor fan */
  ambient_temperature_to_outdoor_fan: number;
  /** A.3.5 -> Frequency converter compressor maximum operating frequency */
  converter_compressor_maximum_frequency: number;
  /** A.3.6 -> Electronic expansion valve maximum opening degree */
  expansion_valve_maximum_opening_degree: number;
  /** A.3.7 -> Electronic expansion valve minimum opening degree */
  expansion_valve_minimum_opening_degree: number;
  /** A.3.8 -> The actual water temperature is greater than 26 parameters, each additional 1 degree, measured in the measured water temperature correction and then increase 0.5 degrees */
  water_temperature_greater_26_value: number;
  /** A.3.9 -> The ambient temperature is greater than 30 degrees, the measured water temperature correction value */
  ambient_temperature_greater_30_water_temperature_correction_value: number;
  /** A.3.10 -> The ambient temperature is greater than 23, less than 30 degrees, the measured water temperature correction value */
  ambient_temperature_greater_23_and_less_30_water_temperature_correction_value: number;
  /** A.3.11 -> The ambient temperature is less than 23 degrees, the measured water temperature correction value */
  ambient_temperature_less_23_water_temperature_correction_value: number;
};

type FunctionFlags = {
  /** The linkage switch is selected, 0 is invalid, 1 is valid */
  linkage_switch: number;
  /** Electronic expansion valve adjustment mode, 0 automatic; 1 manually */
  electronic_expansion_valve_adjustment_mode: number;
  /** Compressor frequency adjustment mode, 0 automatic; 1 manually */
  compressor_frequency_adjustment_mode: number;
  /** Manual defrost flag, 0 invalid; 1 active */
  manual_defrost: number;
  /** Antifreeze switch, 0 invalid; 1 valid */
  antifreeze_switch: number;
};
