def encode_daikin1(device): Daikin_template = "885BE40F0000004011DA2700003130007F000000000000C00000B2" DAIKIN_HDR_MARK_USER = "******" DAIKIN_HDR_SPACE_USER = "******" DAIKIN_BIT_MARK_USER = "******" DAIKIN_ONE_SPACE_USER = "******" DAIKIN_ZERO_SPACE_USER = "******" if device.swing == 0: _swing = 15 elif device.swing == 1: _swing = 0 else: _swing = 15 if device.mode == 0: _mode = 0 elif device.mode == 1: _mode = 4 elif device.mode == 2: _mode = 3 elif device.mode == 3: _mode = 2 elif device.mode == 4: _mode = 6 else: _mode = 0 if device.fan == 0: _fan = 10 elif device.fan == 1: _fan = 3 elif device.fan == 2: _fan = 4 elif device.fan == 3: _fan = 5 elif device.fan == 4: _fan = 6 elif device.fan == 5: _fan = 7 else: _fan = 10 _buff = AC_IR.hex_string_to_byte_array(Daikin_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if int(device.temp) == 0: _buff = temp_down(_buff) elif int(device.temp) == 1: _buff = temp_up(_buff) elif int(device.temp) == 2: pass elif ((int(device.temp) > 17) & (int(device.temp) < 33)): _buff = change_temp(_buff) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if int(device.temp) == 0: _buff = temp_down(_buff) elif int(device.temp) == 1: _buff = temp_up(_buff) elif int(device.temp) == 2: pass elif ((int(device.temp) > 17) & (int(device.temp) < 33)): _buff = change_temp(_buff) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 8, 26) str_raw = "" str_bin = "" for i in range(0, 8): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 1) for i in range(8, len(_buff)): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += DAIKIN_HDR_MARK_USER str_raw += ',' str_raw += DAIKIN_HDR_SPACE_USER str_raw += ',' for i in range(0, 8 * 8): str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += DAIKIN_ONE_SPACE_USER str_raw += ',' else: str_raw += DAIKIN_ZERO_SPACE_USER str_raw += ',' str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' str_raw += "29500" str_raw += ',' str_raw += DAIKIN_HDR_MARK_USER str_raw += ',' str_raw += DAIKIN_HDR_SPACE_USER str_raw += ',' for i in range(8 * 8, 27 * 8): str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += DAIKIN_ONE_SPACE_USER str_raw += ',' else: str_raw += DAIKIN_ZERO_SPACE_USER str_raw += ',' str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_samsung(device): samsung_template = "02920F000000F001D2FE718019F001C2FE71C015F0" samsung_template_on = "02920F000000F001D20E0000000001C2FE71C015F0" samsung_template_off = "02B20F000000C001D20F0000000001E2FE719015C0" SAMSUNG_HDR_MARK_USER = "******" SAMSUNG_HDR_SPACE_USER = "******" SAMSUNG_BIT_MARK_USER = "******" SAMSUNG_ONE_SPACE_USER = "******" SAMSUNG_ZERO_SPACE_USER = "******" state = 1 if device.swing == "off": _swing = 10 elif device.swing == "swing": _swing = 15 else: _swing = 15 if device.mode == "auto": _mode = 0 elif device.mode == "fan_only": _mode = 4 elif device.mode == "dry": _mode = 1 elif device.mode == "cool": _mode = 2 elif device.mode == "heat": _mode = 3 else: _mode = 0 if device.fan == "auto": _fan = 0 elif device.fan == "1": _fan = 2 elif device.fan == "2": _fan = 4 elif device.fan == "3": _fan = 5 else: _fan = 0 str_raw = "" str_bin = "" _buff_header = AC_IR.hex_string_to_byte_array(samsung_template) _buff_on = AC_IR.hex_string_to_byte_array(samsung_template_on) _buff_off = AC_IR.hex_string_to_byte_array(samsung_template_off) if device.mode == "off": _buff_off = switch_off(_buff_off) for i in range(0, len(_buff_off)): str_bin += AC_IR.byte_to_string(_buff_off[i].to_bytes(1, 'big'), 0) str_raw += SAMSUNG_HDR_MARK_USER str_raw += ',' str_raw += SAMSUNG_HDR_SPACE_USER str_raw += ',' for i in range(7 * 8): str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SAMSUNG_ONE_SPACE_USER str_raw += ',' else: str_raw += SAMSUNG_ZERO_SPACE_USER str_raw += ',' str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' str_raw += "3000" str_raw += ',' str_raw += SAMSUNG_HDR_MARK_USER str_raw += ',' str_raw += SAMSUNG_HDR_SPACE_USER str_raw += ',' for i in range(7 * 8, 14 * 8): str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SAMSUNG_ONE_SPACE_USER str_raw += ',' else: str_raw += SAMSUNG_ZERO_SPACE_USER str_raw += ',' str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' str_raw += "3000" str_raw += ',' str_raw += SAMSUNG_HDR_MARK_USER str_raw += ',' str_raw += SAMSUNG_HDR_SPACE_USER str_raw += ',' for i in range(14 * 8, 21 * 8): str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SAMSUNG_ONE_SPACE_USER str_raw += ',' else: str_raw += SAMSUNG_ZERO_SPACE_USER str_raw += ',' str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' str_raw += "0" else: _buff_on = switch_on(_buff_on) _buff_on = change_mode(_buff_on, _mode) if (int)(device.temp) == 0: _buff_on = temp_down(_buff_on) elif (int)(device.temp) == 1: _buff_on = temp_up(_buff_on) elif (int)(device.temp) == 2: pass elif (((int)(device.temp) > 15) and ((int)(device.temp) < 31)): _buff_on = change_temp(_buff_on, (int)(device.temp)) else: pass _buff_on = change_fan(_buff_on, _fan) _buff_on = change_swing(_buff_on, _swing) checksum = 0x00 samsungByte = [] for j in range(10, 14): samsungByte = _buff_on[j] if j == 2: samsungByte &= 0b11111110 for i in range(0, 8): if ((samsungByte & 0x01) == 1): checksum += 1 samsungByte >> 1 checksum = 28 - checksum checksum << 4 checksum |= 0x02 _buff_on[8] = checksum str_bin = AC_IR.byte_to_string(_buff_on, 0) str_raw += SAMSUNG_HDR_MARK_USER str_raw += ',' str_raw += SAMSUNG_HDR_SPACE_USER str_raw += ',' for i in range(0, 7 * 8): str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SAMSUNG_ONE_SPACE_USER str_raw += ',' else: str_raw += SAMSUNG_ZERO_SPACE_USER str_raw += ',' str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' str_raw += "3000" str_raw += ',' str_raw += SAMSUNG_HDR_MARK_USER str_raw += ',' str_raw += SAMSUNG_HDR_SPACE_USER str_raw += ',' for i in range(7 * 8, 14 * 8): str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SAMSUNG_ONE_SPACE_USER str_raw += ',' else: str_raw += SAMSUNG_ZERO_SPACE_USER str_raw += ',' str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' str_raw += "3000" str_raw += ',' str_raw += SAMSUNG_HDR_MARK_USER str_raw += ',' str_raw += SAMSUNG_HDR_SPACE_USER str_raw += ',' for i in range(14 * 8, 21 * 8): str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SAMSUNG_ONE_SPACE_USER str_raw += ',' else: str_raw += SAMSUNG_ZERO_SPACE_USER str_raw += ',' str_raw += SAMSUNG_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_funiki(device): Funiki_template = "38080060000100001020" FUNIKI_HDR_MARK_USER = "******" FUNIKI_HDR_SPACE_USER = "******" FUNIKI_BIT_MARK_USER = "******" FUNIKI_ONE_SPACE_USER = "******" FUNIKI_ZERO_SPACE_USER = "******" state = 1 _swing = device.swing _temp = (int)(device.temp) _fan = device.fan _mode = device.mode if _swing == "auto": _swing = 1 elif _swing == "1": _swing = 2 elif _swing == "2": _swing = 3 elif _swing == "3": _swing = 4 elif _swing == "4": _swing = 5 elif _swing == "5": _swing = 6 else: _swing = 1 if _mode == "heat": _mode = 2 elif _mode == "cool": _mode = 0 elif _mode == "dry": _mode = 3 elif _mode == "fan_only": _mode = 1 else: _mode = 0 if _fan == "auto": _fan = 0 elif _fan == "1": _fan = 1 elif _fan == "2": _fan = 2 elif _fan == "3": _fan = 3 else: _fan = 0 _buff = AC_IR.hex_string_to_byte_array(Funiki_template) if __debug__: print(_buff) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) str_raw = "" str_bin = "" for i in range(0, len(_buff)): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_raw += FUNIKI_HDR_MARK_USER str_raw += ',' str_raw += FUNIKI_HDR_SPACE_USER str_raw += ',' for i in range(0, 8 * 10): str_raw += FUNIKI_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += FUNIKI_ONE_SPACE_USER str_raw += ',' else: str_raw += FUNIKI_ZERO_SPACE_USER str_raw += ',' str_raw += FUNIKI_BIT_MARK_USER str_raw += ',' str_raw += FUNIKI_ONE_SPACE_USER str_raw += ',' str_raw += FUNIKI_BIT_MARK_USER str_raw += ',' str_raw += FUNIKI_ZERO_SPACE_USER str_raw += ',' str_raw += FUNIKI_BIT_MARK_USER str_raw += ',' str_raw += FUNIKI_ONE_SPACE_USER str_raw += ',' str_raw += FUNIKI_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_panasonic(device): Panasonic_template = "40040720000000600220E004003930807F00000EE00000810000DD" PANASONIC_HDR_MARK_USER = "******" PANASONIC_HDR_SPACE_USER = "******" PANASONIC_BIT_MARK_USER = "******" PANASONIC_ONE_SPACE_USER = "******" PANASONIC_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if _swing == "auto": _swing = 15 elif _swing == "1": _swing = 1 elif _swing == "2": _swing = 2 elif _swing == "3": _swing == 3 elif _swing == "4": _swing = 4 elif _swing == "5": _swing = 5 else: _swing = 15 if _mode == "auto": _mode = 0 elif _mode == "heat": _mode = 4 elif _mode == "cool": _mode == 3 elif _mode == "dry": _mode = 2 elif _mode == "fan_only": _mode = 6 else: _mode = 0 if _fan == "auto": _fan = 10 elif _fan == "1": _fan = 3 elif _fan == "2": _fan = 4 elif _fan == "3": _fan = 5 elif _fan == "4": _fan = 6 elif _fan == "4": _fan = 7 else: _fan = 10 _buff = AC_IR.hex_string_to_byte_array(Panasonic_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 31): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 31): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 8, 26) str_raw = "" str_bin = "" for i in range(0, 8): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 1) for i in range(8, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += PANASONIC_HDR_MARK_USER str_raw += ',' str_raw += PANASONIC_HDR_SPACE_USER str_raw += ',' for i in range(0, 8 * 8): str_raw += PANASONIC_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += PANASONIC_ONE_SPACE_USER str_raw += ',' else: str_raw += PANASONIC_ZERO_SPACE_USER str_raw += ',' str_raw += PANASONIC_BIT_MARK_USER str_raw += ',' str_raw += "9950" str_raw += ',' str_raw += PANASONIC_HDR_MARK_USER str_raw += ',' str_raw += PANASONIC_HDR_SPACE_USER str_raw += ',' for i in range(8 * 8, 27 * 8): str_raw += PANASONIC_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += PANASONIC_ONE_SPACE_USER str_raw += ',' else: str_raw += PANASONIC_ZERO_SPACE_USER str_raw += ',' str_raw += PANASONIC_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_sumikura(device): Sumikura_template = "56740000210600000C000C2529114B" SUMIKURA_HDR_MARK_USER = "******" SUMIKURA_HDR_SPACE_USER = "******" SUMIKURA_BIT_MARK_USER = "******" SUMIKURA_ONE_SPACE_USER = "******" SUMIKURA_ZERO_SPACE_USER = "******" state = 1 if device.swing == "auto": _swing = 26 elif device.swing == "1": _swing = 6 elif device.swing == "2": _swing = 10 elif device.swing == "3": _swing = 14 elif device.swing == "4": _swing = 18 elif device.swing == "5": _swing = 22 else: _swing = 26 if device.mode == "cool": _mode = 2 elif device.mode == "heat": _mode = 3 elif device.mode == "fan_only": _mode = 5 else: _mode = 2 if device.fan == "auto": _fan = 0 elif device.fan == "1": _fan = 2 elif device.fan == "2": _fan = 3 elif device.fan == "3": _fan = 1 else: _fan = 0 str_raw = "" str_bin = "" _buff = AC_IR.hex_string_to_byte_array(Sumikura_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if (int)(device.temp) == 0: _buff = temp_down(_buff) elif (int)(device.temp) == 1: _buff = temp_up(_buff) elif (int)(device.temp) == 2: pass elif (int(device.temp) > 15) and (int(device.temp) < 33): _buff = change_temp(_buff, int(device.temp)) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if int(device.temp) == 0: _buff = temp_down(_buff) elif int(device.temp) == 1: _buff = temp_up(_buff) elif int(device.temp) == 2: pass elif ((int(device.temp) > 15) and (int(device.temp) < 32)): _buff = change_temp(_buff, int(device.temp)) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 0, len(_buff) - 1) _buff_temp = _buff _buff_temp.pop(len(_buff) - 1) str_bin = AC_IR.byte_to_string(_buff_temp, 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += SUMIKURA_HDR_MARK_USER str_raw += ',' str_raw += SUMIKURA_HDR_SPACE_USER str_raw += ',' for i in range(0, 15 * 8): str_raw += SUMIKURA_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SUMIKURA_ONE_SPACE_USER str_raw += ',' else: str_raw += SUMIKURA_ZERO_SPACE_USER str_raw += ',' str_raw += SUMIKURA_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_asanzo(device): Asanzo_template = "C38700002000200000200005AF" ASANZO_HDR_MARK_USER = "******" ASANZO_HDR_SPACE_USER = "******" ASANZO_BIT_MARK_USER = "******" ASANZO_ONE_SPACE_USER = "******" ASANZO_ZERO_SPACE_USER = "******" state = 1 if device.swing == "on": _swing = 7 elif device.swing == "off": _swing = 0 else: _swing = 7 if device.mode == "auto": _mode = 0 elif device.mode == "heat": _mode = 4 elif device.mode == "dry": _mode = 1 elif device.mode == "cool": _mode = 2 elif device.mode == "fan_only": _mode = 6 else: _mode = 0 if device.fan == "auto": _fan = 5 elif device.fan == "1": _fan = 3 elif device.fan == "2": _fan = 2 elif device.fan == "3": _fan = 1 else: _fan = 5 _temp = (int)(device.temp) _buff = AC_IR.hex_string_to_byte_array(Asanzo_template) if __debug__: print(_buff) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if (int)(_temp) == 0: _buff = temp_down(_buff) elif (int)(_temp) == 1: _buff = temp_up(_buff) elif (int)(_temp) == 2: pass elif ((int)(_temp) > 15) and ((int)(_temp) < 33): _buff = change_temp(_buff, (int)(_temp)) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: switch_on(_buff) change_mode(_buff, _mode) if (int)(_temp) == 0: _buff = temp_down(_buff) elif (int)(_temp) == 1: _buff = temp_up(_buff) elif (int)(_temp) == 2: pass elif (_temp > 15) and (_temp < 33): change_temp(_buff, _temp) else: pass change_fan(_buff, _fan) change_swing(_buff, _swing) cs = check_sum(_buff, 0, 12) str_raw = "" str_bin = "" for i in range(0, len(_buff)): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += ASANZO_HDR_MARK_USER str_raw += ',' str_raw += ASANZO_HDR_SPACE_USER str_raw += ',' for i in range(0, 13 * 8): str_raw += ASANZO_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += ASANZO_ONE_SPACE_USER str_raw += ',' else: str_raw += ASANZO_ZERO_SPACE_USER str_raw += ',' str_raw += ASANZO_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_daikin_2(device): Daikin_template = "11DA27F00D000F11DA2700D3313100001C070872" DAIKIN_HDR_MARK_USER = "******" DAIKIN_HDR_SPACE_USER = "******" DAIKIN_BIT_MARK_USER = "******" DAIKIN_ONE_SPACE_USER = "******" DAIKIN_ZERO_SPACE_USER = "******" state = 1 if device.swing == "on": _swing = 15 elif device.swing == "1": _swing = 1 elif device.swing == "2": _swing = 2 elif device.swing == "3": _swing = 3 elif device.swing == "4": _swing = 4 elif device.swing == "5": _swing = 5 else: _swing = 15 if device.mode == "heat": _mode = 4 elif device.mode == "cool": _mode = 3 elif device.mode == "dry": _mode = 2 elif device.mode == "fan_only": _mode = 6 else: _mode = 3 if device.fan == "auto": _fan = 10 elif device.fan == "1": _fan = 3 elif device.fan == "2": _fan = 4 elif device.fan == "3": _fan = 5 elif device.fan == "4": _fan = 6 elif device.fan == "5": _fan = 7 else: _fan = 10 _temp = (int)(device.temp) _buff = AC_IR.hex_string_to_byte_array(Daikin_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 17) and (_temp < 33): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _mode) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 17) and (_temp < 33): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 7, 19) str_raw = "" str_bin = "" for i in range(0, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += DAIKIN_HDR_MARK_USER str_raw += ',' str_raw += DAIKIN_HDR_SPACE_USER str_raw += ',' for i in range(0, 7*8): str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += DAIKIN_ONE_SPACE_USER str_raw += ',' else: str_raw += DAIKIN_ZERO_SPACE_USER str_raw += ',' str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' str_raw += "29500" str_raw += ',' str_raw += DAIKIN_HDR_MARK_USER str_raw += ',' str_raw += DAIKIN_HDR_SPACE_USER str_raw += ',' for i in range(7*8, 20*8): str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += DAIKIN_ONE_SPACE_USER str_raw += ',' else: str_raw += DAIKIN_ZERO_SPACE_USER str_raw += ',' str_raw += DAIKIN_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_nagakawa(device): Nagakawa_template = "23CB2601002403070D0000000050" NAGAKAWA_HDR_MARK_USER = "******" NAGAKAWA_HDR_SPACE_USER = "******" NAGAKAWA_BIT_MARK_USER = "******" NAGAKAWA_ONE_SPACE_USER = "******" NAGAKAWA_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if _mode == "auto": _mode = 0 elif _mode == "heat": _mode = 1 elif _mode == "cool": _mode = 3 elif _mode == "dry": _mode = 2 elif _mode == "fan_only": _mode = 7 else: _mode = 0 if _swing == "on": _swing = 0 elif _swing == "off": _swing = 3 else: _swing = 0 if _fan == "auto": _fan = 0 elif _fan == "1": _fan = 1 elif _fan == "2": _fan = 2 elif _fan == "3": _fan = 3 elif _fan == "4": _fan = 4 elif _fan == "5": _fan = 5 else: _fan = 0 _buff = AC_IR.hex_string_to_byte_array(Nagakawa_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 0, len(_buff) - 1) str_raw = "" str_bin = "" for i in range(0, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += NAGAKAWA_HDR_MARK_USER str_raw += ',' str_raw += NAGAKAWA_HDR_SPACE_USER str_raw += ',' for i in range(0 * 8, 14 * 8): str_raw += NAGAKAWA_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += NAGAKAWA_ONE_SPACE_USER str_raw += ',' else: str_raw += NAGAKAWA_ZERO_SPACE_USER str_raw += ',' str_raw += NAGAKAWA_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_sharp(device): Sharp_template = "AA5ACF1007317200088000F031" SHARP_HDR_MARK_USER = "******" SHARP_HDR_SPACE_USER = "******" SHARP_BIT_MARK_USER = "******" SHARP_ONE_SPACE_USER = "******" SHARP_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if _mode == "auto": _mode = 0 elif _mode == "dry": _mode = 3 elif _mode == "cool": _mode = 2 elif _mode == "heat": _mode = 1 elif _mode == "fan": _mode = 4 else: pass if _fan == "auto": _fan = 2 elif _fan == "1": _fan = 3 elif _fan == "2": _fan = 5 elif _fan == "3": _fan = 7 if _swing == "swing": #change _swing = 7 elif _swing == "set": #unchange _swing = 1 else: _swing = 1 _buff = AC_IR.hex_string_to_byte_array(Sharp_template) if _mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 17) and (_temp < 33): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) elif True: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 17) and (_temp < 33): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_active(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 17) and (_temp < 33): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 0, 12) str_raw = "" str_bin = "" for i in range(0, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += SHARP_HDR_MARK_USER str_raw += ',' str_raw += SHARP_HDR_SPACE_USER str_raw += ',' for i in range(0, 13 * 8): str_raw += SHARP_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += SHARP_ONE_SPACE_USER str_raw += ',' else: str_raw += SHARP_ZERO_SPACE_USER str_raw += ',' str_raw += SHARP_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_gree(device): Gree_template = "79080050" GREE_HDR_MARK_USER = "******" GREE_HDR_SPACE_USER = "******" GREE_BIT_MARK_USER = "******" GREE_ONE_SPACE_USER = "******" GREE_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if _swing == "on": _swing = 4 elif _swing == "off": _swing = 0 else: _mode = 0 if _mode == "auto": _mode = 0 elif _mode == "cool": _mode = 4 elif _mode == "dry": _mode = 1 elif _mode == "fan": _mode = 2 elif _mode == "heat": _mode = 3 else: _mode = 0 if __debug__: print(_mode) if _fan == "auto": _fan = 0 elif _fan == "1": _fan = 1 elif _fan == "2": _fan = 2 elif _fan == "3": _fan = 3 else: _fan = 0 _buff = AC_IR.hex_string_to_byte_array(Gree_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 31): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 31): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) str_raw = "" str_bin = "" for i in range(0, len(_buff)): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_raw += GREE_HDR_MARK_USER str_raw += ',' str_raw += GREE_HDR_SPACE_USER str_raw += ',' for i in range(0, 8 * 4): str_raw += GREE_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += GREE_ONE_SPACE_USER str_raw += ',' else: str_raw += GREE_ZERO_SPACE_USER str_raw += ',' str_raw += GREE_BIT_MARK_USER str_raw += ',' str_raw += GREE_ONE_SPACE_USER str_raw += ',' str_raw += GREE_BIT_MARK_USER str_raw += ',' str_raw += GREE_ZERO_SPACE_USER str_raw += ',' str_raw += GREE_BIT_MARK_USER str_raw += ',' str_raw += GREE_ONE_SPACE_USER str_raw += ',' str_raw += GREE_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_lg(device): LG_Test = "88100001" LG_template_on = "88089405" LG_template_off = "88C00501" LG_template_swing_on = "88100001" LG_HDR_MARK_USER = "******" LG_HDR_SPACE_USER = "******" LG_BIT_MARK_USER = "******" LG_ONE_SPACE_USER = "******" LG_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if _mode == "cool": _mode = 4 elif _mode == "auto": _mode = 0 elif _mode == "dry": _mode = 1 else: _mode = 4 if _fan == "auto": _fan = 5 elif _fan == "1": _fan = 0 elif _fan == "3": _fan = 2 elif _fan == "2": _fan = 4 else: _fan = 5 _swing = 1 _buff = AC_IR.hex_string_to_byte_array(LG_template_on) if device.mode == "off": _buff = AC_IR.hex_string_to_byte_array(LG_template_off) else: if _swing == 0: _buff = AC_IR.hex_string_to_byte_array(LG_template_swing_on) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 31): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) str_raw = "" str_bin = "" cs = check_sum(_buff, 0, 3) for i in range(0, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 1) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 1) _str = "" _str += str_bin[0: len(str_bin) - 8] _str += str_bin[len(str_bin) - 4: len(str_bin)] str_bin = _str str_raw += LG_HDR_MARK_USER str_raw += ',' str_raw += LG_HDR_SPACE_USER str_raw += ',' for i in range(0, 28): str_raw += LG_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += LG_ONE_SPACE_USER str_raw += ',' else: str_raw += LG_ZERO_SPACE_USER str_raw += ',' str_raw += LG_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_general(device): General_template_state_test = "1463001010FE0930700210000000202E" General_template_state_on = "1463001010FE0930910101000000201D" General_template_state_off = "146300101002FD" General_template_swing_on = "14630010106C93" GENERAL_HDR_MARK_USER = "******" GENERAL_HDR_SPACE_USER = "******" GENERAL_BIT_MARK_USER = "******" GENERAL_ONE_SPACE_USER = "******" GENERAL_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if __debug__: print(_temp) print(_swing) print(_fan) print(_mode) if _mode == "auto": _mode = 0 elif _mode == "heat": _mode = 4 elif _mode == "cool": _mode = 1 elif _mode == "dry": _mode = 2 elif _mode == "fan_only": _mode = 3 else: pass if _fan == "auto": _fan = 0 elif _fan == "1": _fan = 4 elif _fan == "2": _fan = 3 elif _fan == "3": _fan = 2 elif _fan == "4": _fan = 1 else: _fan = 0 if _swing == "set": _swing = 0 elif _swing == "swing": _swing = 1 elif _swing == "swing": _swing = 2 else: _swing = 2 str_raw = "" str_bin = "" if device.mode != "off": if _swing == 0: _buff = AC_IR.hex_string_to_byte_array(General_template_swing_on) for i in range(0, 7): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_raw += GENERAL_HDR_MARK_USER str_raw += ',' str_raw += GENERAL_HDR_SPACE_USER str_raw += ',' for i in range(0, 7 * 8): str_raw += GENERAL_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += GENERAL_ONE_SPACE_USER str_raw += ',' else: str_raw += GENERAL_ZERO_SPACE_USER str_raw += ',' str_raw += GENERAL_BIT_MARK_USER str_raw += ',' str_raw = "0" else: _buff = AC_IR.hex_string_to_byte_array(General_template_state_on) _buff = switch_on(_buff) _buff = change_swing(_buff, _swing) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 17) and (_temp < 31): _buff = change_temp(_buff, _temp) _buff = change_fan(_buff, _fan) cs = check_sum(_buff, 7, len(_buff) - 1) for i in range(0, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big', signed=True), 0) str_raw += GENERAL_HDR_MARK_USER str_raw += ',' str_raw += GENERAL_HDR_SPACE_USER str_raw += ',' for i in range(0, 16 * 8): str_raw += GENERAL_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += GENERAL_ONE_SPACE_USER str_raw += ',' else: str_raw += GENERAL_ZERO_SPACE_USER str_raw += ',' str_raw += GENERAL_BIT_MARK_USER str_raw += ',' str_raw += "0" else: _buff = AC_IR.hex_string_to_byte_array(General_template_state_off) for i in range(0, 7): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_raw += GENERAL_HDR_MARK_USER str_raw += ',' str_raw += GENERAL_HDR_SPACE_USER str_raw += ',' for i in range(0, 7 * 8): str_raw += GENERAL_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += GENERAL_ONE_SPACE_USER str_raw += ',' else: str_raw += GENERAL_ZERO_SPACE_USER str_raw += ',' str_raw += GENERAL_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_mitsubishi(device): Mitsubishi_template = "23CB260100A403070500000000C8" MITSUBISHI_HDR_MARK_USER = "******" MITSUBISHI_HDR_SPACE_USER = "******" MITSUBISHI_BIT_MARK_USER = "******" MITSUBISHI_ONE_SPACE_USER = "******" MITSUBISHI_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if _mode == "cool": _mode = 8 elif _mode == "heat": _mode = 3 elif _mode == "auto": _mode = 2 elif _mode == "dry": _mode = 7 else: _mode = 8 if _fan == "auto": _fan = 0 elif _fan == "1": _fan = 2 elif _fan == "2": _fan = 3 elif _fan == "3": _fan = 5 else: _fan = 0 if _swing == "auto": _swing = 0 elif _swing == "1": _swing = 1 elif _swing == "2": _swing = 2 elif _swing == "3": _swing = 3 elif _swing == "4": _swing = 4 elif _swing == "5": _swing = 5 _buff = AC_IR.hex_string_to_byte_array(Mitsubishi_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _swing) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _swing) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 0, 13) str_raw = "" str_bin = "" for i in range(0, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += MITSUBISHI_HDR_MARK_USER str_raw += ',' str_raw += MITSUBISHI_HDR_SPACE_USER str_raw += ',' for i in range(0, 14 * 8): str_raw += MITSUBISHI_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += MITSUBISHI_ONE_SPACE_USER str_raw += ',' else: str_raw += MITSUBISHI_ZERO_SPACE_USER str_raw += ',' str_raw += MITSUBISHI_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw
def encode_funiki2(device): Funiki_2_template = "C38700002000200000200005AF" FUNIKI_2_HDR_MARK_USER = "******" FUNIKI_2_HDR_SPACE_USER = "******" FUNIKI_2_BIT_MARK_USER = "******" FUNIKI_2_ONE_SPACE_USER = "******" FUNIKI_2_ZERO_SPACE_USER = "******" state = 1 _temp = (int)(device.temp) _swing = device.swing _fan = device.fan _mode = device.mode if _swing == "auto": _swing = 0 elif _swing == "1": _swing = 1 elif _swing == "2": _swing = 2 elif _swing == "3": _swing = 3 elif _swing == "3": _swing = 4 elif _swing == "5": _swing = 5 else: _swing = 0 if _mode == "fan_only": _mode = 4 elif _mode == "heat": _mode = 1 elif _mode == "dry": _mode = 2 elif _mode == "dry": _mode = 6 elif _mode == "cool": _mode = 0 else: _mode = 0 if _fan == "auto": _fan = 0 elif _fan == "1": _fan = 3 elif _fan == "2": _fan = 1 elif _fan == "3": _fan = 5 else: _fan = 0 _buff = AC_IR.hex_string_to_byte_array(Funiki_2_template) if device.mode == "off": _buff = switch_off(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) else: _buff = switch_on(_buff) _buff = change_mode(_buff, _mode) if _temp == 0: _buff = temp_down(_buff) elif _temp == 1: _buff = temp_up(_buff) elif _temp == 2: pass elif (_temp > 15) and (_temp < 32): _buff = change_temp(_buff, _temp) else: pass _buff = change_fan(_buff, _fan) _buff = change_swing(_buff, _swing) cs = check_sum(_buff, 0, 12) str_raw = "" str_bin = "" for i in range(0, len(_buff) - 1): str_bin += AC_IR.byte_to_string(_buff[i].to_bytes(1, 'big'), 0) str_bin += AC_IR.byte_to_string(cs.to_bytes(1, 'big'), 0) str_raw += FUNIKI_2_HDR_MARK_USER str_raw += ',' str_raw += FUNIKI_2_HDR_SPACE_USER str_raw += ',' for i in range(0, 8 * 13): str_raw += FUNIKI_2_BIT_MARK_USER str_raw += ',' if str_bin[i] == '1': str_raw += FUNIKI_2_ONE_SPACE_USER str_raw += ',' else: str_raw += FUNIKI_2_ZERO_SPACE_USER str_raw += ',' str_raw += FUNIKI_2_BIT_MARK_USER str_raw += ',' str_raw += "0" str_raw = AC_IR.gz_base64_compress(str_raw) return str_raw