You missed thermoelectric generators that uses the Seebeck effect to generate a current between two temperature differentials. It's terribly inefficient, unfortunately.