'value_json' is undefined on sensor creation by script

I’m trying to create some sensors via script. This is the type code of a sensor:

script:

  bresser51_define_sensors:
    mode: single
    sequence:
      - service: mqtt.publish
        data:
          topic: homeassistant/sensor/bresser51/id/config
          retain: 0
          payload: >
            {
               "device" : {
                  "identifiers" : [
                     "bresser51"
                  ],
                  "manufacturer" : "Bresser",
                  "model" : "Bresser 5 in 1",
                  "name" : "Bresser51",
                  "sw_version" : "1.0"
               },
               "name" : "Serial number",
               "state_topic" : "ESPWeather/13010bc2/data",
               "unique_id" : "bresser51_serial_number",
               "value_template" : "{{ value_json.id | int }}"
            }

I get an error about " ‘value_json’ is undefined ".

This is ESPWeather/13010bc2/data string:

{"id":318835650,"ch":0,"battery_ok":1,"temp_c":25.9,"humidity":70,"wind_gust":0.6,"wind_avg":0.6,"wind_dir":112.0,"uv":0.0,"rain":61.6,"rain_h":28.4,"rain_d":28.4,"rain_w":28.4,"rain_m":28.4,"rain_s":0.0}

The topic is a valid JSON, so why I get this error?

script:

  bresser51_define_sensors:
    mode: single
    sequence:
      - service: mqtt.publish
        data:
          topic: homeassistant/sensor/bresser51/id/config
          retain: 0
          payload: >
            {
               "device" : {
                  "identifiers" : [
                     "bresser51"
                  ],
                  "manufacturer" : "Bresser",
                  "model" : "Bresser 5 in 1",
                  "name" : "Bresser51",
                  "sw_version" : "1.0"
               },
               "name" : "Serial number",
               "state_topic" : "ESPWeather/13010bc2/data",
               "unique_id" : "bresser51_serial_number",
               "value_template" : "{% raw %}{{ value_json.id | int }}{% endraw %}"
            }