Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
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
Beispiel #8
0
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
Beispiel #9
0
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
Beispiel #10
0
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
Beispiel #11
0
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
Beispiel #12
0
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
Beispiel #13
0
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
Beispiel #14
0
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