diff --git a/src/connections.cpp b/src/connections.cpp index 3830f28..88c0d2c 100644 --- a/src/connections.cpp +++ b/src/connections.cpp @@ -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..."); diff --git a/src/header.h b/src/header.h index 53d67c9..1a34635 100644 --- a/src/header.h +++ b/src/header.h @@ -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(); diff --git a/src/lightChecker.cpp b/src/lightChecker.cpp index 1a30e1e..79713d5 100644 --- a/src/lightChecker.cpp +++ b/src/lightChecker.cpp @@ -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; } \ No newline at end of file