Setting works with default values

This commit is contained in:
c3ma 2020-10-16 18:25:02 +02:00
parent 4bdb82cecc
commit e95590ffd6
3 changed files with 30 additions and 21 deletions

View File

@ -23,10 +23,10 @@ private:
int mValue = 0; /**< Value of the moist sensor */
int mAnalogValue=0; /**< moist sensor values, used for a calculation */
HomieNode *mPlant = NULL;
PlantSettings_t mSetting;
HomieNode* mPlant = NULL;
public:
PlantSettings_t* mSetting;
/**
* @brief Construct a new Plant object
@ -77,12 +77,14 @@ public:
* @return false
*/
bool isPumpRequired() {
return (this->mSetting.pSensorWet != NULL) && (this->mValue < this->mSetting.pSensorWet->get());
return (this->mSetting->pSensorWet != NULL) && (this->mValue < this->mSetting->pSensorWet->get());
}
HomieInternals::SendingPromise& setProperty(const String& property) const {
return mPlant->setProperty(property);
}
void init(void);
};
#endif

View File

@ -12,34 +12,36 @@
#include "PlantCtrl.h"
Plant::Plant(int pinSensor, int pinPump,int plantId, HomieNode *plant, PlantSettings_t* setting) {
Plant::Plant(int pinSensor, int pinPump,int plantId, HomieNode* plant, PlantSettings_t* setting) {
this->mPinSensor = pinSensor;
this->mPinPump = pinPump;
this->mPlant = plant;
/*
this->mSetting = mSetting;
this->mSetting.pSensorDry->setDefaultValue(4095);
this->mSetting.pSensorDry->setValidator([] (long candidate) {
this->mSetting = setting;
}
void Plant::init(void) {
this->mSetting->pSensorDry->setDefaultValue(4095);
this->mSetting->pSensorDry->setValidator([] (long candidate) {
return ((candidate >= 0) && (candidate <= 4095) );
});
this->mSetting.pSensorWet->setDefaultValue(0);
this->mSetting.pSensorWet->setValidator([] (long candidate) {
this->mSetting->pSensorWet->setDefaultValue(0);
this->mSetting->pSensorWet->setValidator([] (long candidate) {
return ((candidate >= 0) && (candidate <= 4095) );
});
this->mSetting.pPumpAllowedHourRangeStart->setDefaultValue(8);
this->mSetting.pPumpAllowedHourRangeStart->setValidator([] (long candidate) {
this->mSetting->pPumpAllowedHourRangeStart->setDefaultValue(8);
this->mSetting->pPumpAllowedHourRangeStart->setValidator([] (long candidate) {
return ((candidate >= 0) && (candidate <= 23) );
});
this->mSetting.pPumpAllowedHourRangeEnd->setDefaultValue(20);
this->mSetting.pPumpAllowedHourRangeEnd->setValidator([] (long candidate) {
this->mSetting->pPumpAllowedHourRangeEnd->setDefaultValue(20);
this->mSetting->pPumpAllowedHourRangeEnd->setValidator([] (long candidate) {
return ((candidate >= 0) && (candidate <= 23) );
});
this->mSetting.pPumpOnlyWhenLowLight->setDefaultValue(true);
this->mSetting.pPumpCooldownInHours->setDefaultValue(20);
this->mSetting.pPumpCooldownInHours->setValidator([] (long candidate) {
this->mSetting->pPumpOnlyWhenLowLight->setDefaultValue(true);
this->mSetting->pPumpCooldownInHours->setDefaultValue(20);
this->mSetting->pPumpCooldownInHours->setValidator([] (long candidate) {
return ((candidate >= 0) && (candidate <= 1024) );
});
*/
}
void Plant::addSenseValue(int analog) {

View File

@ -309,6 +309,11 @@ void readSensors() {
* Is called once, the controller is started
*/
void setup() {
/* Intialize Plant */
for(int i=0; i < MAX_PLANTS; i++) {
mPlants[i].init();
}
/* Required to read the temperature once */
float temp[2] = {0, 0};
float* pFloat = temp;
@ -337,9 +342,9 @@ void setup() {
Homie.setLoopFunction(loopHandler);
mConfigured = Homie.isConfigured();
// Load the settings
deepSleepTime.setDefaultValue(0);
deepSleepNightTime.setDefaultValue(0);
// Load the settings
deepSleepTime.setDefaultValue(0);
deepSleepNightTime.setDefaultValue(0);
if (mConfigured) {
// Advertise topics