Monitor for central heating system (e.g. 2zones+hw) Supports up to 15 temp probes (DS18B20/DS18S20) 3 valve monitors Gas pulse meter recording Use stand-alone or with nodeEnergyServer See http://robdobson.com/2015/09/central-heating-monitor
Dependencies: EthernetInterfacePlusHostname NTPClient Onewire RdWebServer SDFileSystem-RTOS mbed-rtos mbed-src
Revision 16:89778849e9f7, committed 2015-09-28
- Comitter:
- Bobty
- Date:
- Mon Sep 28 10:33:14 2015 +0000
- Parent:
- 15:29902a6b3c89
- Child:
- 17:ede9b4bbc4d6
- Commit message:
- Turned on debugging messages on thermometers; Updated web callbacks method signatures
Changed in this revision
--- a/EthernetInterface.lib Tue Mar 03 17:36:24 2015 +0000 +++ b/EthernetInterface.lib Mon Sep 28 10:33:14 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/EthernetInterface/#65b0d840274c +http://mbed.org/users/mbed_official/code/EthernetInterface/#2fc406e2553f
--- a/Onewire.lib Tue Mar 03 17:36:24 2015 +0000 +++ b/Onewire.lib Mon Sep 28 10:33:14 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/simonbarker/code/Onewire/#b678c7c8203c +http://mbed.org/users/simonbarker/code/Onewire/#45b6a39002f1
--- a/RdDS18B20.cpp Tue Mar 03 17:36:24 2015 +0000 +++ b/RdDS18B20.cpp Mon Sep 28 10:33:14 2015 +0000 @@ -4,7 +4,7 @@ #include "RdDS18B20.h" -// #define SHOW_18B20_DEBUGGING 1 +#define SHOW_18B20_DEBUGGING 1 // Construct onewire bus with desired pin DS18B20::DS18B20(PinName mbedPin) : _oneWire(mbedPin) @@ -131,7 +131,7 @@ return _temperatureTable[addrIdx]; } -void DS18B20::SearchToGetAddresses() +int DS18B20::SearchToGetAddresses() { _numValidAddresses = 0; for (int addrIdx = 0; addrIdx < MAX_BUS_DEVICES; addrIdx++) @@ -185,5 +185,6 @@ break; } #endif - } + } + return _numValidAddresses; }
--- a/RdDS18B20.h Tue Mar 03 17:36:24 2015 +0000 +++ b/RdDS18B20.h Mon Sep 28 10:33:14 2015 +0000 @@ -15,7 +15,7 @@ void ReqConvert(); double ReadTemperature(int addrIdx); void DebugPrintAddress(int addrIdx); - void SearchToGetAddresses(); + int SearchToGetAddresses(); int GetNumAddresses() { return _numValidAddresses;
--- a/RdWebServer.lib Tue Mar 03 17:36:24 2015 +0000 +++ b/RdWebServer.lib Mon Sep 28 10:33:14 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/Bobty/code/RdWebServer/#b4b9d4d5e5be +http://mbed.org/users/Bobty/code/RdWebServer/#ffa1dddd3da4
--- a/Thermometers.cpp Tue Mar 03 17:36:24 2015 +0000 +++ b/Thermometers.cpp Mon Sep 28 10:33:14 2015 +0000 @@ -3,7 +3,7 @@ #include "Thermometers.h" -// #define SHOW_THERMOMETER_DEBUGGING 1 +#define SHOW_THERMOMETER_DEBUGGING 1 Thermometers::Thermometers(int numTempSensorPins, const PinName tempSensorPins[], int serviceIntervalInMs) { @@ -11,6 +11,8 @@ _tempSensorPins = tempSensorPins; _serviceIntervalInMs = serviceIntervalInMs; _numThermometerBuses = 0; + _failAddrCount = 0; + _failReadCount = 0; } void Thermometers::Init() @@ -44,7 +46,9 @@ for (int busIdx = 0; busIdx < _numThermometerBuses; busIdx++) { DS18B20* pThermBus = _thermometerBuses[busIdx]; - pThermBus->SearchToGetAddresses(); + int numTherms = pThermBus->SearchToGetAddresses(); + if (numTherms != 3) + _failAddrCount++; } } else if (_countForGetThermometerAddresses > reGetThermometerAddressesAfterNumReadings) @@ -64,7 +68,8 @@ { DS18B20* pThermBus = _thermometerBuses[busIdx]; #ifdef SHOW_THERMOMETER_DEBUGGING - printf("Bus %d Num therms %d\r\n", busIdx, pThermBus->GetNumAddresses()); + printf("Bus %d Num therms %d Failed Addr %d Failed Read %d\r\n", busIdx, pThermBus->GetNumAddresses(), + _failAddrCount, _failReadCount); #endif pThermBus->ReqConvert(); } @@ -88,6 +93,8 @@ pThermBus->DebugPrintAddress(addrIdx); printf("\r\n"); #endif + if (tempValue == DS18B20::INVALID_TEMPERATURE) + _failReadCount++; } } }
--- a/Thermometers.h Tue Mar 03 17:36:24 2015 +0000 +++ b/Thermometers.h Mon Sep 28 10:33:14 2015 +0000 @@ -37,6 +37,10 @@ // Counters for state machine int _countForThermReadings; int _countForGetThermometerAddresses; + + // DEBUG + int _failReadCount; + int _failAddrCount; }; #endif
--- a/main.cpp Tue Mar 03 17:36:24 2015 +0000 +++ b/main.cpp Mon Sep 28 10:33:14 2015 +0000 @@ -151,14 +151,16 @@ led3 = false; } -char* getCurDataCallback(int method, char* cmdStr, char* argStr) +char* getCurDataCallback(int method, char* cmdStr, char* argStr, char* msgBuffer, int msgLen, + int contentLen, unsigned char* pPayload, int payloadLen, int splitPayloadPos) { // Format message GenBroadcastMessage(); return broadcastMsgBuffer; } -char* setGasUseCallback(int method, char* cmdStr, char* argStr) +char* setGasUseCallback(int method, char* cmdStr, char* argStr, char* msgBuffer, int msgLen, + int contentLen, unsigned char* pPayload, int payloadLen, int splitPayloadPos) { pc.printf("Setting gas use count %s\r\n", argStr); int newGasUse = 0;
--- a/mbed-rtos.lib Tue Mar 03 17:36:24 2015 +0000 +++ b/mbed-rtos.lib Mon Sep 28 10:33:14 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-rtos/#5448826aa700 +http://mbed.org/users/mbed_official/code/mbed-rtos/#bc9729798a19