Conditional state doesn't work after upgrade

I understood the changes around templates, but cannot get this one to work (I got individual forecast sensors to work).

This used to work, as a ‘last good value’ in case both forecast services are offline:

      prognoza_saved:
        friendly_name: Prognoza last good value
        icon_template: mdi:temperature-celsius
        unit_of_measurement: "°C"
        value_template: >-
          {% if states('sensor.prognozamet') not in ['unknown', 'unavailable'] %}
            {{ states('sensor.prognozamet') }}
          {% elif states('sensor.prognozaio') not in ['unknown', 'unavailable'] %}
            {{ states('sensor.prognozaio') }}
          {% else %}    
            {{ states('sensor.prognoza_saved') }}
          {% endif %}  

This doesn’t work anymore, shows Unavailable although both sensors have numerical values. If I state for eg float(0) under else, it will show 0.0.

  - sensor:
      - name: Prognoza last good value
        unique_id: prognoza_saved
        icon: mdi:temperature-celsius
        unit_of_measurement: "°C"
        state: >
          {% if states('sensor.prognozamet')|is_number %}
            {{ states('sensor.prognozamet') }}
          {% elif states('sensor.prognozaio')|is_number %}
            {{ states('sensor.prognozaio') }}
          {% else %}    
            {{ states('sensor.prognoza_saved') }}
          {% endif %}  

Solved, actually we should use autogenerated entity_id’s when referring to entities and not yaml-defined unique_id’s. I find this impractical, but that’s the way it works.