reduced mem C001 C002

This commit is contained in:
Edwin Eefting
2017-04-03 23:32:26 +02:00
parent d15139501c
commit 7941bc6158
4 changed files with 55 additions and 45 deletions
+1 -1
View File
@@ -220,7 +220,7 @@ try:
total['bss']-base['bss'], total['bss']-base['bss'],
total['irom0_text']-base['irom0_text'], total['irom0_text']-base['irom0_text'],
)) ))
except: finally:
enable_all() enable_all()
raise raise
+24
View File
@@ -2526,5 +2526,29 @@ void ArduinoOTAInit()
} }
String getBearing(int degrees)
{
const char* bearing[] = {
PSTR("N"),
PSTR("NNE"),
PSTR("NE"),
PSTR("ENE"),
PSTR("E"),
PSTR("ESE"),
PSTR("SE"),
PSTR("SSE"),
PSTR("S"),
PSTR("SSW"),
PSTR("SW"),
PSTR("WSW"),
PSTR("W"),
PSTR("WNW"),
PSTR("NW"),
PSTR("NNW")
};
return(bearing[int(degrees/22.5)]);
}
#endif #endif
+3 -18
View File
@@ -157,24 +157,9 @@ boolean CPlugin_001(byte function, struct EventStruct *event, String& string)
case (SENSOR_TYPE_WIND): case (SENSOR_TYPE_WIND):
url += PSTR("&svalue="); // WindDir in degrees; WindDir as text; Wind speed average ; Wind speed gust; 0 url += PSTR("&svalue="); // WindDir in degrees; WindDir as text; Wind speed average ; Wind speed gust; 0
url += toString(UserVar[event->BaseVarIndex],ExtraTaskSettings.TaskDeviceValueDecimals[0]); url += toString(UserVar[event->BaseVarIndex],ExtraTaskSettings.TaskDeviceValueDecimals[0]);
const char* bearing[] = { url += ";";
PSTR(";N;"), url += getBearing(UserVar[event->BaseVarIndex]);
PSTR(";NNE;"), url += ";";
PSTR(";NE;"),
PSTR(";ENE;"),
PSTR(";E;"),
PSTR(";ESE;"),
PSTR(";SE;"),
PSTR(";SSE;"),
PSTR(";S;"),
PSTR(";SSW;"),
PSTR(";SW;"),
PSTR(";WSW;"),
PSTR(";W;"),
PSTR(";WNW;"),
PSTR(";NW;"),
PSTR(";NNW;") };
url += bearing[int(UserVar[event->BaseVarIndex] / 22.5)];
// Domoticz expects the wind speed in (m/s * 10) // Domoticz expects the wind speed in (m/s * 10)
url += toString((UserVar[event->BaseVarIndex + 1] * 10),ExtraTaskSettings.TaskDeviceValueDecimals[1]); url += toString((UserVar[event->BaseVarIndex + 1] * 10),ExtraTaskSettings.TaskDeviceValueDecimals[1]);
url += ";"; url += ";";
+27 -26
View File
@@ -50,15 +50,15 @@ boolean CPlugin_002(byte function, struct EventStruct *event, String& string)
if (root.success()) if (root.success())
{ {
long idx = root["idx"]; long idx = root[F("idx")];
float nvalue = root["nvalue"]; float nvalue = root[F("nvalue")];
long nvaluealt = root["nvalue"]; long nvaluealt = root[F("nvalue")];
//const char* name = root["name"]; // Not used //const char* name = root["name"]; // Not used
//const char* svalue = root["svalue"]; // Not used //const char* svalue = root["svalue"]; // Not used
const char* svalue1 = root["svalue1"]; const char* svalue1 = root[F("svalue1")];
//const char* svalue2 = root["svalue2"]; // Not used //const char* svalue2 = root["svalue2"]; // Not used
//const char* svalue3 = root["svalue3"]; // Not used //const char* svalue3 = root["svalue3"]; // Not used
const char* switchtype = root["switchType"]; // Expect "On/Off" or "dimmer" const char* switchtype = root[F("switchType")]; // Expect "On/Off" or "dimmer"
if (nvalue == 0) if (nvalue == 0)
nvalue = nvaluealt; nvalue = nvaluealt;
if ((int)switchtype == 0) if ((int)switchtype == 0)
@@ -138,7 +138,7 @@ boolean CPlugin_002(byte function, struct EventStruct *event, String& string)
JsonObject& root = jsonBuffer.createObject(); JsonObject& root = jsonBuffer.createObject();
root["idx"] = event->idx; root[F("idx")] = event->idx;
String values; String values;
char str[80]; char str[80];
@@ -146,45 +146,45 @@ boolean CPlugin_002(byte function, struct EventStruct *event, String& string)
switch (event->sensorType) switch (event->sensorType)
{ {
case SENSOR_TYPE_SINGLE: // single value sensor, used for Dallas, BH1750, etc case SENSOR_TYPE_SINGLE: // single value sensor, used for Dallas, BH1750, etc
root["nvalue"] = 0; root[F("nvalue")] = 0;
values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]); values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]);
values.toCharArray(str, 80); values.toCharArray(str, 80);
root["svalue"] = str; root[F("svalue")] = str;
break; break;
case SENSOR_TYPE_LONG: // single LONG value, stored in two floats (rfid tags) case SENSOR_TYPE_LONG: // single LONG value, stored in two floats (rfid tags)
root["nvalue"] = 0; root[F("nvalue")] = 0;
values = (unsigned long)UserVar[event->BaseVarIndex] + ((unsigned long)UserVar[event->BaseVarIndex + 1] << 16); values = (unsigned long)UserVar[event->BaseVarIndex] + ((unsigned long)UserVar[event->BaseVarIndex + 1] << 16);
values.toCharArray(str, 80); values.toCharArray(str, 80);
root["svalue"] = str; root[F("svalue")] = str;
break; break;
case SENSOR_TYPE_DUAL: // any sensor that uses two simple values case SENSOR_TYPE_DUAL: // any sensor that uses two simple values
root["nvalue"] = 0; root[F("nvalue")] = 0;
values = toString(UserVar[event->BaseVarIndex ], ExtraTaskSettings.TaskDeviceValueDecimals[0]); values = toString(UserVar[event->BaseVarIndex ], ExtraTaskSettings.TaskDeviceValueDecimals[0]);
values += ";"; values += ";";
values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]); values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]);
values.toCharArray(str, 80); values.toCharArray(str, 80);
root["svalue"] = str; root[F("svalue")] = str;
break; break;
case SENSOR_TYPE_TEMP_HUM: // temp + hum + hum_stat, used for DHT11 case SENSOR_TYPE_TEMP_HUM: // temp + hum + hum_stat, used for DHT11
root["nvalue"] = 0; root[F("nvalue")] = 0;
values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]); values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]);
values += ";"; values += ";";
values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]); values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]);
values += ";0"; values += ";0";
values.toCharArray(str, 80); values.toCharArray(str, 80);
root["svalue"] = str; root[F("svalue")] = str;
break; break;
case SENSOR_TYPE_TEMP_BARO: // temp + hum + hum_stat + bar + bar_fore, used for BMP085 case SENSOR_TYPE_TEMP_BARO: // temp + hum + hum_stat + bar + bar_fore, used for BMP085
root["nvalue"] = 0; root[F("nvalue")] = 0;
values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]); values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]);
values += ";0;0;"; values += ";0;0;";
values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]); values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]);
values += ";0"; values += ";0";
values.toCharArray(str, 80); values.toCharArray(str, 80);
root["svalue"] = str; root[F("svalue")] = str;
break; break;
case SENSOR_TYPE_TEMP_HUM_BARO: // temp + hum + hum_stat + bar + bar_fore, used for BME280 case SENSOR_TYPE_TEMP_HUM_BARO: // temp + hum + hum_stat + bar + bar_fore, used for BME280
root["nvalue"] = 0; root[F("nvalue")] = 0;
values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]); values = toString(UserVar[event->BaseVarIndex], ExtraTaskSettings.TaskDeviceValueDecimals[0]);
values += ";"; values += ";";
values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]); values += toString(UserVar[event->BaseVarIndex + 1], ExtraTaskSettings.TaskDeviceValueDecimals[1]);
@@ -192,26 +192,27 @@ boolean CPlugin_002(byte function, struct EventStruct *event, String& string)
values += toString(UserVar[event->BaseVarIndex + 2], ExtraTaskSettings.TaskDeviceValueDecimals[2]); values += toString(UserVar[event->BaseVarIndex + 2], ExtraTaskSettings.TaskDeviceValueDecimals[2]);
values += ";0"; values += ";0";
values.toCharArray(str, 80); values.toCharArray(str, 80);
root["svalue"] = str; root[F("svalue")] = str;
break; break;
case SENSOR_TYPE_SWITCH: case SENSOR_TYPE_SWITCH:
root["command"] = "switchlight"; root[F("command")] = PSTR("switchlight");
if (UserVar[event->BaseVarIndex] == 0) if (UserVar[event->BaseVarIndex] == 0)
root["switchcmd"] = "Off"; root[F("switchcmd")] = PSTR("Off");
else else
root["switchcmd"] = "On"; root[F("switchcmd")] = PSTR("On");
break; break;
case SENSOR_TYPE_DIMMER: case SENSOR_TYPE_DIMMER:
root["command"] = "switchlight"; root[F("command")] = PSTR("switchlight");
if (UserVar[event->BaseVarIndex] == 0) if (UserVar[event->BaseVarIndex] == 0)
root["switchcmd"] = "Off"; root[F("switchcmd")] = PSTR("Off");
else else
root["Set%20Level"] = UserVar[event->BaseVarIndex]; root[F("Set%20Level")] = UserVar[event->BaseVarIndex];
break; break;
case SENSOR_TYPE_WIND: // WindDir in degrees; WindDir as text; Wind speed average ; Wind speed gust case SENSOR_TYPE_WIND: // WindDir in degrees; WindDir as text; Wind speed average ; Wind speed gust
values = toString(UserVar[event->BaseVarIndex],ExtraTaskSettings.TaskDeviceValueDecimals[0]); values = toString(UserVar[event->BaseVarIndex],ExtraTaskSettings.TaskDeviceValueDecimals[0]);
const char* bearing[] = {";N;",";NNE;",";NE;",";ENE;",";E;",";ESE;",";SE;",";SSE;",";S;",";SSW;",";SW;",";WSW;",";W;",";WNW;",";NW;",";NNW;" }; values += ";";
values += bearing[int(UserVar[event->BaseVarIndex] / 22.5)]; values += getBearing(int(UserVar[event->BaseVarIndex] / 22.5));
values += ";";
// Domoticz expects the wind speed in (m/s * 10) // Domoticz expects the wind speed in (m/s * 10)
values += toString((UserVar[event->BaseVarIndex + 1] * 10),ExtraTaskSettings.TaskDeviceValueDecimals[1]); values += toString((UserVar[event->BaseVarIndex + 1] * 10),ExtraTaskSettings.TaskDeviceValueDecimals[1]);
values += ";"; values += ";";