Found last unkown status frame is also aircon.
This commit is contained in:
parent
565f96ef33
commit
223b59a228
@ -403,14 +403,21 @@ const u_int8_t *TrumaiNetBoxApp::lin_multiframe_recieved(const u_int8_t *message
|
||||
ESP_LOGI(TAG, "StatusFrameAirconInit");
|
||||
// Example:
|
||||
// SID<---------PREAMBLE---------->|<---MSG_HEAD---->|
|
||||
// BB.00.1F.00.1E.00.00.22.FF.FF.FF.54.01.16.3F.00.E2.00.00.71.01.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00
|
||||
// BB.00.1F.00.1E.00.00.22.FF.FF.FF.54.01.16.3F.00.E2.00.00.71.01.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00
|
||||
return response;
|
||||
} else if (header->message_type == STATUS_FRAME_AIRCON2 && header->message_length == sizeof(StatusFrameAircon2)) {
|
||||
} else if (header->message_type == STATUS_FRAME_AIRCON_2 && header->message_length == sizeof(StatusFrameAircon2)) {
|
||||
ESP_LOGI(TAG, "StatusFrameAircon2");
|
||||
// Example:
|
||||
// SID<---------PREAMBLE---------->|<---MSG_HEAD---->|
|
||||
// BB.00.1F.00.1E.00.00.22.FF.FF.FF.54.01.12.37.00.BF.01.00.01.00.00.00.00.00.00.00.00.00.00.00.49.0B.40.0B
|
||||
return response;
|
||||
} else if (header->message_type == STATUS_FRAME_AIRCON_INIT_2 &&
|
||||
header->message_length == sizeof(StatusFrameAirconInit2)) {
|
||||
ESP_LOGI(TAG, "StatusFrameAirconInit2");
|
||||
// Example:
|
||||
// SID<---------PREAMBLE---------->|<---MSG_HEAD---->|
|
||||
// BB.00.1F.00.1E.00.00.22.FF.FF.FF.54.01.14.41.00.53.01.00.01.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00
|
||||
return response;
|
||||
} else if (header->message_type == STATUS_FRAME_TIMER && header->message_length == sizeof(StatusFrameTimer)) {
|
||||
ESP_LOGI(TAG, "StatusFrameTimer");
|
||||
// EXAMPLE:
|
||||
|
||||
@ -34,14 +34,14 @@ namespace truma_inetbox {
|
||||
#define STATUS_FRAME_HEATER 0x33
|
||||
#define STATUS_FRAME_AIRCON_RESPONSE (STATUS_FRAME_AIRCON - 1)
|
||||
#define STATUS_FRAME_AIRCON 0x35
|
||||
#define STATUS_FRAME_AIRCON2_RESPONSE (STATUS_FRAME_AIRCON2 - 1)
|
||||
#define STATUS_FRAME_AIRCON2 0x37
|
||||
#define STATUS_FRAME_AIRCON_2_RESPONSE (STATUS_FRAME_AIRCON_2 - 1)
|
||||
#define STATUS_FRAME_AIRCON_2 0x37
|
||||
#define STATUS_FRAME_TIMER_RESPONSE (STATUS_FRAME_TIMER - 1)
|
||||
#define STATUS_FRAME_TIMER 0x3D
|
||||
#define STATUS_FRAME_AIRCON_INIT_RESPONSE (STATUS_FRAME_AIRCON_INIT - 1)
|
||||
#define STATUS_FRAME_AIRCON_INIT 0x3F
|
||||
// Error response - unknown function
|
||||
#define STATUS_FRAME_UNKNOWN_40 0x40
|
||||
#define STATUS_FRAME_AIRCON_INIT_2_RESPONSE (STATUS_FRAME_AIRCON_INIT_2 - 1)
|
||||
#define STATUS_FRAME_AIRCON_INIT_2 0x41
|
||||
|
||||
enum class HeatingMode : u_int16_t {
|
||||
HEATING_MODE_OFF = 0x0,
|
||||
@ -226,71 +226,6 @@ struct StatusFrameHeaterResponse { // NOLINT(altera-struct-pack-align)
|
||||
EnergyMix energy_mix_b;
|
||||
} __attribute__((packed));
|
||||
|
||||
// Length 18 (0x12)
|
||||
// TODO
|
||||
struct StatusFrameAircon { // NOLINT(altera-struct-pack-align)
|
||||
// Mode? 00 - OFF, 04 - AC Ventilation, 05 - AC Cooling
|
||||
u_int8_t unknown_01;
|
||||
// 0x00
|
||||
u_int8_t unknown_02;
|
||||
// 0x71
|
||||
u_int8_t unknown_03;
|
||||
// 0x01
|
||||
u_int8_t unknown_04;
|
||||
TargetTemp target_temp_room;
|
||||
// 0x00
|
||||
u_int8_t unknown_07;
|
||||
// 0x00
|
||||
u_int8_t unknown_08;
|
||||
// No idea why two current_temp
|
||||
TargetTemp current_temp_aircon;
|
||||
// 0x00
|
||||
u_int8_t unknown_11;
|
||||
// 0x00
|
||||
u_int8_t unknown_12;
|
||||
// 0x00
|
||||
u_int8_t unknown_13;
|
||||
// 0x00
|
||||
u_int8_t unknown_14;
|
||||
// 0x00
|
||||
u_int8_t unknown_15;
|
||||
// 0x00
|
||||
u_int8_t unknown_16;
|
||||
TargetTemp current_temp_room;
|
||||
} __attribute__((packed));
|
||||
|
||||
// TODO
|
||||
struct StatusFrameAirconResponse { // NOLINT(altera-struct-pack-align)
|
||||
// Mode? 00 - OFF, 04 - AC Ventilation, 05 - AC Cooling
|
||||
u_int8_t unknown_01;
|
||||
// 0x00
|
||||
u_int8_t unknown_02;
|
||||
// 0x71
|
||||
u_int8_t unknown_03;
|
||||
// 0x01
|
||||
u_int8_t unknown_04;
|
||||
TargetTemp target_temp_room;
|
||||
// 0x00
|
||||
u_int8_t unknown_07;
|
||||
// 0x00
|
||||
u_int8_t unknown_08;
|
||||
// No idea why two current_temp
|
||||
TargetTemp current_temp_aircon;
|
||||
// 0x00
|
||||
u_int8_t unknown_11;
|
||||
// 0x00
|
||||
u_int8_t unknown_12;
|
||||
// 0x00
|
||||
u_int8_t unknown_13;
|
||||
// 0x00
|
||||
u_int8_t unknown_14;
|
||||
// 0x00
|
||||
u_int8_t unknown_15;
|
||||
// 0x00
|
||||
u_int8_t unknown_16;
|
||||
TargetTemp current_temp_room;
|
||||
} __attribute__((packed));
|
||||
|
||||
// Length 24 (0x18)
|
||||
struct StatusFrameTimer { // NOLINT(altera-struct-pack-align)
|
||||
TargetTemp timer_target_temp_room;
|
||||
@ -406,15 +341,99 @@ struct StatusFrameDevice { // NOLINT(altera-struct-pack-align)
|
||||
u_int8_t unknown_3;
|
||||
} __attribute__((packed));
|
||||
|
||||
// Length 18 (0x12)
|
||||
// TODO
|
||||
struct StatusFrameAircon { // NOLINT(altera-struct-pack-align)
|
||||
// Mode? 00 - OFF, 04 - AC Ventilation, 05 - AC Cooling
|
||||
u_int8_t unknown_01;
|
||||
// 0x00
|
||||
u_int8_t unknown_02;
|
||||
// 0x71
|
||||
u_int8_t unknown_03;
|
||||
// 0x01
|
||||
u_int8_t unknown_04;
|
||||
TargetTemp target_temp_room;
|
||||
// 0x00
|
||||
u_int8_t unknown_07;
|
||||
// 0x00
|
||||
u_int8_t unknown_08;
|
||||
// No idea why two current_temp
|
||||
TargetTemp current_temp_aircon;
|
||||
// 0x00
|
||||
u_int8_t unknown_11;
|
||||
// 0x00
|
||||
u_int8_t unknown_12;
|
||||
// 0x00
|
||||
u_int8_t unknown_13;
|
||||
// 0x00
|
||||
u_int8_t unknown_14;
|
||||
// 0x00
|
||||
u_int8_t unknown_15;
|
||||
// 0x00
|
||||
u_int8_t unknown_16;
|
||||
TargetTemp current_temp_room;
|
||||
} __attribute__((packed));
|
||||
|
||||
// TODO
|
||||
struct StatusFrameAirconResponse { // NOLINT(altera-struct-pack-align)
|
||||
// Mode? 00 - OFF, 04 - AC Ventilation, 05 - AC Cooling
|
||||
u_int8_t unknown_01;
|
||||
// 0x00
|
||||
u_int8_t unknown_02;
|
||||
// 0x71
|
||||
u_int8_t unknown_03;
|
||||
// 0x01
|
||||
u_int8_t unknown_04;
|
||||
TargetTemp target_temp_room;
|
||||
// 0x00
|
||||
u_int8_t unknown_07;
|
||||
// 0x00
|
||||
u_int8_t unknown_08;
|
||||
// No idea why two current_temp
|
||||
TargetTemp current_temp_aircon;
|
||||
// 0x00
|
||||
u_int8_t unknown_11;
|
||||
// 0x00
|
||||
u_int8_t unknown_12;
|
||||
// 0x00
|
||||
u_int8_t unknown_13;
|
||||
// 0x00
|
||||
u_int8_t unknown_14;
|
||||
// 0x00
|
||||
u_int8_t unknown_15;
|
||||
// 0x00
|
||||
u_int8_t unknown_16;
|
||||
TargetTemp current_temp_room;
|
||||
} __attribute__((packed));
|
||||
|
||||
// Length 18 (0x12)
|
||||
// TODO
|
||||
struct StatusFrameAircon2 { // NOLINT(altera-struct-pack-align)
|
||||
u_int8_t unknown_01; // 0x01
|
||||
u_int8_t unknown_02; // 0x00
|
||||
u_int8_t unknown_03; // 0x01
|
||||
u_int8_t unknown_04; // 0x00
|
||||
u_int8_t unknown_05; // 0x00
|
||||
u_int8_t unknown_06; // 0x00
|
||||
u_int8_t unknown_07; // 0x00
|
||||
u_int8_t unknown_08; // 0x00
|
||||
u_int8_t unknown_09; // 0x00
|
||||
u_int8_t unknown_10; // 0x00
|
||||
u_int8_t unknown_11; // 0x00
|
||||
u_int8_t unknown_12; // 0x00
|
||||
u_int8_t unknown_13; // 0x00
|
||||
u_int8_t unknown_14; // 0x00
|
||||
TargetTemp current_temp;
|
||||
TargetTemp target_temp;
|
||||
} __attribute__((packed));
|
||||
|
||||
// Length 22 (0x16)
|
||||
// TODO
|
||||
struct StatusFrameAirconInit { // NOLINT(altera-struct-pack-align)
|
||||
u_int8_t unknown_01; // 0x00
|
||||
u_int8_t unknown_02; // 0x00
|
||||
// 0x71
|
||||
u_int8_t unknown_03;
|
||||
// 0x01
|
||||
u_int8_t unknown_04;
|
||||
u_int8_t unknown_03; // 0x71
|
||||
u_int8_t unknown_04; // 0x01
|
||||
u_int8_t unknown_05; // 0x00
|
||||
u_int8_t unknown_06; // 0x00
|
||||
u_int8_t unknown_07; // 0x00
|
||||
@ -435,8 +454,9 @@ struct StatusFrameAirconInit { // NOLINT(altera-struct-pack-align)
|
||||
u_int8_t unknown_22; // 0x00
|
||||
} __attribute__((packed));
|
||||
|
||||
// Length 18 (0x12)
|
||||
struct StatusFrameAircon2 { // NOLINT(altera-struct-pack-align)
|
||||
// Length 20 (0x14)
|
||||
// TODO
|
||||
struct StatusFrameAirconInit2 { // NOLINT(altera-struct-pack-align)
|
||||
u_int8_t unknown_01; // 0x01
|
||||
u_int8_t unknown_02; // 0x00
|
||||
u_int8_t unknown_03; // 0x01
|
||||
@ -451,8 +471,12 @@ struct StatusFrameAircon2 { // NOLINT(altera-struct-pack-align)
|
||||
u_int8_t unknown_12; // 0x00
|
||||
u_int8_t unknown_13; // 0x00
|
||||
u_int8_t unknown_14; // 0x00
|
||||
TargetTemp current_temp;
|
||||
TargetTemp target_temp;
|
||||
u_int8_t unknown_15; // 0x00
|
||||
u_int8_t unknown_16; // 0x00
|
||||
u_int8_t unknown_17; // 0x00
|
||||
u_int8_t unknown_18; // 0x00
|
||||
u_int8_t unknown_19; // 0x00
|
||||
u_int8_t unknown_20; // 0x00
|
||||
} __attribute__((packed));
|
||||
|
||||
union StatusFrame { // NOLINT(altera-struct-pack-align)
|
||||
@ -472,6 +496,7 @@ union StatusFrame { // NOLINT(altera-struct-pack-align)
|
||||
StatusFrameAirconResponse airconResponse;
|
||||
StatusFrameAirconInit airconInit;
|
||||
StatusFrameAircon2 aircon2;
|
||||
StatusFrameAirconInit2 airconInit2;
|
||||
} __attribute__((packed));
|
||||
} inner;
|
||||
} __attribute__((packed));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user