light treshold will now be set based on mqtt command

This commit is contained in:
Sebastian 2020-07-04 17:09:44 +02:00
parent c9dc8f545f
commit 5fb882c59a
3 changed files with 21 additions and 5 deletions

View File

@ -10,6 +10,7 @@ extern "C" {
#define MQTT_VALVE_COMMAND MQTT_TOPIC_BASE_SUB "/" MQTT_DEVICE_ID "/valve"
#define MQTT_SOIL_PROPERTIES MQTT_TOPIC_BASE_SUB "/" MQTT_DEVICE_ID "/soil"
#define MQTT_LIGHT_COMMAND MQTT_TOPIC_BASE_SUB "/" MQTT_DEVICE_ID "/light"
TimerHandle_t mqttReconnectTimer;
TimerHandle_t wifiReconnectTimer;
@ -101,10 +102,21 @@ void onMqttMessage(char *topic, byte *payload, unsigned int payload_length) {
}
Serial.println();
if (strcmp(topic, MQTT_LIGHT_COMMAND) == 0) {
Serial.println("receiving light treshold...");
Serial.println(topic);
}
if (strcmp(topic, MQTT_VALVE_COMMAND) == 0) {
Serial.println("toggling valve...");
Serial.println(topic);
toggleValve();
StaticJsonDocument<1024> doc;
DeserializationError err = deserializeJson(doc, payload);
if (err == DeserializationError::Ok) {
int nm = doc["nm"];
setValueNM(nm);
} else {
Serial.println(err.c_str());
}
}
if (strcmp(topic, MQTT_SOIL_PROPERTIES) == 0) {
Serial.println("receiving soil thresholds...");

View File

@ -77,7 +77,9 @@ extern void publishMessage(const char *topic, const char *msg);
// RGB PWM LED
extern void setupPWM();
extern void activateLight();
extern bool activateLight();
extern void setValueNM(int NM);
extern void getColorBasedOnValueNM();
// sensors
void readSensors();

View File

@ -29,8 +29,9 @@ void setupPWM() {
ledcAttachPin(PIN_LED_B, ledChannelBlue);
}
void readValueNM() {
// ValueNM = Read from database
void setValueNM(int NM) {
valueNM = NM;
getColorBasedOnValueNM();
}
void getColorBasedOnValueNM() {
@ -54,8 +55,9 @@ void getColorBasedOnValueNM() {
}
}
void activateLight() {
bool activateLight() {
ledcWrite(ledChannelRed, colorValueArray[colorCounter][0]);
ledcWrite(ledChannelGreen, colorValueArray[colorCounter][1]);
ledcWrite(ledChannelBlue, colorValueArray[colorCounter][2]);
return true;
}