diff --git a/src/hm/hmRadio.h b/src/hm/hmRadio.h index 789b80d5..18d9fb09 100644 --- a/src/hm/hmRadio.h +++ b/src/hm/hmRadio.h @@ -205,6 +205,7 @@ class HmRadio { } cnt++; } + sendPacket(invId, cnt, isRetransmit, isNoMI); } @@ -239,6 +240,17 @@ class HmRadio { return mNrf24.isPVariant(); } + /* Test whether a signal (carrier or otherwise) greater than or equal to -64dBm is present on the channel. + Valid only on nRF24L01P (+) hardware. On nRF24L01, use testCarrier(). + Useful to check for interference on the current channel and channel hopping strategies. + bool goodSignal = radio.testRPD(); + if(radio.available()){ Serial.println(goodSignal ? "Strong signal > 64dBm" : "Weak signal < 64dBm" ); radio.read(0,0); } */ + bool goodSignal(void) { + bool goodSignal = mNrf24.testRPD(); + mNrf24.read(0,0); + return goodSignal; + } + std::queue mBufCtrl; uint32_t mSendCnt; diff --git a/src/web/RestApi.h b/src/web/RestApi.h index 270cb372..cb147a07 100644 --- a/src/web/RestApi.h +++ b/src/web/RestApi.h @@ -502,6 +502,7 @@ class RestApi { obj[F("isconnected")] = mRadio->isChipConnected(); obj[F("DataRate")] = mRadio->getDataRate(); obj[F("isPVariant")] = mRadio->isPVariant(); + obj[F("goodSignal")] = mRadio->goodSignal(); obj[F("en")] = (bool) mConfig->nrf.enabled; } @@ -570,6 +571,8 @@ class RestApi { warn.add(F("reboot your ESP to apply all your configuration changes")); if(0 == mApp->getTimestamp()) warn.add(F("time not set. No communication to inverter possible")); + + /*if(0 == mSys->getNumInverters()) warn.add(F("no inverter configured"));*/ diff --git a/src/web/html/setup.html b/src/web/html/setup.html index 94c3d461..3f8a6c64 100644 --- a/src/web/html/setup.html +++ b/src/web/html/setup.html @@ -778,10 +778,10 @@ ml("div", {class: "col-12 col-sm-3 my-2"}, "Power Level"), ml("div", {class: "col-12 col-sm-9"}, sel("rf24Power", [ - [0, "MIN"], + [0, "MIN (recommended)"], [1, "LOW"], [2, "HIGH"], - [3, "MAX"] + [3, "MAX (experimental)"] ], obj["power_level"]) ) ]) diff --git a/src/web/html/system.html b/src/web/html/system.html index 0f1df319..4ab63931 100644 --- a/src/web/html/system.html +++ b/src/web/html/system.html @@ -50,7 +50,7 @@ } function parseRadio(obj, stat) { - const pa = ["MIN", "LOW", "HIGH", "MAX"]; + const pa = ["MIN (recommended)", "LOW", "HIGH", "MAX"]; const datarate = ["1 MBps", "2 MBps", "250 kbps"]; var main = document.getElementById("radio"); @@ -61,6 +61,7 @@ main.appendChild(h); main.appendChild(genTabRow("nrf24l01" + (obj["isPVariant"] ? "+ " : ""), (obj["isconnected"] ? "is connected " : "is not connected "))); + main.appendChild(genTabRow("NRF Signal: ", (obj["goodSignal"] ? "Strong signal > 64dBm" : "Weak signal < 64dBm"))); if(obj["isconnected"]) { main.appendChild(genTabRow("Datarate", datarate[obj["DataRate"]]));