mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 08:19:52 +03:00
fix ht3-reply
This commit is contained in:
@@ -122,7 +122,7 @@ void Roomctrl::send(const uint8_t addr) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// acknowledge every poll, otherwise the master shows error A22-816
|
// acknowledge every poll, otherwise the master shows error A22-816
|
||||||
EMSuart::send_poll(addr ^ EMSbus::ems_mask());
|
EMSuart::send_poll(addr | EMSbus::ems_mask());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -174,8 +174,8 @@ void Roomctrl::check(uint8_t addr, const uint8_t * data, const uint8_t length) {
|
|||||||
*/
|
*/
|
||||||
void Roomctrl::version(uint8_t addr, uint8_t dst) {
|
void Roomctrl::version(uint8_t addr, uint8_t dst) {
|
||||||
uint8_t data[15];
|
uint8_t data[15];
|
||||||
data[0] = addr ^ EMSbus::ems_mask();
|
data[0] = addr | EMSbus::ems_mask();
|
||||||
data[1] = dst;
|
data[1] = dst & 0x7F;
|
||||||
data[2] = 0x02;
|
data[2] = 0x02;
|
||||||
data[3] = 0;
|
data[3] = 0;
|
||||||
data[4] = type_; // set RC20 id 113, Ver 02.01 or Junkers FB10 id 109, Ver 16.05, RC100H id 200 ver 40.04
|
data[4] = type_; // set RC20 id 113, Ver 02.01 or Junkers FB10 id 109, Ver 16.05, RC100H id 200 ver 40.04
|
||||||
@@ -188,7 +188,8 @@ void Roomctrl::version(uint8_t addr, uint8_t dst) {
|
|||||||
}
|
}
|
||||||
// RC200 adds some extra bytes
|
// RC200 adds some extra bytes
|
||||||
data[7] = 0;
|
data[7] = 0;
|
||||||
data[8] = 0xFF, data[9] = 0;
|
data[8] = 0xFF;
|
||||||
|
data[9] = 0;
|
||||||
data[10] = 0;
|
data[10] = 0;
|
||||||
data[11] = 0;
|
data[11] = 0;
|
||||||
data[12] = 0;
|
data[12] = 0;
|
||||||
@@ -201,8 +202,8 @@ void Roomctrl::version(uint8_t addr, uint8_t dst) {
|
|||||||
*/
|
*/
|
||||||
void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t type, uint8_t offset) {
|
void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t type, uint8_t offset) {
|
||||||
uint8_t data[10];
|
uint8_t data[10];
|
||||||
data[0] = addr ^ EMSbus::ems_mask();
|
data[0] = addr | EMSbus::ems_mask();
|
||||||
data[1] = dst;
|
data[1] = dst & 0x7F;
|
||||||
data[2] = type;
|
data[2] = type;
|
||||||
data[3] = offset;
|
data[3] = offset;
|
||||||
data[4] = EMSbus::calculate_crc(data, 4); // apppend CRC
|
data[4] = EMSbus::calculate_crc(data, 4); // apppend CRC
|
||||||
@@ -211,8 +212,8 @@ void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t type, uint8_t offset)
|
|||||||
|
|
||||||
void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t offset, uint8_t typeh, uint8_t typel) {
|
void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t offset, uint8_t typeh, uint8_t typel) {
|
||||||
uint8_t data[10];
|
uint8_t data[10];
|
||||||
data[0] = addr ^ EMSbus::ems_mask();
|
data[0] = addr | EMSbus::ems_mask();
|
||||||
data[1] = dst;
|
data[1] = dst & 0x7F;
|
||||||
data[2] = 0xFF;
|
data[2] = 0xFF;
|
||||||
data[3] = offset;
|
data[3] = offset;
|
||||||
data[4] = typeh;
|
data[4] = typeh;
|
||||||
@@ -226,8 +227,8 @@ void Roomctrl::unknown(uint8_t addr, uint8_t dst, uint8_t offset, uint8_t typeh,
|
|||||||
*/
|
*/
|
||||||
void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||||
uint8_t data[12];
|
uint8_t data[12];
|
||||||
data[0] = addr ^ EMSbus::ems_mask();
|
data[0] = addr | EMSbus::ems_mask();
|
||||||
data[1] = dst;
|
data[1] = dst & 0x7F;
|
||||||
if (type_ == RC20) { // RC20, telegram 0xAF
|
if (type_ == RC20) { // RC20, telegram 0xAF
|
||||||
data[2] = 0xAF;
|
data[2] = 0xAF;
|
||||||
data[3] = 0;
|
data[3] = 0;
|
||||||
@@ -282,8 +283,8 @@ void Roomctrl::temperature(uint8_t addr, uint8_t dst, uint8_t hc) {
|
|||||||
// send telegram 0x047B only for RC100H
|
// send telegram 0x047B only for RC100H
|
||||||
void Roomctrl::humidity(uint8_t addr, uint8_t dst, uint8_t hc) {
|
void Roomctrl::humidity(uint8_t addr, uint8_t dst, uint8_t hc) {
|
||||||
uint8_t data[11];
|
uint8_t data[11];
|
||||||
data[0] = addr ^ EMSbus::ems_mask();
|
data[0] = addr | EMSbus::ems_mask();
|
||||||
data[1] = dst;
|
data[1] = dst & 0x7F;
|
||||||
uint16_t dew = calc_dew(remotetemp_[hc], remotehum_[hc]);
|
uint16_t dew = calc_dew(remotetemp_[hc], remotehum_[hc]);
|
||||||
if (type_ == RC100H) { // RC100H, telegram 47B
|
if (type_ == RC100H) { // RC100H, telegram 47B
|
||||||
data[2] = 0xFF;
|
data[2] = 0xFF;
|
||||||
|
|||||||
Reference in New Issue
Block a user