diff --git a/tasmota/tasmota_xdrv_driver/xdrv_39_thermostat.ino b/tasmota/tasmota_xdrv_driver/xdrv_39_thermostat.ino
index a2cbe27fe..97ee43fc2 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_39_thermostat.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_39_thermostat.ino
@@ -2054,7 +2054,6 @@ const char HTTP_THERMOSTAT_DUTY_CYCLE[] PROGMEM = "{s}" D_THERMOSTAT_DUTY_CY
const char HTTP_THERMOSTAT_CYCLE_TIME[] PROGMEM = "{s}" D_THERMOSTAT_CYCLE_TIME "{m}%d " D_UNIT_MINUTE "{e}";
const char HTTP_THERMOSTAT_CONTROL_METHOD[] PROGMEM = "{s}" D_THERMOSTAT_CONTROL_METHOD "{m}%s{e}";
const char HTTP_THERMOSTAT_PI_AUTOTUNE[] PROGMEM = "{s}" D_THERMOSTAT_PI_AUTOTUNE "{m}%s{e}";
-const char HTTP_THERMOSTAT_HL[] PROGMEM = "{s}
{m}
{e}";
#endif // USE_WEBSERVER
@@ -2078,7 +2077,7 @@ void ThermostatShow(uint8_t ctr_output, bool json)
}
#ifdef USE_WEBSERVER
- WSContentSend_P(HTTP_THERMOSTAT_HL);
+ if (ctr_output) WSContentSend_P(HTTP_SNS_HR_THIN);
if (Thermostat[ctr_output].status.thermostat_mode == THERMOSTAT_OFF) {
WSContentSend_P(HTTP_THERMOSTAT_INFO, ctr_output + 1, D_DISABLED );
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino b/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino
index 978dcab58..7e2f132dd 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino
@@ -989,7 +989,6 @@ int EQ3SendResult(char *requested, const char *result){
}
#ifdef USE_WEBSERVER
-const char HTTP_EQ3_HL[] PROGMEM = "{s}
{m}
{e}";
const char HTTP_EQ3_ALIAS[] PROGMEM = "{s}EQ3 %d Alias{m}%s{e}";
const char HTTP_EQ3_MAC[] PROGMEM = "{s}EQ3 %d " D_MAC_ADDRESS "{m}%s{e}";
const char HTTP_EQ3_RSSI[] PROGMEM = "{s}EQ3 %d " D_RSSI "{m}%d dBm{e}";
@@ -1000,10 +999,12 @@ const char HTTP_EQ3_BATTERY[] PROGMEM = "{s}EQ3 %d " D_BATTERY "{m}%s{e}";
void EQ3Show(void)
{
char c_unit = D_UNIT_CELSIUS[0]; // ToDo: Check if fahrenheit is possible -> temp_format==TEMP_CELSIUS ? D_UNIT_CELSIUS[0] : D_UNIT_FAHRENHEIT[0];
+ bool FirstSensorShown = false;
for (int i = 0; i < EQ3_NUM_DEVICESLOTS; i++) {
if (EQ3Devices[i].timeoutTime) {
- WSContentSend_P(HTTP_EQ3_HL);
+ if (FirstSensorShown) WSContentSend_P(HTTP_SNS_HR_THIN);
+ FirstSensorShown = true;
const char *alias = BLE_ESP32::getAlias(EQ3Devices[i].addr);
if (alias && *alias){
WSContentSend_PD(HTTP_EQ3_ALIAS, i + 1, alias);
diff --git a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino
index 06c3e1092..55a46729e 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino
@@ -2725,32 +2725,31 @@ void CmndMi32Keys(void){
const char HTTP_MI32[] PROGMEM = "{s}MI ESP32 " MI32_VERSION "{m}%u%s / %u{e}";
const char HTTP_MI32_ALIAS[] PROGMEM = "{s}%s Alias{m}%s{e}";
-const char HTTP_MI32_MAC[] PROGMEM = "{s}%s %s{m}%s{e}";
-const char HTTP_RSSI[] PROGMEM = "{s}%s " D_RSSI "{m}%d dBm{e}";
-const char HTTP_BATTERY[] PROGMEM = "{s}%s " D_BATTERY "{m}%u %%{e}";
-const char HTTP_LASTBUTTON[] PROGMEM = "{s}%s Last Button{m}%u {e}";
-const char HTTP_EVENTS[] PROGMEM = "{s}%s Events{m}%u {e}";
-const char HTTP_NMT[] PROGMEM = "{s}%s No motion{m}> %u seconds{e}";
-const char HTTP_MI32_FLORA_DATA[] PROGMEM = "{s}%s Fertility{m}%u us/cm{e}";
-const char HTTP_MI32_HL[] PROGMEM = "{s}
{m}
{e}";
+const char HTTP_MI32_MAC[] PROGMEM = "{s}%s " D_MAC_ADDRESS "{m}%s{e}";
+const char HTTP_MI32_RSSI[] PROGMEM = "{s}%s " D_RSSI "{m}%d dBm{e}";
+const char HTTP_MI32_BATTERY[] PROGMEM = "{s}%s " D_BATTERY "{m}%u %%{e}";
+const char HTTP_MI32_LASTBUTTON[] PROGMEM = "{s}%s Last Button{m}%u{e}";
+const char HTTP_MI32_EVENTS[] PROGMEM = "{s}%s Events{m}%u{e}";
+const char HTTP_MI32_NMT[] PROGMEM = "{s}%s No motion{m}> %u " D_SECONDS "{e}";
+const char HTTP_MI32_FLORA_DATA[] PROGMEM = "{s}%s Fertility{m}%u " D_UNIT_MICROSIEMENS_PER_CM "{e}";
const char HTTP_MI32_LIGHT[] PROGMEM = "{s}%s " D_LIGHT "{m}%d{e}";
const char HTTP_MISCALE_WEIGHT[] PROGMEM = "{s}%s " D_WEIGHT "{m}%*_f %s{e}";
const char HTTP_MISCALE_WEIGHT_REMOVED[] PROGMEM = "{s}%s Weight removed{m}%s{e}";
const char HTTP_MISCALE_WEIGHT_STABILIZED[] PROGMEM = "{s}%s Weight stabilized{m}%s{e}";
const char HTTP_MISCALE_IMPEDANCE[] PROGMEM = "{s}%s Impedance{m}%u{e}";
const char HTTP_MISCALE_IMPEDANCE_STABILIZED[] PROGMEM = "{s}%s Impedance stabilized{m}%s{e}";
-const char HTTP_SJWS01LM_FLOODING[] PROGMEM = "{s}%s Flooding{m}%u {e}";
+const char HTTP_SJWS01LM_FLOODING[] PROGMEM = "{s}%s Flooding{m}%u{e}";
//const char HTTP_NEEDKEY[] PROGMEM = "{s}%s %s{m} {e}";
+// "\">%s{m}{e}";
//const char HTTP_NEEDKEY[] PROGMEM = "{s}%s %s{m} {e}";
+// "\">%s{m}{e}";
const char HTTP_NEEDKEY[] PROGMEM = "{s}%s %s{m} {e}";
+ "\">%s{m}{e}";
const char HTTP_PAIRING[] PROGMEM = "{s}%s Pair Button Pressed{m} {e}";
@@ -3521,7 +3520,7 @@ void MI32Show(bool json)
WSContentSend_P(HTTP_MI32, i + 1, stemp, numsensors);
for (i; iMAC,6,_MAC,18);//,':');
- WSContentSend_P(HTTP_MI32_MAC, typeName, D_MAC_ADDRESS, _MAC);
- WSContentSend_PD(HTTP_RSSI, typeName, p->RSSI);
+ WSContentSend_P(HTTP_MI32_MAC, typeName, _MAC);
+ WSContentSend_PD(HTTP_MI32_RSSI, typeName, p->RSSI);
// for some reason, display flora differently
switch(p->type){
@@ -3597,11 +3596,11 @@ void MI32Show(bool json)
#endif //USE_MI_DECRYPTION
if (p->feature.events){
- WSContentSend_PD(HTTP_EVENTS, typeName, p->events);
+ WSContentSend_PD(HTTP_MI32_EVENTS, typeName, p->events);
}
if (p->feature.NMT){
// no motion time
- if(p->NMT>0) WSContentSend_PD(HTTP_NMT, typeName, p->NMT);
+ if(p->NMT>0) WSContentSend_PD(HTTP_MI32_NMT, typeName, p->NMT);
}
if (p->feature.lux){
@@ -3626,10 +3625,10 @@ void MI32Show(bool json)
}
}
if(p->bat!=0x00){
- WSContentSend_PD(HTTP_BATTERY, typeName, p->bat);
+ WSContentSend_PD(HTTP_MI32_BATTERY, typeName, p->bat);
}
if (p->feature.Btn){
- WSContentSend_PD(HTTP_LASTBUTTON, typeName, p->Btn);
+ WSContentSend_PD(HTTP_MI32_LASTBUTTON, typeName, p->Btn);
}
if (p->feature.flooding)
{