Template sensor ERROR state_attr() missing 1 required positional argument: 'name'

Hello,

I am having problems using a template sensor, I think I am missing something stupid but I can’t find out what. I hope you can help me with this.
I have the following template sensor:

- platform: template
    sensors:
      apartment_1_energy_kwh:
        entity_id: sensor.apartment_1_energy
        value_template: "{{ state_attr('sensor.apartment_1_energy') | float / 1000 }}"
        friendly_name: "Apartment 1 energy kWh"
        unit_of_measurement: kWh
      apartment_2_energy_kwh:
        value_template: "{{ state_attr('sensor.apartment_2_energy') | int / 1000 | round(2)}}"
        friendly_name: "Apartment 2 energy kWh"
        unit_of_measurement: kWh
      apartment_3_energy_kwh:
        value_template: "{{ state_attr('sensor.apartment_3_energy') | int / 1000 | round(2)}}"
        friendly_name: "Apartment 3 energy kWh"
        unit_of_measurement: kWh
      apartment_4_energy_kwh:
        value_template: "{{ state_attr('sensor.apartment_4_energy') | int / 1000 | round(2)}}"
        friendly_name: "Apartment 4 energy kWh"
        unit_of_measurement: kWh
      apartment_5_energy_kwh:
        value_template: "{{ state_attr('sensor.apartment_5_energy') | int / 1000 | round(2)}}"
        friendly_name: "Apartment 5 energy kWh"
        unit_of_measurement: kWh
      apartment_6_energy_kwh:
        value_template: "{{ state_attr('sensor.apartment_6_energy') | int / 1000 | round(2)}}"
        friendly_name: "Apartment 6 energy kWh"
        unit_of_measurement: kWh
      apartment_7_energy_kwh:
        value_template: "{{ state_attr('sensor.apartment_7_energy') | int / 1000 | round(2)}}"
        friendly_name: "Apartment 7 energy kWh"
        unit_of_measurement: kWh
      apartment_8_energy_kwh:
        value_template: "{{ state_attr('sensor.apartment_8_energy') | int / 1000 | round(2)}}"
        friendly_name: "Apartment 8 energy kWh"
        unit_of_measurement: kWh

The entities for this template sensor are defined here:

- platform: mqtt
    name: "Apartment 1 power"
    state_topic: "panel/sensor/apartment_1_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 1 energy"
    state_topic: "panel/sensor/apartment_1_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 1 power factor"
    state_topic: "panel/sensor/apartment_1_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

  - platform: mqtt
    name: "Apartment 2 power"
    state_topic: "panel/sensor/apartment_2_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 2 energy"
    state_topic: "panel/sensor/apartment_2_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 2 power factor"
    state_topic: "panel/sensor/apartment_2_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

  - platform: mqtt
    name: "Apartment 3 power"
    state_topic: "panel/sensor/apartment_3_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 3 energy"
    state_topic: "panel/sensor/apartment_3_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 3 power factor"
    state_topic: "panel/sensor/apartment_3_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

  - platform: mqtt
    name: "Apartment 4 power"
    state_topic: "panel/sensor/apartment_4_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 4 energy"
    state_topic: "panel/sensor/apartment_4_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 4 power factor"
    state_topic: "panel/sensor/apartment_4_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

  - platform: mqtt
    name: "Apartment 5 power"
    state_topic: "panel/sensor/apartment_5_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 5 energy"
    state_topic: "panel/sensor/apartment_5_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 5 power factor"
    state_topic: "panel/sensor/apartment_5_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

  - platform: mqtt
    name: "Apartment 6 power"
    state_topic: "panel/sensor/apartment_6_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 6 energy"
    state_topic: "panel/sensor/apartment_6_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 6 power factor"
    state_topic: "panel/sensor/apartment_6_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

  - platform: mqtt
    name: "Apartment 7 power"
    state_topic: "panel/sensor/apartment_7_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 7 energy"
    state_topic: "panel/sensor/apartment_7_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 7 power factor"
    state_topic: "panel/sensor/apartment_7_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

  - platform: mqtt
    name: "Apartment 8 power"
    state_topic: "panel/sensor/apartment_8_power/state"
    availability_topic: "panel/status"
    unit_of_measurement: "W"  
  - platform: mqtt
    name: "Apartment 8 energy"
    state_topic: "panel/sensor/apartment_8_energy/state"
    availability_topic: "panel/status"
    unit_of_measurement: "Wh"  
  - platform: mqtt
    name: "Apartment 8 power factor"
    state_topic: "panel/sensor/apartment_8_power_factor/state"
    availability_topic: "panel/status"
    unit_of_measurement: ""  

I think I have everything setup properly following the documentation, but I am getting the following error for my template sensor in home assistant log, and my template sensors are not working at all:

2020-04-29 11:59:17 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.apartment_5_energy_kwh fails
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 261, in async_update_ha_state
    await self.async_device_update()
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 439, in async_device_update
    await self.async_update()
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/template/sensor.py", line 238, in async_update
    self._state = self._template.async_render()
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/template.py", line 215, in async_render
    return compiled.render(kwargs).strip()
  File "/srv/homeassistant/lib/python3.7/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/srv/homeassistant/lib/python3.7/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/srv/homeassistant/lib/python3.7/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "<template>", line 1, in top-level template code
  File "/srv/homeassistant/lib/python3.7/site-packages/jinja2/sandbox.py", line 438, in call
    return __context.call(__obj, *args, **kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/template.py", line 963, in wrapper
    return func(hass, *args[1:], **kwargs)
TypeError: state_attr() missing 1 required positional argument: 'name'

The state_attr needs the name of the attribute.

value_template: "{{ state_attr('sensor.apartment_6_energy', 'name_of_the_attribute') | int / 1000 | round(2)}}"

If you need only the state of a sensor, you use:

value_template: "{{ state('sensor.apartment_6_energy') | int / 1000 | round(2)}}"

Thank you, that was really helpful.
Just one thing, it is states() instead of state()
So, now I have this, and it is working fine:

  - platform: template
    sensors:
      apartment_1_energy_kwh:
        entity_id: sensor.apartment_1_energy
        value_template: "{{ states('sensor.apartment_1_energy') | float / 1000 }}"
        friendly_name: "Apartment 1 energy kWh"
        unit_of_measurement: kWh
1 Like