diff --git a/openBeken_win32_mvsc2017.vcxproj b/openBeken_win32_mvsc2017.vcxproj
index fd84829ca..d9ae95ec7 100644
--- a/openBeken_win32_mvsc2017.vcxproj
+++ b/openBeken_win32_mvsc2017.vcxproj
@@ -235,6 +235,7 @@
+
@@ -1287,4 +1288,4 @@
-
+
\ No newline at end of file
diff --git a/openBeken_win32_mvsc2017.vcxproj.filters b/openBeken_win32_mvsc2017.vcxproj.filters
index 735c14e22..faa5f5861 100644
--- a/openBeken_win32_mvsc2017.vcxproj.filters
+++ b/openBeken_win32_mvsc2017.vcxproj.filters
@@ -394,6 +394,7 @@
+
@@ -637,4 +638,4 @@
-
+
\ No newline at end of file
diff --git a/src/driver/drv_aht2x.c b/src/driver/drv_aht2x.c
index 6cbf762c4..376aac0d7 100644
--- a/src/driver/drv_aht2x.c
+++ b/src/driver/drv_aht2x.c
@@ -230,7 +230,7 @@ void AHT2X_OnEverySecond()
}
}
-void AHT2X_AppendInformationToHTTPIndexPage(http_request_t* request)
+void AHT2X_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
hprintf255(request, "
AHT2X Temperature=%.1fC, Humidity=%.0f%%
", g_temp, g_humid);
if(!isWorking)
diff --git a/src/driver/drv_battery.c b/src/driver/drv_battery.c
index e9579afc5..9fa43050d 100644
--- a/src/driver/drv_battery.c
+++ b/src/driver/drv_battery.c
@@ -180,8 +180,11 @@ void Batt_OnEverySecond() {
void Batt_StopDriver() {
}
-void Batt_AppendInformationToHTTPIndexPage(http_request_t* request)
+void Batt_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if (bPreState) {
+ return;
+ }
hprintf255(request, "Battery level=%.2f%%, voltage=%.2fmV
", g_battlevel, g_battvoltage);
}
diff --git a/src/driver/drv_bl_shared.c b/src/driver/drv_bl_shared.c
index ee2112189..953ad2352 100644
--- a/src/driver/drv_bl_shared.c
+++ b/src/driver/drv_bl_shared.c
@@ -135,8 +135,10 @@ void BL09XX_AppendInformationToHTTPIndexPageEx(int asensdatasetix, http_request_
{
if ((asensdatasetix < 0) || (asensdatasetix >= BL_SENSDATASETS_COUNT)) return; //to avoid bad index on data[BL_SENSDATASETS_COUNT]
#else
-void BL09XX_AppendInformationToHTTPIndexPage(http_request_t * request)
+void BL09XX_AppendInformationToHTTPIndexPage(http_request_t * request, int bPreState)
{
+ if (bPreState)
+ return;
int asensdatasetix = BL_SENSORS_IX_0;
#endif
energysensdataset_t* sensdataset = &datasetlist[asensdatasetix];
@@ -253,7 +255,9 @@ void BL09XX_AppendInformationToHTTPIndexPage(http_request_t * request)
}
#if ENABLE_BL_TWIN
-void BL09XX_AppendInformationToHTTPIndexPage(http_request_t* request) {
+void BL09XX_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState) {
+ if (bPreState)
+ return;
if (sensors_reciveddata[BL_SENSORS_IX_0]) {
BL09XX_AppendInformationToHTTPIndexPageEx(BL_SENSORS_IX_0, request);
}
diff --git a/src/driver/drv_bl_shared.h b/src/driver/drv_bl_shared.h
index b40c95268..38283d837 100644
--- a/src/driver/drv_bl_shared.h
+++ b/src/driver/drv_bl_shared.h
@@ -8,7 +8,7 @@
void BL_Shared_Init(void);
void BL_ProcessUpdate(float voltage, float current, float power,
float frequency, float energyWh);
-void BL09XX_AppendInformationToHTTPIndexPage(http_request_t *request);
+void BL09XX_AppendInformationToHTTPIndexPage(http_request_t *request, int bPreState);
void BL09XX_SaveEmeteringStatistics();
#define BL_SENSORS_IX_0 0
diff --git a/src/driver/drv_bmpi2c.c b/src/driver/drv_bmpi2c.c
index 5c680a22f..36d0ef5ce 100644
--- a/src/driver/drv_bmpi2c.c
+++ b/src/driver/drv_bmpi2c.c
@@ -191,8 +191,10 @@ void BMPI2C_OnEverySecond()
}
}
-void BMPI2C_AppendInformationToHTTPIndexPage(http_request_t* request)
+void BMPI2C_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if (bPreState)
+ return;
hprintf255(request, "%s Temperature=%.2f C, Pressure=%.2f hPa", g_chipName, g_temperature * 0.01f, g_pressure * 0.01f);
if(isHumidityAvail)
{
diff --git a/src/driver/drv_chargingLimit.c b/src/driver/drv_chargingLimit.c
index cb0daadb7..413f5f4f8 100644
--- a/src/driver/drv_chargingLimit.c
+++ b/src/driver/drv_chargingLimit.c
@@ -91,8 +91,10 @@ void ChargingLimit_OnEverySecond() {
}
}
-void ChargingLimit_AppendInformationToHTTPIndexPage(http_request_t* request)
+void ChargingLimit_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if (bPreState)
+ return;
const char *rStr;
int type;
diff --git a/src/driver/drv_charts.c b/src/driver/drv_charts.c
index 3fbebfaf7..a9a3a3fce 100644
--- a/src/driver/drv_charts.c
+++ b/src/driver/drv_charts.c
@@ -509,8 +509,10 @@ void Chart_Display(http_request_t *request, chart_t *s) {
poststr(request, "");
}
-void DRV_Charts_AddToHtmlPage_Test(http_request_t *request) {
-
+void DRV_Charts_AddToHtmlPage_Test(http_request_t *request, int bPreState) {
+ if (bPreState) {
+ return;
+ }
// chart_create [NumSamples] [NumVariables] [NumAxes]
// chart_create 16 3 2
chart_t *s = Chart_Create(16, 3, 2);
@@ -557,11 +559,9 @@ void DRV_Charts_AddToHtmlPage_Test(http_request_t *request) {
Chart_Free(&s);
}
// startDriver Charts
-void DRV_Charts_AddToHtmlPage(http_request_t *request) {
- if (0) {
- DRV_Charts_AddToHtmlPage_Test(request);
+void DRV_Charts_AddToHtmlPage(http_request_t *request, int bPreState) {
+ if (bPreState)
return;
- }
if (g_chart) {
Chart_Display(request, g_chart);
}
diff --git a/src/driver/drv_cht8305.c b/src/driver/drv_cht8305.c
index 3a39b09ed..705129b9f 100644
--- a/src/driver/drv_cht8305.c
+++ b/src/driver/drv_cht8305.c
@@ -315,8 +315,10 @@ void CHT83XX_OnEverySecond()
}
}
-void CHT83XX_AppendInformationToHTTPIndexPage(http_request_t* request)
+void CHT83XX_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if (bPreState)
+ return;
hprintf255(request, "%s Temperature=%f, Humidity=%f
", g_cht_sensor, g_temp, g_humid);
if(channel_humid == channel_temp)
{
diff --git a/src/driver/drv_hue.c b/src/driver/drv_hue.c
index 3d97da322..380c58225 100644
--- a/src/driver/drv_hue.c
+++ b/src/driver/drv_hue.c
@@ -103,7 +103,9 @@ void DRV_HUE_Send_Advert_To(struct sockaddr_in *addr) {
}
-void HUE_AppendInformationToHTTPIndexPage(http_request_t* request) {
+void HUE_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState) {
+ if(bPreState)
+ return;
hprintf255(request, "HUE: searches %i, setup %i, events %i, mService %i, event %i
",
stat_searchesReceived, stat_setupXMLVisits, stat_eventsReceived, stat_metaServiceXMLVisits, stat_eventServiceXMLVisits);
diff --git a/src/driver/drv_local.h b/src/driver/drv_local.h
index 0c9541c96..cdd75dbee 100644
--- a/src/driver/drv_local.h
+++ b/src/driver/drv_local.h
@@ -84,23 +84,22 @@ void DGR_SpoofNextDGRPacketSource(const char* ipStrs);
void TuyaMCU_Sensor_RunEverySecond();
void TuyaMCU_Sensor_Init();
-void DRV_Test_Charts_AddToHtmlPage(http_request_t *request);
+void DRV_Test_Charts_AddToHtmlPage(http_request_t *request, int bPreState);
-void DRV_Charts_AddToHtmlPage(http_request_t *request);
+void DRV_Charts_AddToHtmlPage(http_request_t *request, int bPreState);
void DRV_Charts_Init();
void DRV_Toggler_ProcessChanges(http_request_t* request);
void DRV_Toggler_AddToHtmlPage(http_request_t* request);
-void DRV_Toggler_AppendInformationToHTTPIndexPage(http_request_t* request);
+void DRV_Toggler_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void DRV_Toggler_QuickTick();
void DRV_InitPWMToggler();
-void DRV_Widget_AddToHtmlPage(http_request_t *request);
-void DRV_Widget_BeforeState(http_request_t* request);
+void DRV_Widget_AddToHtmlPage(http_request_t *request, int bPreState);
void DRV_Widget_Init();
void DRV_OpenWeatherMap_Init();
-void OWM_AppendInformationToHTTPIndexPage(http_request_t *request);
+void OWM_AppendInformationToHTTPIndexPage(http_request_t *request, int bPreState);
void DRV_HTTPButtons_ProcessChanges(http_request_t* request);
void DRV_HTTPButtons_AddToHtmlPage(http_request_t* request);
@@ -108,36 +107,42 @@ void DRV_InitHTTPButtons();
void CHT83XX_Init();
void CHT83XX_OnEverySecond();
-void CHT83XX_AppendInformationToHTTPIndexPage(http_request_t* request);
+void CHT83XX_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void SHT3X_Init();
-void SHT3X_AppendInformationToHTTPIndexPage(http_request_t* request);
+void SHT3X_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void SHT3X_OnEverySecond();
void SHT3X_StopDriver();
void AHT2X_Init();
-void AHT2X_AppendInformationToHTTPIndexPage(http_request_t* request);
+void AHT2X_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void AHT2X_OnEverySecond();
void AHT2X_StopDriver();
void BMPI2C_Init();
-void BMPI2C_AppendInformationToHTTPIndexPage(http_request_t* request);
+void BMPI2C_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void BMPI2C_OnEverySecond();
void SGP_Init();
-void SGP_AppendInformationToHTTPIndexPage(http_request_t* request);
+void SGP_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void SGP_OnEverySecond();
void SGP_StopDriver();
void Batt_Init();
void Batt_OnEverySecond();
-void Batt_AppendInformationToHTTPIndexPage(http_request_t* request);
+void Batt_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void Batt_StopDriver();
void Shift_Init();
void Shift_OnEverySecond();
void Shift_OnChannelChanged(int ch, int value);
+void PIR_Init();
+void PIR_OnEverySecond();
+void PIR_OnChannelChanged(int ch, int value);
+void PIR_AppendInformationToHTTPIndexPage(http_request_t *request, int bPreState);
+
+
void TMGN_RunQuickTick();
void DRV_MAX72XX_Init();
@@ -145,18 +150,18 @@ void DRV_MAX72XX_Init();
void apply_smart_light();
void WEMO_Init();
-void WEMO_AppendInformationToHTTPIndexPage(http_request_t* request);
+void WEMO_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void HUE_Init();
-void HUE_AppendInformationToHTTPIndexPage(http_request_t* request);
+void HUE_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void MCP9808_Init();
void MCP9808_OnEverySecond();
-void MCP9808_AppendInformationToHTTPIndexPage(http_request_t* request);
+void MCP9808_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void ChargingLimit_Init();
void ChargingLimit_OnEverySecond();
-void ChargingLimit_AppendInformationToHTTPIndexPage(http_request_t *request);
+void ChargingLimit_AppendInformationToHTTPIndexPage(http_request_t *request, int bPreState);
void RN8209_Init(void);
void RN8029_RunEverySecond(void);
diff --git a/src/driver/drv_main.c b/src/driver/drv_main.c
index 87c4727a8..1bdf88357 100644
--- a/src/driver/drv_main.c
+++ b/src/driver/drv_main.c
@@ -19,7 +19,7 @@ typedef struct driver_s {
const char* name;
void(*initFunc)();
void(*onEverySecond)();
- void(*appendInformationToHTTPIndexPage)(http_request_t* request);
+ void(*appendInformationToHTTPIndexPage)(http_request_t* request, int bPreState);
void(*runQuickTick)();
void(*stopFunc)();
void(*onChannelChanged)(int ch, int val);
@@ -50,6 +50,13 @@ static driver_t g_drivers[] = {
//drvdetail:"requires":""}
{ "Freeze", Freeze_Init, Freeze_OnEverySecond, NULL, Freeze_RunFrame, NULL, NULL, false },
#endif
+#if ENABLE_DRIVER_PIR
+ //drvdetail:{"name":"PIR",
+ //drvdetail:"title":"TODO",
+ //drvdetail:"descr":"PIR",
+ //drvdetail:"requires":""}
+ { "PIR", PIR_Init, PIR_OnEverySecond, PIR_AppendInformationToHTTPIndexPage, NULL, NULL, PIR_OnChannelChanged, false },
+#endif
#if ENABLE_DRIVER_PIXELANIM
//drvdetail:{"name":"PixelAnim",
//drvdetail:"title":"TODO",
@@ -655,7 +662,7 @@ void DRV_Generic_Init() {
//cmddetail:"examples":""}
CMD_RegisterCommand("stopDriver", DRV_Stop, NULL);
}
-void DRV_AppendInformationToHTTPIndexPage(http_request_t* request) {
+void DRV_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState) {
int i, j;
int c_active = 0;
@@ -666,31 +673,33 @@ void DRV_AppendInformationToHTTPIndexPage(http_request_t* request) {
if (g_drivers[i].bLoaded) {
c_active++;
if (g_drivers[i].appendInformationToHTTPIndexPage) {
- g_drivers[i].appendInformationToHTTPIndexPage(request);
+ g_drivers[i].appendInformationToHTTPIndexPage(request, bPreState);
}
}
}
DRV_Mutex_Free();
- hprintf255(request, "%i drivers active", c_active);
- if (c_active > 0) {
- j = 0;// printed 0 names so far
- // generate active drivers list in ( )
- hprintf255(request, " (");
- for (i = 0; i < g_numDrivers; i++) {
- if (g_drivers[i].bLoaded) {
- // if at least one name printed, add separator
- if (j != 0) {
- hprintf255(request, ",");
+ if (bPreState == false) {
+ hprintf255(request, "%i drivers active", c_active);
+ if (c_active > 0) {
+ j = 0;// printed 0 names so far
+ // generate active drivers list in ( )
+ hprintf255(request, " (");
+ for (i = 0; i < g_numDrivers; i++) {
+ if (g_drivers[i].bLoaded) {
+ // if at least one name printed, add separator
+ if (j != 0) {
+ hprintf255(request, ",");
+ }
+ hprintf255(request, g_drivers[i].name);
+ // one more name printed
+ j++;
}
- hprintf255(request, g_drivers[i].name);
- // one more name printed
- j++;
}
+ hprintf255(request, ")");
}
- hprintf255(request, ")");
+ hprintf255(request, ", total %i
", g_numDrivers);
}
- hprintf255(request, ", total %i
", g_numDrivers);
}
bool DRV_IsMeasuringPower() {
diff --git a/src/driver/drv_mcp9808.c b/src/driver/drv_mcp9808.c
index e0aae83b0..5da76eb97 100644
--- a/src/driver/drv_mcp9808.c
+++ b/src/driver/drv_mcp9808.c
@@ -288,8 +288,10 @@ void MCP9808_OnEverySecond() {
}
}
-void MCP9808_AppendInformationToHTTPIndexPage(http_request_t* request)
+void MCP9808_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if (bPreState)
+ return;
hprintf255(request, "MCP9808 Temperature=%f
", g_temp);
}
diff --git a/src/driver/drv_ntp.c b/src/driver/drv_ntp.c
index 4cbc8678e..8ce50982c 100644
--- a/src/driver/drv_ntp.c
+++ b/src/driver/drv_ntp.c
@@ -747,8 +747,10 @@ void NTP_OnEverySecond()
}
}
-void NTP_AppendInformationToHTTPIndexPage(http_request_t* request)
+void NTP_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if (bPreState)
+ return;
struct tm *ltm;
ltm = gmtime(&g_ntpTime);
diff --git a/src/driver/drv_ntp.h b/src/driver/drv_ntp.h
index db29f00a4..d46bba028 100644
--- a/src/driver/drv_ntp.h
+++ b/src/driver/drv_ntp.h
@@ -8,7 +8,7 @@ void NTP_OnEverySecond();
// returns number of seconds passed after 1900
unsigned int NTP_GetCurrentTime();
unsigned int NTP_GetCurrentTimeWithoutOffset();
-void NTP_AppendInformationToHTTPIndexPage(http_request_t* request);
+void NTP_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
bool NTP_IsTimeSynced();
int NTP_GetTimesZoneOfsSeconds();
int NTP_GetWeekDay();
diff --git a/src/driver/drv_openWeatherMap.c b/src/driver/drv_openWeatherMap.c
index 4f0181486..9eee12fd2 100644
--- a/src/driver/drv_openWeatherMap.c
+++ b/src/driver/drv_openWeatherMap.c
@@ -234,8 +234,10 @@ static commandResult_t CMD_OWM_Setup(const void *context, const char *cmd, const
return CMD_RES_OK;
}
-void OWM_AppendInformationToHTTPIndexPage(http_request_t *request) {
-
+void OWM_AppendInformationToHTTPIndexPage(http_request_t *request, int bPreState) {
+ if (bPreState) {
+ return;
+ }
hprintf255(request, "OpenWeatherMap Integration
");
if (1) {
hprintf255(request, "Raw Reply (only in DEBUG)
");
diff --git a/src/driver/drv_pir.c b/src/driver/drv_pir.c
new file mode 100644
index 000000000..4ca50f296
--- /dev/null
+++ b/src/driver/drv_pir.c
@@ -0,0 +1,48 @@
+#include "../new_common.h"
+#include "../new_pins.h"
+#include "../new_cfg.h"
+// Commands register, execution API and cmd tokenizer
+#include "../cmnds/cmd_public.h"
+#include "../mqtt/new_mqtt.h"
+#include "../logging/logging.h"
+#include "drv_local.h"
+#include "../hal/hal_pins.h"
+
+int g_onTime;
+
+void PIR_Init() {
+
+}
+
+void PIR_OnEverySecond() {
+
+}
+
+void PIR_OnChannelChanged(int ch, int value) {
+
+
+}
+
+void PIR_AppendInformationToHTTPIndexPage(http_request_t *request, int bPreState) {
+ if (bPreState)
+ {
+ char tmpA[32];
+ if (http_getArg(request->url, "pirTime", tmpA, sizeof(tmpA))) {
+ g_onTime = atoi(tmpA);
+ }
+
+ hprintf255(request, "PIR Sensor Settings
");
+ hprintf255(request, "
");
+ }
+}
+
+
+
+
+
+
+
+
diff --git a/src/driver/drv_public.h b/src/driver/drv_public.h
index ec7270a20..ff620fd42 100644
--- a/src/driver/drv_public.h
+++ b/src/driver/drv_public.h
@@ -49,7 +49,7 @@ typedef struct energySensorNames_s {
extern int g_dhtsCount;
void DRV_Generic_Init();
-void DRV_AppendInformationToHTTPIndexPage(http_request_t* request);
+void DRV_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState);
void DRV_OnEverySecond();
void DHT_OnEverySecond();
void DHT_OnPinsConfigChanged();
diff --git a/src/driver/drv_pwmToggler.c b/src/driver/drv_pwmToggler.c
index 884d40e7d..a704aaedc 100644
--- a/src/driver/drv_pwmToggler.c
+++ b/src/driver/drv_pwmToggler.c
@@ -355,7 +355,9 @@ void DRV_Toggler_QuickTick() {
}
}
}
-void DRV_Toggler_AppendInformationToHTTPIndexPage(http_request_t* request) {
+void DRV_Toggler_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState) {
+ if (bPreState)
+ return;
int i;
hprintf255(request, "Toggler: ");
int cnt = 0;
diff --git a/src/driver/drv_sgp.c b/src/driver/drv_sgp.c
index 517882a13..d99ddb175 100644
--- a/src/driver/drv_sgp.c
+++ b/src/driver/drv_sgp.c
@@ -253,8 +253,10 @@ void SGP_OnEverySecond()
ADDLOG_DEBUG(LOG_FEATURE_DRV, "DRV_SGP : Measurement will run in %i cycle", g_sgpcycle);
}
-void SGP_AppendInformationToHTTPIndexPage(http_request_t* request)
+void SGP_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if(bPreState)
+ return;
hprintf255(request, "SGP CO2=%.1f ppm, TVoc=%.0f ppb
", g_co2, g_tvoc);
if (channel_co2 == channel_tvoc) {
diff --git a/src/driver/drv_sht3x.c b/src/driver/drv_sht3x.c
index c7718ed8f..1b18ae5b5 100644
--- a/src/driver/drv_sht3x.c
+++ b/src/driver/drv_sht3x.c
@@ -517,8 +517,10 @@ void SHT3X_OnEverySecond()
}
}
-void SHT3X_AppendInformationToHTTPIndexPage(http_request_t* request)
+void SHT3X_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState)
{
+ if(bPreState)
+ return;
hprintf255(request, "SHT3X Temperature=%.1fC, Humidity=%.0f%%
", g_temp, g_humid);
if (channel_humid == channel_temp) {
hprintf255(request, "WARNING: You don't have configured target channels for temp and humid results, set the first and second channel index in Pins!");
diff --git a/src/driver/drv_test_charts.c b/src/driver/drv_test_charts.c
index 735e43dcd..3aaea3f16 100644
--- a/src/driver/drv_test_charts.c
+++ b/src/driver/drv_test_charts.c
@@ -9,7 +9,11 @@
#include "../httpserver/new_http.h"
// startDriver TestCharts
-void DRV_Test_Charts_AddToHtmlPage(http_request_t *request) {
+void DRV_Test_Charts_AddToHtmlPage(http_request_t *request, int bPreState) {
+ if (bPreState) {
+ return;
+ }
+
time_t timeStamps[16];
float temperature[16];
float humidity[16];
diff --git a/src/driver/drv_wemo.c b/src/driver/drv_wemo.c
index 0e48c46f0..40b435e81 100644
--- a/src/driver/drv_wemo.c
+++ b/src/driver/drv_wemo.c
@@ -191,7 +191,9 @@ void DRV_WEMO_Send_Advert_To(int mode, struct sockaddr_in *addr) {
DRV_SSDP_SendReply(addr, buffer_out);
}
-void WEMO_AppendInformationToHTTPIndexPage(http_request_t* request) {
+void WEMO_AppendInformationToHTTPIndexPage(http_request_t* request, int bPreState) {
+ if(bPreState)
+ return;
hprintf255(request, "WEMO: searches %i, setup %i, events %i, mService %i, event %i
",
stat_searchesReceived, stat_setupXMLVisits, stat_eventsReceived, stat_metaServiceXMLVisits, stat_eventServiceXMLVisits);
diff --git a/src/driver/drv_widget.c b/src/driver/drv_widget.c
index 473dbe1c1..e6f8d10a1 100644
--- a/src/driver/drv_widget.c
+++ b/src/driver/drv_widget.c
@@ -68,12 +68,14 @@ void DRV_Widget_DisplayList(http_request_t* request, WidgetLocation loc) {
w = w->next;
}
}
-void DRV_Widget_BeforeState(http_request_t* request) {
- DRV_Widget_DisplayList(request, WIDGET_STATIC);
-}
-void DRV_Widget_AddToHtmlPage(http_request_t *request) {
- DRV_Widget_DisplayList(request, WIDGET_STATE);
+void DRV_Widget_AddToHtmlPage(http_request_t *request, int bPreState) {
+ if (bPreState) {
+ DRV_Widget_DisplayList(request, WIDGET_STATIC);
+ }
+ else {
+ DRV_Widget_DisplayList(request, WIDGET_STATE);
+ }
}
void Widget_Add(widget_t **first, widget_t *n) {
if (*first == 0) {
diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c
index 51233e5a3..7ff03eb90 100644
--- a/src/httpserver/http_fns.c
+++ b/src/httpserver/http_fns.c
@@ -340,16 +340,14 @@ int http_fn_index(http_request_t* request) {
poststr(request, ""); // end div#change
-#if defined(ENABLE_DRIVER_WIDGET)
- if (DRV_IsRunning("Widget")) {
- DRV_Widget_BeforeState(request);
- }
-#endif
#if ENABLE_OBK_BERRY
void Berry_SaveRequest(http_request_t *r);
Berry_SaveRequest(request);
CMD_Berry_RunEventHandlers_StrInt(CMD_EVENT_ON_HTTP, "prestate", (int)request);
#endif
+#ifndef OBK_DISABLE_ALL_DRIVERS
+ DRV_AppendInformationToHTTPIndexPage(request, true);
+#endif
poststr(request, "
"); // replaceable content follows
}
@@ -770,7 +768,7 @@ int http_fn_index(http_request_t* request) {
poststr(request, "");
#ifndef OBK_DISABLE_ALL_DRIVERS
- DRV_AppendInformationToHTTPIndexPage(request);
+ DRV_AppendInformationToHTTPIndexPage(request, false);
#endif
if (1) {
diff --git a/src/obk_config.h b/src/obk_config.h
index b7fe778f6..9bbfac404 100644
--- a/src/obk_config.h
+++ b/src/obk_config.h
@@ -80,6 +80,7 @@
#endif
+#define ENABLE_DRIVER_PIR 1
#define ENABLE_HA_DISCOVERY 1
#define ENABLE_SEND_POSTANDGET 1
#define ENABLE_MQTT 1