Merge branch 'add-climate-card-y'

This commit is contained in:
reaw55 2024-03-13 11:07:22 +07:00
commit 6f44a68ba3
12 changed files with 414 additions and 82 deletions

133
src/IRcode_york.txt Normal file
View file

@ -0,0 +1,133 @@
//york
//30-18
//cool auto
//18
{8983,4472,569,630,569,627,570,1671,569,629,568,1670,570,628,569,628,569,628,569,631,568,1669,569,630,570,627,569,628,569,631,569,1668,569,1671,569,628,569,629,569,630,569,627,569,629,568,630,570,627,569,628,570,630,569,628,569,628,569,629,569,628,569,627,570,630,569,628,569,628,569,628,568,631,568,629,569,628,568,631,568,1669,569,631,568,1669,569,1671,569,627,569,629,568},
//19
{8978,4472,568,631,568,630,567,1672,567,629,592,1648,568,629,567,629,567,631,566,631,568,1669,568,631,568,630,566,630,567,1676,563,630,567,628,569,631,567,630,567,629,568,630,568,630,567,630,567,631,568,629,567,629,593,606,568,629,567,630,592,606,567,630,567,630,567,631,593,604,595,602,567,631,568,629,593,603,594,605,591,1646,594,603,593,1647,594,602,593,1647,593,1645,593},
//20
{9005,4470,571,629,569,626,571,1670,570,627,569,1670,571,626,570,627,570,627,570,628,570,1668,570,629,569,627,570,626,570,1670,569,627,570,1670,570,627,569,627,570,629,570,627,569,627,569,630,569,627,570,627,570,629,569,628,568,629,569,629,569,628,569,627,570,629,569,628,569,627,569,628,569,630,569,627,570,627,569,629,570,1667,570,629,570,1668,569,627,569,1671,568,627,570},
//21
{8981,4473,569,630,569,627,570,1670,570,627,570,1669,570,627,570,627,570,628,569,630,569,1668,569,631,569,628,568,628,569,1671,570,1668,568,631,569,627,569,628,569,630,569,627,570,628,569,629,569,628,569,628,569,630,569,628,568,628,570,629,569,628,570,626,570,630,568,628,570,627,570,627,569,630,569,628,569,627,570,630,568,1668,570,629,569,1669,569,628,569,630,569,1669,569},
//22
{9008,4445,596,603,597,600,621,1616,624,575,595,1643,595,605,621,575,595,602,596,603,622,1616,596,601,622,577,595,602,623,1617,622,1616,596,1644,625,572,623,573,597,604,594,602,597,599,595,606,593,603,594,602,595,604,595,602,596,600,596,604,596,601,622,575,622,576,596,601,595,602,596,601,594,605,596,601,595,602,595,603,597,1641,596,604,600,1637,596,601,594,604,596,601,596},
//23
{9040,4413,599,601,598,598,625,1614,599,598,599,1641,625,572,624,572,599,598,625,574,626,1611,625,574,599,598,626,1613,627,570,653,544,598,599,598,601,626,570,599,598,626,573,625,573,598,598,599,599,599,599,598,598,653,546,626,571,625,571,625,574,599,598,624,572,599,600,624,573,626,570,599,601,624,572,626,571,598,601,625,1612,626,571,624,575,598,1639,599,1640,600,1639,598},
//24
{9010,4443,598,599,598,601,598,1639,598,601,599,1638,599,601,598,598,598,599,598,599,598,1641,599,598,598,600,599,1639,598,601,598,598,599,1638,599,601,598,598,598,599,598,601,598,598,599,598,598,601,598,599,598,599,598,600,598,598,599,598,599,600,598,598,599,598,599,597,599,601,598,599,597,599,598,601,597,599,598,599,597,601,598,599,598,1642,598,599,597,600,597,602,597},
//25
{9006,4445,595,605,594,602,594,1646,595,602,594,1645,622,576,594,602,593,604,596,603,594,1643,595,605,594,602,595,1645,594,603,594,1643,595,604,595,602,594,603,594,604,595,602,595,602,594,604,594,603,594,603,594,604,595,602,594,603,594,604,596,601,595,602,595,604,594,603,594,602,594,604,593,605,594,603,594,602,595,605,593,1644,594,605,595,602,594,1643,594,605,594,1643,594},
//26
{8981,4471,570,632,567,628,569,1671,569,628,569,1671,569,627,569,628,568,629,569,630,569,1668,569,630,569,628,569,1670,569,629,568,1668,569,1672,568,628,569,630,569,628,568,632,565,631,568,628,568,629,568,629,568,631,568,628,568,629,568,631,568,628,569,629,568,630,568,629,568,628,593,606,568,629,568,629,568,631,593,604,568,1671,569,628,568,628,568,1672,568,628,569,628,568},
//27
{8981,4472,569,631,568,629,594,1645,593,604,568,1672,575,622,593,604,593,604,593,606,592,1645,593,606,593,605,567,1673,568,1669,568,629,568,631,594,603,568,629,567,632,592,605,592,604,594,605,567,629,568,630,593,605,569,628,568,629,594,604,569,629,593,604,568,631,593,604,594,603,593,603,593,606,568,628,593,605,567,632,567,1670,594,605,568,630,592,604,593,1646,568,1670,567},
//28
{8980,4473,568,631,568,629,568,1671,567,630,567,1672,568,629,567,630,567,630,568,632,566,1671,567,631,568,629,567,1673,567,1670,592,605,567,1672,568,629,568,631,568,629,567,629,594,605,568,629,567,629,593,604,567,632,567,630,567,629,568,631,588,608,568,629,568,631,568,629,568,629,568,630,568,629,568,629,568,631,568,629,568,1671,568,630,567,629,568,629,592,1648,567,629,568},
//29
{8980,4472,569,630,569,628,569,1671,568,628,568,1672,568,628,569,628,568,629,568,631,569,1668,569,631,567,629,568,1671,568,1670,568,1671,569,628,568,629,567,631,568,629,568,628,568,631,568,628,568,629,568,629,568,632,567,629,568,629,568,630,568,629,568,629,567,632,567,629,569,628,568,631,568,629,567,629,568,631,567,630,567,1672,567,629,568,630,567,629,568,631,568,1670,567},
//30
{9004,4447,594,604,595,602,594,1646,593,603,594,1646,595,602,593,603,594,603,594,604,594,1644,594,605,593,604,594,1645,595,1642,595,1646,594,1643,595,602,594,605,594,602,595,602,594,605,594,602,594,603,593,606,593,603,595,602,594,605,595,602,594,602,595,605,594,602,595,602,594,605,595,602,593,603,595,604,594,603,594,605,592,1645,593,603,595,603,594,605,594,602,594,603,593},
//cool low
//18
{9007,4439,600,600,598,597,600,1636,600,599,599,1637,599,599,600,596,599,597,600,599,599,1637,599,597,600,599,599,596,600,597,599,1639,599,1638,598,599,600,599,597,597,599,598,600,597,599,596,600,599,599,597,599,597,599,599,600,596,600,596,600,598,600,596,600,597,599,599,600,597,599,596,600,599,599,596,600,596,600,599,599,596,600,597,599,1639,600,1636,600,1639,599,597,599},
//19
{9008,4439,600,599,599,597,600,1637,599,599,600,1637,599,599,600,596,600,597,600,598,600,1637,599,598,598,600,599,596,600,1640,599,596,601,596,599,599,600,597,599,596,600,598,600,597,599,597,600,599,599,597,599,597,599,597,599,599,600,596,600,596,600,599,599,597,599,597,600,599,599,596,599,596,600,599,600,596,600,597,599,599,599,597,599,1637,599,1639,600,597,599,1638,600},
//20
{9007,4440,599,600,654,543,654,1582,651,548,597,1639,653,545,653,544,652,544,598,601,598,1638,654,542,653,545,599,598,654,1584,654,542,652,1584,653,546,653,544,652,544,598,601,654,542,653,543,654,544,653,544,653,543,654,545,652,544,653,543,654,544,598,599,598,598,653,545,651,546,597,599,653,545,652,544,652,543,652,547,598,599,652,543,598,1641,653,1582,654,546,653,542,654},
//21
{9006,4439,599,600,598,598,599,1638,598,601,598,1638,599,600,598,598,598,598,599,600,598,1638,599,598,598,600,598,598,598,1641,598,1638,599,598,598,600,598,598,599,597,599,600,598,598,598,598,598,600,599,598,598,598,598,600,599,597,599,597,599,599,599,598,598,597,599,600,598,598,598,598,598,600,598,598,598,598,598,600,598,598,599,597,599,1640,598,598,598,1640,599,1638,599},
//22
{9059,4389,597,601,653,544,651,1585,651,548,651,1586,652,547,596,599,653,544,651,547,653,1584,651,545,651,548,597,600,651,1588,648,1588,651,1588,653,544,652,544,650,548,652,544,653,543,598,601,598,598,652,545,597,602,651,544,651,546,650,548,597,599,652,545,652,546,653,543,597,599,652,545,652,546,601,595,653,543,598,601,651,545,652,545,597,1641,597,599,598,1641,628,569,651},
//23
{9006,4440,599,600,598,599,597,1639,598,600,598,1638,599,600,599,598,598,599,598,600,598,1639,598,598,599,600,598,1639,598,601,598,598,598,599,598,600,598,598,599,598,598,600,598,598,599,598,598,601,598,599,598,598,598,598,598,601,598,598,598,598,599,599,599,598,598,598,598,601,598,599,597,599,598,600,598,598,599,598,598,600,599,597,599,1638,599,600,598,598,599,1640,598},
//24
{9007,4440,598,601,597,599,598,1638,599,600,598,1638,598,601,598,599,597,599,597,601,598,1638,598,599,598,600,598,1639,598,601,597,598,599,1638,598,601,597,599,598,598,603,595,598,598,598,599,597,601,598,598,598,598,598,601,598,598,598,598,598,601,598,598,598,598,597,602,597,599,597,599,598,600,598,599,598,598,598,601,597,599,598,598,598,1641,598,599,597,599,597,601,597},
//25
{9060,4389,599,601,597,599,598,1639,598,600,598,1639,598,601,597,599,598,599,597,601,598,1638,598,599,598,600,599,1638,598,601,597,1639,598,599,598,601,597,599,598,598,598,600,599,598,597,599,597,601,598,599,597,599,597,600,599,598,598,598,598,601,598,599,598,598,598,601,598,598,598,599,597,601,598,598,598,599,598,600,598,599,598,598,598,599,598,1641,598,1640,599,1639,598},
//26
{9006,4440,598,601,598,599,597,1639,598,601,651,1586,597,601,598,598,598,599,598,601,597,1639,598,598,598,601,598,1638,598,600,598,1639,597,1641,598,598,598,598,598,601,597,599,597,599,598,601,649,546,599,598,598,601,597,599,597,598,598,601,598,598,598,598,598,601,597,599,598,598,598,599,597,601,598,598,598,599,597,601,598,598,598,598,598,600,598,1638,598,1640,599,598,598},
//27
{9060,4387,680,519,598,598,598,1639,598,600,598,1639,598,600,652,545,597,599,651,547,653,1584,653,543,598,600,653,1584,652,1587,598,598,654,543,600,598,654,542,599,598,654,544,653,544,652,544,651,547,651,546,652,544,598,600,654,542,651,546,650,548,651,545,598,598,598,600,654,542,599,597,655,544,653,543,652,544,655,543,598,598,598,599,654,542,651,1586,653,544,598,1640,652},
//28
{9012,4440,600,599,600,597,599,1638,600,599,599,1639,599,599,600,597,600,597,599,599,600,1638,599,597,600,599,600,1637,600,1640,599,597,600,1640,599,597,600,597,599,600,600,596,600,597,600,600,598,597,600,597,600,599,600,597,599,597,600,599,600,596,600,597,600,599,599,597,600,597,600,597,599,599,600,597,599,598,599,599,600,596,600,598,599,599,600,1637,600,599,599,597,600},
//29
{9063,4386,599,600,599,598,598,1638,598,600,599,1638,599,600,598,598,599,598,598,601,597,1639,599,597,599,600,599,1638,652,1587,599,1638,599,600,598,598,598,599,598,600,599,597,599,598,599,600,682,514,598,598,653,546,599,598,598,597,599,600,599,598,598,599,652,546,651,546,598,598,599,597,599,600,653,543,598,597,600,600,652,544,599,597,599,600,599,597,599,1640,599,1637,600},
//30
{9007,4442,597,602,597,600,596,1640,653,545,598,1640,653,546,596,600,597,599,597,602,597,1640,597,600,596,602,597,1639,598,1642,597,1640,597,1641,599,599,597,601,597,600,597,599,597,601,598,599,597,599,653,544,653,545,598,598,655,541,599,600,655,541,598,599,597,601,598,599,598,598,598,601,597,599,654,543,597,601,598,598,598,599,597,600,655,543,598,599,597,1642,598,599,597},
//cool mid
//18
{9027,4441,654,546,598,598,598,1640,598,600,652,1585,598,601,598,598,598,598,655,544,653,1584,652,1587,652,545,598,599,597,601,652,1585,598,1641,598,599,597,599,597,600,599,599,651,545,651,548,597,599,651,545,598,601,653,543,652,544,599,600,653,544,652,544,652,547,597,600,597,599,597,599,598,600,678,519,653,543,598,601,598,599,650,546,598,1641,598,1639,598,601,598,599,653},
//19
{9093,4359,598,601,654,543,652,1584,599,601,661,1576,681,518,652,544,650,547,653,546,652,1585,652,1587,652,544,654,543,654,1586,652,545,598,598,653,546,598,599,680,516,653,545,654,543,652,545,654,544,654,544,652,544,654,545,652,544,598,599,653,546,680,516,652,544,598,602,654,542,653,544,654,545,654,542,598,599,682,516,654,543,652,545,598,1641,655,542,597,1642,598,1639,599},
//20
{9063,4387,598,601,598,599,652,1584,652,547,652,1585,598,601,652,544,653,544,653,545,651,1586,651,1588,598,599,598,599,653,1586,597,599,652,1587,654,543,652,545,651,547,652,545,653,543,598,601,653,543,598,599,597,602,652,544,598,598,598,602,651,544,598,599,598,600,652,545,653,543,650,546,654,546,597,599,653,543,651,547,652,545,598,599,598,1641,651,546,597,1641,652,545,653},
//21
{9009,4441,599,600,598,599,598,1639,598,601,598,1639,598,601,597,599,598,599,597,602,597,1639,598,1642,598,599,598,599,597,1642,598,1640,597,601,598,599,597,600,597,602,597,599,597,600,597,601,598,599,597,599,598,601,597,599,598,598,598,601,598,599,598,599,597,601,598,599,598,598,598,599,598,601,597,599,598,598,598,601,597,599,598,599,598,1642,597,599,597,602,597,1639,598},
//22
{9009,4441,599,600,598,599,598,1639,598,601,598,1639,598,601,597,599,598,599,597,602,597,1639,598,1642,598,599,598,599,597,1642,598,1640,597,601,598,599,597,600,597,602,597,599,597,600,597,601,598,599,597,599,598,601,597,599,598,598,598,601,598,599,598,599,597,601,598,599,598,598,598,599,598,601,597,599,598,598,598,601,597,599,598,599,598,1642,597,599,597,602,597,1639,598},
//23
{9029,4441,598,601,597,599,650,1590,598,598,598,1641,598,599,651,545,598,598,599,601,598,1639,598,1642,597,599,650,1589,598,599,597,598,599,601,597,599,598,598,598,602,597,599,598,598,598,600,598,599,598,598,598,600,599,598,598,598,598,602,597,598,599,598,598,601,598,598,598,599,598,598,598,601,598,598,598,598,598,601,598,598,598,598,598,601,598,1640,597,1641,598,1639,598},
//24
{9010,4441,598,601,597,599,598,1639,598,601,598,1639,598,601,598,598,598,599,598,601,598,1639,598,1641,599,598,598,1641,652,545,598,598,598,1642,598,599,598,599,597,601,598,599,598,599,597,601,598,599,597,600,597,602,597,599,598,599,598,601,651,545,598,599,597,601,652,545,598,599,597,599,598,601,599,597,598,599,598,600,599,598,598,599,598,601,598,1639,598,1641,598,599,598},
//25
{9008,4441,598,601,598,598,598,1639,651,548,599,1639,598,600,598,599,652,545,598,601,597,1640,598,1640,653,544,598,1641,653,544,651,1586,652,548,597,599,653,543,652,546,653,544,598,598,598,600,598,599,598,598,650,549,652,545,597,599,651,548,653,543,598,599,598,601,650,547,597,599,652,544,651,547,598,599,598,599,651,547,598,598,652,545,598,600,651,1586,651,548,598,1638,653},
//26
{9009,4441,598,602,598,599,597,1639,598,601,598,1639,598,601,598,598,598,599,650,549,598,1639,598,1641,598,599,598,1641,598,599,651,1586,651,1588,599,598,653,546,598,598,651,546,598,601,598,598,598,599,598,599,597,601,598,599,597,599,598,601,598,599,597,599,598,601,598,599,598,598,598,601,598,598,598,599,651,547,651,546,598,598,598,601,598,598,599,1639,598,600,598,599,598},
//27
{9007,4441,598,601,597,599,598,1638,599,601,598,1638,598,601,598,599,597,599,598,601,598,1639,598,1641,598,598,598,1642,597,1640,597,599,598,601,598,599,598,598,598,600,599,598,598,599,598,600,598,598,598,598,599,601,598,598,598,598,598,601,598,598,598,598,598,601,598,599,597,599,597,599,598,600,598,599,597,599,598,601,597,599,598,599,597,601,598,598,598,1641,598,1639,598},
//28
{9007,4441,598,601,597,599,598,1638,599,601,598,1638,598,601,598,599,597,599,598,601,598,1639,598,1641,598,598,598,1642,597,1640,597,599,598,601,598,599,598,598,598,600,599,598,598,599,598,600,598,598,598,598,599,601,598,598,598,598,598,601,598,598,598,598,598,601,598,599,597,599,597,599,598,600,598,599,597,599,598,601,597,599,598,599,597,601,598,598,598,1641,598,1639,598},
//29
{9062,4386,599,601,598,599,653,1583,652,547,652,1585,653,546,651,546,598,599,597,602,651,1585,650,1590,649,548,651,1587,598,1640,652,1587,598,599,651,545,598,601,598,599,598,598,598,601,598,598,597,599,598,599,600,598,598,598,598,599,598,601,597,599,597,599,598,601,598,599,597,599,598,600,598,599,598,599,597,601,597,599,598,599,598,601,597,599,598,598,598,601,598,1639,597},
//30
{9010,4441,599,601,598,599,597,1640,598,601,598,1639,598,601,598,599,649,547,598,601,598,1639,598,1641,598,599,598,1642,598,1639,598,1641,598,1639,598,599,598,601,598,599,597,599,598,601,598,599,598,598,598,601,598,599,598,598,599,601,597,599,598,599,597,602,597,599,598,599,597,601,598,598,598,598,651,548,598,599,597,599,650,549,598,598,598,599,598,598,598,601,598,598,598},
//cool high
//18
{9010,4441,598,601,654,543,598,1641,652,545,654,1585,598,599,652,544,654,543,598,600,652,1585,598,601,598,1639,652,547,598,598,652,1585,598,1642,654,542,653,545,653,544,652,544,598,601,598,599,652,544,598,598,598,604,648,546,598,598,653,545,650,547,598,598,654,544,598,599,598,598,652,547,652,545,598,597,599,600,654,543,652,544,652,547,653,1584,598,1642,654,542,650,1589,652},
//19
{9008,4442,598,601,598,599,597,1640,597,602,597,1640,597,602,597,604,593,599,597,601,598,1640,597,599,598,1641,597,599,599,1641,597,599,598,599,597,601,597,600,597,599,598,601,598,599,597,599,598,601,597,600,597,599,597,602,597,599,598,599,597,601,598,599,597,599,597,601,598,599,597,599,598,601,597,599,598,599,597,602,597,599,598,599,597,1642,598,1639,598,601,598,599,598},
//20
{9061,4389,598,601,599,598,650,1587,598,601,650,1587,598,601,598,598,651,546,651,547,652,1586,598,599,650,1589,650,546,598,1641,651,546,598,1641,598,599,598,598,598,601,652,544,599,598,598,601,598,598,598,599,598,601,598,599,598,598,615,584,598,599,597,599,598,601,598,599,597,599,653,543,598,601,598,598,650,546,599,600,598,598,650,547,598,1641,599,597,598,1642,652,1584,599},
//21
{9008,4442,598,602,597,599,597,1640,598,601,598,1639,598,601,598,599,597,599,598,602,596,1640,598,599,651,1589,598,599,598,1642,597,1639,598,601,598,600,596,599,598,601,598,599,598,598,598,601,598,599,597,599,621,578,597,600,597,599,598,601,598,598,598,598,650,549,598,599,598,598,598,599,598,601,650,547,597,599,650,549,597,599,597,599,598,1641,598,599,598,1642,597,600,597},
//22
{9064,4386,654,546,652,545,652,1584,598,601,598,1639,652,547,652,545,680,516,654,545,598,1639,652,544,652,1587,654,543,653,1586,653,1584,653,1586,598,599,654,545,652,544,652,545,598,601,598,599,597,599,598,599,653,545,652,545,683,514,597,601,598,598,635,562,651,548,653,544,633,563,655,544,598,600,597,598,598,601,650,546,654,543,598,601,598,1639,653,544,680,519,597,1639,652},
//23
{9010,4443,597,602,598,599,597,1640,597,602,598,1640,597,602,597,599,598,599,598,601,598,1639,598,599,598,1642,598,1642,597,600,598,599,597,600,597,601,598,599,598,599,597,602,597,600,597,599,598,601,598,599,598,599,597,602,597,600,597,599,598,601,598,599,597,599,598,602,597,599,598,599,597,602,597,599,598,599,597,602,597,599,598,599,597,1643,597,599,598,599,597,601,598},
//24
{9009,4443,598,601,598,599,597,1640,598,601,598,1639,598,601,598,599,597,600,597,602,597,1640,598,599,598,1642,598,1642,597,599,598,600,597,1642,597,600,597,599,598,601,598,600,597,599,598,601,598,599,597,600,598,601,598,598,598,599,598,601,598,599,597,599,598,601,597,600,597,600,598,599,597,601,598,599,598,599,597,602,598,599,597,600,597,601,598,1640,598,1642,598,1640,602},
//25
{9063,4387,654,545,599,598,653,1585,653,546,679,1557,653,547,653,543,598,599,598,600,652,1585,653,545,652,1587,654,1586,598,599,597,1640,653,545,656,541,654,543,655,544,598,598,653,544,598,601,653,543,654,543,652,547,656,540,598,599,653,545,598,599,654,546,594,601,653,544,652,544,652,545,598,601,598,599,652,543,599,601,598,599,597,599,598,601,598,1639,598,1642,653,544,653},
//26
{9011,4442,598,602,597,599,598,1639,598,601,598,1639,598,602,597,599,598,599,598,601,598,1639,598,599,597,1642,598,1641,598,599,598,1639,598,1642,598,599,598,600,599,599,597,599,598,601,598,599,598,598,598,600,597,601,598,599,597,599,598,601,598,599,598,598,598,601,598,599,598,598,598,601,598,599,598,598,599,600,598,599,598,599,597,602,597,599,598,1639,599,601,597,1640,598},
//27
{9031,4442,599,600,599,597,600,1640,599,598,599,1641,601,595,600,597,599,598,599,600,599,1638,599,600,599,1638,599,1640,599,1638,599,601,598,598,599,597,599,600,599,598,599,597,599,600,599,598,598,597,600,598,598,600,599,598,599,598,599,600,599,597,599,598,599,599,600,598,599,597,599,600,599,597,600,597,599,600,599,598,598,598,599,600,599,598,599,1638,599,600,599,598,599},
//28
{9011,4441,600,600,604,592,599,1638,600,600,599,1639,598,600,599,598,599,598,599,600,598,1638,600,597,599,1641,599,1641,598,1638,599,598,598,1642,599,598,598,601,598,599,598,598,599,600,599,598,599,597,599,598,598,600,599,598,598,599,598,600,599,598,599,597,599,601,598,599,598,600,596,601,599,597,599,599,598,600,599,597,599,598,599,600,599,598,599,598,598,1641,599,1638,599},
//29
{9011,4442,598,601,653,544,652,1585,599,601,598,1639,597,602,598,599,598,598,653,546,599,1638,653,544,598,1643,598,1641,598,1640,652,1588,652,545,597,599,598,601,598,598,680,518,598,600,653,544,598,598,598,599,652,547,652,545,598,598,598,601,598,598,599,598,652,547,599,598,598,598,599,600,598,599,598,598,599,600,652,545,598,598,599,600,599,599,597,599,598,1641,598,599,651},
//30
{9009,4442,598,601,598,598,598,1640,598,601,597,1640,597,602,597,599,598,599,597,601,598,1640,598,599,597,1642,598,1642,598,1639,598,1642,597,1640,598,599,597,602,597,603,594,599,598,601,597,599,598,599,597,602,597,599,598,599,597,601,598,598,599,598,598,601,598,599,597,599,598,602,597,599,598,598,598,602,597,599,597,600,597,602,597,599,598,599,597,599,598,601,598,1639,597},
//fan
//low
{9009,4443,597,601,596,603,596,1642,596,603,623,1615,596,603,595,601,571,626,572,625,597,603,596,1642,596,1644,596,1642,571,628,571,626,596,1645,596,600,572,625,624,576,571,625,572,626,570,628,571,626,571,626,571,626,573,626,571,626,570,627,570,628,571,627,570,626,571,629,570,626,571,625,571,629,570,627,569,628,569,633,567,626,570,627,570,1670,570,627,569,628,569,1670,570},
//mid
{9015,4439,599,599,625,573,599,1640,598,600,599,1639,599,600,599,598,599,598,626,571,599,600,599,1639,598,601,627,1611,625,574,598,598,599,1639,626,573,598,598,599,598,625,574,599,598,599,597,599,601,626,571,598,599,598,600,626,572,598,598,654,545,598,599,627,570,598,598,599,600,626,571,625,571,627,573,598,598,625,572,598,600,599,599,599,1641,628,569,598,1639,626,573,626},
//high
{9038,4414,598,598,626,574,628,1609,625,574,598,1639,599,600,598,599,626,572,598,599,625,573,627,569,599,1641,626,1612,626,573,599,598,626,1612,598,601,626,571,598,598,626,574,597,599,653,543,599,601,597,599,598,599,625,574,624,572,625,572,598,601,624,572,627,570,598,599,626,573,625,572,627,569,626,574,599,597,598,599,598,601,598,599,598,1642,626,570,625,1612,624,1617,598},
//off
{9007,4444,650,546,597,602,649,1588,597,602,596,601,596,600,597,603,596,601,596,600,596,603,596,1641,596,1643,650,548,596,1644,677,519,597,1641,596,604,648,548,596,600,649,550,650,547,597,600,596,603,597,604,592,601,596,602,633,564,650,547,596,603,596,601,596,600,596,601,596,603,650,547,596,601,650,548,596,601,596,600,597,602,597,600,596,601,596,1643,597,600,597,1643,649}

View file

@ -1,11 +0,0 @@
#pragma once
#include <stdint.h>
#include <stddef.h>
// IR codes for the remote control
extern const uint16_t ir_code_cool[4][17][407];
extern const uint16_t ir_code_fan[4][407];
extern const uint16_t ir_code_off[407];
// Function to retrieve the IR code for the given mode, fan speed and temperature
size_t getInfraredCode(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr);

View file

@ -1,6 +1,6 @@
#include <ir_codes.hpp>
#include <ir_codes_daikin.hpp>
const uint16_t ir_code_cool[4][17][407] = {
const uint16_t ir_code_cool_daikin[4][17][407] = {
// Fan Speed Auto
{
@ -84,24 +84,24 @@ const uint16_t ir_code_cool[4][17][407] = {
}};
const uint16_t ir_code_fan[4][407] = {
const uint16_t ir_code_fan_daikin[4][407] = {
{5069,2104,406,1746,407,668,408,669,405,670,407,1745,407,668,381,695,381,695,406,670,380,1772,379,696,406,1745,381,1771,380,696,380,1772,379,1772,381,1770,406,1746,407,1745,380,696,406,1745,381,695,380,696,380,696,406,669,407,669,380,696,406,1746,402,673,380,696,406,1746,380,695,407,669,380,696,406,1745,406,670,407,670,379,696,406,670,380,695,407,669,406,669,408,669,406,670,380,695,380,696,407,669,380,695,405,671,407,1745,406,1746,379,1772,380,696,406,670,379,1772,380,696,380,29383,5068,2105,380,1771,407,669,380,696,406,669,380,1772,380,696,380,696,380,695,381,695,380,1771,381,696,380,1771,406,1745,381,695,381,1771,405,1747,379,1772,405,1747,380,1771,395,681,406,1745,381,695,407,669,407,669,380,696,379,696,407,669,380,1771,407,669,406,670,380,1772,406,669,381,695,406,670,380,695,381,695,407,669,407,669,380,696,406,670,380,1771,406,1746,405,670,381,696,405,670,405,1747,380,1771,406,669,408,669,407,668,407,669,380,696,380,696,380,695,380,696,381,695,380,1771,407,669,381,696,406,669,406,670,380,695,381,695,407,669,406,669,381,696,405,670,381,695,380,696,380,696,407,669,405,670,407,669,383,693,407,669,379,696,380,696,406,670,406,669,407,669,381,695,407,669,405,670,380,696,381,696,404,670,381,696,380,695,381,1771,406,1745,381,1770,408,1745,380,695,381,695,380,696,380,696,407,669,406,670,380,695,380,696,380,696,405,671,380,695,407,669,380,695,381,695,381,695,380,696,380,696,406,1745,407,669,380,696,380,696,406,669,381,695,380,696,380,695,406,670,406,670,406,670,380,696,405,670,381,695,380,696,380,696,407,669,380,695,406,670,407,669,407,669,380,695,381,696,406,669,407,669,380,696,380,695,406,1746,406,670,406,1745,406,1745,407,1745,381,695,381,1771,380,1771,407}, //AUTO
{5043,2130,380,1772,380,696,380,696,379,697,379,1771,381,695,381,696,379,696,406,670,380,1771,381,696,379,1771,381,1771,380,696,380,1771,381,1771,380,1772,380,1772,380,1771,380,696,380,1771,381,694,381,696,380,696,380,695,381,695,380,696,380,1772,380,695,380,697,379,1772,380,695,381,695,381,695,380,1772,380,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,381,696,380,696,380,696,379,695,381,695,381,1771,380,1771,381,1771,380,697,379,696,380,1771,381,694,381,29382,5044,2130,380,1771,380,697,379,696,380,696,380,1770,381,696,436,640,380,696,380,696,380,1770,381,695,407,1746,379,1771,381,696,380,1771,380,1772,380,1770,381,1772,380,1772,380,696,380,1771,380,696,380,696,380,696,380,697,378,695,381,696,380,1772,379,697,379,696,380,1772,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,381,695,380,1771,381,1772,380,695,380,696,380,696,380,1772,379,1772,380,696,380,696,380,696,379,696,380,696,380,696,380,696,379,696,381,695,380,1771,381,695,380,696,380,696,380,695,381,695,381,695,380,696,380,696,380,695,381,695,380,695,381,696,380,696,380,695,381,696,379,697,379,696,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,697,379,696,380,696,380,695,381,696,379,695,381,696,380,1771,380,1772,380,1772,379,1772,380,1772,380,696,379,1772,380,696,380,696,380,696,379,696,409,667,380,695,381,695,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,406,669,381,695,380,696,380,695,381,696,380,696,379,696,380,696,380,696,379,696,406,671,379,696,405,671,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,696,380,696,380,696,379,697,407,1743,407,669,380,1772,407,1744,409,668,405,1746,406,670,380,695,380}, //HIGH
{5069,2105,405,1746,381,695,380,695,381,696,407,1745,379,696,380,696,380,696,380,696,380,1771,380,697,379,1771,406,1745,407,669,381,1771,380,1772,405,1746,380,1772,380,1772,379,696,380,1772,379,696,407,669,380,695,381,696,380,696,379,696,380,1771,381,696,380,695,380,1772,380,696,380,695,405,672,379,1771,381,695,380,695,407,670,380,696,404,670,381,696,380,696,380,697,404,670,406,670,380,696,406,669,381,696,380,695,380,1771,381,1772,379,1771,381,695,381,695,407,1744,381,695,381,29381,5069,2104,380,1772,380,696,406,670,380,696,379,1772,380,695,406,670,380,696,380,696,380,1772,406,668,406,1746,381,1771,380,696,380,1772,379,1772,380,1771,381,1771,406,1746,406,670,379,1772,380,695,407,669,380,696,380,696,380,696,405,671,379,1772,380,696,380,696,406,1745,380,696,405,671,404,671,380,696,380,696,405,671,380,695,407,669,380,696,380,1771,380,1772,380,695,381,694,407,670,380,1771,381,1771,380,696,406,669,407,669,406,670,380,696,380,696,380,695,406,671,406,669,380,1771,380,696,380,696,380,696,406,670,405,671,379,697,379,697,379,695,406,670,407,669,380,696,380,696,379,696,380,696,380,695,381,695,407,670,379,696,380,696,406,669,406,670,380,696,380,696,380,696,380,695,406,671,405,670,406,669,381,696,379,697,405,670,405,1747,379,1772,405,1746,406,1746,380,1771,395,1757,380,696,380,697,379,695,407,669,380,696,405,671,380,695,380,696,380,696,406,670,406,670,405,670,380,696,408,668,404,671,381,1771,380,697,394,680,380,696,406,670,380,696,380,696,407,668,407,669,380,696,380,695,380,696,380,696,405,671,380,695,381,696,406,669,380,697,379,696,379,696,380,696,380,697,379,696,406,669,408,668,380,695,381,695,380,1772,380,696,380,1772,379,1772,406,670,405,670,381,695,380,696,380}, //MID
{5039,2131,406,1745,380,696,379,697,378,698,378,1772,380,697,379,697,379,696,379,697,404,1748,378,698,379,1771,380,1772,379,698,378,1772,380,1772,379,1773,379,1772,383,1768,380,697,379,1772,379,697,379,696,380,697,379,696,406,671,378,696,380,1773,378,697,379,698,378,1772,379,698,379,696,379,697,379,1772,380,696,379,697,379,697,406,669,380,696,379,697,379,696,380,696,380,696,379,697,379,697,379,696,379,697,380,696,379,1773,379,1772,379,1772,406,670,405,671,379,1772,380,696,380,29382,5043,2130,379,1773,405,670,380,695,381,696,379,1772,379,697,380,696,379,697,379,697,379,1772,405,671,379,1772,380,1771,380,697,379,1772,380,1772,379,1773,379,1772,379,1773,379,696,405,1746,382,694,380,696,379,696,380,696,380,696,380,695,381,1772,379,696,380,696,379,1773,379,696,380,696,380,696,405,671,379,696,380,696,380,696,406,671,378,697,379,1772,380,1772,379,696,380,696,380,696,405,1746,380,1772,379,697,379,697,379,697,379,696,380,696,379,697,379,697,379,696,380,696,379,1773,379,696,379,698,378,696,406,671,379,696,380,696,379,697,379,697,405,670,380,696,379,697,379,697,379,697,406,670,404,671,379,697,378,697,380,696,379,697,379,697,379,696,380,697,379,696,380,696,379,697,379,695,380,697,405,671,379,696,380,696,379,697,379,1773,379,1772,379,1772,380,1772,379,1773,379,696,380,696,379,697,379,697,379,696,380,696,405,671,379,697,379,696,380,696,379,697,379,697,404,672,379,696,379,698,379,696,379,1772,380,696,380,696,379,698,404,670,380,696,379,696,380,697,379,696,379,697,379,697,380,696,379,696,380,697,405,670,405,671,379,697,379,696,380,696,379,696,380,697,378,698,379,697,378,697,379,697,379,696,405,671,379,1772,380,697,379,1772,379,1772,380,696,380,1771,380,1772,379,1773,379} //LOW
};
const uint16_t ir_code_off[407] = {5044,2129,408,1744,406,670,380,697,404,671,405,1746,380,696,405,671,406,670,405,671,405,1746,406,670,405,1747,406,1745,406,670,405,1746,405,1746,407,1745,405,1746,406,1746,380,696,380,1771,380,696,405,671,380,695,406,670,407,670,379,696,407,1744,380,696,380,695,407,1746,405,670,406,670,405,671,406,1744,381,696,406,669,405,671,380,696,405,671,406,670,405,670,380,696,407,669,405,670,407,668,381,696,406,670,405,670,406,1746,407,1744,406,1745,381,696,405,670,407,1745,406,669,407,29355,5069,2104,406,1745,380,696,380,696,380,696,380,1771,406,670,379,697,406,669,405,671,406,1745,381,695,380,1772,405,1746,407,669,380,1771,407,1745,406,1745,434,1718,406,1745,381,695,380,1771,381,695,406,670,406,670,406,670,405,671,379,696,403,1749,406,670,406,669,407,1745,405,671,410,664,406,671,407,669,405,670,380,696,406,670,406,670,406,669,407,1745,380,1772,405,670,380,696,380,1771,380,1772,380,1772,405,670,407,669,406,670,380,695,380,696,405,671,406,670,379,696,407,669,406,671,405,669,380,696,380,696,406,669,408,1744,381,695,406,670,406,669,381,695,381,695,380,696,380,696,405,671,405,672,378,696,406,670,380,696,379,696,406,670,406,669,389,687,380,696,380,696,380,695,406,1746,407,669,380,1771,406,670,380,1772,405,670,407,669,406,1745,407,1745,380,1771,380,1771,381,1771,381,1771,380,696,406,669,407,669,405,671,380,695,406,670,380,696,405,670,381,696,380,696,379,696,405,671,380,695,381,695,381,695,380,1772,379,697,379,696,406,670,380,695,406,671,405,670,382,693,408,668,406,670,380,696,406,670,380,695,382,695,404,671,406,670,406,669,380,699,377,696,380,695,407,669,380,696,380,696,380,696,406,670,380,695,380,696,380,696,406,1744,381,1771,407,669,380,696,380,1771,381,1771,381,694,406};
const uint16_t ir_code_off_daikin[407] = {5044,2129,408,1744,406,670,380,697,404,671,405,1746,380,696,405,671,406,670,405,671,405,1746,406,670,405,1747,406,1745,406,670,405,1746,405,1746,407,1745,405,1746,406,1746,380,696,380,1771,380,696,405,671,380,695,406,670,407,670,379,696,407,1744,380,696,380,695,407,1746,405,670,406,670,405,671,406,1744,381,696,406,669,405,671,380,696,405,671,406,670,405,670,380,696,407,669,405,670,407,668,381,696,406,670,405,670,406,1746,407,1744,406,1745,381,696,405,670,407,1745,406,669,407,29355,5069,2104,406,1745,380,696,380,696,380,696,380,1771,406,670,379,697,406,669,405,671,406,1745,381,695,380,1772,405,1746,407,669,380,1771,407,1745,406,1745,434,1718,406,1745,381,695,380,1771,381,695,406,670,406,670,406,670,405,671,379,696,403,1749,406,670,406,669,407,1745,405,671,410,664,406,671,407,669,405,670,380,696,406,670,406,670,406,669,407,1745,380,1772,405,670,380,696,380,1771,380,1772,380,1772,405,670,407,669,406,670,380,695,380,696,405,671,406,670,379,696,407,669,406,671,405,669,380,696,380,696,406,669,408,1744,381,695,406,670,406,669,381,695,381,695,380,696,380,696,405,671,405,672,378,696,406,670,380,696,379,696,406,670,406,669,389,687,380,696,380,696,380,695,406,1746,407,669,380,1771,406,670,380,1772,405,670,407,669,406,1745,407,1745,380,1771,380,1771,381,1771,381,1771,380,696,406,669,407,669,405,671,380,695,406,670,380,696,405,670,381,696,380,696,379,696,405,671,380,695,381,695,381,695,380,1772,379,697,379,696,406,670,380,695,406,671,405,670,382,693,408,668,406,670,380,696,406,670,380,695,382,695,404,671,406,670,406,669,380,699,377,696,380,695,407,669,380,696,380,696,380,696,406,670,380,695,380,696,380,696,406,1744,381,1771,407,669,380,696,380,1771,381,1771,381,694,406};
size_t getInfraredCode(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr) {
size_t getInfraredCode_daikin(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr) {
switch (mode) {
case 0: // Off
*codePtr = &(ir_code_off[0]);
*codePtr = &(ir_code_off_daikin[0]);
return 407;
case 1: // Fan Only
*codePtr = &(ir_code_fan[fan_speed][0]);
*codePtr = &(ir_code_fan_daikin[fan_speed][0]);
return 407;
case 2: // Cool
*codePtr = &(ir_code_cool[fan_speed][temperature_index][0]);
*codePtr = &(ir_code_cool_daikin[fan_speed][temperature_index][0]);
return 407;
default: // Invalid mode
return 0;

11
src/ir_codes_daikin.hpp Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include <stdint.h>
#include <stddef.h>
// IR codes for the remote control
extern const uint16_t ir_code_cool_daikin[4][17][407];
extern const uint16_t ir_code_fan_daikin[4][407];
extern const uint16_t ir_code_off_daikin[407];
// Function to retrieve the IR code for the given mode, fan speed and temperature
size_t getInfraredCode_daikin(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr);

147
src/ir_codes_york.cpp Normal file
View file

@ -0,0 +1,147 @@
#include <ir_codes_york.hpp>
const uint16_t ir_code_cool_york[4][17][91] = {
// Fan Speed Auto
{
// 18
{8983, 4472, 569, 630, 569, 627, 570, 1671, 569, 629, 568, 1670, 570, 628, 569, 628, 569, 628, 569, 631, 568, 1669, 569, 630, 570, 627, 569, 628, 569, 631, 569, 1668, 569, 1671, 569, 628, 569, 629, 569, 630, 569, 627, 569, 629, 568, 630, 570, 627, 569, 628, 570, 630, 569, 628, 569, 628, 569, 629, 569, 628, 569, 627, 570, 630, 569, 628, 569, 628, 569, 628, 568, 631, 568, 629, 569, 628, 568, 631, 568, 1669, 569, 631, 568, 1669, 569, 1671, 569, 627, 569, 629, 568},
// 19
{8978, 4472, 568, 631, 568, 630, 567, 1672, 567, 629, 592, 1648, 568, 629, 567, 629, 567, 631, 566, 631, 568, 1669, 568, 631, 568, 630, 566, 630, 567, 1676, 563, 630, 567, 628, 569, 631, 567, 630, 567, 629, 568, 630, 568, 630, 567, 630, 567, 631, 568, 629, 567, 629, 593, 606, 568, 629, 567, 630, 592, 606, 567, 630, 567, 630, 567, 631, 593, 604, 595, 602, 567, 631, 568, 629, 593, 603, 594, 605, 591, 1646, 594, 603, 593, 1647, 594, 602, 593, 1647, 593, 1645, 593},
// 20
{9005, 4470, 571, 629, 569, 626, 571, 1670, 570, 627, 569, 1670, 571, 626, 570, 627, 570, 627, 570, 628, 570, 1668, 570, 629, 569, 627, 570, 626, 570, 1670, 569, 627, 570, 1670, 570, 627, 569, 627, 570, 629, 570, 627, 569, 627, 569, 630, 569, 627, 570, 627, 570, 629, 569, 628, 568, 629, 569, 629, 569, 628, 569, 627, 570, 629, 569, 628, 569, 627, 569, 628, 569, 630, 569, 627, 570, 627, 569, 629, 570, 1667, 570, 629, 570, 1668, 569, 627, 569, 1671, 568, 627, 570},
// 21
{8981, 4473, 569, 630, 569, 627, 570, 1670, 570, 627, 570, 1669, 570, 627, 570, 627, 570, 628, 569, 630, 569, 1668, 569, 631, 569, 628, 568, 628, 569, 1671, 570, 1668, 568, 631, 569, 627, 569, 628, 569, 630, 569, 627, 570, 628, 569, 629, 569, 628, 569, 628, 569, 630, 569, 628, 568, 628, 570, 629, 569, 628, 570, 626, 570, 630, 568, 628, 570, 627, 570, 627, 569, 630, 569, 628, 569, 627, 570, 630, 568, 1668, 570, 629, 569, 1669, 569, 628, 569, 630, 569, 1669, 569},
// 22
{9008, 4445, 596, 603, 597, 600, 621, 1616, 624, 575, 595, 1643, 595, 605, 621, 575, 595, 602, 596, 603, 622, 1616, 596, 601, 622, 577, 595, 602, 623, 1617, 622, 1616, 596, 1644, 625, 572, 623, 573, 597, 604, 594, 602, 597, 599, 595, 606, 593, 603, 594, 602, 595, 604, 595, 602, 596, 600, 596, 604, 596, 601, 622, 575, 622, 576, 596, 601, 595, 602, 596, 601, 594, 605, 596, 601, 595, 602, 595, 603, 597, 1641, 596, 604, 600, 1637, 596, 601, 594, 604, 596, 601, 596},
// 23
{9040, 4413, 599, 601, 598, 598, 625, 1614, 599, 598, 599, 1641, 625, 572, 624, 572, 599, 598, 625, 574, 626, 1611, 625, 574, 599, 598, 626, 1613, 627, 570, 653, 544, 598, 599, 598, 601, 626, 570, 599, 598, 626, 573, 625, 573, 598, 598, 599, 599, 599, 599, 598, 598, 653, 546, 626, 571, 625, 571, 625, 574, 599, 598, 624, 572, 599, 600, 624, 573, 626, 570, 599, 601, 624, 572, 626, 571, 598, 601, 625, 1612, 626, 571, 624, 575, 598, 1639, 599, 1640, 600, 1639, 598},
// 24
{9010, 4443, 598, 599, 598, 601, 598, 1639, 598, 601, 599, 1638, 599, 601, 598, 598, 598, 599, 598, 599, 598, 1641, 599, 598, 598, 600, 599, 1639, 598, 601, 598, 598, 599, 1638, 599, 601, 598, 598, 598, 599, 598, 601, 598, 598, 599, 598, 598, 601, 598, 599, 598, 599, 598, 600, 598, 598, 599, 598, 599, 600, 598, 598, 599, 598, 599, 597, 599, 601, 598, 599, 597, 599, 598, 601, 597, 599, 598, 599, 597, 601, 598, 599, 598, 1642, 598, 599, 597, 600, 597, 602, 597},
// 25
{9006, 4445, 595, 605, 594, 602, 594, 1646, 595, 602, 594, 1645, 622, 576, 594, 602, 593, 604, 596, 603, 594, 1643, 595, 605, 594, 602, 595, 1645, 594, 603, 594, 1643, 595, 604, 595, 602, 594, 603, 594, 604, 595, 602, 595, 602, 594, 604, 594, 603, 594, 603, 594, 604, 595, 602, 594, 603, 594, 604, 596, 601, 595, 602, 595, 604, 594, 603, 594, 602, 594, 604, 593, 605, 594, 603, 594, 602, 595, 605, 593, 1644, 594, 605, 595, 602, 594, 1643, 594, 605, 594, 1643, 594},
// 26
{8981, 4471, 570, 632, 567, 628, 569, 1671, 569, 628, 569, 1671, 569, 627, 569, 628, 568, 629, 569, 630, 569, 1668, 569, 630, 569, 628, 569, 1670, 569, 629, 568, 1668, 569, 1672, 568, 628, 569, 630, 569, 628, 568, 632, 565, 631, 568, 628, 568, 629, 568, 629, 568, 631, 568, 628, 568, 629, 568, 631, 568, 628, 569, 629, 568, 630, 568, 629, 568, 628, 593, 606, 568, 629, 568, 629, 568, 631, 593, 604, 568, 1671, 569, 628, 568, 628, 568, 1672, 568, 628, 569, 628, 568},
// 27
{8981, 4472, 569, 631, 568, 629, 594, 1645, 593, 604, 568, 1672, 575, 622, 593, 604, 593, 604, 593, 606, 592, 1645, 593, 606, 593, 605, 567, 1673, 568, 1669, 568, 629, 568, 631, 594, 603, 568, 629, 567, 632, 592, 605, 592, 604, 594, 605, 567, 629, 568, 630, 593, 605, 569, 628, 568, 629, 594, 604, 569, 629, 593, 604, 568, 631, 593, 604, 594, 603, 593, 603, 593, 606, 568, 628, 593, 605, 567, 632, 567, 1670, 594, 605, 568, 630, 592, 604, 593, 1646, 568, 1670, 567},
// 28
{8980, 4473, 568, 631, 568, 629, 568, 1671, 567, 630, 567, 1672, 568, 629, 567, 630, 567, 630, 568, 632, 566, 1671, 567, 631, 568, 629, 567, 1673, 567, 1670, 592, 605, 567, 1672, 568, 629, 568, 631, 568, 629, 567, 629, 594, 605, 568, 629, 567, 629, 593, 604, 567, 632, 567, 630, 567, 629, 568, 631, 588, 608, 568, 629, 568, 631, 568, 629, 568, 629, 568, 630, 568, 629, 568, 629, 568, 631, 568, 629, 568, 1671, 568, 630, 567, 629, 568, 629, 592, 1648, 567, 629, 568},
// 29
{8980, 4472, 569, 630, 569, 628, 569, 1671, 568, 628, 568, 1672, 568, 628, 569, 628, 568, 629, 568, 631, 569, 1668, 569, 631, 567, 629, 568, 1671, 568, 1670, 568, 1671, 569, 628, 568, 629, 567, 631, 568, 629, 568, 628, 568, 631, 568, 628, 568, 629, 568, 629, 568, 632, 567, 629, 568, 629, 568, 630, 568, 629, 568, 629, 567, 632, 567, 629, 569, 628, 568, 631, 568, 629, 567, 629, 568, 631, 567, 630, 567, 1672, 567, 629, 568, 630, 567, 629, 568, 631, 568, 1670, 567},
// 30
{9004, 4447, 594, 604, 595, 602, 594, 1646, 593, 603, 594, 1646, 595, 602, 593, 603, 594, 603, 594, 604, 594, 1644, 594, 605, 593, 604, 594, 1645, 595, 1642, 595, 1646, 594, 1643, 595, 602, 594, 605, 594, 602, 595, 602, 594, 605, 594, 602, 594, 603, 593, 606, 593, 603, 595, 602, 594, 605, 595, 602, 594, 602, 595, 605, 594, 602, 595, 602, 594, 605, 595, 602, 593, 603, 595, 604, 594, 603, 594, 605, 592, 1645, 593, 603, 595, 603, 594, 605, 594, 602, 594, 603, 593}
},
// Fan Speed High
{
// 18
{9010, 4441, 598, 601, 654, 543, 598, 1641, 652, 545, 654, 1585, 598, 599, 652, 544, 654, 543, 598, 600, 652, 1585, 598, 601, 598, 1639, 652, 547, 598, 598, 652, 1585, 598, 1642, 654, 542, 653, 545, 653, 544, 652, 544, 598, 601, 598, 599, 652, 544, 598, 598, 598, 604, 648, 546, 598, 598, 653, 545, 650, 547, 598, 598, 654, 544, 598, 599, 598, 598, 652, 547, 652, 545, 598, 597, 599, 600, 654, 543, 652, 544, 652, 547, 653, 1584, 598, 1642, 654, 542, 650, 1589, 652},
// 19
{9008, 4442, 598, 601, 598, 599, 597, 1640, 597, 602, 597, 1640, 597, 602, 597, 604, 593, 599, 597, 601, 598, 1640, 597, 599, 598, 1641, 597, 599, 599, 1641, 597, 599, 598, 599, 597, 601, 597, 600, 597, 599, 598, 601, 598, 599, 597, 599, 598, 601, 597, 600, 597, 599, 597, 602, 597, 599, 598, 599, 597, 601, 598, 599, 597, 599, 597, 601, 598, 599, 597, 599, 598, 601, 597, 599, 598, 599, 597, 602, 597, 599, 598, 599, 597, 1642, 598, 1639, 598, 601, 598, 599, 598},
// 20
{9061, 4389, 598, 601, 599, 598, 650, 1587, 598, 601, 650, 1587, 598, 601, 598, 598, 651, 546, 651, 547, 652, 1586, 598, 599, 650, 1589, 650, 546, 598, 1641, 651, 546, 598, 1641, 598, 599, 598, 598, 598, 601, 652, 544, 599, 598, 598, 601, 598, 598, 598, 599, 598, 601, 598, 599, 598, 598, 615, 584, 598, 599, 597, 599, 598, 601, 598, 599, 597, 599, 653, 543, 598, 601, 598, 598, 650, 546, 599, 600, 598, 598, 650, 547, 598, 1641, 599, 597, 598, 1642, 652, 1584, 599},
// 21
{9008, 4442, 598, 602, 597, 599, 597, 1640, 598, 601, 598, 1639, 598, 601, 598, 599, 597, 599, 598, 602, 596, 1640, 598, 599, 651, 1589, 598, 599, 598, 1642, 597, 1639, 598, 601, 598, 600, 596, 599, 598, 601, 598, 599, 598, 598, 598, 601, 598, 599, 597, 599, 621, 578, 597, 600, 597, 599, 598, 601, 598, 598, 598, 598, 650, 549, 598, 599, 598, 598, 598, 599, 598, 601, 650, 547, 597, 599, 650, 549, 597, 599, 597, 599, 598, 1641, 598, 599, 598, 1642, 597, 600, 597},
// 22
{9064, 4386, 654, 546, 652, 545, 652, 1584, 598, 601, 598, 1639, 652, 547, 652, 545, 680, 516, 654, 545, 598, 1639, 652, 544, 652, 1587, 654, 543, 653, 1586, 653, 1584, 653, 1586, 598, 599, 654, 545, 652, 544, 652, 545, 598, 601, 598, 599, 597, 599, 598, 599, 653, 545, 652, 545, 683, 514, 597, 601, 598, 598, 635, 562, 651, 548, 653, 544, 633, 563, 655, 544, 598, 600, 597, 598, 598, 601, 650, 546, 654, 543, 598, 601, 598, 1639, 653, 544, 680, 519, 597, 1639, 652},
// 23
{9010, 4443, 597, 602, 598, 599, 597, 1640, 597, 602, 598, 1640, 597, 602, 597, 599, 598, 599, 598, 601, 598, 1639, 598, 599, 598, 1642, 598, 1642, 597, 600, 598, 599, 597, 600, 597, 601, 598, 599, 598, 599, 597, 602, 597, 600, 597, 599, 598, 601, 598, 599, 598, 599, 597, 602, 597, 600, 597, 599, 598, 601, 598, 599, 597, 599, 598, 602, 597, 599, 598, 599, 597, 602, 597, 599, 598, 599, 597, 602, 597, 599, 598, 599, 597, 1643, 597, 599, 598, 599, 597, 601, 598},
// 24
{9009, 4443, 598, 601, 598, 599, 597, 1640, 598, 601, 598, 1639, 598, 601, 598, 599, 597, 600, 597, 602, 597, 1640, 598, 599, 598, 1642, 598, 1642, 597, 599, 598, 600, 597, 1642, 597, 600, 597, 599, 598, 601, 598, 600, 597, 599, 598, 601, 598, 599, 597, 600, 598, 601, 598, 598, 598, 599, 598, 601, 598, 599, 597, 599, 598, 601, 597, 600, 597, 600, 598, 599, 597, 601, 598, 599, 598, 599, 597, 602, 598, 599, 597, 600, 597, 601, 598, 1640, 598, 1642, 598, 1640, 602},
// 25
{9063, 4387, 654, 545, 599, 598, 653, 1585, 653, 546, 679, 1557, 653, 547, 653, 543, 598, 599, 598, 600, 652, 1585, 653, 545, 652, 1587, 654, 1586, 598, 599, 597, 1640, 653, 545, 656, 541, 654, 543, 655, 544, 598, 598, 653, 544, 598, 601, 653, 543, 654, 543, 652, 547, 656, 540, 598, 599, 653, 545, 598, 599, 654, 546, 594, 601, 653, 544, 652, 544, 652, 545, 598, 601, 598, 599, 652, 543, 599, 601, 598, 599, 597, 599, 598, 601, 598, 1639, 598, 1642, 653, 544, 653},
// 26
{9011, 4442, 598, 602, 597, 599, 598, 1639, 598, 601, 598, 1639, 598, 602, 597, 599, 598, 599, 598, 601, 598, 1639, 598, 599, 597, 1642, 598, 1641, 598, 599, 598, 1639, 598, 1642, 598, 599, 598, 600, 599, 599, 597, 599, 598, 601, 598, 599, 598, 598, 598, 600, 597, 601, 598, 599, 597, 599, 598, 601, 598, 599, 598, 598, 598, 601, 598, 599, 598, 598, 598, 601, 598, 599, 598, 598, 599, 600, 598, 599, 598, 599, 597, 602, 597, 599, 598, 1639, 599, 601, 597, 1640, 598},
// 27
{9031, 4442, 599, 600, 599, 597, 600, 1640, 599, 598, 599, 1641, 601, 595, 600, 597, 599, 598, 599, 600, 599, 1638, 599, 600, 599, 1638, 599, 1640, 599, 1638, 599, 601, 598, 598, 599, 597, 599, 600, 599, 598, 599, 597, 599, 600, 599, 598, 598, 597, 600, 598, 598, 600, 599, 598, 599, 598, 599, 600, 599, 597, 599, 598, 599, 599, 600, 598, 599, 597, 599, 600, 599, 597, 600, 597, 599, 600, 599, 598, 598, 598, 599, 600, 599, 598, 599, 1638, 599, 600, 599, 598, 599},
// 28
{9011, 4441, 600, 600, 604, 592, 599, 1638, 600, 600, 599, 1639, 598, 600, 599, 598, 599, 598, 599, 600, 598, 1638, 600, 597, 599, 1641, 599, 1641, 598, 1638, 599, 598, 598, 1642, 599, 598, 598, 601, 598, 599, 598, 598, 599, 600, 599, 598, 599, 597, 599, 598, 598, 600, 599, 598, 598, 599, 598, 600, 599, 598, 599, 597, 599, 601, 598, 599, 598, 600, 596, 601, 599, 597, 599, 599, 598, 600, 599, 597, 599, 598, 599, 600, 599, 598, 599, 598, 598, 1641, 599, 1638, 599},
// 29
{9011, 4442, 598, 601, 653, 544, 652, 1585, 599, 601, 598, 1639, 597, 602, 598, 599, 598, 598, 653, 546, 599, 1638, 653, 544, 598, 1643, 598, 1641, 598, 1640, 652, 1588, 652, 545, 597, 599, 598, 601, 598, 598, 680, 518, 598, 600, 653, 544, 598, 598, 598, 599, 652, 547, 652, 545, 598, 598, 598, 601, 598, 598, 599, 598, 652, 547, 599, 598, 598, 598, 599, 600, 598, 599, 598, 598, 599, 600, 652, 545, 598, 598, 599, 600, 599, 599, 597, 599, 598, 1641, 598, 599, 651},
// 30
{9009, 4442, 598, 601, 598, 598, 598, 1640, 598, 601, 597, 1640, 597, 602, 597, 599, 598, 599, 597, 601, 598, 1640, 598, 599, 597, 1642, 598, 1642, 598, 1639, 598, 1642, 597, 1640, 598, 599, 597, 602, 597, 603, 594, 599, 598, 601, 597, 599, 598, 599, 597, 602, 597, 599, 598, 599, 597, 601, 598, 598, 599, 598, 598, 601, 598, 599, 597, 599, 598, 602, 597, 599, 598, 598, 598, 602, 597, 599, 597, 600, 597, 602, 597, 599, 598, 599, 597, 599, 598, 601, 598, 1639, 597}
},
// Fan Speed Med
{
// 18
{9027, 4441, 654, 546, 598, 598, 598, 1640, 598, 600, 652, 1585, 598, 601, 598, 598, 598, 598, 655, 544, 653, 1584, 652, 1587, 652, 545, 598, 599, 597, 601, 652, 1585, 598, 1641, 598, 599, 597, 599, 597, 600, 599, 599, 651, 545, 651, 548, 597, 599, 651, 545, 598, 601, 653, 543, 652, 544, 599, 600, 653, 544, 652, 544, 652, 547, 597, 600, 597, 599, 597, 599, 598, 600, 678, 519, 653, 543, 598, 601, 598, 599, 650, 546, 598, 1641, 598, 1639, 598, 601, 598, 599, 653},
// 19
{9093, 4359, 598, 601, 654, 543, 652, 1584, 599, 601, 661, 1576, 681, 518, 652, 544, 650, 547, 653, 546, 652, 1585, 652, 1587, 652, 544, 654, 543, 654, 1586, 652, 545, 598, 598, 653, 546, 598, 599, 680, 516, 653, 545, 654, 543, 652, 545, 654, 544, 654, 544, 652, 544, 654, 545, 652, 544, 598, 599, 653, 546, 680, 516, 652, 544, 598, 602, 654, 542, 653, 544, 654, 545, 654, 542, 598, 599, 682, 516, 654, 543, 652, 545, 598, 1641, 655, 542, 597, 1642, 598, 1639, 599},
// 20
{9063, 4387, 598, 601, 598, 599, 652, 1584, 652, 547, 652, 1585, 598, 601, 652, 544, 653, 544, 653, 545, 651, 1586, 651, 1588, 598, 599, 598, 599, 653, 1586, 597, 599, 652, 1587, 654, 543, 652, 545, 651, 547, 652, 545, 653, 543, 598, 601, 653, 543, 598, 599, 597, 602, 652, 544, 598, 598, 598, 602, 651, 544, 598, 599, 598, 600, 652, 545, 653, 543, 650, 546, 654, 546, 597, 599, 653, 543, 651, 547, 652, 545, 598, 599, 598, 1641, 651, 546, 597, 1641, 652, 545, 653},
// 21
{9009, 4441, 599, 600, 598, 599, 598, 1639, 598, 601, 598, 1639, 598, 601, 597, 599, 598, 599, 597, 602, 597, 1639, 598, 1642, 598, 599, 598, 599, 597, 1642, 598, 1640, 597, 601, 598, 599, 597, 600, 597, 602, 597, 599, 597, 600, 597, 601, 598, 599, 597, 599, 598, 601, 597, 599, 598, 598, 598, 601, 598, 599, 598, 599, 597, 601, 598, 599, 598, 598, 598, 599, 598, 601, 597, 599, 598, 598, 598, 601, 597, 599, 598, 599, 598, 1642, 597, 599, 597, 602, 597, 1639, 598},
// 22
{9009, 4441, 599, 600, 598, 599, 598, 1639, 598, 601, 598, 1639, 598, 601, 597, 599, 598, 599, 597, 602, 597, 1639, 598, 1642, 598, 599, 598, 599, 597, 1642, 598, 1640, 597, 601, 598, 599, 597, 600, 597, 602, 597, 599, 597, 600, 597, 601, 598, 599, 597, 599, 598, 601, 597, 599, 598, 598, 598, 601, 598, 599, 598, 599, 597, 601, 598, 599, 598, 598, 598, 599, 598, 601, 597, 599, 598, 598, 598, 601, 597, 599, 598, 599, 598, 1642, 597, 599, 597, 602, 597, 1639, 598},
// 23
{9029, 4441, 598, 601, 597, 599, 650, 1590, 598, 598, 598, 1641, 598, 599, 651, 545, 598, 598, 599, 601, 598, 1639, 598, 1642, 597, 599, 650, 1589, 598, 599, 597, 598, 599, 601, 597, 599, 598, 598, 598, 602, 597, 599, 598, 598, 598, 600, 598, 599, 598, 598, 598, 600, 599, 598, 598, 598, 598, 602, 597, 598, 599, 598, 598, 601, 598, 598, 598, 599, 598, 598, 598, 601, 598, 598, 598, 598, 598, 601, 598, 598, 598, 598, 598, 601, 598, 1640, 597, 1641, 598, 1639, 598},
// 24
{9010, 4441, 598, 601, 597, 599, 598, 1639, 598, 601, 598, 1639, 598, 601, 598, 598, 598, 599, 598, 601, 598, 1639, 598, 1641, 599, 598, 598, 1641, 652, 545, 598, 598, 598, 1642, 598, 599, 598, 599, 597, 601, 598, 599, 598, 599, 597, 601, 598, 599, 597, 600, 597, 602, 597, 599, 598, 599, 598, 601, 651, 545, 598, 599, 597, 601, 652, 545, 598, 599, 597, 599, 598, 601, 599, 597, 598, 599, 598, 600, 599, 598, 598, 599, 598, 601, 598, 1639, 598, 1641, 598, 599, 598},
// 25
{9008, 4441, 598, 601, 598, 598, 598, 1639, 651, 548, 599, 1639, 598, 600, 598, 599, 652, 545, 598, 601, 597, 1640, 598, 1640, 653, 544, 598, 1641, 653, 544, 651, 1586, 652, 548, 597, 599, 653, 543, 652, 546, 653, 544, 598, 598, 598, 600, 598, 599, 598, 598, 650, 549, 652, 545, 597, 599, 651, 548, 653, 543, 598, 599, 598, 601, 650, 547, 597, 599, 652, 544, 651, 547, 598, 599, 598, 599, 651, 547, 598, 598, 652, 545, 598, 600, 651, 1586, 651, 548, 598, 1638, 653},
// 26
{9009, 4441, 598, 602, 598, 599, 597, 1639, 598, 601, 598, 1639, 598, 601, 598, 598, 598, 599, 650, 549, 598, 1639, 598, 1641, 598, 599, 598, 1641, 598, 599, 651, 1586, 651, 1588, 599, 598, 653, 546, 598, 598, 651, 546, 598, 601, 598, 598, 598, 599, 598, 599, 597, 601, 598, 599, 597, 599, 598, 601, 598, 599, 597, 599, 598, 601, 598, 599, 598, 598, 598, 601, 598, 598, 598, 599, 651, 547, 651, 546, 598, 598, 598, 601, 598, 598, 599, 1639, 598, 600, 598, 599, 598},
// 27
{9007, 4441, 598, 601, 597, 599, 598, 1638, 599, 601, 598, 1638, 598, 601, 598, 599, 597, 599, 598, 601, 598, 1639, 598, 1641, 598, 598, 598, 1642, 597, 1640, 597, 599, 598, 601, 598, 599, 598, 598, 598, 600, 599, 598, 598, 599, 598, 600, 598, 598, 598, 598, 599, 601, 598, 598, 598, 598, 598, 601, 598, 598, 598, 598, 598, 601, 598, 599, 597, 599, 597, 599, 598, 600, 598, 599, 597, 599, 598, 601, 597, 599, 598, 599, 597, 601, 598, 598, 598, 1641, 598, 1639, 598},
// 28
{9007, 4441, 598, 601, 597, 599, 598, 1638, 599, 601, 598, 1638, 598, 601, 598, 599, 597, 599, 598, 601, 598, 1639, 598, 1641, 598, 598, 598, 1642, 597, 1640, 597, 599, 598, 601, 598, 599, 598, 598, 598, 600, 599, 598, 598, 599, 598, 600, 598, 598, 598, 598, 599, 601, 598, 598, 598, 598, 598, 601, 598, 598, 598, 598, 598, 601, 598, 599, 597, 599, 597, 599, 598, 600, 598, 599, 597, 599, 598, 601, 597, 599, 598, 599, 597, 601, 598, 598, 598, 1641, 598, 1639, 598},
// 29
{9062, 4386, 599, 601, 598, 599, 653, 1583, 652, 547, 652, 1585, 653, 546, 651, 546, 598, 599, 597, 602, 651, 1585, 650, 1590, 649, 548, 651, 1587, 598, 1640, 652, 1587, 598, 599, 651, 545, 598, 601, 598, 599, 598, 598, 598, 601, 598, 598, 597, 599, 598, 599, 600, 598, 598, 598, 598, 599, 598, 601, 597, 599, 597, 599, 598, 601, 598, 599, 597, 599, 598, 600, 598, 599, 598, 599, 597, 601, 597, 599, 598, 599, 598, 601, 597, 599, 598, 598, 598, 601, 598, 1639, 597},
// 30
{9010, 4441, 599, 601, 598, 599, 597, 1640, 598, 601, 598, 1639, 598, 601, 598, 599, 649, 547, 598, 601, 598, 1639, 598, 1641, 598, 599, 598, 1642, 598, 1639, 598, 1641, 598, 1639, 598, 599, 598, 601, 598, 599, 597, 599, 598, 601, 598, 599, 598, 598, 598, 601, 598, 599, 598, 598, 599, 601, 597, 599, 598, 599, 597, 602, 597, 599, 598, 599, 597, 601, 598, 598, 598, 598, 651, 548, 598, 599, 597, 599, 650, 549, 598, 598, 598, 599, 598, 598, 598, 601, 598, 598, 598}
},
// Fan Speed Low
{
// 18
{9007, 4439, 600, 600, 598, 597, 600, 1636, 600, 599, 599, 1637, 599, 599, 600, 596, 599, 597, 600, 599, 599, 1637, 599, 597, 600, 599, 599, 596, 600, 597, 599, 1639, 599, 1638, 598, 599, 600, 599, 597, 597, 599, 598, 600, 597, 599, 596, 600, 599, 599, 597, 599, 597, 599, 599, 600, 596, 600, 596, 600, 598, 600, 596, 600, 597, 599, 599, 600, 597, 599, 596, 600, 599, 599, 596, 600, 596, 600, 599, 599, 596, 600, 597, 599, 1639, 600, 1636, 600, 1639, 599, 597, 599},
// 19
{9008, 4439, 600, 599, 599, 597, 600, 1637, 599, 599, 600, 1637, 599, 599, 600, 596, 600, 597, 600, 598, 600, 1637, 599, 598, 598, 600, 599, 596, 600, 1640, 599, 596, 601, 596, 599, 599, 600, 597, 599, 596, 600, 598, 600, 597, 599, 597, 600, 599, 599, 597, 599, 597, 599, 597, 599, 599, 600, 596, 600, 596, 600, 599, 599, 597, 599, 597, 600, 599, 599, 596, 599, 596, 600, 599, 600, 596, 600, 597, 599, 599, 599, 597, 599, 1637, 599, 1639, 600, 597, 599, 1638, 600},
// 20
{9007, 4440, 599, 600, 654, 543, 654, 1582, 651, 548, 597, 1639, 653, 545, 653, 544, 652, 544, 598, 601, 598, 1638, 654, 542, 653, 545, 599, 598, 654, 1584, 654, 542, 652, 1584, 653, 546, 653, 544, 652, 544, 598, 601, 654, 542, 653, 543, 654, 544, 653, 544, 653, 543, 654, 545, 652, 544, 653, 543, 654, 544, 598, 599, 598, 598, 653, 545, 651, 546, 597, 599, 653, 545, 652, 544, 652, 543, 652, 547, 598, 599, 652, 543, 598, 1641, 653, 1582, 654, 546, 653, 542, 654},
// 21
{9006, 4439, 599, 600, 598, 598, 599, 1638, 598, 601, 598, 1638, 599, 600, 598, 598, 598, 598, 599, 600, 598, 1638, 599, 598, 598, 600, 598, 598, 598, 1641, 598, 1638, 599, 598, 598, 600, 598, 598, 599, 597, 599, 600, 598, 598, 598, 598, 598, 600, 599, 598, 598, 598, 598, 600, 599, 597, 599, 597, 599, 599, 599, 598, 598, 597, 599, 600, 598, 598, 598, 598, 598, 600, 598, 598, 598, 598, 598, 600, 598, 598, 599, 597, 599, 1640, 598, 598, 598, 1640, 599, 1638, 599},
// 22
{9059, 4389, 597, 601, 653, 544, 651, 1585, 651, 548, 651, 1586, 652, 547, 596, 599, 653, 544, 651, 547, 653, 1584, 651, 545, 651, 548, 597, 600, 651, 1588, 648, 1588, 651, 1588, 653, 544, 652, 544, 650, 548, 652, 544, 653, 543, 598, 601, 598, 598, 652, 545, 597, 602, 651, 544, 651, 546, 650, 548, 597, 599, 652, 545, 652, 546, 653, 543, 597, 599, 652, 545, 652, 546, 601, 595, 653, 543, 598, 601, 651, 545, 652, 545, 597, 1641, 597, 599, 598, 1641, 628, 569, 651},
// 23
{9006, 4440, 599, 600, 598, 599, 597, 1639, 598, 600, 598, 1638, 599, 600, 599, 598, 598, 599, 598, 600, 598, 1639, 598, 598, 599, 600, 598, 1639, 598, 601, 598, 598, 598, 599, 598, 600, 598, 598, 599, 598, 598, 600, 598, 598, 599, 598, 598, 601, 598, 599, 598, 598, 598, 598, 598, 601, 598, 598, 598, 598, 599, 599, 599, 598, 598, 598, 598, 601, 598, 599, 597, 599, 598, 600, 598, 598, 599, 598, 598, 600, 599, 597, 599, 1638, 599, 600, 598, 598, 599, 1640, 598},
// 24
{9007, 4440, 598, 601, 597, 599, 598, 1638, 599, 600, 598, 1638, 598, 601, 598, 599, 597, 599, 597, 601, 598, 1638, 598, 599, 598, 600, 598, 1639, 598, 601, 597, 598, 599, 1638, 598, 601, 597, 599, 598, 598, 603, 595, 598, 598, 598, 599, 597, 601, 598, 598, 598, 598, 598, 601, 598, 598, 598, 598, 598, 601, 598, 598, 598, 598, 597, 602, 597, 599, 597, 599, 598, 600, 598, 599, 598, 598, 598, 601, 597, 599, 598, 598, 598, 1641, 598, 599, 597, 599, 597, 601, 597},
// 25
{9060, 4389, 599, 601, 597, 599, 598, 1639, 598, 600, 598, 1639, 598, 601, 597, 599, 598, 599, 597, 601, 598, 1638, 598, 599, 598, 600, 599, 1638, 598, 601, 597, 1639, 598, 599, 598, 601, 597, 599, 598, 598, 598, 600, 599, 598, 597, 599, 597, 601, 598, 599, 597, 599, 597, 600, 599, 598, 598, 598, 598, 601, 598, 599, 598, 598, 598, 601, 598, 598, 598, 599, 597, 601, 598, 598, 598, 599, 598, 600, 598, 599, 598, 598, 598, 599, 598, 1641, 598, 1640, 599, 1639, 598},
// 26
{9006, 4440, 598, 601, 598, 599, 597, 1639, 598, 601, 651, 1586, 597, 601, 598, 598, 598, 599, 598, 601, 597, 1639, 598, 598, 598, 601, 598, 1638, 598, 600, 598, 1639, 597, 1641, 598, 598, 598, 598, 598, 601, 597, 599, 597, 599, 598, 601, 649, 546, 599, 598, 598, 601, 597, 599, 597, 598, 598, 601, 598, 598, 598, 598, 598, 601, 597, 599, 598, 598, 598, 599, 597, 601, 598, 598, 598, 599, 597, 601, 598, 598, 598, 598, 598, 600, 598, 1638, 598, 1640, 599, 598, 598},
// 27
{9060, 4387, 680, 519, 598, 598, 598, 1639, 598, 600, 598, 1639, 598, 600, 652, 545, 597, 599, 651, 547, 653, 1584, 653, 543, 598, 600, 653, 1584, 652, 1587, 598, 598, 654, 543, 600, 598, 654, 542, 599, 598, 654, 544, 653, 544, 652, 544, 651, 547, 651, 546, 652, 544, 598, 600, 654, 542, 651, 546, 650, 548, 651, 545, 598, 598, 598, 600, 654, 542, 599, 597, 655, 544, 653, 543, 652, 544, 655, 543, 598, 598, 598, 599, 654, 542, 651, 1586, 653, 544, 598, 1640, 652},
// 28
{9012, 4440, 600, 599, 600, 597, 599, 1638, 600, 599, 599, 1639, 599, 599, 600, 597, 600, 597, 599, 599, 600, 1638, 599, 597, 600, 599, 600, 1637, 600, 1640, 599, 597, 600, 1640, 599, 597, 600, 597, 599, 600, 600, 596, 600, 597, 600, 600, 598, 597, 600, 597, 600, 599, 600, 597, 599, 597, 600, 599, 600, 596, 600, 597, 600, 599, 599, 597, 600, 597, 600, 597, 599, 599, 600, 597, 599, 598, 599, 599, 600, 596, 600, 598, 599, 599, 600, 1637, 600, 599, 599, 597, 600},
// 29
{9063, 4386, 599, 600, 599, 598, 598, 1638, 598, 600, 599, 1638, 599, 600, 598, 598, 599, 598, 598, 601, 597, 1639, 599, 597, 599, 600, 599, 1638, 652, 1587, 599, 1638, 599, 600, 598, 598, 598, 599, 598, 600, 599, 597, 599, 598, 599, 600, 682, 514, 598, 598, 653, 546, 599, 598, 598, 597, 599, 600, 599, 598, 598, 599, 652, 546, 651, 546, 598, 598, 599, 597, 599, 600, 653, 543, 598, 597, 600, 600, 652, 544, 599, 597, 599, 600, 599, 597, 599, 1640, 599, 1637, 600},
// 30
{9007, 4442, 597, 602, 597, 600, 596, 1640, 653, 545, 598, 1640, 653, 546, 596, 600, 597, 599, 597, 602, 597, 1640, 597, 600, 596, 602, 597, 1639, 598, 1642, 597, 1640, 597, 1641, 599, 599, 597, 601, 597, 600, 597, 599, 597, 601, 598, 599, 597, 599, 653, 544, 653, 545, 598, 598, 655, 541, 599, 600, 655, 541, 598, 599, 597, 601, 598, 599, 598, 598, 598, 601, 597, 599, 654, 543, 597, 601, 598, 598, 598, 599, 597, 600, 655, 543, 598, 599, 597, 1642, 598, 599, 597}
}
};
const uint16_t ir_code_fan_york[4][91] = {
// there is no auto in fan sub mid for auto
{9015, 4439, 599, 599, 625, 573, 599, 1640, 598, 600, 599, 1639, 599, 600, 599, 598, 599, 598, 626, 571, 599, 600, 599, 1639, 598, 601, 627, 1611, 625, 574, 598, 598, 599, 1639, 626, 573, 598, 598, 599, 598, 625, 574, 599, 598, 599, 597, 599, 601, 626, 571, 598, 599, 598, 600, 626, 572, 598, 598, 654, 545, 598, 599, 627, 570, 598, 598, 599, 600, 626, 571, 625, 571, 627, 573, 598, 598, 625, 572, 598, 600, 599, 599, 599, 1641, 628, 569, 598, 1639, 626, 573, 626}, // AUTO
{9038, 4414, 598, 598, 626, 574, 628, 1609, 625, 574, 598, 1639, 599, 600, 598, 599, 626, 572, 598, 599, 625, 573, 627, 569, 599, 1641, 626, 1612, 626, 573, 599, 598, 626, 1612, 598, 601, 626, 571, 598, 598, 626, 574, 597, 599, 653, 543, 599, 601, 597, 599, 598, 599, 625, 574, 624, 572, 625, 572, 598, 601, 624, 572, 627, 570, 598, 599, 626, 573, 625, 572, 627, 569, 626, 574, 599, 597, 598, 599, 598, 601, 598, 599, 598, 1642, 626, 570, 625, 1612, 624, 1617, 598}, // HIGH
{9015, 4439, 599, 599, 625, 573, 599, 1640, 598, 600, 599, 1639, 599, 600, 599, 598, 599, 598, 626, 571, 599, 600, 599, 1639, 598, 601, 627, 1611, 625, 574, 598, 598, 599, 1639, 626, 573, 598, 598, 599, 598, 625, 574, 599, 598, 599, 597, 599, 601, 626, 571, 598, 599, 598, 600, 626, 572, 598, 598, 654, 545, 598, 599, 627, 570, 598, 598, 599, 600, 626, 571, 625, 571, 627, 573, 598, 598, 625, 572, 598, 600, 599, 599, 599, 1641, 628, 569, 598, 1639, 626, 573, 626}, // MID
{9009, 4443, 597, 601, 596, 603, 596, 1642, 596, 603, 623, 1615, 596, 603, 595, 601, 571, 626, 572, 625, 597, 603, 596, 1642, 596, 1644, 596, 1642, 571, 628, 571, 626, 596, 1645, 596, 600, 572, 625, 624, 576, 571, 625, 572, 626, 570, 628, 571, 626, 571, 626, 571, 626, 573, 626, 571, 626, 570, 627, 570, 628, 571, 627, 570, 626, 571, 629, 570, 626, 571, 625, 571, 629, 570, 627, 569, 628, 569, 633, 567, 626, 570, 627, 570, 1670, 570, 627, 569, 628, 569, 1670, 570} // LOW
};
const uint16_t ir_code_off_york[91] = {9007, 4444, 650, 546, 597, 602, 649, 1588, 597, 602, 596, 601, 596, 600, 597, 603, 596, 601, 596, 600, 596, 603, 596, 1641, 596, 1643, 650, 548, 596, 1644, 677, 519, 597, 1641, 596, 604, 648, 548, 596, 600, 649, 550, 650, 547, 597, 600, 596, 603, 597, 604, 592, 601, 596, 602, 633, 564, 650, 547, 596, 603, 596, 601, 596, 600, 596, 601, 596, 603, 650, 547, 596, 601, 650, 548, 596, 601, 596, 600, 597, 602, 597, 600, 596, 601, 596, 1643, 597, 600, 597, 1643, 649};
size_t getInfraredCode_york(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr)
{
switch (mode)
{
case 0: // Off
*codePtr = &(ir_code_off_york[0]);
return 91;
case 1: // Fan Only
*codePtr = &(ir_code_fan_york[fan_speed][0]);
return 91;
case 2: // Cool
*codePtr = &(ir_code_cool_york[fan_speed][temperature_index][0]);
return 91;
default: // Invalid mode
return 0;
}
}

11
src/ir_codes_york.hpp Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include <stdint.h>
#include <stddef.h>
// IR codes for the remote control
extern const uint16_t ir_code_cool_york[4][17][91];
extern const uint16_t ir_code_fan_york[4][91];
extern const uint16_t ir_code_off_york[91];
// Function to retrieve the IR code for the given mode, fan speed and temperature
size_t getInfraredCode_york(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr);

View file

@ -9,18 +9,20 @@ ISEDisplay::ISEDisplay(HardwareSerial *adapter, const uint8_t *light_array, uint
// TODO : Implement
// debug to work
void ISEDisplay::begin(DigitalInputCard *inputCard, DigitalOutputCard *outputCard, ClimateCard *climateCard, RemoteVariable* pm_switch, RemoteVariable* pm_fan_speed)
void ISEDisplay::begin(DigitalInputCard *inputCard, DigitalOutputCard *outputCard, ClimateCard *climateCard_daikin, ClimateCard *climateCard_york, RemoteVariable* pm_switch, RemoteVariable* pm_fan_speed)
{
this->inputCard = inputCard;
this->outputCard = outputCard;
this->climateCard = climateCard;
this->climateCard_daikin = climateCard_daikin;
this->climateCard_york = climateCard_york;
this->pm_switch = pm_switch;
this->remote_pm_fan_speed = pm_fan_speed;
auto bindedHandlePWMChange = std::bind(&ISEDisplay::handlePWMChange, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
auto bindedHandleACChange = std::bind(&ISEDisplay::handleACChange, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
auto bindedHandleTouch = std::bind(&ISEDisplay::handleTouch, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
this->outputCallbackHandle = this->outputCard->registerChangeCallback(bindedHandlePWMChange);
this->climateCallbackHandle = this->climateCard->registerChangeCallback(bindedHandleACChange);
this->climateCallbackHandle = this->climateCard_daikin->registerChangeCallback(bindedHandleACChange);
//this->climateCallbackHandle = this->climateCard_york->registerChangeCallback(bindedHandleACChange);
this->user_mode = 1; // initialized to cool by default
this->pm_fan_speed = 10;
//remote_pm_fan_speed->setValue(pm_fan_speed);
@ -50,7 +52,14 @@ void ISEDisplay::begin(DigitalInputCard *inputCard, DigitalOutputCard *outputCar
// this->climateCard->setTemperature(ac_temperature);
// this->climateCard->setFanSpeed(ac_fan_speed);
// this->climateCard->setMode(ac_mode);
this->climateCard->setState(ac_mode, ac_fan_speed, ac_temperature);
this->climateCard_daikin->setState(ac_mode, ac_fan_speed, ac_temperature);
if(ac_mode == 3){
this->climateCard_york->setState(0, ac_fan_speed, ac_temperature);
}
else{
this->climateCard_york->setState(ac_mode, ac_fan_speed, ac_temperature);
}
}
void ISEDisplay::loop()
{
@ -210,25 +219,28 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
case COMPONENT_AC_FAN_SPEED:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
ac_fan_speed = this->climateCard->getFanSpeed();
ac_fan_speed = this->climateCard_daikin->getFanSpeed();
// We have auto, low, mid, high right?, that's 0,1,2,3 a modulo operation of 3 only gives 0,1,2
// mod 4 should fixed it
ESP_LOGI("ISEDisplay", "Current AC fan speed: %d", ac_fan_speed);
ac_fan_speed = (ac_fan_speed + 1) % 4;
ESP_LOGI("ISEDisplay", "New AC fan speed: %d", ac_fan_speed);
this->climateCard->setFanSpeed(ac_fan_speed);
this->climateCard_daikin->setFanSpeed(ac_fan_speed);
this->climateCard_york->setFanSpeed(ac_fan_speed);
// updateACState();
break;
case COMPONENT_AC_TEMP_DOWN_BUTTON:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
this->climateCard->setTemperature(this->climateCard->getTemperature() - 1);
this->climateCard_daikin->setTemperature(this->climateCard_daikin->getTemperature() - 1);
this->climateCard_york->setTemperature(this->climateCard_york->getTemperature() - 1);
// updateACState();
break;
case COMPONENT_AC_TEMP_UP_BUTTON:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
this->climateCard->setTemperature(this->climateCard->getTemperature() + 1);
this->climateCard_daikin->setTemperature(this->climateCard_daikin->getTemperature() + 1);
this->climateCard_york->setTemperature(this->climateCard_york->getTemperature() + 1);
// updateACState();
break;
case COMPONENT_PM_TOGGLE_BUTTON:
@ -460,7 +472,13 @@ void ISEDisplay::setACstate(uint8_t ac_fan_speed, uint8_t ac_mode, uint8_t ac_te
ESP_LOGI("ISEDisplay", "AC mode set to: %d", ac_mode);
//this->climateCard->setTemperature(ac_temperature);
ESP_LOGI("ISEDisplay", "AC temperature set to: %d", ac_temperature);
this->climateCard->setState(ac_mode, ac_fan_speed, ac_temperature);
this->climateCard_daikin->setState(ac_mode, ac_fan_speed, ac_temperature);
if(ac_mode == 3){
this->climateCard_york->setState(0, ac_fan_speed, ac_temperature);
}
else{
this->climateCard_york->setState(ac_mode, ac_fan_speed, ac_temperature);
}
// updateACState();
}
void ISEDisplay::toggleLightGroupState()
@ -509,10 +527,10 @@ void ISEDisplay::togglePMStandby()
void ISEDisplay::toggleAC()
{
// Get the current group state
uint8_t mode = this->climateCard->getMode();
uint8_t mode = this->climateCard_daikin->getMode();
// get fan speed and temperature
uint8_t fan_speed = this->climateCard->getFanSpeed();
uint8_t temperature = this->climateCard->getTemperature();
uint8_t fan_speed = this->climateCard_daikin->getFanSpeed();
uint8_t temperature = this->climateCard_daikin->getTemperature();
ESP_LOGI("ISEDisplay", "Current AC mode: %d", mode);
// Toggle the state
@ -534,7 +552,7 @@ void ISEDisplay::toggleAC()
void ISEDisplay::changeUserACmode()
{
// Get the current group state
uint8_t mode = this->climateCard->getMode();
uint8_t mode = this->climateCard_daikin->getMode();
ESP_LOGI("ISEDisplay", "Current actual AC mode: %d", mode);
// Toggle the state
// user mode alternate between 1 and 2
@ -868,7 +886,7 @@ void ISEDisplay::updateuserACmode()
}
void ISEDisplay::updateACfanSpeed()
{
uint8_t fan_speed = this->climateCard->getFanSpeed();
uint8_t fan_speed = this->climateCard_daikin->getFanSpeed();
ESP_LOGI("ISEDisplay", "updating display AC fan speed to: %d", fan_speed);
if (!this->takeSerialMutex())
return;
@ -916,8 +934,8 @@ void ISEDisplay::updateACState()
// TODOlater : The cognitive complexity here is so high, maybe break up the method a bit?
// Get the state
uint8_t mode = this->climateCard->getMode();
uint8_t temperature = this->climateCard->getTemperature();
uint8_t mode = this->climateCard_daikin->getMode();
uint8_t temperature = this->climateCard_daikin->getTemperature();
if(currentPage != 1){
if (!this->takeSerialMutex())
return;

View file

@ -24,7 +24,7 @@ struct lightPosition {
class ISEDisplay : public ESPMegaDisplay {
public:
ISEDisplay(HardwareSerial* adapter, const uint8_t *light_array, uint8_t row, uint8_t column);
void begin(DigitalInputCard* inputCard, DigitalOutputCard* outputCard, ClimateCard* climateCard, RemoteVariable* pm_switch, RemoteVariable* pm_fan_speed);
void begin(DigitalInputCard* inputCard, DigitalOutputCard* outputCard, ClimateCard* climateCard_daikin, ClimateCard* climateCard_york, RemoteVariable* pm_switch, RemoteVariable* pm_fan_speed);
void updateLightGroupStatePageDashboard();
void updateLightGroupStatePageStandby();
void updateAirPurifierState();
@ -52,7 +52,8 @@ class ISEDisplay : public ESPMegaDisplay {
DigitalInputCard* inputCard;
DigitalOutputCard *outputCard;
ClimateCard *climateCard;
ClimateCard *climateCard_daikin;
ClimateCard *climateCard_york;
const uint8_t *light_array;
uint8_t row;

View file

@ -56,6 +56,9 @@ lights have 4 states
#define LIGHT_ROW4_COLUMN1_IN 2
#define LIGHT_ROW4_COLUMN2_IN 3
#define MOTION_FRONT 8
#define MOTION_REAR 9
//
#define DISPLAY_TIMEOUT 5*60*1000 // 5 minutes

View file

@ -9,16 +9,8 @@ RemoteVariable weather = RemoteVariable();
RemoteVariable pm_switch = RemoteVariable();
RemoteVariable pm_fan_speed = RemoteVariable();
AnalogCard analogCard = AnalogCard();
float voltage = CT_RMS_VOLTAGE;
CurrentTransformerCard ct_light_phase1 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE1, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_light_phase2 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE2, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_socket = CurrentTransformerCard(&analogCard, CT_PIN_SOCKET, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_ac_phase1 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE1, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_ac_phase2 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE2, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_ac_phase3 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE3, &voltage, &adcToCurrent, 1000);
const char *mode_names[] = {"off", "cool", "fan_only", "dry"};
const char *mode_names_daikin[] = {"off", "cool", "fan_only", "dry"};
const char *mode_names_york[] = {"off", "cool", "fan_only"};
const char *fan_speed_names[] = {"auto", "high", "medium", "low"};
uint8_t row = 4;
uint8_t column = 2;
@ -33,10 +25,19 @@ AirConditioner ac = {
.max_temperature = 32,
.min_temperature = 16,
.modes = 4,
.mode_names = mode_names,
.mode_names = mode_names_daikin,
.fan_speeds = 4,
.fan_speed_names = fan_speed_names,
.getInfraredCode = &getInfraredCode};
.getInfraredCode = &getInfraredCode_daikin};
AirConditioner ac_york = {
.max_temperature = 30,
.min_temperature = 18,
.modes = 3,
.mode_names = mode_names_york,
.fan_speeds = 4,
.fan_speed_names = fan_speed_names,
.getInfraredCode = &getInfraredCode_york};
/***********************************************
* End Configuration *
***********************************************/
@ -44,9 +45,14 @@ AirConditioner ac = {
ESPMegaPRO espmega = ESPMegaPRO();
ISEDisplay iseDisplay = ISEDisplay(&iseDisplayAdapter, &light_array[0][0], row, column);
ClimateCard climateCard = ClimateCard(AIR_CONDITIONER_IR_PIN, ac,
ClimateCard climateCard_daikin = ClimateCard(AIR_CONDITIONER_DAIKIN_IR_PIN, ac_daikin,
AIR_CONDITIONER_SENSOR_TYPE, AIR_CONDITIONER_SENSOR_PIN,
AIR_CONDITIONER_RMT_CHANNEL);
AIR_CONDITIONER_RMT_CHANNEL0);
ClimateCard climateCard_york = ClimateCard(AIR_CONDITIONER_YORK_IR_PIN, ac_york,
AC_SENSOR_TYPE_NONE, 0,
AIR_CONDITIONER_RMT_CHANNEL1);
float adcToCurrent(uint16_t adc_value)
{
@ -130,12 +136,22 @@ void setup()
}
espmega.outputs.setState(12, true);
espmega.outputs.setValue(12,4095);
ESP_LOGD("ISE OS", "Setting up climate cards");
espmega.installCard(2, &climateCard);
climateCard.bindFRAM(&espmega.fram, 5000);
climateCard.loadStateFromFRAM();
climateCard.setFRAMAutoSave(true);
espmega.display->bindClimateCard(&climateCard);
espmega.installCard(2, &climateCard_daikin);
climateCard_daikin.bindFRAM(&espmega.fram, 5000);
climateCard_daikin.loadStateFromFRAM();
climateCard_daikin.setFRAMAutoSave(true);
//espmega.display->bindclimateCard(&climateCard_daikin);
espmega.installCard(10, &climateCard_daikin);
climateCard_york.bindFRAM(&espmega.fram, 5000);
climateCard_york.loadStateFromFRAM();
climateCard_york.setFRAMAutoSave(true);
espmega.display->bindClimateCard(&climateCard_york);
ESP_LOGD("ISE OS", "Installing current transformer cards");
analogCardAvailable = espmega.installCard(4, &analogCard);
if (analogCardAvailable || CT_FORCE_ENABLE) {
@ -205,9 +221,10 @@ void setup()
pm_fan_speed.enableSetValue("/pm/set_fan_speed");
espmega.iot->registerCard(0); // Register the Input Card
espmega.iot->registerCard(1); // Register the Output Card
espmega.iot->registerCard(2); // Register the Climate Card
espmega.iot->registerCard(2); // Register the Climate Card Daikin
espmega.iot->registerCard(10); // Register the Climate Card York
auto bindedGetTime = std::bind(&ESPMegaPRO::getTime, &espmega);
iseDisplay.begin(&espmega.inputs, &espmega.outputs, &climateCard, &pm_switch, &pm_fan_speed);
iseDisplay.begin(&espmega.inputs, &espmega.outputs, &climateCard_daikin, &climateCard_york, &pm_switch, &pm_fan_speed);
espmega.iot->registerRelativeMqttCallback(&handleMqttMessage);
iseDisplay.registerPageChangeCallback(&handlePageChange);

View file

@ -2,7 +2,8 @@
#include <ESPMegaProOS.hpp>
SET_LOOP_TASK_STACK_SIZE(32*1024);
#include <ise_display.hpp>
#include <ir_codes.hpp>
#include <ir_codes_daikin.hpp>
#include <ir_codes_york.hpp>
@ -19,8 +20,10 @@ SET_LOOP_TASK_STACK_SIZE(32*1024);
// Air Conditioner Configuration
#define AIR_CONDITIONER_SENSOR_TYPE AC_SENSOR_TYPE_DHT22
#define AIR_CONDITIONER_SENSOR_PIN 32
#define AIR_CONDITIONER_IR_PIN 5
#define AIR_CONDITIONER_RMT_CHANNEL RMT_CHANNEL_0
#define AIR_CONDITIONER_DAIKIN_IR_PIN 5
#define AIR_CONDITIONER_YORK_IR_PIN 8
#define AIR_CONDITIONER_RMT_CHANNEL0 RMT_CHANNEL_0
#define AIR_CONDITIONER_RMT_CHANNEL1 RMT_CHANNEL_1
// CT Configuration
#define CT_FORCE_ENABLE false
@ -56,4 +59,3 @@ void tempoutupdatedisplay(char* value);
void weatherupdatedisplay(char* value);
void pmfanspeedupdatedisplay(char* value);
void pmswitchupdatedisplay(char* value);
float adcToCurrent(uint16_t adc_value);