(SOLVED) HowDoI set an initial value for an MQTT topic

As per subject, how to I initialise an MQTT published topic.

I’m using generic_thermostat component and when I start HA, I have the initial values set but these are not copied to the related MQTT topic. When I change the setpoint value on the front end, for the thermostat, the values do get copied to the MQTT topic. So all good, except at start up.

This is the automation on the generic_thermostat, that works, but it does not fire at start up .

    - alias: Thermostat setpoint to TRV
      initial_state: true
      #hide_entity: true
        platform: state
        entity_id: climate.therm
        attribute: temperature
        service: mqtt.publish
          topic: '/energenie/eTRV/Command/Temperature/8005'
          retain: true
          payload: "{{ state_attr('climate.therm','temperature') | int }}"

and the MQTT

        - platform: mqtt
          state_topic: "/energenie/eTRV/Report/Temperature/8005"
          name: "TRV 8005 Temperature"
          device_class: temperature
          unit_of_measurement: "°C"
          force_update: true
          expire_after: 660

Not sure if force_update is right, it doesnt seem to make any difference?

Perhaps there is a better way of setting values for startup so that they get sent to the mqtt topic?

I take it then, by silence, that it cannot be done?

Been reading some dev posts. Appears that work is ongoing to improve the state machine by using persistent storage that will save states object values and restore them on home assistant restart.
Also, AppDaemon can be used - however I’m in the “not convinced” camp with appdaemon. Loads of comment and posts on appdaemon - TL;DR - but for me there is overlap and duplication; trying to achieve automation when there is already an automation model in HA;
Aside, I am going to just setup an automation that sets state values for entities which I need to initialise, and use the HA trigger on event.homeassistant_start:

  alias 'Startup set initial values'
    platform: homeassistant
    event: start
    - service: input_number.set_value
        entity_id: climate.therm
        value: 18.0
    - service: input_number.set_value
        entity_id: ...
        value: ...
     - service:

This sets a temperature for a setpoint that is used to control heating, and is sent to a TRV when changed, so this will force an MQTT publish on startup . Perfect!