mirror of
https://github.com/lumapu/ahoy.git
synced 2025-07-17 16:27:12 +02:00
0.8.46
* improved communication
This commit is contained in:
parent
1aa14ebf08
commit
dd225bdf79
5 changed files with 41 additions and 40 deletions
|
@ -1,5 +1,8 @@
|
||||||
# Development Changes
|
# Development Changes
|
||||||
|
|
||||||
|
## 0.8.46 - 2024-01-06
|
||||||
|
* improved communication
|
||||||
|
|
||||||
## 0.8.45 - 2024-01-05
|
## 0.8.45 - 2024-01-05
|
||||||
* fix MqTT total values #1326
|
* fix MqTT total values #1326
|
||||||
* start implementing a wizard for initial (WiFi) configuration #1199
|
* start implementing a wizard for initial (WiFi) configuration #1199
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 8
|
#define VERSION_MINOR 8
|
||||||
#define VERSION_PATCH 45
|
#define VERSION_PATCH 46
|
||||||
|
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -118,7 +118,7 @@ class Communication : public CommQueue<> {
|
||||||
mIsRetransmit = false;
|
mIsRetransmit = false;
|
||||||
setAttempt();
|
setAttempt();
|
||||||
if((q->cmd == AlarmData) || (q->cmd == GridOnProFilePara))
|
if((q->cmd == AlarmData) || (q->cmd == GridOnProFilePara))
|
||||||
incrAttempt(q->cmd == AlarmData? 5 : 3);
|
incrAttempt(15);
|
||||||
|
|
||||||
mState = States::WAIT;
|
mState = States::WAIT;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -191,19 +191,18 @@ class Inverter {
|
||||||
if(mNextLive)
|
if(mNextLive)
|
||||||
cb(RealTimeRunData_Debug, false); // get live data
|
cb(RealTimeRunData_Debug, false); // get live data
|
||||||
else {
|
else {
|
||||||
mNextLive = true;
|
|
||||||
if(actPowerLimit == 0xffff)
|
if(actPowerLimit == 0xffff)
|
||||||
cb(SystemConfigPara, false); // power limit info
|
cb(SystemConfigPara, false); // power limit info
|
||||||
else if(InitDataState != devControlCmd) {
|
else if(InitDataState != devControlCmd) {
|
||||||
cb(devControlCmd, false); // custom command which was received by API
|
cb(devControlCmd, false); // custom command which was received by API
|
||||||
devControlCmd = InitDataState;
|
devControlCmd = InitDataState;
|
||||||
mGetLossInterval = 1;
|
mGetLossInterval = 1;
|
||||||
} else if((alarmLastId != alarmMesIndex) && (alarmMesIndex != 0))
|
} else if(0 == getFwVersion())
|
||||||
cb(AlarmData, false); // get last alarms
|
|
||||||
else if(0 == getFwVersion())
|
|
||||||
cb(InverterDevInform_All, false); // get firmware version
|
cb(InverterDevInform_All, false); // get firmware version
|
||||||
else if(0 == getHwVersion())
|
else if(0 == getHwVersion())
|
||||||
cb(InverterDevInform_Simple, false); // get hardware version
|
cb(InverterDevInform_Simple, false); // get hardware version
|
||||||
|
else if((alarmLastId != alarmMesIndex) && (alarmMesIndex != 0))
|
||||||
|
cb(AlarmData, false); // get last alarms
|
||||||
else if((0 == mGridLen) && generalConfig->readGrid) { // read grid profile
|
else if((0 == mGridLen) && generalConfig->readGrid) { // read grid profile
|
||||||
cb(GridOnProFilePara, false);
|
cb(GridOnProFilePara, false);
|
||||||
} else if (mGetLossInterval > AHOY_GET_LOSS_INTERVAL) { // get loss rate
|
} else if (mGetLossInterval > AHOY_GET_LOSS_INTERVAL) { // get loss rate
|
||||||
|
@ -339,28 +338,27 @@ class Inverter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (rec->assign == InfoAssignment) {
|
else {
|
||||||
DPRINTLN(DBG_DEBUG, "add info");
|
mNextLive = true;
|
||||||
// eg. fw version ...
|
if (rec->assign == InfoAssignment) {
|
||||||
isConnected = true;
|
DPRINTLN(DBG_DEBUG, "add info");
|
||||||
|
// eg. fw version ...
|
||||||
|
isConnected = true;
|
||||||
|
} else if (rec->assign == SimpleInfoAssignment) {
|
||||||
|
DPRINTLN(DBG_DEBUG, "add simple info");
|
||||||
|
// eg. hw version ...
|
||||||
|
} else if (rec->assign == SystemConfigParaAssignment) {
|
||||||
|
DPRINTLN(DBG_DEBUG, "add config");
|
||||||
|
if (getPosByChFld(0, FLD_ACT_ACTIVE_PWR_LIMIT, rec) == pos){
|
||||||
|
actPowerLimit = rec->record[pos];
|
||||||
|
DPRINT(DBG_DEBUG, F("Inverter actual power limit: "));
|
||||||
|
DPRINTLN(DBG_DEBUG, String(actPowerLimit, 1));
|
||||||
|
}
|
||||||
|
} else if (rec->assign == AlarmDataAssignment) {
|
||||||
|
DPRINTLN(DBG_DEBUG, "add alarm");
|
||||||
|
} else
|
||||||
|
DPRINTLN(DBG_WARN, F("add with unknown assignment"));
|
||||||
}
|
}
|
||||||
else if (rec->assign == SimpleInfoAssignment) {
|
|
||||||
DPRINTLN(DBG_DEBUG, "add simple info");
|
|
||||||
// eg. hw version ...
|
|
||||||
}
|
|
||||||
else if (rec->assign == SystemConfigParaAssignment) {
|
|
||||||
DPRINTLN(DBG_DEBUG, "add config");
|
|
||||||
if (getPosByChFld(0, FLD_ACT_ACTIVE_PWR_LIMIT, rec) == pos){
|
|
||||||
actPowerLimit = rec->record[pos];
|
|
||||||
DPRINT(DBG_DEBUG, F("Inverter actual power limit: "));
|
|
||||||
DPRINTLN(DBG_DEBUG, String(actPowerLimit, 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (rec->assign == AlarmDataAssignment) {
|
|
||||||
DPRINTLN(DBG_DEBUG, "add alarm");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
DPRINTLN(DBG_WARN, F("add with unknown assignment"));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DPRINTLN(DBG_ERROR, F("addValue: assignment not found with cmd 0x"));
|
DPRINTLN(DBG_ERROR, F("addValue: assignment not found with cmd 0x"));
|
||||||
|
|
|
@ -4,19 +4,19 @@
|
||||||
#define __DISPLAY_DATA__
|
#define __DISPLAY_DATA__
|
||||||
|
|
||||||
struct DisplayData {
|
struct DisplayData {
|
||||||
const char *version=nullptr;
|
const char *version=nullptr;
|
||||||
float totalPower=0.0f; // indicate current power (W)
|
float totalPower=0.0f; // indicate current power (W)
|
||||||
float totalYieldDay=0.0f; // indicate day yield (Wh)
|
float totalYieldDay=0.0f; // indicate day yield (Wh)
|
||||||
float totalYieldTotal=0.0f; // indicate total yield (kWh)
|
float totalYieldTotal=0.0f; // indicate total yield (kWh)
|
||||||
uint32_t utcTs=0; // indicate absolute timestamp (utc unix time). 0 = time is not synchonized
|
uint32_t utcTs=0; // indicate absolute timestamp (utc unix time). 0 = time is not synchonized
|
||||||
uint8_t nrProducing=0; // indicate number of producing inverters
|
uint8_t nrProducing=0; // indicate number of producing inverters
|
||||||
uint8_t nrSleeping=0; // indicate number of sleeping inverters
|
uint8_t nrSleeping=0; // indicate number of sleeping inverters
|
||||||
bool WifiSymbol = false; // indicate if WiFi is connected
|
bool WifiSymbol = false; // indicate if WiFi is connected
|
||||||
bool RadioSymbol = false; // indicate if radio module is connecting and working
|
bool RadioSymbol = false; // indicate if radio module is connecting and working
|
||||||
bool MQTTSymbol = false; // indicate if MQTT is connected
|
bool MQTTSymbol = false; // indicate if MQTT is connected
|
||||||
int8_t WifiRSSI=SCHAR_MIN; // indicate RSSI value for WiFi
|
int8_t WifiRSSI=SCHAR_MIN; // indicate RSSI value for WiFi
|
||||||
int8_t RadioRSSI=SCHAR_MIN; // indicate RSSI value for radio
|
int8_t RadioRSSI=SCHAR_MIN; // indicate RSSI value for radio
|
||||||
IPAddress ipAddress; // indicate ip adress of ahoy
|
IPAddress ipAddress; // indicate ip adress of ahoy
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*__DISPLAY_DATA__*/
|
#endif /*__DISPLAY_DATA__*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue