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_VALVE_COMMAND MQTT_TOPIC_BASE_SUB "/" MQTT_DEVICE_ID "/valve"
#define MQTT_SOIL_PROPERTIES MQTT_TOPIC_BASE_SUB "/" MQTT_DEVICE_ID "/soil" #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 mqttReconnectTimer;
TimerHandle_t wifiReconnectTimer; TimerHandle_t wifiReconnectTimer;
@ -101,10 +102,21 @@ void onMqttMessage(char *topic, byte *payload, unsigned int payload_length) {
} }
Serial.println(); Serial.println();
if (strcmp(topic, MQTT_LIGHT_COMMAND) == 0) {
Serial.println("receiving light treshold...");
Serial.println(topic);
}
if (strcmp(topic, MQTT_VALVE_COMMAND) == 0) { if (strcmp(topic, MQTT_VALVE_COMMAND) == 0) {
Serial.println("toggling valve..."); Serial.println("toggling valve...");
Serial.println(topic); 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) { if (strcmp(topic, MQTT_SOIL_PROPERTIES) == 0) {
Serial.println("receiving soil thresholds..."); Serial.println("receiving soil thresholds...");

View File

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

View File

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