add frozen water mode

This commit is contained in:
Empire 2022-12-20 00:04:57 +01:00
parent 662d7bc853
commit 37a08dede6
2 changed files with 20 additions and 8 deletions

View File

@ -29,6 +29,9 @@
#define LOG_PUMP_AND_DOWNLOADMODE "Download mode, ignoring pump request" #define LOG_PUMP_AND_DOWNLOADMODE "Download mode, ignoring pump request"
#define LOG_PUMP_AND_DOWNLOADMODE_CODE 2 #define LOG_PUMP_AND_DOWNLOADMODE_CODE 2
#define LOG_VERY_COLD_WATER "Water potentially frozen, ignoring pump request"
#define LOG_VERY_COLD_WATER -7
//msg is dynamic defined //msg is dynamic defined
#define LOG_PUMP_INEFFECTIVE -4 #define LOG_PUMP_INEFFECTIVE -4
#define LOG_PUMP_STARTED_CODE 10 #define LOG_PUMP_STARTED_CODE 10

View File

@ -90,6 +90,8 @@ long lastSendPumpUpdate = 0;
long pumpTargetMl = -1; long pumpTargetMl = -1;
#endif #endif
float waterTemp = 30;
/*************************** Hardware abstraction *****************************/ /*************************** Hardware abstraction *****************************/
OneWire oneWire(SENSOR_ONEWIRE); OneWire oneWire(SENSOR_ONEWIRE);
@ -267,6 +269,7 @@ void readOneWireSensors()
{ {
mqttWrite(&sensorTemp, TEMPERATUR_SENSOR_WATER, String(temp)); mqttWrite(&sensorTemp, TEMPERATUR_SENSOR_WATER, String(temp));
Serial << "Water Temperatur " << temp << " °C " << endl; Serial << "Water Temperatur " << temp << " °C " << endl;
waterTemp = temp;
} }
/* Always send the sensor address with the temperatur value */ /* Always send the sensor address with the temperatur value */
mqttWrite(&sensorTemp, String(buf), String(temp)); mqttWrite(&sensorTemp, String(buf), String(temp));
@ -1085,25 +1088,31 @@ void plantcontrol()
} }
#endif // TIMED_LIGHT_PIN #endif // TIMED_LIGHT_PIN
bool isLiquid = waterTemp > 5;
bool hasWater = true; // FIXME remaining > waterLevelMin.get(); bool hasWater = true; // FIXME remaining > waterLevelMin.get();
// FIXME no water warning message // FIXME no water warning message
pumpToRun = determineNextPump(isLowLight); pumpToRun = determineNextPump(isLowLight);
// early aborts // early aborts
if (pumpToRun != -1) if (pumpToRun != -1)
{ {
if (hasWater) if(isLiquid){
{ if (hasWater)
if (mDownloadMode)
{ {
log(LOG_LEVEL_INFO, LOG_PUMP_AND_DOWNLOADMODE, LOG_PUMP_AND_DOWNLOADMODE_CODE); if (mDownloadMode)
{
log(LOG_LEVEL_INFO, LOG_PUMP_AND_DOWNLOADMODE, LOG_PUMP_AND_DOWNLOADMODE_CODE);
pumpToRun = -1;
}
}
else
{
log(LOG_LEVEL_ERROR, LOG_PUMP_BUTNOTANK_MESSAGE, LOG_PUMP_BUTNOTANK_CODE);
pumpToRun = -1; pumpToRun = -1;
} }
} }
else else{
{
log(LOG_LEVEL_ERROR, LOG_PUMP_BUTNOTANK_MESSAGE, LOG_PUMP_BUTNOTANK_CODE); log(LOG_LEVEL_ERROR, LOG_PUMP_BUTNOTANK_MESSAGE, LOG_PUMP_BUTNOTANK_CODE);
pumpToRun = -1; pumpToRun = -1;
} }
} }