---
# File location: entities/template/
# # Use friendly state values for Heatpump
- sensor:
    - name: "Heatpump Mode"
      unique_id: pac_mode_status
      state: >-
        {{ iif(
            states('sensor.pac_1051_unit_mode') not in ('unavailable', 'unknown'),
            (state_attr('input_select.pac_mode','options')[(states('sensor.pac_1057_mode_eco_confort')|int)]),
            (state_attr('input_select.pac_mode','options')[0])
          )
        }}
      availability: "{{states('sensor.pac_1051_unit_mode')|int(-1) >= 0 }}"
    - name: "Heatpump Eco Mode"
      unique_id: pac_mode_eco_status
      state: >-
        {{ iif(
            states('sensor.pac_1057_mode_eco_confort') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_eco_mode','options')[(states('sensor.pac_1057_mode_eco_confort')|int)]),
            (state_attr('select.pac_eco_mode','options')[0])
          )
        }}
      availability: "{{states('sensor.pac_1057_mode_eco_confort')|int(-1) >= 0 }}"
    - name: "Heatpump Heating Circuit Status"
      unique_id: pac_mode_heat_circuit_status
      state: >-
        {{ iif(
            states('sensor.pac_1053_circuit1_heat_control_type') not in ('unavailable', 'unknown'),
            (state_attr('input_select.pac_heat_circuit_status','options')[(states('sensor.pac_1053_circuit1_heat_control_type')|int)]),
            (state_attr('input_select.pac_heat_circuit_status','options')[0])
          )
        }}
      availability: "{{states('sensor.pac_1053_circuit1_heat_control_type')|int(-1) >= 0 }}"
    - name: "Heatpump Operation Status"
      unique_id: pac_operational_status
      state: >-
        {{ iif(
            states('sensor.pac_1090_unit_operational_status') not in ('unavailable', 'unknown'),
            (state_attr('input_select.pac_operation_state','options')[(states('sensor.pac_1090_unit_operational_status')|int)]),
            (state_attr('input_select.pac_operation_state','options')[0])
          )
        }}
      availability: "{{states('sensor.pac_1090_unit_operational_status')|int(-1) >= 0 }}"
    - name: "Heatpump DHW Demande Mode"
      unique_id: pac_dhw_demand_mode_status
      state: >-
        {{ iif(
            states('sensor.pac_1079_dhw_demand_mode') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_dhw_demand_mode','options')[(states('sensor.pac_1079_dhw_demand_mode')|int)]),
            (state_attr('select.pac_dhw_demand_mode','options')[0])
          )
        }}
      availability: "{{states('sensor.pac_1079_dhw_demand_mode')|int(-1) >= 0 }}"
    - name: "Heatpump Central Mode Status"
      unique_id: pac_central_mode_status
      state: >-
        {{ iif(
            states('sensor.pac_1088_unit_mode_control') not in ('unavailable', 'unknown'),
            (state_attr('input_select.pac_central_mode','options')[(states('sensor.pac_1088_unit_mode_control')|int)]),
            (state_attr('input_select.pac_central_mode','options')[0])
          )
        }}
      availability: "{{states('sensor.pac_1088_unit_mode_control')|int(-1) >= 0 }}"
    - name: "pac_1080_dhw_temp"
      unique_id: "pac_1080_dhw_temp_template"
      unit_of_measurement: "°C"
      device_class: temperature
      state: >-
        {{ state_attr('climate.hot_water', 'current_temperature') }}

# # Control Heatpump using friendly name values (get initial state from sensor)
- select:
    - unique_id: "pac_eco_mode"
      state: >-
        {{ iif(
            states('sensor.pac_1057_mode_eco_confort') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_eco_mode','options')[(states('sensor.pac_1057_mode_eco_confort')|int)]),
            (state_attr('select.pac_eco_mode','options')[0])
          )
        }}
      options: "{{ ['ECO','Comfort'] }}"
      select_option:
        - action: modbus.write_register
          data:
            hub: hitachi
            address: 1007
            value: >-
              {{ (state_attr('select.pac_eco_mode','options').index(option))|int}}
      availability: "{{states('sensor.pac_1057_mode_eco_confort')|int(-1) >= 0 }}"

    - unique_id: "pac_dhw_demand_mode"
      options: "{{ ['Standard','High Demand'] }}"
      state: >-
        {{ iif(
            states('sensor.pac_1079_dhw_demand_mode') not in ('unavailable', 'unknown'),
            (state_attr('select.pac_dhw_demand_mode','options')[(states('sensor.pac_1079_dhw_demand_mode')|int)]),
            (state_attr('select.pac_dhw_demand_mode','options')[0])
          )
        }}
      select_option:
        - action: modbus.write_register
          data:
            hub: hitachi
            address: 1027
            value: >-
              {{ (state_attr('select.pac_dhw_demand_mode','options').index(option))|int}}
      availability: "{{states('sensor.pac_1079_dhw_demand_mode')|int(-1) >= 0 }}"