Here's a single supply inverting opamp configuration that will do what you want. You will need an opamp capable of output drive to it's lower rail (You will probably want to include a small capacitor across R2 to limit bandwidth, since you don't need much for thermocouple readings)
R3/R2 may need to be increased in order not to load thermocouple depending on type - EDIT, just noticed the output is coming from the AD595, so it's probably low impedance (not checked datasheet) and fine as is:
R3/R2 simply divide the input voltage by 2. R1 and R5 present 400mV to the positive input. Since the opamp tries to keep the two inputs equal, it creates a level shift. For example, when there is -1.2V at the input, to keep the inverting input at 400mV, there needs to be 1.2V at the output. We can now see R3/R2 as a voltage divider with -1.2V at one end and +1.2V at the other, we get 2.4V across R3+R2, so the voltage across R3 is:
2.4V * (R3 / (R2 + R3)) = 2.4V * (10kΩ / 15kΩ) = 1.6V and so:
-1.2V + 1.6V = 400mV
You can run the calculations for the other input voltages and see how it works across the range (remembering there is always 400mV at the inverting input, and effectively no current flows into the input)
Another way to look at it given the above is, say we have -0.6V at the input. We know there must be +0.4V at the other side of R3, so the current flowing through R3 is:
(0.4V - -0.6V) / 10kΩ = 0.1mA
Now we know none of this current flows into the inverting input, so it must flow through R2:
5kΩ * 0.1mA = 0.5V
0.4V + 0.5V = 0.9V at the output
Simulation:
If you need it non-inverting, you can easily do this in firmware or add a simple inverting buffer after this.
ZIGBEE ADC
Just had a look at the Zigbee datasheet and it seems the Vref is fixed at 1.2V (although there is Vref pin, I couldn't find any mention of how to use it in the analog IO section), so you have to work with this unless you use an external (possibly higher resolution) ADC and feed the data to the Zigbee. It's a 10-bit ADC, so 1.2V / 1024 = ~1.17mV LSB, which won't be so bad with with filtering (which use a low cutoff since you have a slowly changing signal from the thermocouple)
Bear in mind the ADC595 has an calibration error of around +-1°C (or +-3%deg;C depending on which variant you are using) so absolute accuracy will not be excellent, but you could go for a higher resolution as mention if you wanted to.
So read the ADC595 datasheet advice thoroughly, pay attention to the PCB layout (if possible a 4-layer with solid ground plane), keep any digital signals away from the analog as best you can and use plenty of decoupling and all should be well.
Note that the 20mv error is a measure of how close the output can go to 0v (using your supplies) against a 100 kilohm load pulling the output to "mid-supply" i.e. 2.5V.
Without that pull-up, as in your application, the output will go considerably closer to 0V.
However if you need to inject offset; the place to do it is "ref" i.e. pin 6 - whatever voltage is there, is the "0V" reference point for the output.
Note also that the thermocouple will ONLY generate 0V at ambient if it is actually a pair of thermocouples; connected back to back, one measuring the temperature of interest, the other being held at ambient (or 0C or some known point) to act as a "cold reference". (This may be what your "thermocouple" does, but its worth mentioning because the circuit doesn't show it).
Otherwise you have at least three thermocouples in the circuit; two of them being unknown quantities, formed by the connector pins. In which case the actual voltage is anybody's guess.
One further point - I see you connect the thermocouple via a connector. It's worth considering what happens when unplugged : I recommend a high value resistor from -in
to +in
to prevent +in
floating. (1 megohm with the 1na bias current implies an offset of 1 mv with no thermocouple, and it will have no measurable effect with the thermocouple present)
Best Answer
If you just fed the ADC with the range 0.6V to 1.6V corresponding to 0ºC to 100ºC, you'd have a range of 1V going into a 5V ADC. If the ADC is 10 bit then you'd have approximately 200 least significant bits change for a 100ºC change in temperature.
That, is a resolution of 0.5ºC and, if you could average 10 measurements this would give you 0.05ºC resolution (I'm assuming here that noise would likely give you 1 or 2 bits of variation in the measurement i.e. you'd be implementing a form of dithering).
The question then remains, how much resolution do you require to justify adding an op-amp circuit?