Sensor "unavailable" i poprzednia wartość

Witam,
przewertowałem forum, ale coś nie działają podane rozwiązania, albo ja robię coś nie tak.
Mam sensor który, większość czasu jest unavailable, tylko raz na godzine raportuje stan.
Dodałem do template.yaml taki sensor:

    - sensor:
        name: "David's Room Temeperature Template"
        unique_id: davids_room_temeperature_template
        device_class: temperature
        unit_of_measurement: "°C"
        state_class: measurement
        state: >
              {% if is_state('sensor.davids_room_temperature', 'unavailable') or is_state('sensor.davids_room_temperature', 'unknown') %}
                {{ states('sensor.davids_room_temeperature_template') }}
              {% else %}
                {{ states('sensor.davids_room_temperature') }}
              {% endif %}

niestety nowy sensor zachowje się jak jego pierwowzór, a teoretycznie powinien pokazywać poprzednią wartoś.
W czym może być problem?

pozdrawiam

Podepnę się pod temat bo być może rozwiązanie będzie też pomocne dla mnie.
Mój sensor licznik gazu, raportuje dane, które pobieram z mqtt supla cloud
gaz
Ma utworzony licznik mediów

config/utility_meter.yaml

gas_daily:
  source: sensor.gas_meter_value
  cycle: daily

czasem wartość źródłowego jest none a wtedy to nie jest liczba i efekt w postaciu

Invalid state (None > 4238.1): [<class 'decimal.ConversionSyntax'>]
Logger: homeassistant.components.utility_meter.sensor
Source: components/utility_meter/sensor.py:402

Sądziłem, że pomocne byłoby utworzenie sensora template , no chyba, że istnieje inne rozwiązanie ?