onHomieEvent set
This commit is contained in:
parent
04cb8bbaf0
commit
579e7daa93
@ -19,3 +19,4 @@ board_build.partitions = defaultWithSmallerSpiffs.csv
|
|||||||
lib_deps = ArduinoJson@6.16.1
|
lib_deps = ArduinoJson@6.16.1
|
||||||
https://github.com/homieiot/homie-esp8266.git#v3.0
|
https://github.com/homieiot/homie-esp8266.git#v3.0
|
||||||
OneWire
|
OneWire
|
||||||
|
DallasTemperature
|
||||||
|
@ -147,7 +147,6 @@ void mode2MQTT(){
|
|||||||
float temp[2] = { TEMP_INIT_VALUE, TEMP_INIT_VALUE };
|
float temp[2] = { TEMP_INIT_VALUE, TEMP_INIT_VALUE };
|
||||||
float* pFloat = temp;
|
float* pFloat = temp;
|
||||||
int devices = dallas.readAllTemperatures(pFloat, 2);
|
int devices = dallas.readAllTemperatures(pFloat, 2);
|
||||||
|
|
||||||
if (devices < 2) {
|
if (devices < 2) {
|
||||||
if ((pFloat[0] > TEMP_INIT_VALUE) && (pFloat[0] < TEMP_MAX_VALUE) ) {
|
if ((pFloat[0] > TEMP_INIT_VALUE) && (pFloat[0] < TEMP_MAX_VALUE) ) {
|
||||||
sensorTemp.setProperty("control").send( String(pFloat[0]));
|
sensorTemp.setProperty("control").send( String(pFloat[0]));
|
||||||
@ -271,6 +270,7 @@ void readSensors() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Serial << "DS18B20" << endl;
|
||||||
/* Read the temperature sensors once, as first time 85 degree is returned */
|
/* Read the temperature sensors once, as first time 85 degree is returned */
|
||||||
Serial << "DS18B20" << String(dallas.readDevices()) << endl;
|
Serial << "DS18B20" << String(dallas.readDevices()) << endl;
|
||||||
delay(200);
|
delay(200);
|
||||||
@ -311,7 +311,16 @@ void readSensors() {
|
|||||||
void onHomieEvent(const HomieEvent& event) {
|
void onHomieEvent(const HomieEvent& event) {
|
||||||
const String OFF = String("OFF");
|
const String OFF = String("OFF");
|
||||||
switch(event.type) {
|
switch(event.type) {
|
||||||
|
case HomieEventType::SENDING_STATISTICS:
|
||||||
|
mode2MQTT();
|
||||||
|
Homie.getLogger() << "My statistics" << endl;
|
||||||
|
break;
|
||||||
case HomieEventType::MQTT_READY:
|
case HomieEventType::MQTT_READY:
|
||||||
|
//wait for rtc sync?
|
||||||
|
rtcDeepSleepTime = deepSleepTime.get();
|
||||||
|
mode2MQTT();
|
||||||
|
Homie.getLogger() << "MQTT 1" << endl;
|
||||||
|
|
||||||
plant0.setProperty("switch").send(OFF);
|
plant0.setProperty("switch").send(OFF);
|
||||||
plant1.setProperty("switch").send(OFF);
|
plant1.setProperty("switch").send(OFF);
|
||||||
plant2.setProperty("switch").send(OFF);
|
plant2.setProperty("switch").send(OFF);
|
||||||
@ -320,10 +329,6 @@ void onHomieEvent(const HomieEvent& event) {
|
|||||||
plant5.setProperty("switch").send(OFF);
|
plant5.setProperty("switch").send(OFF);
|
||||||
plant6.setProperty("switch").send(OFF);
|
plant6.setProperty("switch").send(OFF);
|
||||||
|
|
||||||
//wait for rtc sync?
|
|
||||||
rtcDeepSleepTime = deepSleepTime.get();
|
|
||||||
mode2MQTT();
|
|
||||||
Homie.getLogger() << "MQTT 1" << endl;
|
|
||||||
break;
|
break;
|
||||||
case HomieEventType::READY_TO_SLEEP:
|
case HomieEventType::READY_TO_SLEEP:
|
||||||
Homie.getLogger() << "rtsleep" << endl;
|
Homie.getLogger() << "rtsleep" << endl;
|
||||||
@ -335,7 +340,6 @@ void onHomieEvent(const HomieEvent& event) {
|
|||||||
break;
|
break;
|
||||||
case HomieEventType::OTA_SUCCESSFUL:
|
case HomieEventType::OTA_SUCCESSFUL:
|
||||||
digitalWrite(OUTPUT_SENSOR, LOW);
|
digitalWrite(OUTPUT_SENSOR, LOW);
|
||||||
mode3Active=false;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("Event %d\r\n", (uint8_t) event.type);
|
printf("Event %d\r\n", (uint8_t) event.type);
|
||||||
@ -479,7 +483,7 @@ void systemInit(){
|
|||||||
Homie_setFirmware("PlantControl", FIRMWARE_VERSION);
|
Homie_setFirmware("PlantControl", FIRMWARE_VERSION);
|
||||||
|
|
||||||
// Set default values
|
// Set default values
|
||||||
deepSleepTime.setDefaultValue(300000); /* 5 minutes in milliseconds */
|
deepSleepTime.setDefaultValue(30000); /* 30 seconds in milliseconds */
|
||||||
deepSleepNightTime.setDefaultValue(0);
|
deepSleepNightTime.setDefaultValue(0);
|
||||||
wateringDeepSleep.setDefaultValue(60000); /* 1 minute in milliseconds */
|
wateringDeepSleep.setDefaultValue(60000); /* 1 minute in milliseconds */
|
||||||
waterLevelMax.setDefaultValue(1000); /* 100cm in mm */
|
waterLevelMax.setDefaultValue(1000); /* 100cm in mm */
|
||||||
@ -488,6 +492,7 @@ void systemInit(){
|
|||||||
waterLevelVol.setDefaultValue(5000); /* 5l in ml */
|
waterLevelVol.setDefaultValue(5000); /* 5l in ml */
|
||||||
|
|
||||||
Homie.setLoopFunction(homieLoop);
|
Homie.setLoopFunction(homieLoop);
|
||||||
|
Homie.onEvent(onHomieEvent);
|
||||||
Homie.setup();
|
Homie.setup();
|
||||||
|
|
||||||
mConfigured = Homie.isConfigured();
|
mConfigured = Homie.isConfigured();
|
||||||
@ -558,6 +563,11 @@ void systemInit(){
|
|||||||
|
|
||||||
bool mode1(){
|
bool mode1(){
|
||||||
Serial.println("m1");
|
Serial.println("m1");
|
||||||
|
|
||||||
|
struct timeval tv_now;
|
||||||
|
gettimeofday(&tv_now, NULL);
|
||||||
|
Serial << tv_now.tv_sec << " curtime" << endl;
|
||||||
|
|
||||||
readSensors();
|
readSensors();
|
||||||
//queue sensor values for
|
//queue sensor values for
|
||||||
|
|
||||||
@ -699,7 +709,7 @@ void loop() {
|
|||||||
Homie.loop();
|
Homie.loop();
|
||||||
|
|
||||||
if(millis() > 30000 && !mode3Active){
|
if(millis() > 30000 && !mode3Active){
|
||||||
Serial << (millis()/ 1000) << "s gone" << endl;
|
Serial << (millis()/ 1000) << "s alive" << endl;
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
esp_deep_sleep_start();
|
esp_deep_sleep_start();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user