Skip to content

Commit

Permalink
0.8.72
Browse files Browse the repository at this point in the history
* fixed translation #1403
* fixed sending commands to inverters which are soft turned off #1397
* reduce switchChannel command for HMS (only each 5th cycle it will be send now)
  • Loading branch information
lumapu committed Feb 4, 2024
1 parent 883aefb commit 14c5a7a
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 14 deletions.
5 changes: 5 additions & 0 deletions src/CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Development Changes

## 0.8.72 - 2024-02-03
* fixed translation #1403
* fixed sending commands to inverters which are soft turned off #1397
* reduce switchChannel command for HMS (only each 5th cycle it will be send now)

## 0.8.71 - 2024-02-03
* fix heuristics reset
* fix CMT missing frames problem
Expand Down
2 changes: 1 addition & 1 deletion src/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
//-------------------------------------
#define VERSION_MAJOR 0
#define VERSION_MINOR 8
#define VERSION_PATCH 71
#define VERSION_PATCH 72

//-------------------------------------
typedef struct {
Expand Down
9 changes: 4 additions & 5 deletions src/hm/hmInverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ class Inverter {

static uint32_t *timestamp; // system timestamp
static cfgInst_t *generalConfig; // general inverter configuration from setup
//static IApp *app; // pointer to app interface

public:

Expand Down Expand Up @@ -290,18 +289,18 @@ class Inverter {
}

bool setDevControlRequest(uint8_t cmd) {
if(InverterStatus::PRODUCING == status) {
if(InverterStatus::OFF != status) {
mDevControlRequest = true;
devControlCmd = cmd;
//app->triggerTickSend(); // done in RestApi.h, because of "chicken-and-egg problem ;-)"
}
return (InverterStatus::PRODUCING == status);
return (InverterStatus::OFF != status);
}

bool setDevCommand(uint8_t cmd) {
if(InverterStatus::PRODUCING == status)
if(InverterStatus::OFF != status)
devControlCmd = cmd;
return (InverterStatus::PRODUCING == status);
return (InverterStatus::OFF != status);
}

void addValue(uint8_t pos, uint8_t buf[], record_t<> *rec) {
Expand Down
12 changes: 10 additions & 2 deletions src/hms/hmsRadio.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#include "cmt2300a.h"
#include "../hm/radio.h"

#define CMT_SWITCH_CHANNEL_CYCLE 5

template<uint32_t DTU_SN = 0x81001765>
class CmtRadio : public Radio {
typedef Cmt2300a CmtType;
Expand Down Expand Up @@ -151,6 +153,10 @@ class CmtRadio : public Radio {
}

inline void sendSwitchChCmd(Inverter<> *iv, uint8_t ch) {
if(CMT_SWITCH_CHANNEL_CYCLE > ++mSwitchCycle)
return;
mSwitchCycle = 0;

/** ch:
* 0x00: 860.00 MHz
* 0x01: 860.25 MHz
Expand All @@ -172,9 +178,10 @@ class CmtRadio : public Radio {
inline void getRx(void) {
packet_t p;
p.millis = millis() - mMillis;
CmtStatus status = mCmt.getRx(p.packet, &p.len, 28, &p.rssi);
if(CmtStatus::SUCCESS == status)
if(CmtStatus::SUCCESS == mCmt.getRx(p.packet, &p.len, 28, &p.rssi)) {
mSwitchCycle = 0;
mBufCtrl.push(p);
}

if(p.packet[9] > ALL_FRAMES) { // indicates last frame
setExpectedFrames(p.packet[9] - ALL_FRAMES);
Expand All @@ -188,6 +195,7 @@ class CmtRadio : public Radio {
bool mCmtAvail = false;
bool mRqstGetRx = false;
uint32_t mMillis;
uint8_t mSwitchCycle = 0;
};

#endif /*__HMS_RADIO_H__*/
12 changes: 7 additions & 5 deletions src/web/RestApi.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class RestApi {
DynamicJsonDocument json(128);
JsonObject dummy = json.as<JsonObject>();
if(obj[F("path")] == "ctrl")
setCtrl(obj, dummy, "api");
setCtrl(obj, dummy, "*");
else if(obj[F("path")] == "setup")
setSetup(obj, dummy);
}
Expand Down Expand Up @@ -839,10 +839,12 @@ class RestApi {
}
jsonOut[F("id")] = jsonIn[F("id")];

if(strncmp("api", clientIP, 3) != 0) {
if(mApp->isProtected(clientIP)) {
jsonOut[F("error")] = F(INV_IS_PROTECTED);
return false;
if(mConfig->sys.adminPwd[0] != '\0') {
if(strncmp("*", clientIP, 1) != 0) { // no call from API (MqTT)
if(mApp->isProtected(clientIP)) {
jsonOut[F("error")] = F(INV_IS_PROTECTED);
return false;
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/web/lang.json
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,7 @@
{
"token": "BTN_CLEAR",
"en": "clear",
"de": "l&ouuml;schen"
"de": "l&ouml;schen"
},
{
"token": "BTN_AUTOSCROLL",
Expand Down

0 comments on commit 14c5a7a

Please sign in to comment.