diff --git a/src/CHANGES.md b/src/CHANGES.md
index 17d0528c..a0fa874a 100644
--- a/src/CHANGES.md
+++ b/src/CHANGES.md
@@ -2,6 +2,8 @@
 
 ## 0.8.30 - 2023-12-28
 * added info if grid profile was not found
+* merge PR #1293
+* merge PR #1295 fix ESP8266 pin settings
 
 ## 0.8.29 - 2023-12-27
 * fix MqTT generic topic `comm_disabled` #1265 #1286
diff --git a/src/hm/Communication.h b/src/hm/Communication.h
index eff60869..6ed10e9f 100644
--- a/src/hm/Communication.h
+++ b/src/hm/Communication.h
@@ -59,7 +59,7 @@ class Communication : public CommQueue<> {
                     mLastEmptyQueueMillis = millis();
                 mPrintSequenceDuration = true;
 
-                uint16_t timeout     = (q->iv->ivGen == IV_MI) ? MI_TIMEOUT : (((q->iv->mGotFragment && q->iv->mGotLastMsg) || mIsRetransmit) ? SINGLEFR_TIMEOUT : ((q->cmd != AlarmData) && q->cmd != GridOnProFilePara ? DEFAULT_TIMEOUT : (1.5 * DEFAULT_TIMEOUT)));
+                uint16_t timeout     = (q->iv->ivGen == IV_MI) ? MI_TIMEOUT : (((q->iv->mGotFragment && q->iv->mGotLastMsg) || mIsRetransmit) ? SINGLEFR_TIMEOUT : ((q->cmd != AlarmData) && (q->cmd != GridOnProFilePara) ? DEFAULT_TIMEOUT : (1.5 * DEFAULT_TIMEOUT)));
                 uint16_t timeout_min = (q->iv->ivGen == IV_MI) ? MI_TIMEOUT : ((q->iv->mGotFragment || mIsRetransmit)) ? SINGLEFR_TIMEOUT : FRSTMSG_TIMEOUT;
 
                 /*if(mDebugState != mState) {
@@ -113,35 +113,13 @@ class Communication : public CommQueue<> {
                         mIsRetransmit    = false;
                         mlastTO_min      = timeout_min;
                         setAttempt();
-                        if(q->cmd == AlarmData || q->cmd == GridOnProFilePara)
+                        if((q->cmd == AlarmData) || (q->cmd == GridOnProFilePara))
                             incrAttempt(q->cmd == AlarmData? 5 : 3);
 
                         mState = States::WAIT;
                         break;
 
                     case States::WAIT:
-                        /*if(millis() > mWaitTimeout_min) {
-                            if(mIsRetransmit) { // we already have been through...
-                                mWaitTimeout = mWaitTimeout_min;
-                            } else if(q->iv->mGotFragment) { // nothing received yet?
-                                if(q->iv->mGotLastMsg) {
-                                    //mState = States::CHECK_FRAMES;
-                                    mWaitTimeout = mWaitTimeout_min;
-                                }
-                            } else if(mFirstTry) {
-                                if(*mSerialDebug) {
-                                    DPRINT_IVID(DBG_INFO, q->iv->id);
-                                    DBGPRINT(String(millis() - mWaitTimeout_min + mlastTO_min));
-                                    DBGPRINTLN(F("ms - second try"));
-                                }
-                                mFirstTry = false;
-                                mlastTO_min = timeout_min;
-                                q->iv->radioStatistics.retransmits++; // got nothing
-                                mState = States::START;
-                                break;
-                            }
-
-                        }*/
                         if(millis() < mWaitTimeout)
                             return;
                         mState = States::CHECK_FRAMES;
diff --git a/src/hm/hmRadio.h b/src/hm/hmRadio.h
index 2e02e92a..d7ae594b 100644
--- a/src/hm/hmRadio.h
+++ b/src/hm/hmRadio.h
@@ -124,7 +124,7 @@ class HmRadio : public Radio {
             uint32_t outerLoopTimeout = (mLastIv->mIsSingleframeReq) ? 100 : ((mLastIv->mCmd != AlarmData) && (mLastIv->mCmd != GridOnProFilePara)) ? 400 : 600;
 
             while ((millis() - loopMillis) < outerLoopTimeout) {
-                uint32_t startMicros = micros();
+                startMicros = micros();
                 while ((micros() - startMicros) < 5110) {  // listen (4088us or?) 5110us to each channel
                     if (mIrqRcvd) {
                         mIrqRcvd = false;
diff --git a/src/web/html/setup.html b/src/web/html/setup.html
index 7ca17005..8e415c2c 100644
--- a/src/web/html/setup.html
+++ b/src/web/html/setup.html
@@ -900,7 +900,7 @@
                 var pinList = esp8266pins;
                 /*IF_ESP32*/
                 var pinList = esp32pins;
-                if ("ESP32-S3" == system["chip_model"]) pinList = esp32s3pins;
+                if ("ESP32-S3" == system.chip_model) pinList = esp32s3pins;
                 else if("ESP32-C3" == system["chip_model"]) pinList = esp32c3pins;
                 /*ENDIF_ESP32*/
                 pins = [['led0', 'pinLed0', 'At least one inverter is producing'], ['led1', 'pinLed1', 'MqTT connected']];
@@ -932,7 +932,7 @@
                 var pinList = esp8266pins;
                 /*IF_ESP32*/
                 var pinList = esp32pins;
-                if ("ESP32-S3" == system["chip_model"]) pinList = esp32s3pins;
+                if ("ESP32-S3" == system.chip_model) pinList = esp32s3pins;
                 else if("ESP32-C3" == system["chip_model"]) pinList = esp32c3pins;
                 /*ENDIF_ESP32*/
 
@@ -999,7 +999,7 @@
                 var pinList = esp8266pins;
                 /*IF_ESP32*/
                 var pinList = esp32pins;
-                if ("ESP32-S3" == system["chip_model"]) pinList = esp32s3pins;
+                if ("ESP32-S3" == system.chip_model) pinList = esp32s3pins;
                 else if("ESP32-C3" == system["chip_model"]) pinList = esp32c3pins;
                 /*ENDIF_ESP32*/