mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-29 05:36:39 +00:00
Add support for ADC0 Moisture
Add support for ``AdcParam`` parameters to control ADC0 Moisture formula by Federico Leoni (#7309)
This commit is contained in:
parent
dac9fa8acf
commit
def4378499
@ -57,6 +57,7 @@ The following binary downloads have been compiled with ESP8266/Arduino library c
|
|||||||
- Change number of rule ``Var``s and ``Mem``s from 5 to 16 (#4933)
|
- Change number of rule ``Var``s and ``Mem``s from 5 to 16 (#4933)
|
||||||
- Add support for max 150 characters in most command parameter strings (#3686, #4754)
|
- Add support for max 150 characters in most command parameter strings (#3686, #4754)
|
||||||
- Add support for GPS as NTP server by Christian Baars and Adrian Scillato
|
- Add support for GPS as NTP server by Christian Baars and Adrian Scillato
|
||||||
|
- Add support for ``AdcParam`` parameters to control ADC0 Moisture formula by Federico Leoni (#7309)
|
||||||
- Add Zigbee coalesce sensor attributes into a single message
|
- Add Zigbee coalesce sensor attributes into a single message
|
||||||
- Add Zigbee better support for Xiaomi Double Switch and Xiaomi Vibration sensor
|
- Add Zigbee better support for Xiaomi Double Switch and Xiaomi Vibration sensor
|
||||||
- Add Deepsleep start delay based on Teleperiod if ``Teleperiod`` differs from 10 or 300
|
- Add Deepsleep start delay based on Teleperiod if ``Teleperiod`` differs from 10 or 300
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
- Changed Settings variable namings
|
- Changed Settings variable namings
|
||||||
- Add Zigbee better support for Xiaomi Double Switch and Xiaomi Vibration sensor
|
- Add Zigbee better support for Xiaomi Double Switch and Xiaomi Vibration sensor
|
||||||
|
- Add support for ``AdcParam`` parameters to control ADC0 Moisture formula by Federico Leoni (#7309)
|
||||||
|
|
||||||
### 8.0.0.1 20191221
|
### 8.0.0.1 20191221
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
#define D_JSON_COUNT "Count"
|
#define D_JSON_COUNT "Count"
|
||||||
#define D_JSON_COUNTER "Counter"
|
#define D_JSON_COUNTER "Counter"
|
||||||
#define D_JSON_CURRENT "Current" // As in Voltage and Current
|
#define D_JSON_CURRENT "Current" // As in Voltage and Current
|
||||||
|
#define D_JSON_DARKNESS "Darkness"
|
||||||
#define D_JSON_DATA "Data"
|
#define D_JSON_DATA "Data"
|
||||||
#define D_JSON_DISTANCE "Distance"
|
#define D_JSON_DISTANCE "Distance"
|
||||||
#define D_JSON_DNSSERVER "DNSServer"
|
#define D_JSON_DNSSERVER "DNSServer"
|
||||||
@ -458,7 +459,6 @@
|
|||||||
#define D_CMND_LONGITUDE "Longitude"
|
#define D_CMND_LONGITUDE "Longitude"
|
||||||
|
|
||||||
// Commands xdrv_16_tuyadimmer.ino
|
// Commands xdrv_16_tuyadimmer.ino
|
||||||
|
|
||||||
#define D_CMND_TUYA_MCU "TuyaMCU"
|
#define D_CMND_TUYA_MCU "TuyaMCU"
|
||||||
#define D_CMND_TUYA_MCU_SEND_STATE "TuyaSend"
|
#define D_CMND_TUYA_MCU_SEND_STATE "TuyaSend"
|
||||||
#define D_JSON_TUYA_MCU_RECEIVED "TuyaReceived"
|
#define D_JSON_TUYA_MCU_RECEIVED "TuyaReceived"
|
||||||
@ -486,7 +486,6 @@
|
|||||||
#define D_JSON_ZIGBEE_ZCL_SENT "ZigbeeZCLSent"
|
#define D_JSON_ZIGBEE_ZCL_SENT "ZigbeeZCLSent"
|
||||||
|
|
||||||
// Commands xdrv_25_A4988_Stepper.ino
|
// Commands xdrv_25_A4988_Stepper.ino
|
||||||
#ifdef USE_A4988_STEPPER
|
|
||||||
#define D_CMND_MOTOR "MOTOR"
|
#define D_CMND_MOTOR "MOTOR"
|
||||||
#define D_JSON_MOTOR_MOVE "doMove"
|
#define D_JSON_MOTOR_MOVE "doMove"
|
||||||
#define D_JSON_MOTOR_ROTATE "doRotate"
|
#define D_JSON_MOTOR_ROTATE "doRotate"
|
||||||
@ -494,10 +493,8 @@
|
|||||||
#define D_JSON_MOTOR_SPR "setSPR"
|
#define D_JSON_MOTOR_SPR "setSPR"
|
||||||
#define D_JSON_MOTOR_RPM "setRPM"
|
#define D_JSON_MOTOR_RPM "setRPM"
|
||||||
#define D_JSON_MOTOR_MIS "setMIS"
|
#define D_JSON_MOTOR_MIS "setMIS"
|
||||||
#endif
|
|
||||||
|
|
||||||
// Commands xdrv_27_Shutter.ino
|
// Commands xdrv_27_Shutter.ino
|
||||||
#ifdef USE_SHUTTER
|
|
||||||
#define D_PRFX_SHUTTER "Shutter"
|
#define D_PRFX_SHUTTER "Shutter"
|
||||||
#define D_CMND_SHUTTER_OPEN "Open"
|
#define D_CMND_SHUTTER_OPEN "Open"
|
||||||
#define D_CMND_SHUTTER_CLOSE "Close"
|
#define D_CMND_SHUTTER_CLOSE "Close"
|
||||||
@ -512,7 +509,9 @@
|
|||||||
#define D_CMND_SHUTTER_CLIBRATION "Calibration"
|
#define D_CMND_SHUTTER_CLIBRATION "Calibration"
|
||||||
#define D_CMND_SHUTTER_MOTORDELAY "MotorDelay"
|
#define D_CMND_SHUTTER_MOTORDELAY "MotorDelay"
|
||||||
#define D_CMND_SHUTTER_FREQUENCY "Frequency"
|
#define D_CMND_SHUTTER_FREQUENCY "Frequency"
|
||||||
#endif
|
|
||||||
|
// Commands xsns_02_analog.ino
|
||||||
|
#define D_CMND_ADCPARAM "AdcParam"
|
||||||
|
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
|
|
||||||
|
@ -311,9 +311,9 @@ enum UserSelectableAdc0 {
|
|||||||
ADC0_LIGHT, // Light sensor
|
ADC0_LIGHT, // Light sensor
|
||||||
ADC0_BUTTON, // Button
|
ADC0_BUTTON, // Button
|
||||||
ADC0_BUTTON_INV,
|
ADC0_BUTTON_INV,
|
||||||
|
ADC0_MOIST, // Moisture
|
||||||
// ADC0_SWITCH, // Switch
|
// ADC0_SWITCH, // Switch
|
||||||
// ADC0_SWITCH_INV,
|
// ADC0_SWITCH_INV,
|
||||||
ADC0_MOIST, // Moisture
|
|
||||||
ADC0_END };
|
ADC0_END };
|
||||||
|
|
||||||
// Programmer selectable ADC0 functionality
|
// Programmer selectable ADC0 functionality
|
||||||
|
@ -193,12 +193,12 @@ void AdcShow(bool json)
|
|||||||
#ifdef USE_WEBSERVER
|
#ifdef USE_WEBSERVER
|
||||||
} else {
|
} else {
|
||||||
WSContentSend_PD(HTTP_SNS_ILLUMINANCE, "", adc_light);
|
WSContentSend_PD(HTTP_SNS_ILLUMINANCE, "", adc_light);
|
||||||
|
|
||||||
#endif // USE_WEBSERVER
|
#endif // USE_WEBSERVER
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ADC0_MOIST == my_adc0) {
|
else if (ADC0_MOIST == my_adc0) {
|
||||||
uint16_t adc_moist = AdcGetMoist();
|
uint16_t adc_moist = AdcGetMoist();
|
||||||
|
|
||||||
if (json) {
|
if (json) {
|
||||||
ResponseAppend_P(JSON_SNS_MOISTURE, "ANALOG", adc_moist);
|
ResponseAppend_P(JSON_SNS_MOISTURE, "ANALOG", adc_moist);
|
||||||
#ifdef USE_WEBSERVER
|
#ifdef USE_WEBSERVER
|
||||||
@ -213,7 +213,6 @@ void AdcShow(bool json)
|
|||||||
* Commands
|
* Commands
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
#define D_CMND_ADCPARAM "AdcParam"
|
|
||||||
const char kAdcCommands[] PROGMEM = "|" // No prefix
|
const char kAdcCommands[] PROGMEM = "|" // No prefix
|
||||||
D_CMND_ADC "|" D_CMND_ADCS "|" D_CMND_ADCPARAM;
|
D_CMND_ADC "|" D_CMND_ADCS "|" D_CMND_ADCPARAM;
|
||||||
|
|
||||||
@ -283,7 +282,8 @@ void CmndAdcParam(void)
|
|||||||
if ((ADC0_TEMP == my_adc0) || (ADC0_LIGHT == my_adc0)) {
|
if ((ADC0_TEMP == my_adc0) || (ADC0_LIGHT == my_adc0)) {
|
||||||
Response_P(PSTR("{\"" D_CMND_ADCPARAM "\":[%d,%d,%d,%s]}"),
|
Response_P(PSTR("{\"" D_CMND_ADCPARAM "\":[%d,%d,%d,%s]}"),
|
||||||
Settings.adc_param_type, Settings.adc_param1, Settings.adc_param2, param3);
|
Settings.adc_param_type, Settings.adc_param1, Settings.adc_param2, param3);
|
||||||
} else if (ADC0_MOIST == my_adc0) {
|
}
|
||||||
|
else if (ADC0_MOIST == my_adc0) {
|
||||||
Response_P(PSTR("{\"" D_CMND_ADCPARAM "\":[%d,%d,%d]}"),
|
Response_P(PSTR("{\"" D_CMND_ADCPARAM "\":[%d,%d,%d]}"),
|
||||||
Settings.adc_param_type, Settings.adc_param1, Settings.adc_param2);
|
Settings.adc_param_type, Settings.adc_param1, Settings.adc_param2);
|
||||||
}
|
}
|
||||||
|
@ -397,22 +397,17 @@ void ChirpEvery100MSecond(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
|
|
||||||
// normaly in i18n.h
|
// normaly in i18n.h
|
||||||
|
|
||||||
// #define D_JSON_MOISTURE "Moisture" // on i18n.h
|
|
||||||
#define D_JSON_DARKNESS "Darkness"
|
|
||||||
|
|
||||||
#ifdef USE_WEBSERVER
|
#ifdef USE_WEBSERVER
|
||||||
// {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
// {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||||
|
|
||||||
const char HTTP_SNS_MOISTURE[] PROGMEM = "{s} " D_JSON_MOISTURE "{m}%s %{e}";
|
const char HTTP_SNS_DARKNESS[] PROGMEM = "{s} " D_JSON_DARKNESS "{m}%s %%{e}";
|
||||||
const char HTTP_SNS_DARKNESS[] PROGMEM = "{s} " D_JSON_DARKNESS "{m}%s %{e}";
|
|
||||||
const char HTTP_SNS_CHIRPVER[] PROGMEM = "{s} CHIRP-sensor %u at address{m}0x%x{e}"
|
const char HTTP_SNS_CHIRPVER[] PROGMEM = "{s} CHIRP-sensor %u at address{m}0x%x{e}"
|
||||||
"{s} FW-version{m}%s {e}"; ;
|
"{s} FW-version{m}%s {e}"; ;
|
||||||
const char HTTP_SNS_CHIRPSLEEP[] PROGMEM = "{s} {m} is sleeping ...{e}";
|
const char HTTP_SNS_CHIRPSLEEP[] PROGMEM = "{s} {m} is sleeping ...{e}";
|
||||||
#endif // USE_WEBSERVER
|
#endif // USE_WEBSERVER
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
|
|
||||||
void ChirpShow(bool json)
|
void ChirpShow(bool json)
|
||||||
@ -420,8 +415,6 @@ void ChirpShow(bool json)
|
|||||||
for (uint32_t i = 0; i < chirp_found_sensors; i++) {
|
for (uint32_t i = 0; i < chirp_found_sensors; i++) {
|
||||||
if (chirp_sensor[i].version) {
|
if (chirp_sensor[i].version) {
|
||||||
// convert double values to string
|
// convert double values to string
|
||||||
char str_moisture[33];
|
|
||||||
dtostrfd(chirp_sensor[i].moisture, 0, str_moisture);
|
|
||||||
char str_temperature[33];
|
char str_temperature[33];
|
||||||
double t_temperature = ((double) chirp_sensor[i].temperature )/10.0;
|
double t_temperature = ((double) chirp_sensor[i].temperature )/10.0;
|
||||||
dtostrfd(t_temperature, Settings.flag2.temperature_resolution, str_temperature);
|
dtostrfd(t_temperature, Settings.flag2.temperature_resolution, str_temperature);
|
||||||
@ -434,9 +427,10 @@ void ChirpShow(bool json)
|
|||||||
else{
|
else{
|
||||||
sprintf(str_version, "%x", chirp_sensor[i].version);
|
sprintf(str_version, "%x", chirp_sensor[i].version);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (json) {
|
if (json) {
|
||||||
if(!chirp_sensor[i].explicitSleep) {
|
if(!chirp_sensor[i].explicitSleep) {
|
||||||
ResponseAppend_P(PSTR(",\"%s%u\":{\"" D_JSON_MOISTURE "\":%s"),chirp_name, i, str_moisture);
|
ResponseAppend_P(PSTR(",\"%s%u\":{\"" D_JSON_MOISTURE "\":%d"), chirp_name, i, chirp_sensor[i].moisture);
|
||||||
if(chirp_sensor[i].temperature!=-1){ // this is the error code -> no temperature
|
if(chirp_sensor[i].temperature!=-1){ // this is the error code -> no temperature
|
||||||
ResponseAppend_P(PSTR(",\"" D_JSON_TEMPERATURE "\":%s"),str_temperature);
|
ResponseAppend_P(PSTR(",\"" D_JSON_TEMPERATURE "\":%s"),str_temperature);
|
||||||
}
|
}
|
||||||
@ -447,6 +441,8 @@ void ChirpShow(bool json)
|
|||||||
}
|
}
|
||||||
#ifdef USE_DOMOTICZ
|
#ifdef USE_DOMOTICZ
|
||||||
if (0 == tele_period) {
|
if (0 == tele_period) {
|
||||||
|
char str_moisture[33];
|
||||||
|
dtostrfd(chirp_sensor[i].moisture, 0, str_moisture);
|
||||||
DomoticzTempHumSensor(str_temperature, str_moisture);
|
DomoticzTempHumSensor(str_temperature, str_moisture);
|
||||||
DomoticzSensor(DZ_ILLUMINANCE,chirp_sensor[i].light); // this is not LUX!!
|
DomoticzSensor(DZ_ILLUMINANCE,chirp_sensor[i].light); // this is not LUX!!
|
||||||
}
|
}
|
||||||
@ -458,7 +454,7 @@ void ChirpShow(bool json)
|
|||||||
WSContentSend_PD(HTTP_SNS_CHIRPSLEEP);
|
WSContentSend_PD(HTTP_SNS_CHIRPSLEEP);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
WSContentSend_PD(HTTP_SNS_MOISTURE, str_moisture);
|
WSContentSend_PD(HTTP_SNS_MOISTURE, "", chirp_sensor[i].moisture);
|
||||||
WSContentSend_PD(HTTP_SNS_DARKNESS, str_light);
|
WSContentSend_PD(HTTP_SNS_DARKNESS, str_light);
|
||||||
if (chirp_sensor[i].temperature!=-1) { // this is the error code -> no temperature
|
if (chirp_sensor[i].temperature!=-1) { // this is the error code -> no temperature
|
||||||
WSContentSend_PD(HTTP_SNS_TEMP, "", str_temperature, TempUnit());
|
WSContentSend_PD(HTTP_SNS_TEMP, "", str_temperature, TempUnit());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user