You seem to send the temp messages under a different ChildID than it is presented:
presentation takes "1", send uses "0". You have to allign that, e.g. by using
send(msg.setSensor(i+CHILD_ID_TEMP).set(temperature,1));
But as long as there's just one DS18B20 doing that dynamically doesn't really make sense. Using the defined message structure (MyMessage msgTemp...) could make things more transparent.
Also there's no sending command for voltage. So why do you expect the controller to receive also voltage?