fix one wire detection, allow multiple sensors and set per setting which one is which
This commit is contained in:
		@@ -55,6 +55,8 @@ HomieSetting<long> waterLevelMax("watermaxlevel", "distance (mm) at maximum wate
 | 
				
			|||||||
HomieSetting<long> waterLevelMin("waterminlevel", "distance (mm) at minimum water level (pumps still covered)");
 | 
					HomieSetting<long> waterLevelMin("waterminlevel", "distance (mm) at minimum water level (pumps still covered)");
 | 
				
			||||||
HomieSetting<long> waterLevelWarn("waterlevelwarn", "warn (mm) if below this water level %");
 | 
					HomieSetting<long> waterLevelWarn("waterlevelwarn", "warn (mm) if below this water level %");
 | 
				
			||||||
HomieSetting<long> waterLevelVol("waterVolume", "(ml) between minimum and maximum");
 | 
					HomieSetting<long> waterLevelVol("waterVolume", "(ml) between minimum and maximum");
 | 
				
			||||||
 | 
					HomieSetting<long> lipoSensorIndex("lipoTempIndex", "index onwire bus for lipo temperature sensor");
 | 
				
			||||||
 | 
					HomieSetting<long> waterSensorIndex("waterTempIndex", "index onwire bus for water temperature sensor");
 | 
				
			||||||
HomieSetting<const char *> ntpServer("ntpServer", "NTP server (pool.ntp.org as default)");
 | 
					HomieSetting<const char *> ntpServer("ntpServer", "NTP server (pool.ntp.org as default)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
#include "PlantCtrl.h"
 | 
					#include "PlantCtrl.h"
 | 
				
			||||||
#include "ControllerConfiguration.h"
 | 
					#include "ControllerConfiguration.h"
 | 
				
			||||||
#include "HomieConfiguration.h"
 | 
					#include "HomieConfiguration.h"
 | 
				
			||||||
#include "DS18B20.h"
 | 
					#include "DallasTemperature.h"
 | 
				
			||||||
#include <Homie.h>
 | 
					#include <Homie.h>
 | 
				
			||||||
#include "time.h"
 | 
					#include "time.h"
 | 
				
			||||||
#include "esp_sleep.h"
 | 
					#include "esp_sleep.h"
 | 
				
			||||||
@@ -20,6 +20,7 @@
 | 
				
			|||||||
#include "WakeReason.h"
 | 
					#include "WakeReason.h"
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include <math.h>
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					#include <OneWire.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const unsigned long TEMPREADCYCLE = 30000; /**< Check temperature all half minutes */
 | 
					const unsigned long TEMPREADCYCLE = 30000; /**< Check temperature all half minutes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -44,12 +45,14 @@ RTC_DATA_ATTR long gotoMode2AfterThisTimestamp = 0;
 | 
				
			|||||||
RTC_DATA_ATTR long rtcDeepSleepTime = 0; /**< Time, when the microcontroller shall be up again */
 | 
					RTC_DATA_ATTR long rtcDeepSleepTime = 0; /**< Time, when the microcontroller shall be up again */
 | 
				
			||||||
RTC_DATA_ATTR int lastPumpRunning = 0;
 | 
					RTC_DATA_ATTR int lastPumpRunning = 0;
 | 
				
			||||||
RTC_DATA_ATTR long lastWaterValue = 0;
 | 
					RTC_DATA_ATTR long lastWaterValue = 0;
 | 
				
			||||||
RTC_DATA_ATTR float rtcLastTemp1 = 0.0f;
 | 
					RTC_DATA_ATTR float rtcLastLipoTemp = 0.0f;
 | 
				
			||||||
RTC_DATA_ATTR float rtcLastTemp2 = 0.0f;
 | 
					RTC_DATA_ATTR float rtcLastWaterTemp = 0.0f;
 | 
				
			||||||
RTC_DATA_ATTR float rtcLastBatteryVoltage = 0.0f;
 | 
					RTC_DATA_ATTR float rtcLastBatteryVoltage = 0.0f;
 | 
				
			||||||
RTC_DATA_ATTR float rtcLastSolarVoltage = 0.0f;
 | 
					RTC_DATA_ATTR float rtcLastSolarVoltage = 0.0f;
 | 
				
			||||||
RTC_DATA_ATTR int gBootCount = 0;
 | 
					RTC_DATA_ATTR int gBootCount = 0;
 | 
				
			||||||
RTC_DATA_ATTR int gCurrentPlant = 0; /**< Value Range: 1 ... 7 (0: no plant needs water) */
 | 
					RTC_DATA_ATTR int gCurrentPlant = 0; /**< Value Range: 1 ... 7 (0: no plant needs water) */
 | 
				
			||||||
 | 
					RTC_DATA_ATTR int rtcLipoTempIndex = -1;
 | 
				
			||||||
 | 
					RTC_DATA_ATTR int rtcWaterTempIndex = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int wakeUpReason = WAKEUP_REASON_UNDEFINED;
 | 
					int wakeUpReason = WAKEUP_REASON_UNDEFINED;
 | 
				
			||||||
bool volatile mode3Active = false; /**< Controller must not sleep */
 | 
					bool volatile mode3Active = false; /**< Controller must not sleep */
 | 
				
			||||||
@@ -63,10 +66,11 @@ bool mConfigured = false;
 | 
				
			|||||||
RunningMedian lipoRawSensor = RunningMedian(5);
 | 
					RunningMedian lipoRawSensor = RunningMedian(5);
 | 
				
			||||||
RunningMedian solarRawSensor = RunningMedian(5);
 | 
					RunningMedian solarRawSensor = RunningMedian(5);
 | 
				
			||||||
RunningMedian waterRawSensor = RunningMedian(5);
 | 
					RunningMedian waterRawSensor = RunningMedian(5);
 | 
				
			||||||
RunningMedian temp1 = RunningMedian(5);
 | 
					RunningMedian lipoTempSensor = RunningMedian(5);
 | 
				
			||||||
RunningMedian temp2 = RunningMedian(5);
 | 
					RunningMedian waterTempSensor = RunningMedian(5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Ds18B20 dallas(SENSOR_DS18B20);
 | 
					OneWire oneWire(SENSOR_DS18B20);
 | 
				
			||||||
 | 
					DallasTemperature sensors(&oneWire);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Plant mPlants[MAX_PLANTS] = {
 | 
					Plant mPlants[MAX_PLANTS] = {
 | 
				
			||||||
    Plant(SENSOR_PLANT0, OUTPUT_PUMP0, 0, &plant0, &mSetting0),
 | 
					    Plant(SENSOR_PLANT0, OUTPUT_PUMP0, 0, &plant0, &mSetting0),
 | 
				
			||||||
@@ -266,21 +270,24 @@ void mode2MQTT()
 | 
				
			|||||||
  sensorSolar.setProperty("volt").send(String(getSolarVoltage()));
 | 
					  sensorSolar.setProperty("volt").send(String(getSolarVoltage()));
 | 
				
			||||||
  startupReason.setProperty("startupReason").send(String(wakeUpReason));
 | 
					  startupReason.setProperty("startupReason").send(String(wakeUpReason));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  float t1 = temp1.getMedian();
 | 
					  rtcLipoTempIndex = lipoSensorIndex.get();
 | 
				
			||||||
  if (t1 != NAN)
 | 
					  rtcWaterTempIndex = waterSensorIndex.get();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  float lipoTempCurrent = lipoTempSensor.getMedian();
 | 
				
			||||||
 | 
					  if (lipoTempCurrent != NAN)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    sensorTemp.setProperty("control").send(String(t1));
 | 
					    sensorTemp.setProperty("lipo").send(String(lipoTempCurrent));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  float t2 = temp2.getMedian();
 | 
					  float t2 = waterTempSensor.getMedian();
 | 
				
			||||||
  if (t2 != NAN)
 | 
					  if (t2 != NAN)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    sensorTemp.setProperty("temp").send(String(t2));
 | 
					    sensorTemp.setProperty("water").send(String(t2));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //give mqtt time, use via publish callback instead?
 | 
					  //give mqtt time, use via publish callback instead?
 | 
				
			||||||
  delay(100);
 | 
					  delay(100);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool lipoTempWarning = t1 != 85 && t2 != 85 && abs(t1 - t2) > 10;
 | 
					  bool lipoTempWarning = lipoTempCurrent != 85 && abs(lipoTempCurrent - t2) > 10;
 | 
				
			||||||
  if (lipoTempWarning)
 | 
					  if (lipoTempWarning)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Serial.println("Lipo temp incorrect, panic mode deepsleep TODO");
 | 
					    Serial.println("Lipo temp incorrect, panic mode deepsleep TODO");
 | 
				
			||||||
@@ -378,8 +385,10 @@ void readDistance()
 | 
				
			|||||||
    long start = millis();
 | 
					    long start = millis();
 | 
				
			||||||
    while (!Serial.available())
 | 
					    while (!Serial.available())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (start + 200 < millis())
 | 
					      if ((start + 500) < millis())
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Serial << "Abort reading hall sensor, not measurement after 200ms" << endl;
 | 
				
			||||||
 | 
					        waterRawSensor.add(0);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -397,8 +406,6 @@ void readDistance()
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
bool readSensors()
 | 
					bool readSensors()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  float temp[2] = {TEMP_MAX_VALUE, TEMP_MAX_VALUE};
 | 
					 | 
				
			||||||
  float *pFloat = temp;
 | 
					 | 
				
			||||||
  bool leaveMode1 = false;
 | 
					  bool leaveMode1 = false;
 | 
				
			||||||
  Serial << "Read Sensors" << endl;
 | 
					  Serial << "Read Sensors" << endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -409,6 +416,7 @@ bool readSensors()
 | 
				
			|||||||
  digitalWrite(OUTPUT_SENSOR, HIGH);
 | 
					  digitalWrite(OUTPUT_SENSOR, HIGH);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  delay(20);
 | 
					  delay(20);
 | 
				
			||||||
 | 
					  sensors.begin();
 | 
				
			||||||
  /* wait before reading something */
 | 
					  /* wait before reading something */
 | 
				
			||||||
  for (int readCnt = 0; readCnt < AMOUNT_SENOR_QUERYS; readCnt++)
 | 
					  for (int readCnt = 0; readCnt < AMOUNT_SENOR_QUERYS; readCnt++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -432,58 +440,6 @@ bool readSensors()
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Serial << "DS18B20" << endl;
 | 
					 | 
				
			||||||
  /* Read the temperature sensors once, as first time 85 degree is returned */
 | 
					 | 
				
			||||||
  Serial << "DS18B20" << String(dallas.readDevices()) << endl;
 | 
					 | 
				
			||||||
  delay(200);
 | 
					 | 
				
			||||||
  if (dallas.readDevices() > 0)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    /* Required to read the temperature once */
 | 
					 | 
				
			||||||
    int readAgain = 5;
 | 
					 | 
				
			||||||
    while (readAgain > 0)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      int sensors = dallas.readAllTemperatures(pFloat, 2);
 | 
					 | 
				
			||||||
      if (sensors > 0)
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        Serial << "t1: " << String(temp[0]) << endl;
 | 
					 | 
				
			||||||
        temp1.add(temp[0]);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if (sensors > 1)
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        Serial << "t2: " << String(temp[1]) << endl;
 | 
					 | 
				
			||||||
        temp2.add(temp[1]);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if ((temp1.getAverage() - rtcLastTemp1 > TEMPERATURE_DELTA_TRIGGER_IN_C) ||
 | 
					 | 
				
			||||||
          (rtcLastTemp1 - temp1.getAverage() > TEMPERATURE_DELTA_TRIGGER_IN_C))
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        leaveMode1 = true;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if ((temp2.getAverage() - rtcLastTemp2 > TEMPERATURE_DELTA_TRIGGER_IN_C) ||
 | 
					 | 
				
			||||||
          (rtcLastTemp2 - temp2.getAverage() > TEMPERATURE_DELTA_TRIGGER_IN_C))
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        leaveMode1 = true;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if (!leaveMode1)
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        readAgain = 0;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      readAgain--;
 | 
					 | 
				
			||||||
      delay(50);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (abs(temp1.getAverage() - rtcLastTemp1) > TEMPERATURE_DELTA_TRIGGER_IN_C)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    leaveMode1 = true;
 | 
					 | 
				
			||||||
    wakeUpReason = WAKEUP_REASON_TEMP1_CHANGE;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  if (abs(temp2.getAverage() - rtcLastTemp2) > TEMPERATURE_DELTA_TRIGGER_IN_C)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    wakeUpReason = WAKEUP_REASON_TEMP2_CHANGE;
 | 
					 | 
				
			||||||
    leaveMode1 = true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (abs(getBatteryVoltage() - rtcLastBatteryVoltage) > LIPO_DELTA_VOLT_ADC)
 | 
					  if (abs(getBatteryVoltage() - rtcLastBatteryVoltage) > LIPO_DELTA_VOLT_ADC)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    wakeUpReason = WAKEUP_REASON_BATTERY_CHANGE;
 | 
					    wakeUpReason = WAKEUP_REASON_BATTERY_CHANGE;
 | 
				
			||||||
@@ -495,13 +451,87 @@ bool readSensors()
 | 
				
			|||||||
    leaveMode1 = true;
 | 
					    leaveMode1 = true;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  rtcLastTemp1 = temp1.getAverage();
 | 
					  rtcLastLipoTemp = lipoTempSensor.getAverage();
 | 
				
			||||||
  rtcLastTemp2 = temp2.getAverage();
 | 
					  rtcLastWaterTemp = waterTempSensor.getAverage();
 | 
				
			||||||
  rtcLastBatteryVoltage = getBatteryVoltage();
 | 
					  rtcLastBatteryVoltage = getBatteryVoltage();
 | 
				
			||||||
  rtcLastSolarVoltage = getSolarVoltage();
 | 
					  rtcLastSolarVoltage = getSolarVoltage();
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  readDistance();
 | 
					  readDistance();
 | 
				
			||||||
  Serial << "Distance sensor " << waterRawSensor.getAverage() << " cm" << endl;
 | 
					  Serial << "Distance sensor " << waterRawSensor.getAverage() << " cm" << endl;
 | 
				
			||||||
 | 
					  int sensorCount = 0;
 | 
				
			||||||
 | 
					  int timeoutTemp = millis() + 2000;
 | 
				
			||||||
 | 
					  while (sensorCount == 0 && millis() < timeoutTemp)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    sensors.begin();
 | 
				
			||||||
 | 
					    sensorCount = sensors.getDeviceCount();
 | 
				
			||||||
 | 
					    Serial << "Waitloop: One wire count: " << sensorCount << endl;
 | 
				
			||||||
 | 
					    delay(200);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  Serial << "One wire count: " << sensorCount << endl;
 | 
				
			||||||
 | 
					  if (sensorCount > 0)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    /* Required to read the temperature once */
 | 
				
			||||||
 | 
					    int readAgain = 5;
 | 
				
			||||||
 | 
					    while (readAgain > 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      sensors.requestTemperatures();
 | 
				
			||||||
 | 
					      if (sensorCount > 0)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        if (rtcLipoTempIndex != -1)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          float temp1Raw = sensors.getTempCByIndex(rtcLipoTempIndex);
 | 
				
			||||||
 | 
					          Serial << "lipoTempCurrent: " << temp1Raw << endl;
 | 
				
			||||||
 | 
					          lipoTempSensor.add(temp1Raw);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          Serial << "missing lipotemp, proceed to mode2: " << endl;
 | 
				
			||||||
 | 
					          leaveMode1 = 1;
 | 
				
			||||||
 | 
					          readAgain = 0;
 | 
				
			||||||
 | 
					          wakeUpReason = WAKEUP_REASON_RTC_MISSING;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (sensorCount > 1 && rtcWaterTempIndex != -1)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        float temp2Raw = sensors.getTempCByIndex(rtcWaterTempIndex);
 | 
				
			||||||
 | 
					        Serial << "waterTempCurrent: " << temp2Raw << endl;
 | 
				
			||||||
 | 
					        waterTempSensor.add(temp2Raw);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if ((lipoTempSensor.getAverage() - rtcLastLipoTemp > TEMPERATURE_DELTA_TRIGGER_IN_C) ||
 | 
				
			||||||
 | 
					          (rtcLastLipoTemp - lipoTempSensor.getAverage() > TEMPERATURE_DELTA_TRIGGER_IN_C))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        leaveMode1 = true;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if ((waterTempSensor.getAverage() - rtcLastWaterTemp > TEMPERATURE_DELTA_TRIGGER_IN_C) ||
 | 
				
			||||||
 | 
					          (rtcLastWaterTemp - waterTempSensor.getAverage() > TEMPERATURE_DELTA_TRIGGER_IN_C))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        leaveMode1 = true;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!leaveMode1)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        readAgain = 0;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      readAgain--;
 | 
				
			||||||
 | 
					      delay(50);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for (int i = 0; i < sensorCount; i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      Serial << "OnwWire sensor " << i << " has value " << sensors.getTempCByIndex(i) << endl;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (abs(lipoTempSensor.getAverage() - rtcLastLipoTemp) > TEMPERATURE_DELTA_TRIGGER_IN_C)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    leaveMode1 = true;
 | 
				
			||||||
 | 
					    wakeUpReason = WAKEUP_REASON_TEMP1_CHANGE;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (abs(waterTempSensor.getAverage() - rtcLastWaterTemp) > TEMPERATURE_DELTA_TRIGGER_IN_C)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    wakeUpReason = WAKEUP_REASON_TEMP2_CHANGE;
 | 
				
			||||||
 | 
					    leaveMode1 = true;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* deactivate the sensors */
 | 
					  /* deactivate the sensors */
 | 
				
			||||||
  digitalWrite(OUTPUT_SENSOR, LOW);
 | 
					  digitalWrite(OUTPUT_SENSOR, LOW);
 | 
				
			||||||
  return leaveMode1;
 | 
					  return leaveMode1;
 | 
				
			||||||
@@ -641,6 +671,7 @@ void systemInit()
 | 
				
			|||||||
  // Set default values
 | 
					  // Set default values
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //in seconds
 | 
					  //in seconds
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  maxTimeBetweenMQTTUpdates.setDefaultValue(120);
 | 
					  maxTimeBetweenMQTTUpdates.setDefaultValue(120);
 | 
				
			||||||
  deepSleepTime.setDefaultValue(60);
 | 
					  deepSleepTime.setDefaultValue(60);
 | 
				
			||||||
  deepSleepNightTime.setDefaultValue(600);
 | 
					  deepSleepNightTime.setDefaultValue(600);
 | 
				
			||||||
@@ -651,7 +682,8 @@ void systemInit()
 | 
				
			|||||||
  waterLevelMin.setDefaultValue(50);   /* 5cm in mm */
 | 
					  waterLevelMin.setDefaultValue(50);   /* 5cm in mm */
 | 
				
			||||||
  waterLevelWarn.setDefaultValue(500); /* 50cm in mm */
 | 
					  waterLevelWarn.setDefaultValue(500); /* 50cm in mm */
 | 
				
			||||||
  waterLevelVol.setDefaultValue(5000); /* 5l in ml */
 | 
					  waterLevelVol.setDefaultValue(5000); /* 5l in ml */
 | 
				
			||||||
 | 
					  lipoSensorIndex.setDefaultValue(0);
 | 
				
			||||||
 | 
					  waterSensorIndex.setDefaultValue(-1);
 | 
				
			||||||
  Homie.setLoopFunction(homieLoop);
 | 
					  Homie.setLoopFunction(homieLoop);
 | 
				
			||||||
  Homie.onEvent(onHomieEvent);
 | 
					  Homie.onEvent(onHomieEvent);
 | 
				
			||||||
  //Homie.disableLogging();
 | 
					  //Homie.disableLogging();
 | 
				
			||||||
@@ -664,11 +696,11 @@ void systemInit()
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      mPlants[i].advertise();
 | 
					      mPlants[i].advertise();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    sensorTemp.advertise("control")
 | 
					    sensorTemp.advertise("lipo")
 | 
				
			||||||
        .setName("Temperature")
 | 
					        .setName("Temperature")
 | 
				
			||||||
        .setDatatype("number")
 | 
					        .setDatatype("number")
 | 
				
			||||||
        .setUnit("°C");
 | 
					        .setUnit("°C");
 | 
				
			||||||
    sensorTemp.advertise("temp")
 | 
					    sensorTemp.advertise("water")
 | 
				
			||||||
        .setName("Temperature")
 | 
					        .setName("Temperature")
 | 
				
			||||||
        .setDatatype("number")
 | 
					        .setDatatype("number")
 | 
				
			||||||
        .setUnit("°C");
 | 
					        .setUnit("°C");
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user