Wireless sensor network (WSN) is an effective and efficient technology for field information collection in Internet of Things arena. Generally, the lifetime of any WSN is restricted due to the limited battery capacities available with its sensor nodes. Replenishing the nodes’ batteries through energy-harvesting is becoming popular nowadays for improving the lifetime of the WSNs. Wireless communication activities of the sensor nodes take a major chunk of battery’s energy during WSN operations and to optimize the energy dissipation, energy-efficiency is given prime importance in routing decisions. The WSN heterogeneity (e.g., sensor nodes with heterogeneous sensing requirements, nodes with different energies, etc.) has become unavoidable and its effective exploitation further complicates the routing challenges. To fulfill the requirements of a realistic WSN system, this paper considers a multi-heterogeneity WSN scenario with sensors nodes having different initial energies and different traffic requirements along with solar energy-harvesting capabilities. An improved cluster-head selection based routing algorithm is proposed for the scenario, which exploits effectively the WSN heterogeneities in terms of energy, traffic and energy-harvesting. To highlight the performance of the proposed algorithm, the system is considered non energy-neutral, i.e. the energy dissipation of the system is higher than the system’s harvesting energy over a longer time period. The proposed algorithm, Energy-Harvesting, Traffic and Energy Aware Routing, improves the WSN stability period over existing routing algorithms under the scenario, where the stability period signifies the WSN lifetime till all the nodes are alive and represents the most reliable period of an operational WSN.