In Wireless Sensor Network (WSN) applications, sensor nodes are often deployed in harsh environments. Routine maintenance, fault detection and correction is dicult, infrequent and expensive. Further-more, for long-term deployments in excess of a year, a node's limited power supply tightly constrains the amount of processing power and long-range communication available. In order to support the long-term autonomous behaviour of a WSN system, a self-diagnostic algorithm implemented on the sensor nodes is needed for sensor fault detection. This algorithm has to be robust, so that sensors are not misdiagnosed as faulty to ensure that data loss is kept to a minimum, and it has to be light-weight, so that it can run continuously on a low power microprocessor for the full deployment period. Addition-ally, it has to be self-adapative so that any long-term degradation ofsensors is monitored and the self-diagnostic algorithm can continuously revise its own rules to accomodate for this degradation. This paper de-scribes the development, testing and implementation of a heuristically determined, robust, self-diagnostic algorithm that achieves these goals.