Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Daikin FTKS18VL216A Packet Length 0x30 #3

Open
GabyPCgeeK opened this issue Nov 10, 2023 · 0 comments
Open

Daikin FTKS18VL216A Packet Length 0x30 #3

GabyPCgeeK opened this issue Nov 10, 2023 · 0 comments

Comments

@GabyPCgeeK
Copy link

GabyPCgeeK commented Nov 10, 2023

It is a Daikin branded "Gree" AC.
Example Received packet.
7E 7E 30 31 00 00 40 00 93 C0 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 00 00 00 3B

Struct with some of the protocol figured out.

  struct {
    uint16_t header                 ;  //7E 7E  #header bytes

    uint8_t data_length             ;  //30     #packet length

    uint8_t packet_type             ;  //31     #packet type?

    uint8_t unk1[2]                 ;  //00 00

    uint8_t const1                  ;  //40     #always constant?

    uint8_t unk2                    ;  //00

    uint8_t fan_speed             :2;  //93     #fan speed 0-3
    uint8_t                       :1;
    uint8_t sleep                 :1;  //       #is sleep set
    uint8_t mode                  :3;  //       #ac mode 0,1,2,3,4
    uint8_t power_state           :1;  //       #ac on/off

    uint8_t timer_has_half_hour   :1;  //C0     #if timer shows .5 hour
    uint8_t timer_tens_hours      :2;  //       #the tens part of the timer time ex. 21 hours then value is 2
    uint8_t timer_enabled         :1;  //       #if timer is enabled
    uint8_t set_temp              :4;  //       #the temperature the ac is set to (add 16 for degrees C)

    uint8_t turbo                 :1;  //02     #is turbo set
    uint8_t display_light         :1;  //       #is the ac lights (temperature, mode, etc) on/off
    uint8_t                       :1;
    uint8_t xfan                  :1;  //       #is xfan set
    uint8_t                       :4;

    uint8_t const2                :7;  //02
    uint8_t using_farenheit       :1;  //       #is the ac using farenheit temperature

    uint8_t swing                   ;  //00     #swing mode

    uint8_t                       :5;  //00
    uint8_t display_internal_temp :1;  //       #show room temp for a few seconds when turning on ac
    uint8_t                       :2;

    uint8_t unk3                    ;  //00

    uint8_t                       :2;  //00
    uint8_t save_energy           :1;  //       #is energy saving set
    uint8_t                       :5;

    uint8_t timer_on_time_l       :8;  //00     #low byte of the timer on time. 0XX
    uint8_t timer_off_time_l      :4;  //0      #low nibble of the timer off time. 00X

    uint8_t timer_on_time_h       :4;  //0      #high nibble of timer on time. X00
    uint8_t timer_off_time_h      :8;  //00     #high nibbles of timer off time. XX0

    uint8_t                       :4;  //00
    uint8_t timer_off             :1;  //       #is timer a off timer
    uint8_t timer_on              :1;  //       #is timer a on timer
    uint8_t                       :2;

    uint8_t unk4[21]                ;  //00 x21

    uint8_t                       :7;  //00
    uint8_t ir_cmd                :1;  //       #did the ac receive a command from ir remote

    uint8_t unk5[4]                 ;

    uint8_t internal_temp           ;  //46     #the room temprature (substract 40 for degrees C)

    uint8_t unk6[3]                 ;

    uint8_t checksum                ;  //D6     #the packet checksum
  };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant