Refactored code
This commit is contained in:
@@ -20,6 +20,7 @@ Plant::Plant(int pinSensor, int pinPump,int plantId, HomieNode* plant, PlantSett
|
||||
}
|
||||
|
||||
void Plant::init(void) {
|
||||
/* Initialize Home Settings validator */
|
||||
this->mSetting->pSensorDry->setDefaultValue(4095);
|
||||
this->mSetting->pSensorDry->setValidator([] (long candidate) {
|
||||
return (((candidate >= 0) && (candidate <= 4095) ) || candidate == DEACTIVATED_PLANT);
|
||||
@@ -37,9 +38,64 @@ void Plant::init(void) {
|
||||
this->mSetting->pPumpCooldownInHours->setValidator([] (long candidate) {
|
||||
return ((candidate >= 0) && (candidate <= 1024) );
|
||||
});
|
||||
|
||||
|
||||
/* Initialize Hardware */
|
||||
pinMode(this->mPinPump, OUTPUT);
|
||||
pinMode(this->mPinSensor, ANALOG);
|
||||
digitalWrite(this->mPinPump, LOW);
|
||||
}
|
||||
|
||||
void Plant::addSenseValue(int analog) {
|
||||
this->moistureRaw.add(analog);
|
||||
}
|
||||
void Plant::addSenseValue(void) {
|
||||
this->moistureRaw.add( analogRead(this->mPinSensor) );
|
||||
}
|
||||
|
||||
void Plant::postMQTTconnection(void) {
|
||||
const String OFF = String("OFF");
|
||||
this->mConnected=true;
|
||||
this->mPlant->setProperty("switch").send(OFF);
|
||||
}
|
||||
|
||||
void Plant::deactivatePump(void) {
|
||||
digitalWrite(this->mPinPump, LOW);
|
||||
if (this->mConnected) {
|
||||
const String OFF = String("OFF");
|
||||
this->mPlant->setProperty("switch").send(OFF);
|
||||
}
|
||||
}
|
||||
|
||||
void Plant::activatePump(void) {
|
||||
digitalWrite(this->mPinPump, HIGH);
|
||||
if (this->mConnected) {
|
||||
const String OFF = String("ON");
|
||||
this->mPlant->setProperty("switch").send(OFF);
|
||||
}
|
||||
}
|
||||
|
||||
void Plant::advertise(void) {
|
||||
// Advertise topics
|
||||
this->mPlant->advertise("switch").setName("Pump 1")
|
||||
.setDatatype("boolean");
|
||||
//FIXME add .settable(this->switchHandler)
|
||||
this->mPlant->advertise("moist").setName("Percent")
|
||||
.setDatatype("number")
|
||||
.setUnit("%");
|
||||
}
|
||||
|
||||
|
||||
/* FIXME
|
||||
bool Plant::switchHandler(const HomieRange& range, const String& value) {
|
||||
if (range.isRange) return false; // only one switch is present
|
||||
|
||||
|
||||
if ((value.equals("ON")) || (value.equals("On")) || (value.equals("on")) || (value.equals("true"))) {
|
||||
this->activatePump();
|
||||
return true;
|
||||
} else if ((value.equals("OFF")) || (value.equals("Off")) || (value.equals("off")) || (value.equals("false")) ) {
|
||||
this->deactivatePump();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user