mirror of https://github.com/arendst/Tasmota.git
Add strict rule scale parameters
This commit is contained in:
parent
9b91208bb7
commit
223d14e0fe
|
@ -76,48 +76,47 @@ const char kWifiConfig[] PROGMEM =
|
|||
|
||||
/********************************************************************************************/
|
||||
|
||||
void ResponseCmndNumber(int value)
|
||||
{
|
||||
void ResponseCmndNumber(int value) {
|
||||
Response_P(S_JSON_COMMAND_NVALUE, XdrvMailbox.command, value);
|
||||
}
|
||||
|
||||
void ResponseCmndFloat(float value, uint32_t decimals)
|
||||
{
|
||||
void ResponseCmndFloat(float value, uint32_t decimals) {
|
||||
Response_P(PSTR("{\"%s\":%*_f}"), XdrvMailbox.command, decimals, &value); // Return float value without quotes
|
||||
}
|
||||
|
||||
void ResponseCmndIdxNumber(int value)
|
||||
{
|
||||
void ResponseCmndIdxNumber(int value) {
|
||||
Response_P(S_JSON_COMMAND_INDEX_NVALUE, XdrvMailbox.command, XdrvMailbox.index, value);
|
||||
}
|
||||
|
||||
void ResponseCmndChar_P(const char* value)
|
||||
{
|
||||
void ResponseCmndChar_P(const char* value) {
|
||||
Response_P(S_JSON_COMMAND_SVALUE, XdrvMailbox.command, value);
|
||||
}
|
||||
|
||||
void ResponseCmndChar(const char* value)
|
||||
{
|
||||
void ResponseCmndChar(const char* value) {
|
||||
Response_P(S_JSON_COMMAND_SVALUE, XdrvMailbox.command, EscapeJSONString(value).c_str());
|
||||
}
|
||||
|
||||
void ResponseCmndStateText(uint32_t value)
|
||||
{
|
||||
void ResponseCmndStateText(uint32_t value) {
|
||||
ResponseCmndChar(GetStateText(value));
|
||||
}
|
||||
|
||||
void ResponseCmndDone(void)
|
||||
{
|
||||
ResponseCmndChar(PSTR(D_JSON_DONE));
|
||||
void ResponseCmndDone(void) {
|
||||
ResponseCmndChar_P(PSTR(D_JSON_DONE));
|
||||
}
|
||||
|
||||
void ResponseCmndIdxChar(const char* value)
|
||||
{
|
||||
void ResponseCmndError(void) {
|
||||
ResponseCmndChar_P(PSTR(D_JSON_ERROR));
|
||||
}
|
||||
|
||||
void ResponseCmndIdxChar(const char* value) {
|
||||
Response_P(S_JSON_COMMAND_INDEX_SVALUE, XdrvMailbox.command, XdrvMailbox.index, EscapeJSONString(value).c_str());
|
||||
}
|
||||
|
||||
void ResponseCmndAll(uint32_t text_index, uint32_t count)
|
||||
{
|
||||
void ResponseCmndIdxError(void) {
|
||||
ResponseCmndIdxChar(PSTR(D_JSON_ERROR));
|
||||
}
|
||||
|
||||
void ResponseCmndAll(uint32_t text_index, uint32_t count) {
|
||||
uint32_t real_index = text_index;
|
||||
ResponseClear();
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
|
|
|
@ -2297,7 +2297,7 @@ void CmndScale(void)
|
|||
{
|
||||
if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= MAX_RULE_VARS)) {
|
||||
if (XdrvMailbox.data_len > 0) {
|
||||
if (ArgC() > 1) { // Process parameter entry
|
||||
if (ArgC() == 5) { // Process parameter entry
|
||||
char argument[XdrvMailbox.data_len];
|
||||
|
||||
float valueIN = CharToFloat(ArgV(argument, 1));
|
||||
|
@ -2308,6 +2308,9 @@ void CmndScale(void)
|
|||
float value = map_double(valueIN, fromLow, fromHigh, toLow, toHigh);
|
||||
dtostrfd(value, Settings.flag2.calc_resolution, rules_vars[XdrvMailbox.index -1]);
|
||||
bitSet(Rules.vars_event, XdrvMailbox.index -1);
|
||||
} else {
|
||||
ResponseCmndIdxError();
|
||||
return;
|
||||
}
|
||||
}
|
||||
ResponseCmndIdxChar(rules_vars[XdrvMailbox.index -1]);
|
||||
|
|
|
@ -1189,7 +1189,7 @@ void CmndKnxPa(void)
|
|||
|
||||
if ( ((pa_area == 0) && (pa_line == 0) && (pa_member == 0))
|
||||
|| (pa_area > 15) || (pa_line > 15) || (pa_member > 255) ) {
|
||||
Response_P (PSTR("{\"%s\":\"" D_ERROR "\"}"), XdrvMailbox.command );
|
||||
ResponseCmndError();
|
||||
return;
|
||||
} // Invalid command
|
||||
|
||||
|
@ -1220,7 +1220,7 @@ void CmndKnxGa(void)
|
|||
|| (ga_area > 31) || (ga_line > 7) || (ga_member > 255)
|
||||
|| (ga_option < 0) || ((ga_option > KNX_MAX_device_param ) && (ga_option != KNX_Empty))
|
||||
|| (!device_param[ga_option-1].show) ) {
|
||||
Response_P (PSTR("{\"%s\":\"" D_ERROR "\"}"), XdrvMailbox.command );
|
||||
ResponseCmndIdxError();
|
||||
return;
|
||||
} // Invalid command
|
||||
|
||||
|
@ -1239,7 +1239,7 @@ void CmndKnxGa(void)
|
|||
if ( (XdrvMailbox.payload <= Settings.knx_GA_registered) && (XdrvMailbox.payload > 0) ) {
|
||||
XdrvMailbox.index = XdrvMailbox.payload;
|
||||
} else {
|
||||
Response_P (PSTR("{\"%s\":\"" D_ERROR "\"}"), XdrvMailbox.command );
|
||||
ResponseCmndIdxError();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1250,7 +1250,7 @@ void CmndKnxGa(void)
|
|||
KNX_addr.ga.area, KNX_addr.ga.line, KNX_addr.ga.member );
|
||||
}
|
||||
} else {
|
||||
ResponseCmndNumber (Settings.knx_GA_registered );
|
||||
ResponseCmndIdxNumber (Settings.knx_GA_registered );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1271,7 +1271,7 @@ void CmndKnxCb(void)
|
|||
|| (cb_area > 31) || (cb_line > 7) || (cb_member > 255)
|
||||
|| (cb_option < 0) || ((cb_option > KNX_MAX_device_param ) && (cb_option != KNX_Empty))
|
||||
|| (!device_param[cb_option-1].show) ) {
|
||||
Response_P (PSTR("{\"%s\":\"" D_ERROR "\"}"), XdrvMailbox.command );
|
||||
ResponseCmndIdxError();
|
||||
return;
|
||||
} // Invalid command
|
||||
|
||||
|
@ -1290,7 +1290,7 @@ void CmndKnxCb(void)
|
|||
if ( (XdrvMailbox.payload <= Settings.knx_CB_registered) && (XdrvMailbox.payload > 0) ) {
|
||||
XdrvMailbox.index = XdrvMailbox.payload;
|
||||
} else {
|
||||
Response_P (PSTR("{\"%s\":\"" D_ERROR "\"}"), XdrvMailbox.command );
|
||||
ResponseCmndIdxError();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1301,7 +1301,7 @@ void CmndKnxCb(void)
|
|||
KNX_addr.ga.area, KNX_addr.ga.line, KNX_addr.ga.member );
|
||||
}
|
||||
} else {
|
||||
ResponseCmndNumber (Settings.knx_CB_registered );
|
||||
ResponseCmndIdxNumber (Settings.knx_CB_registered );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -188,7 +188,7 @@ void CmndDeepsleepTime(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
Response_P(S_JSON_COMMAND_NVALUE, XdrvMailbox.command, Settings.deepsleep);
|
||||
ResponseCmndNumber(Settings.deepsleep);
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
|
|
Loading…
Reference in New Issue