mirror of https://github.com/arendst/Tasmota.git
Add support for CHIRP soil moisture sensor by Christian Baars
Add support for CHIRP soil moisture sensor by Christian Baars
This commit is contained in:
parent
6adfed6dd1
commit
afb39aa680
|
@ -1,8 +1,10 @@
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* 6.6.0.4 20190806
|
* 6.6.0.4 20190806
|
||||||
|
* Add support for CHIRP soil moisture sensor by Christian Baars
|
||||||
*
|
*
|
||||||
* 6.6.0.3 20190725
|
* 6.6.0.3 20190725
|
||||||
* Change filename of configuration backup from using FriendlyName1 to Hostname solving diacritic issues (#2422)
|
* Change filename of configuration backup from using FriendlyName1 to Hostname solving diacritic issues (#2422)
|
||||||
|
* Change Store AWS IoT Private Key and Certificate in SPI Flash avoiding device-specific compilations
|
||||||
* Upgrade library IRRemoteEsp8266 to 2.6.4, now using sendPioneer()
|
* Upgrade library IRRemoteEsp8266 to 2.6.4, now using sendPioneer()
|
||||||
* Add support for MAX31865 Thermocouple sensor by Alberto Lopez Siemens
|
* Add support for MAX31865 Thermocouple sensor by Alberto Lopez Siemens
|
||||||
* Add option 0 to Width1 (Marker), Width2 (Second), Width3 (Minute) and Width4 (Hour) disabling display (#6152)
|
* Add option 0 to Width1 (Marker), Width2 (Second), Width3 (Minute) and Width4 (Hour) disabling display (#6152)
|
||||||
|
@ -10,7 +12,6 @@
|
||||||
* Add define USE_ENERGY_MARGIN_DETECTION to disable Energy Margin and Power Limit detection
|
* Add define USE_ENERGY_MARGIN_DETECTION to disable Energy Margin and Power Limit detection
|
||||||
* Add define USE_ENERGY_POWER_LIMIT to disable Energy Power Limit detection while Energy Margin detection is active
|
* Add define USE_ENERGY_POWER_LIMIT to disable Energy Power Limit detection while Energy Margin detection is active
|
||||||
* Add allow repeat/longpress for IRSend raw, introduced IRSend<r> option (#6074)
|
* Add allow repeat/longpress for IRSend raw, introduced IRSend<r> option (#6074)
|
||||||
* Change Store AWS IoT Private Key and Certificate in SPI Flash avoiding device-specific compilations
|
|
||||||
* Add SetOption68 to enable multi-channel PWM instead of a single light (#6134)
|
* Add SetOption68 to enable multi-channel PWM instead of a single light (#6134)
|
||||||
*
|
*
|
||||||
* 6.6.0.2 20190714
|
* 6.6.0.2 20190714
|
||||||
|
|
|
@ -367,6 +367,7 @@
|
||||||
#define USE_ADE7953 // Enable ADE7953 Energy monitor as used on Shelly 2.5 (I2C address 0x38) (+1k5)
|
#define USE_ADE7953 // Enable ADE7953 Energy monitor as used on Shelly 2.5 (I2C address 0x38) (+1k5)
|
||||||
// #define USE_VL53L0X // Enable VL53L0x time of flight sensor (I2C address 0x29) (+4k code)
|
// #define USE_VL53L0X // Enable VL53L0x time of flight sensor (I2C address 0x29) (+4k code)
|
||||||
// #define USE_MLX90614 // Enable MLX90614 ir temp sensor (I2C address 0x5a) (+0.6k code)
|
// #define USE_MLX90614 // Enable MLX90614 ir temp sensor (I2C address 0x5a) (+0.6k code)
|
||||||
|
// #define USE_CHIRP // Enable CHIRP soil moisture sensor (variable I2C address, default 0x20)
|
||||||
|
|
||||||
// #define USE_DISPLAY // Add I2C Display Support (+2k code)
|
// #define USE_DISPLAY // Add I2C Display Support (+2k code)
|
||||||
#define USE_DISPLAY_MODES1TO5 // Enable display mode 1 to 5 in addition to mode 0
|
#define USE_DISPLAY_MODES1TO5 // Enable display mode 1 to 5 in addition to mode 0
|
||||||
|
|
|
@ -81,7 +81,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
|
||||||
uint32_t tuya_show_dimmer : 1; // bit 15 (v6.5.0.15) - SetOption65 - Enable or Disable Dimmer slider control
|
uint32_t tuya_show_dimmer : 1; // bit 15 (v6.5.0.15) - SetOption65 - Enable or Disable Dimmer slider control
|
||||||
uint32_t tuya_dimmer_range_255 : 1; // bit 16 (v6.6.0.1) - SetOption66 - Enable or Disable Dimmer range 255 slider control
|
uint32_t tuya_dimmer_range_255 : 1; // bit 16 (v6.6.0.1) - SetOption66 - Enable or Disable Dimmer range 255 slider control
|
||||||
uint32_t buzzer_enable : 1; // bit 17 (v6.6.0.1) - SetOption67 - Enable buzzer when available
|
uint32_t buzzer_enable : 1; // bit 17 (v6.6.0.1) - SetOption67 - Enable buzzer when available
|
||||||
uint32_t pmw_multi_channels : 1; // bit 18 (v6.6.0.3) - SetOption68 - Enable multi-channels PWM insteas of Color PWM
|
uint32_t pwm_multi_channels : 1; // bit 18 (v6.6.0.3) - SetOption68 - Enable multi-channels PWM instead of Color PWM
|
||||||
uint32_t spare19 : 1;
|
uint32_t spare19 : 1;
|
||||||
uint32_t spare20 : 1;
|
uint32_t spare20 : 1;
|
||||||
uint32_t spare21 : 1;
|
uint32_t spare21 : 1;
|
||||||
|
|
|
@ -59,7 +59,6 @@ const uint8_t MAX_COUNTERS = 4; // Max number of counter sensors
|
||||||
const uint8_t MAX_TIMERS = 16; // Max number of Timers
|
const uint8_t MAX_TIMERS = 16; // Max number of Timers
|
||||||
const uint8_t MAX_PULSETIMERS = 8; // Max number of supported pulse timers
|
const uint8_t MAX_PULSETIMERS = 8; // Max number of supported pulse timers
|
||||||
const uint8_t MAX_FRIENDLYNAMES = 4; // Max number of Friendly names
|
const uint8_t MAX_FRIENDLYNAMES = 4; // Max number of Friendly names
|
||||||
const uint8_t MAX_HUE_DEVICES = 15; // Max number of Philips Hue device per emulation
|
|
||||||
const uint8_t MAX_DOMOTICZ_IDX = 4; // Max number of Domoticz device, key and switch indices
|
const uint8_t MAX_DOMOTICZ_IDX = 4; // Max number of Domoticz device, key and switch indices
|
||||||
const uint8_t MAX_DOMOTICZ_SNS_IDX = 12; // Max number of Domoticz sensors indices
|
const uint8_t MAX_DOMOTICZ_SNS_IDX = 12; // Max number of Domoticz sensors indices
|
||||||
const uint8_t MAX_KNX_GA = 10; // Max number of KNX Group Addresses to read that can be set
|
const uint8_t MAX_KNX_GA = 10; // Max number of KNX Group Addresses to read that can be set
|
||||||
|
@ -72,6 +71,8 @@ const uint8_t MAX_RULE_MEMS = 5; // Max number of saved vars
|
||||||
const uint8_t MAX_RULE_SETS = 3; // Max number of rule sets of size 512 characters
|
const uint8_t MAX_RULE_SETS = 3; // Max number of rule sets of size 512 characters
|
||||||
const uint16_t MAX_RULE_SIZE = 512; // Max number of characters in rules
|
const uint16_t MAX_RULE_SIZE = 512; // Max number of characters in rules
|
||||||
|
|
||||||
|
const uint8_t MAX_HUE_DEVICES = 15; // Max number of Philips Hue device per emulation
|
||||||
|
|
||||||
const char MQTT_TOKEN_PREFIX[] PROGMEM = "%prefix%"; // To be substituted by mqtt_prefix[x]
|
const char MQTT_TOKEN_PREFIX[] PROGMEM = "%prefix%"; // To be substituted by mqtt_prefix[x]
|
||||||
const char MQTT_TOKEN_TOPIC[] PROGMEM = "%topic%"; // To be substituted by mqtt_topic, mqtt_grptopic, mqtt_buttontopic, mqtt_switchtopic
|
const char MQTT_TOKEN_TOPIC[] PROGMEM = "%topic%"; // To be substituted by mqtt_topic, mqtt_grptopic, mqtt_buttontopic, mqtt_switchtopic
|
||||||
const char WIFI_HOSTNAME[] = "%s-%04d"; // Expands to <MQTT_TOPIC>-<last 4 decimal chars of MAC address>
|
const char WIFI_HOSTNAME[] = "%s-%04d"; // Expands to <MQTT_TOPIC>-<last 4 decimal chars of MAC address>
|
||||||
|
|
|
@ -1453,9 +1453,9 @@ void GpioInit(void)
|
||||||
#endif // USE_SM16716
|
#endif // USE_SM16716
|
||||||
|
|
||||||
// post-process for lights
|
// post-process for lights
|
||||||
if (Settings.flag3.pmw_multi_channels) {
|
if (Settings.flag3.pwm_multi_channels) {
|
||||||
uint32_t pwm_channels = (light_type & 7) > LST_MAX ? LST_MAX : (light_type & 7);
|
uint32_t pwm_channels = (light_type & 7) > LST_MAX ? LST_MAX : (light_type & 7);
|
||||||
if (0 == pwm_channels) pwm_channels = 1;
|
if (0 == pwm_channels) { pwm_channels = 1; }
|
||||||
devices_present += pwm_channels - 1; // add the pwm channels controls at the end
|
devices_present += pwm_channels - 1; // add the pwm channels controls at the end
|
||||||
}
|
}
|
||||||
#endif // USE_LIGHT
|
#endif // USE_LIGHT
|
||||||
|
|
|
@ -131,7 +131,7 @@ void KNX_CB_Action(message_t const &msg, void *arg);
|
||||||
#define USE_ADE7953 // Enable ADE7953 Energy monitor as used on Shelly 2.5 (I2C address 0x38) (+1k5)
|
#define USE_ADE7953 // Enable ADE7953 Energy monitor as used on Shelly 2.5 (I2C address 0x38) (+1k5)
|
||||||
//#define USE_VL53L0X // Enable VL53L0x time of flight sensor (I2C address 0x29) (+4k code)
|
//#define USE_VL53L0X // Enable VL53L0x time of flight sensor (I2C address 0x29) (+4k code)
|
||||||
//#define USE_MLX90614 // Enable MLX90614 ir temp sensor (I2C address 0x5a) (+0.6k code)
|
//#define USE_MLX90614 // Enable MLX90614 ir temp sensor (I2C address 0x5a) (+0.6k code)
|
||||||
//#define USE_CHIRP // Enable CHIRP soil moisture sensor (variable I2C address)
|
//#define USE_CHIRP // Enable CHIRP soil moisture sensor (variable I2C address, default 0x20)
|
||||||
|
|
||||||
#define USE_MHZ19 // Add support for MH-Z19 CO2 sensor (+2k code)
|
#define USE_MHZ19 // Add support for MH-Z19 CO2 sensor (+2k code)
|
||||||
#define USE_SENSEAIR // Add support for SenseAir K30, K70 and S8 CO2 sensor (+2k3 code)
|
#define USE_SENSEAIR // Add support for SenseAir K30, K70 and S8 CO2 sensor (+2k3 code)
|
||||||
|
|
|
@ -415,7 +415,9 @@ void GetFeatures(void)
|
||||||
#ifdef USE_MAX31865
|
#ifdef USE_MAX31865
|
||||||
feature_sns2 |= 0x10000000;
|
feature_sns2 |= 0x10000000;
|
||||||
#endif
|
#endif
|
||||||
// feature_sns2 |= 0x20000000;
|
#ifdef USE_CHIRP
|
||||||
|
feature_sns2 |= 0x20000000;
|
||||||
|
#endif
|
||||||
// feature_sns2 |= 0x40000000;
|
// feature_sns2 |= 0x40000000;
|
||||||
// feature_sns2 |= 0x80000000;
|
// feature_sns2 |= 0x80000000;
|
||||||
|
|
||||||
|
|
|
@ -1359,7 +1359,7 @@ void LightInit(void)
|
||||||
|
|
||||||
light_device = devices_present;
|
light_device = devices_present;
|
||||||
light_subtype = (light_type & 7) > LST_MAX ? LST_MAX : (light_type & 7); // Always 0 - LST_MAX (5)
|
light_subtype = (light_type & 7) > LST_MAX ? LST_MAX : (light_type & 7); // Always 0 - LST_MAX (5)
|
||||||
light_pwm_multi_channels = Settings.flag3.pmw_multi_channels;
|
light_pwm_multi_channels = Settings.flag3.pwm_multi_channels;
|
||||||
|
|
||||||
#if defined(USE_WS2812) && (USE_WS2812_CTYPE > NEO_3LED)
|
#if defined(USE_WS2812) && (USE_WS2812_CTYPE > NEO_3LED)
|
||||||
if (LT_WS2812 == light_type) {
|
if (LT_WS2812 == light_type) {
|
||||||
|
|
|
@ -246,7 +246,7 @@ char prev_y_str[24] = "\0";
|
||||||
uint8_t getLocalLightSubtype(uint8_t device) {
|
uint8_t getLocalLightSubtype(uint8_t device) {
|
||||||
if (light_type) {
|
if (light_type) {
|
||||||
if (device >= light_device) {
|
if (device >= light_device) {
|
||||||
if (Settings.flag3.pmw_multi_channels) {
|
if (Settings.flag3.pwm_multi_channels) {
|
||||||
return LST_SINGLE; // If SetOption68, each channel acts like a dimmer
|
return LST_SINGLE; // If SetOption68, each channel acts like a dimmer
|
||||||
} else {
|
} else {
|
||||||
return light_subtype; // the actual light
|
return light_subtype; // the actual light
|
||||||
|
@ -511,7 +511,7 @@ void HueLights(String *path)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (light_type && (local_light_subtype >= LST_SINGLE)) {
|
if (light_type && (local_light_subtype >= LST_SINGLE)) {
|
||||||
if (!Settings.flag3.pmw_multi_channels) {
|
if (!Settings.flag3.pwm_multi_channels) {
|
||||||
light_state.getHSB(&hue, &sat, nullptr);
|
light_state.getHSB(&hue, &sat, nullptr);
|
||||||
bri = light_state.getBri(); // get the combined bri for CT and RGB, not only the RGB one
|
bri = light_state.getBri(); // get the combined bri for CT and RGB, not only the RGB one
|
||||||
ct = light_state.getCT();
|
ct = light_state.getCT();
|
||||||
|
@ -614,7 +614,7 @@ void HueLights(String *path)
|
||||||
}
|
}
|
||||||
if (change) {
|
if (change) {
|
||||||
if (light_type && (local_light_subtype > LST_NONE)) { // not relay
|
if (light_type && (local_light_subtype > LST_NONE)) { // not relay
|
||||||
if (!Settings.flag3.pmw_multi_channels) {
|
if (!Settings.flag3.pwm_multi_channels) {
|
||||||
if (g_gotct) {
|
if (g_gotct) {
|
||||||
light_controller.changeCTB(ct, bri);
|
light_controller.changeCTB(ct, bri);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -116,7 +116,8 @@ a_setoption = [[
|
||||||
"Disable Dimmer slider control",
|
"Disable Dimmer slider control",
|
||||||
"Disable Dimmer range 255 slider control",
|
"Disable Dimmer range 255 slider control",
|
||||||
"Enable buzzer when available",
|
"Enable buzzer when available",
|
||||||
"","",
|
"Enable multi-channels PWM instead of Color PWM",
|
||||||
|
"",
|
||||||
"","","","",
|
"","","","",
|
||||||
"","","","",
|
"","","","",
|
||||||
"","","",""
|
"","","",""
|
||||||
|
@ -157,7 +158,7 @@ a_features = [[
|
||||||
"USE_THEO_V2","USE_ALECTO_V2","USE_AZ7798","USE_MAX31855",
|
"USE_THEO_V2","USE_ALECTO_V2","USE_AZ7798","USE_MAX31855",
|
||||||
"USE_PN532_I2C","USE_MAX44009","USE_SCD30","USE_HRE",
|
"USE_PN532_I2C","USE_MAX44009","USE_SCD30","USE_HRE",
|
||||||
"USE_ADE7953","USE_SPS30","USE_VL53L0X","USE_MLX90614",
|
"USE_ADE7953","USE_SPS30","USE_VL53L0X","USE_MLX90614",
|
||||||
"USE_MAX31865","","",""]]
|
"USE_MAX31865","USE_CHIRP","",""]]
|
||||||
|
|
||||||
usage = "usage: decode-status {-d | -f} arg"
|
usage = "usage: decode-status {-d | -f} arg"
|
||||||
parser = OptionParser(usage)
|
parser = OptionParser(usage)
|
||||||
|
|
Loading…
Reference in New Issue