mirror of
https://github.com/arendst/Tasmota.git
synced 2025-04-25 07:17:16 +00:00
Merge pull request #15691 from s-hadinger/zigbee_version
Zigbee display version of MCU software in UI
This commit is contained in:
commit
8284649c43
@ -97,6 +97,12 @@ public:
|
|||||||
ZB_RecvMsgFunc recv_func = nullptr; // function to call when message is expected
|
ZB_RecvMsgFunc recv_func = nullptr; // function to call when message is expected
|
||||||
ZB_RecvMsgFunc recv_unexpected = nullptr; // function called when unexpected message is received
|
ZB_RecvMsgFunc recv_unexpected = nullptr; // function called when unexpected message is received
|
||||||
|
|
||||||
|
// version
|
||||||
|
uint8_t major_rel = 0;
|
||||||
|
uint8_t minor_rel = 0;
|
||||||
|
uint8_t maint_rel = 0;
|
||||||
|
uint32_t revision = 0;
|
||||||
|
|
||||||
// Energy scan
|
// Energy scan
|
||||||
int8_t energy[USE_ZIGBEE_CHANNEL_COUNT];
|
int8_t energy[USE_ZIGBEE_CHANNEL_COUNT];
|
||||||
|
|
||||||
|
@ -447,20 +447,21 @@ int32_t ZNP_ReceiveCheckVersion(int32_t res, SBuffer &buf) {
|
|||||||
// MinorRel = 6
|
// MinorRel = 6
|
||||||
// MaintRel = 3
|
// MaintRel = 3
|
||||||
// Revision = 20190425 d (0x013414D9)
|
// Revision = 20190425 d (0x013414D9)
|
||||||
uint8_t major_rel = buf.get8(4);
|
zigbee.major_rel = buf.get8(4);
|
||||||
uint8_t minor_rel = buf.get8(5);
|
zigbee.minor_rel = buf.get8(5);
|
||||||
uint8_t maint_rel = buf.get8(6);
|
zigbee.maint_rel = buf.get8(6);
|
||||||
uint32_t revision = buf.get32(7);
|
zigbee.revision = buf.get32(7);
|
||||||
|
|
||||||
Response_P(PSTR("{\"" D_JSON_ZIGBEE_STATE "\":{"
|
Response_P(PSTR("{\"" D_JSON_ZIGBEE_STATE "\":{"
|
||||||
"\"Status\":%d,\"MajorRel\":%d,\"MinorRel\":%d"
|
"\"Status\":%d,\"MajorRel\":%d,\"MinorRel\":%d"
|
||||||
",\"MaintRel\":%d,\"Revision\":%d}}"),
|
",\"MaintRel\":%d,\"Revision\":%d}}"),
|
||||||
ZIGBEE_STATUS_CC_VERSION, major_rel, minor_rel,
|
ZIGBEE_STATUS_CC_VERSION,
|
||||||
maint_rel, revision);
|
zigbee.major_rel, zigbee.minor_rel,
|
||||||
|
zigbee.maint_rel, zigbee.revision);
|
||||||
|
|
||||||
MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_ZIGBEE_STATE));
|
MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_ZIGBEE_STATE));
|
||||||
|
|
||||||
if ((0x02 == major_rel) && ((0x06 == minor_rel) || (0x07 == minor_rel))) {
|
if ((0x02 == zigbee.major_rel) && ((0x06 == zigbee.minor_rel) || (0x07 == zigbee.minor_rel))) {
|
||||||
return 0; // version 2.6.x and 2.7.x are ok
|
return 0; // version 2.6.x and 2.7.x are ok
|
||||||
} else {
|
} else {
|
||||||
return ZIGBEE_LABEL_UNSUPPORTED_VERSION; // abort
|
return ZIGBEE_LABEL_UNSUPPORTED_VERSION; // abort
|
||||||
@ -474,14 +475,17 @@ int32_t EZ_ReceiveCheckVersion(int32_t res, SBuffer &buf) {
|
|||||||
uint8_t stack_type = buf.get8(3);
|
uint8_t stack_type = buf.get8(3);
|
||||||
zigbee.ezsp_version = buf.get16(4);
|
zigbee.ezsp_version = buf.get16(4);
|
||||||
|
|
||||||
|
zigbee.major_rel = (zigbee.ezsp_version & 0xF000) >> 12;
|
||||||
|
zigbee.minor_rel = (zigbee.ezsp_version & 0x0F00) >> 8;
|
||||||
|
zigbee.maint_rel = (zigbee.ezsp_version & 0x00F0) >> 4;
|
||||||
|
zigbee.revision = zigbee.ezsp_version & 0x000F;
|
||||||
|
|
||||||
Response_P(PSTR("{\"" D_JSON_ZIGBEE_STATE "\":{"
|
Response_P(PSTR("{\"" D_JSON_ZIGBEE_STATE "\":{"
|
||||||
"\"Status\":%d,\"Version\":\"%d.%d.%d.%d\",\"Protocol\":%d"
|
"\"Status\":%d,\"Version\":\"%d.%d.%d.%d\",\"Protocol\":%d"
|
||||||
",\"Stack\":%d}}"),
|
",\"Stack\":%d}}"),
|
||||||
ZIGBEE_STATUS_EZ_VERSION,
|
ZIGBEE_STATUS_EZ_VERSION,
|
||||||
(zigbee.ezsp_version & 0xF000) >> 12,
|
zigbee.major_rel, zigbee.minor_rel,
|
||||||
(zigbee.ezsp_version & 0x0F00) >> 8,
|
zigbee.maint_rel, zigbee.revision,
|
||||||
(zigbee.ezsp_version & 0x00F0) >> 4,
|
|
||||||
zigbee.ezsp_version & 0x000F,
|
|
||||||
protocol_version,
|
protocol_version,
|
||||||
stack_type
|
stack_type
|
||||||
);
|
);
|
||||||
|
@ -1931,6 +1931,19 @@ uint32_t convert_seconds_to_dhm(uint32_t seconds, char *unit, uint8_t *color){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char HTTP_ZB_VERSION[] PROGMEM =
|
||||||
|
"<div style='text-align:right;font-size:11px;color:#aaa;'>"
|
||||||
|
"Zigbee: "
|
||||||
|
#if defined(USE_ZIGBEE_EZSP)
|
||||||
|
"EZSP"
|
||||||
|
#elif defined(USE_ZIGBEE_ZNP)
|
||||||
|
"ZNP"
|
||||||
|
#else
|
||||||
|
"unknown"
|
||||||
|
#endif
|
||||||
|
" v%d.%d.%d.%d"
|
||||||
|
"</div>";
|
||||||
|
|
||||||
const char HTTP_BTN_ZB_BUTTONS[] PROGMEM =
|
const char HTTP_BTN_ZB_BUTTONS[] PROGMEM =
|
||||||
"<button onclick='la(\"&zbj=1\");'>" D_ZIGBEE_PERMITJOIN "</button>"
|
"<button onclick='la(\"&zbj=1\");'>" D_ZIGBEE_PERMITJOIN "</button>"
|
||||||
"<p></p>"
|
"<p></p>"
|
||||||
@ -2114,6 +2127,12 @@ void ZigbeeShow(bool json)
|
|||||||
|
|
||||||
WSContentSend_P(msg[ZB_WEB_PERMITJOIN_ACTIVE], PSTR(D_ZIGBEE_PERMITJOIN_ACTIVE));
|
WSContentSend_P(msg[ZB_WEB_PERMITJOIN_ACTIVE], PSTR(D_ZIGBEE_PERMITJOIN_ACTIVE));
|
||||||
}
|
}
|
||||||
|
// show Zigbee MCU version
|
||||||
|
if (!zigbee.init_phase) {
|
||||||
|
WSContentSend_P(HTTP_ZB_VERSION,
|
||||||
|
zigbee.major_rel, zigbee.minor_rel,
|
||||||
|
zigbee.maint_rel, zigbee.revision);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user