Skip to content

Commit

Permalink
fix switchtimes emsesp#1594, add tests for switchtimes
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelDvP committed Aug 29, 2024
1 parent a17bc3f commit 68e9452
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 44 deletions.
49 changes: 21 additions & 28 deletions src/devices/thermostat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ std::shared_ptr<Thermostat::HeatingCircuit> Thermostat::heating_circuit(std::sha
// not found, search timer message types
if (hc_num == 0) {
for (uint8_t i = 0; i < timer3_typeids.size(); i++) {
if (timer2_typeids[i] == telegram->type_id) {
if (timer3_typeids[i] == telegram->type_id) {
hc_num = i + 1;
break;
}
Expand All @@ -371,7 +371,7 @@ std::shared_ptr<Thermostat::HeatingCircuit> Thermostat::heating_circuit(std::sha
// not found, search timer message types
if (hc_num == 0) {
for (uint8_t i = 0; i < timer4_typeids.size(); i++) {
if (timer2_typeids[i] == telegram->type_id) {
if (timer4_typeids[i] == telegram->type_id) {
hc_num = i + 1;
break;
}
Expand Down Expand Up @@ -459,12 +459,6 @@ std::shared_ptr<Thermostat::HeatingCircuit> Thermostat::heating_circuit(std::sha
if (curve_typeids.size()) {
toggle_fetch(curve_typeids[hc_num - 1], toggle_);
}
if (timer_typeids.size()) {
toggle_fetch(timer_typeids[hc_num - 1], toggle_);
}
if (timer2_typeids.size()) {
toggle_fetch(timer2_typeids[hc_num - 1], toggle_);
}
if (summer2_typeids.size()) {
toggle_fetch(summer2_typeids[hc_num - 1], toggle_);
}
Expand All @@ -478,13 +472,13 @@ std::shared_ptr<Thermostat::HeatingCircuit> Thermostat::heating_circuit(std::sha
toggle_fetch(timer_typeids[hc_num - 1], toggle_);
}
if (timer2_typeids.size()) {
toggle_fetch(timer_typeids[hc_num - 1], toggle_);
toggle_fetch(timer2_typeids[hc_num - 1], toggle_);
}
if (timer3_typeids.size()) {
toggle_fetch(timer_typeids[hc_num - 1], toggle_);
toggle_fetch(timer3_typeids[hc_num - 1], toggle_);
}
if (timer4_typeids.size()) {
toggle_fetch(timer_typeids[hc_num - 1], toggle_);
toggle_fetch(timer4_typeids[hc_num - 1], toggle_);
}

return new_hc; // return back point to new HC object
Expand Down Expand Up @@ -1155,7 +1149,7 @@ void Thermostat::process_RC300Set(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, hc->reducetemp, 9);
has_update(telegram, hc->noreducetemp, 12);
has_update(telegram, hc->remoteseltemp, 17); // see https://github.com/emsesp/EMS-ESP32/issues/590
has_enumupdate(telegram, hc->switchProgMode, 19, 1); // 1-level, 2-absolute
has_enumupdate(telegram, hc->switchProgMode, 19, 1); // 1-level, 2-absolute to enum 0,1
has_update(telegram, hc->boost, 23);
has_update(telegram, hc->boosttime, 24);
has_update(telegram, hc->cooling, 28);
Expand Down Expand Up @@ -1361,16 +1355,16 @@ void Thermostat::process_RC300Timer(std::shared_ptr<const Telegram> telegram) {
auto hc = heating_circuit(telegram);
auto length = ((telegram->offset + telegram->message_length) > 84) ? 84 - telegram->offset : telegram->message_length;
if (hc) {
if (hc->switchProgMode == 1) {
if (hc->switchProgMode == 0) {
if (telegram->type_id == 0x2C3 + hc->hc()) {
memcpy(&hc->switchtime1[telegram->offset], telegram->message_data, length);
} else if (telegram->type_id == 0x449 + hc->hc()) {
memcpy(&hc->switchtime2[telegram->offset], telegram->message_data, length);
}
} else {
if (telegram->type_id == 0x684 + hc->hc()) {
if (telegram->type_id == 0x683 + hc->hc()) {
memcpy(&hc->switchtime1[telegram->offset], telegram->message_data, length);
} else if (telegram->type_id == 0x68E + hc->hc()) {
} else if (telegram->type_id == 0x68D + hc->hc()) {
memcpy(&hc->switchtime2[telegram->offset], telegram->message_data, length);
}
}
Expand Down Expand Up @@ -1546,7 +1540,6 @@ void Thermostat::process_RC35Timer(std::shared_ptr<const Telegram> telegram) {
return;
}

uint8_t prog = telegram->type_id == timer_typeids[hc->hc()] ? 0 : 1;
if (telegram->offset < 0x84) {
auto length = ((telegram->offset + telegram->message_length) > 84) ? 84 - telegram->offset : telegram->message_length;
if (telegram->type_id == timer_typeids[hc->hc()]) {
Expand Down Expand Up @@ -3383,10 +3376,10 @@ bool Thermostat::set_switchtime1(const char * value, const int8_t id) {
if (hc == nullptr) {
return false;
}
if (isRC300() && hc->switchProgMode == 1) {
return set_switchtime(value, timer3_typeids[hc->hc()]);
} else {
if (isRC300() && hc->switchProgMode == 0) {
return set_switchtime(value, timer_typeids[hc->hc()]);
} else {
return set_switchtime(value, timer3_typeids[hc->hc()]);
}
return false;
}
Expand All @@ -3397,10 +3390,10 @@ bool Thermostat::set_switchtime2(const char * value, const int8_t id) {
if (hc == nullptr) {
return false;
}
if (isRC300() && hc->switchProgMode == 1) {
return set_switchtime(value, timer4_typeids[hc->hc()]);
} else {
if (isRC300() && hc->switchProgMode == 0) {
return set_switchtime(value, timer2_typeids[hc->hc()]);
} else {
return set_switchtime(value, timer4_typeids[hc->hc()]);
}
return false;
}
Expand Down Expand Up @@ -4890,10 +4883,10 @@ void Thermostat::register_device_values_dhw(std::shared_ptr<Thermostat::DhwCircu
0,
1431);
init_switchtime(dhw->switchtime, 84);
register_device_value(tag, &dhw->switchtime, DeviceValueType::JSON, FL_(rc35), FL_(switchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwSwitchTime));
register_device_value(tag, &dhw->switchtime, DeviceValueType::JSON, FL_(rc300), FL_(switchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwSwitchTime));
init_switchtime(dhw->circswitchtime, 84);
register_device_value(
tag, &dhw->circswitchtime, DeviceValueType::JSON, FL_(rc35), FL_(circswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwCircSwitchTime));
tag, &dhw->circswitchtime, DeviceValueType::JSON, FL_(rc300), FL_(circswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwCircSwitchTime));
break;
case EMSdevice::EMS_DEVICE_FLAG_RC10:
register_device_value(tag, &dhw->wwMode_, DeviceValueType::ENUM, FL_(enum_wwMode3), FL_(wwMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwmode));
Expand Down Expand Up @@ -4925,10 +4918,10 @@ void Thermostat::register_device_values_dhw(std::shared_ptr<Thermostat::DhwCircu
register_device_value(tag, &dhw->wwMaxTemp_, DeviceValueType::UINT8, FL_(wwMaxTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwMaxTemp));
register_device_value(tag, &dhw->wwOneTimeKey_, DeviceValueType::BOOL, FL_(wwOneTimeKey), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwOneTimeKey));
init_switchtime(dhw->switchtime, 84);
register_device_value(tag, &dhw->switchtime, DeviceValueType::JSON, FL_(rc35), FL_(wwswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwSwitchTime));
register_device_value(tag, &dhw->switchtime, DeviceValueType::JSON, FL_(rc35), FL_(switchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwSwitchTime));
init_switchtime(dhw->circswitchtime, 84);
register_device_value(
tag, &dhw->circswitchtime, DeviceValueType::JSON, FL_(rc35), FL_(wwcircswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwCircSwitchTime));
tag, &dhw->circswitchtime, DeviceValueType::JSON, FL_(rc35), FL_(circswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwCircSwitchTime));
register_device_value(tag, &dhw->wwHoliday_, DeviceValueType::STRING, FL_(tpl_holidays), FL_(wwHolidays), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwHoliday));
register_device_value(tag, &dhw->wwVacation_, DeviceValueType::STRING, FL_(tpl_holidays), FL_(wwVacations), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwVacation));
break;
Expand All @@ -4944,10 +4937,10 @@ void Thermostat::register_device_values_dhw(std::shared_ptr<Thermostat::DhwCircu
register_device_value(tag, &dhw->wwMaxTemp_, DeviceValueType::UINT8, FL_(wwMaxTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwMaxTemp), 60, 80);
register_device_value(tag, &dhw->wwOneTimeKey_, DeviceValueType::BOOL, FL_(wwOneTimeKey), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwOneTimeKey));
init_switchtime(dhw->switchtime, 84);
register_device_value(tag, &dhw->switchtime, DeviceValueType::JSON, FL_(rc35), FL_(wwswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwSwitchTime));
register_device_value(tag, &dhw->switchtime, DeviceValueType::JSON, FL_(rc35), FL_(switchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwSwitchTime));
init_switchtime(dhw->circswitchtime, 84);
register_device_value(
tag, &dhw->circswitchtime, DeviceValueType::JSON, FL_(rc35), FL_(wwcircswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwCircSwitchTime));
tag, &dhw->circswitchtime, DeviceValueType::JSON, FL_(rc35), FL_(circswitchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwCircSwitchTime));
register_device_value(tag, &dhw->wwHoliday_, DeviceValueType::STRING, FL_(tpl_holidays), FL_(wwHolidays), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwHoliday));
register_device_value(tag, &dhw->wwVacation_, DeviceValueType::STRING, FL_(tpl_holidays), FL_(wwVacations), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwVacation));
break;
Expand Down
17 changes: 8 additions & 9 deletions src/emsdevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1623,23 +1623,22 @@ void EMSdevice::get_value_json(JsonObject json, DeviceValue & dv) {
}
}
} else if (!strcmp(dv.options_single[0], "RC300")) {
auto json_val = json[value].to<JsonObject>();
auto json_val = json[value].to<JsonArray>();
for (uint8_t day = 0; day < 7; day++) {
auto json_dow = json_val[Helpers::translated_word(FL_(enum_dayOfWeek[day]))].to<JsonArray>();
for (uint8_t id = 0; id < 6; id++) {
auto data = json_dow.add<JsonObject>();
uint8_t * v_p = (uint8_t *)dv.value_p + 12 * day + 2 * id;
if (*v_p != 0xFF) {
data["id"] = id;
uint8_t * v_p = ((uint8_t *)dv.value_p) + 12 * day + 2 * id;
if (*(v_p + 1) != 0xFF) {
auto data = json_val.add<JsonObject>();
data["day"] = Helpers::translated_word(FL_(enum_dayOfWeek[day]));
char time[6];
data["time"] = Helpers::render_clock(time, *(v_p), DeviceValue::DV_NUMOP_MUL15);
uint8_t mode = *(v_p + 1) + 1; // sets 0xFF to index 0
data["time"] = Helpers::render_clock(time, *(v_p + 1), DeviceValue::DV_NUMOP_MUL15);
uint8_t mode = *(v_p) + 1; // sets 0xFF to index 0
if (mode < 5) {
data["mode"] = Helpers::translated_word(FL_(enum_switchmode[mode]));
} else {
data["temp"] = (*(v_p + 1)) / 2;
data["temp"] = (*(v_p)) / 2;
}
data["id"] = id;
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/locale_translations.h
Original file line number Diff line number Diff line change
Expand Up @@ -625,8 +625,8 @@ MAKE_TRANSLATION(wwSolarTemp, "solartemp", "solar boiler temperature", "Solarboi
MAKE_TRANSLATION(switchtime, "switchtime", "program switchtime", "Programm Schaltzeit", "Programma schakeltijd", "Program Bytestid", "program czasowy", "programbyttetid", "heure commutation programme", "program değiştirme süresi", "ora commutazione programmata", "čas prepnutia programu")
MAKE_TRANSLATION(switchtime1, "switchtime1", "own1 program switchtime", "Programm 1 Schaltzeit", "Schakeltijd programma 1", "Program 1 Bytestid", "program przełączania 1", "byttetidprogram 1", "heure de commutation programme 1", "program1 değiştirme süresi", "ora commutazione programma 1", "vlastný 1 program prepnutia")
MAKE_TRANSLATION(switchtime2, "switchtime2", "own2 program switchtime", "Programm 2 Schaltzeit", "Schakeltijd programma 2", "Program 2 Bytestid", "program przełączania 2", "byttetid program 2", "heure de changement programme 2", "program1 değiştirme süresi", "ora commutazione programma 2", "vlastný 2 program prepnutia")
MAKE_TRANSLATION(wwswitchtime, "switchtime", "program switchtime", "Programm Schaltzeit", "Warm water programma schakeltijd", "Varmvattenprogram Bytestid", "program czasowy", "byttetid varmtvannsprogram", "heure commutation programme", "sıcak kullanıom suyu program değiştirme süresi", "Tempo di commutazione del programma", "čas prepnutia programu")
MAKE_TRANSLATION(wwcircswitchtime, "circswitchtime", "circulation program switchtime", "Zirculationsprogramm Schaltzeit", "Schakeltijd circulatieprogramma", "Cirkulationsprogram Bytestid", "program cyrkulacji", "byttetid sirkulasjonsprogram", "heure commutation programme circulation", "sirkülasyon program değiştirme süresi", "ora commutazione programma circolazione", "čas prepnutia cirkulačného programu")
// MAKE_TRANSLATION(wwswitchtime, "switchtime", "program switchtime", "Programm Schaltzeit", "Warm water programma schakeltijd", "Varmvattenprogram Bytestid", "program czasowy", "byttetid varmtvannsprogram", "heure commutation programme", "sıcak kullanıom suyu program değiştirme süresi", "Tempo di commutazione del programma", "čas prepnutia programu")
MAKE_TRANSLATION(circswitchtime, "circswitchtime", "circulation program switchtime", "Zirculationsprogramm Schaltzeit", "Schakeltijd circulatieprogramma", "Cirkulationsprogram Bytestid", "program cyrkulacji", "byttetid sirkulasjonsprogram", "heure commutation programme circulation", "sirkülasyon program değiştirme süresi", "ora commutazione programma circolazione", "čas prepnutia cirkulačného programu")
MAKE_TRANSLATION(dateTime, "datetime", "date/time", "Datum/Zeit", "Datum/Tijd", "Datum/Tid", "data i godzina", "dato/tid", "date/heure", "zaman/saat", "Data/Ora", "dátum/čas")
MAKE_TRANSLATION(errorCode, "errorcode", "error code", "Fehlernummer", "Foutmeldingscode", "Felkod", "kod błędu", "feikode", "code erreur", "hata kodu", "codice errore", "error kód")
MAKE_TRANSLATION(ibaMainDisplay, "display", "display", "Anzeige", "Display", "Display", "wyświetlacz", "skjerm", "affichage", "ekran", "Display", "display")
Expand Down
6 changes: 3 additions & 3 deletions src/modbus_entity_parameters.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ const std::initializer_list<Modbus::EntityModbusInfo> Modbus::modbus_register_ma
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daylowtemp), 100, 1), // daytemp2
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(daymidtemp), 101, 1), // daytemp3
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(dayhightemp), 102, 1), // daytemp4
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(wwswitchtime), 103, 8), // switchtime
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(switchtime), 103, 8), // switchtime
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations1), 111, 11), // vacations1
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations2), 122, 11), // vacations2
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_HC, FL_(vacations3), 133, 11), // vacations3
Expand Down Expand Up @@ -374,8 +374,8 @@ const std::initializer_list<Modbus::EntityModbusInfo> Modbus::modbus_register_ma
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwDisinfectHour), 14, 1), // disinfecthour
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwMaxTemp), 15, 1), // maxtemp
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwOneTimeKey), 16, 1), // onetimekey
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwswitchtime), 17, 8), // switchtime
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwcircswitchtime), 25, 8), // circswitchtime
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(switchtime), 17, 8), // switchtime
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(circswitchtime), 25, 8), // circswitchtime
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(holidays), 33, 13), // holidays
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(vacations), 46, 13), // vacations
REGISTER_MAPPING(dt::THERMOSTAT, TAG_TYPE_DHW, FL_(wwWhenModeOff), 59, 1), // whenmodeoff
Expand Down
38 changes: 36 additions & 2 deletions src/test/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ bool Test::test(const std::string & cmd, int8_t id1, int8_t id2) {
0x80, 0x00, 0x01, 0xE1, 0x01, 0x76, 0x0E, 0x3D, 0x48, 0x00, 0xC9, 0x44, 0x02, 0x00});

// Boiler -> Thermostat, UBAParameterWW(0x33), telegram: 08 97 33 00 23 24 (#data=2)
uart_telegram({0x08, 0x90, 0x33, 0x00, 0x23, 0x24});
// uart_telegram({0x08, 0x90, 0x33, 0x00, 0x23, 0x24});

// Boiler -> Me, UBAParameterWW(0x33), telegram: 08 0B 33 00 08 FF 34 FB 00 28 00 00 46 00 FF FF 00 (#data=13)
uart_telegram({0x08, 0x0B, 0x33, 0x00, 0x08, 0xFF, 0x34, 0xFB, 0x00, 0x28, 0x00, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x00});
Expand All @@ -149,7 +149,41 @@ bool Test::test(const std::string & cmd, int8_t id1, int8_t id2) {
03, 03, 01, 01, 0x54, 02, 0xA8, 00, 00, 0x11, 01, 03, 0xFF, 0xFF, 00});

// RC300WWmode2(0x31D), data: 00 00 09 07
uart_telegram({0x10, 00, 0xFF, 00, 02, 0x1D, 00, 00, 0x09, 0x07});
// uart_telegram({0x10, 00, 0xFF, 00, 02, 0x1D, 00, 00, 0x09, 0x07});

// RC300 2B9 settings 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
uart_telegram("10 00 FF 00 01 B9 00 00 2C 23 00 00 00 00 FF 00 00 01 00 00 00 00 00 00 00 02");

/**/
// ww switch program 2FF
uart_telegram("10 00 FF 00 01 FF 02 0C 01 12 02 30 01 3C 02 FF 02 FF 02 0C 01 12 02 30 01 3C 02 FF 02 FF 02");
uart_telegram("10 00 FF 19 01 FF 0C 01 12 02 30 01 3C 02 FF 02 FF 02 0C 01 12 02 30 01 3C 02 FF 02 FF 02 0C");
uart_telegram("10 00 FF 32 01 FF 01 12 02 30 01 3C 02 FF 02 FF 02 0C 01 12 02 30 01 3C 02 FF 02 FF 02 0C 01");
uart_telegram("10 00 FF 4B 01 FF 12 02 30 01 3C 02 FF 02 FF");

// ww circ switch progam 309
uart_telegram("10 00 FF 00 02 09 FF 12 00 5A FF FF FF FF FF FF FF FF FF 12 00 5A FF FF FF FF FF FF FF FF FF");
uart_telegram("10 00 FF 19 02 09 12 00 5A FF FF FF FF FF FF FF FF FF 12 00 5A FF FF FF FF FF FF FF FF FF 12");
uart_telegram("10 00 FF 32 02 09 00 5A FF FF FF FF FF FF FF FF FF 18 00 5C FF FF FF FF FF FF FF FF FF 1C 00");
uart_telegram("10 00 FF 4B 02 09 5C FF FF FF FF FF FF FF FF");
/**/
// hc1 switch progam1 683
uart_telegram("10 00 FF 00 05 83 2A 18 29 5C 1E FF 1E FF 2A FF 2A FF 2A 18 29 5C 1E FF 1E FF 2A FF 2A FF 2A");
uart_telegram("10 00 FF 19 05 83 18 29 5C 1E FF 1E FF 2A FF 2A FF 2A 18 29 5C 1E FF 1E FF 2A FF 2A FF 2A 18");
uart_telegram("10 00 FF 32 05 83 29 5C 1E FF 1E FF 2A FF 2A FF 2A 1C 29 5C 1E FF 1E FF 2A FF 2A FF 2A 20 29");
uart_telegram("10 00 FF 4B 05 83 5C 1E FF 1E FF 2A FF 2A FF");

// hc1 switch progam2 68D
uart_telegram("10 00 FF 00 05 8D 2A 18 1E 20 2A 40 1E 5C 1E FF 2A FF 2A 18 1E 20 2A 40 1E 5C 1E FF 2A FF 2A");
uart_telegram("10 00 FF 19 05 0D 18 1E 20 2A 40 1E 5C 1E FF 2A FF 2A 18 1E 20 2A 40 1E 5C 1E FF 2A FF 2A 18");
uart_telegram("10 00 FF 32 05 8D 1E 20 2A 40 1E 5C 1E FF 2A FF 2A 20 1E 5C 2A FF 1E FF 2A FF 1E FF 2A 20 1E");
uart_telegram("10 00 FF 4B 05 8D 5C 2A FF 1E FF 2A FF 1E FF");

// hc1 switch progam1 2C3
uart_telegram("10 00 FF 00 01 C3 03 18 01 5C 01 FF 01 FF 01 FF 01 FF 03 18 01 5C 1E FF 1E FF 2A FF 2A FF 03");
uart_telegram("10 00 FF 19 01 C3 18 01 5C 1E FF 1E FF 2A FF 2A FF 03 18 01 5C 1E FF 1E FF 2A FF 2A FF 03 18");
uart_telegram("10 00 FF 32 01 C3 01 5C 1E FF 1E FF 2A FF 2A FF 01 1C 03 5C 1E FF 1E FF 2A FF 2A FF 03 20 01");
uart_telegram("10 00 FF 4B 01 C3 5C 1E FF 1E FF 2A FF 2A FF");

return true;
}
Expand Down

0 comments on commit 68e9452

Please sign in to comment.