Compare commits

...

78 Commits
main ... cud

Author SHA1 Message Date
Siwat Sirichai 18e4153b06 Merge branch 'main' into cud 2023-12-11 11:33:22 +07:00
Siwat Sirichai bb5b4c2101 Merge branch 'main' into cud 2023-12-08 18:33:46 +07:00
Siwat Sirichai b088c714ee Merge branch 'main' into cud 2023-12-08 18:00:03 +07:00
Siwat Sirichai c7610f9475 Update Jenkinsfile 2023-12-07 16:43:46 +07:00
Siwat Sirichai f5b79f0fad Merge branch 'main' into cud 2023-12-07 16:43:25 +07:00
Siwat Sirichai 6818d7ebf4 Update user_code.hpp 2023-12-07 15:02:47 +07:00
Siwat Sirichai 78530974b0 Merge branch 'main' into cud 2023-12-07 15:02:11 +07:00
Siwat Sirichai e9604d42f1 Update platformio.ini 2023-12-04 23:05:16 +07:00
Siwat Sirichai 28e0dc3b11 Merge branch 'main' into cud 2023-12-04 23:04:28 +07:00
Siwat Sirichai 75e851a2eb Merge branch 'main' into cud 2023-12-03 15:23:07 +07:00
Siwat Sirichai 4232bef7c3 Merge branch 'main' into cud 2023-12-03 15:17:33 +07:00
Siwat Sirichai abfa59f7da Merge branch 'main' into cud 2023-12-03 00:37:33 +07:00
Siwat Sirichai c4f18c6712 Merge branch 'main' into cud 2023-12-02 21:07:28 +07:00
Siwat Sirichai e8a133c627 change pin configuration 2023-12-02 21:01:16 +07:00
Siwat Sirichai e8d8e19e9b Merge branch 'main' into cud 2023-11-30 20:03:51 +07:00
Siwat Sirichai 0ba5a32a6a disable analog module 2023-11-30 19:51:20 +07:00
Siwat Sirichai aad6fce479 Merge branch 'main' into cud 2023-11-30 19:51:00 +07:00
Siwat Sirichai d025ae25a3 Merge branch 'main' into cud 2023-11-16 23:40:05 +07:00
Siwat Sirichai cb6556b333 Merge branch 'main' into cud 2023-11-16 15:18:15 +07:00
Siwat Sirichai 98fc132e3f Merge branch 'main' into cud 2023-11-15 23:57:06 +07:00
Siwat Sirichai 10a272c210 Merge branch 'main' into cud 2023-11-15 16:56:26 +07:00
Siwat Sirichai bfdfd57981 Revert "robot code"
This reverts commit e250742b55.
2023-11-15 16:54:29 +07:00
Siwat Sirichai e250742b55 robot code 2023-11-15 16:52:52 +07:00
Siwat Sirichai f599112e7f Merge branch 'main' into cud 2023-11-14 17:44:34 +07:00
Siwat Sirichai 94bf181692 Merge branch 'main' into cud 2023-11-13 15:11:18 +07:00
Siwat Sirichai 4493b85542 Merge branch 'main' into cud 2023-11-12 23:07:21 +07:00
Siwat Sirichai f21e0f4108 Merge branch 'main' into cud 2023-11-12 22:44:56 +07:00
Siwat Sirichai bb4346e821 Merge branch 'main' into cud 2023-11-12 22:39:45 +07:00
Siwat Sirichai 2014095833 fix lock bug 2023-11-12 22:39:22 +07:00
Siwat Sirichai 497acec11b Revert "Update user_code.hpp"
This reverts commit 7e18371f6e.
2023-11-12 22:15:49 +07:00
Siwat Sirichai ea898f6a24 Revert "Update espmega_iot_core.cpp"
This reverts commit e199497a78.
2023-11-12 22:15:44 +07:00
Siwat Sirichai 7e18371f6e Update user_code.hpp 2023-11-12 22:09:13 +07:00
Siwat Sirichai 662bf86c77 Merge branch 'main' into cud 2023-11-12 21:51:25 +07:00
Siwat Sirichai 6df26d63df migrate away from mqtt String 2023-11-12 21:51:03 +07:00
Siwat Sirichai 0754af5eea Merge branch 'main' into cud 2023-11-12 21:27:19 +07:00
Siwat Sirichai 727d4e3f1e Update ir_codes.hpp 2023-11-12 19:12:46 +07:00
Siwat Sirichai b888631a62 change IR pin 2023-11-12 18:46:41 +07:00
Siwat Sirichai 02bb48232b Update ir_codes.hpp 2023-11-09 13:33:37 +07:00
Siwat Sirichai 42970bd16e Merge branch 'main' into cud 2023-11-08 12:49:55 +07:00
Siwat Sirichai 2c6e72efca Update ir_codes.hpp 2023-11-08 12:49:30 +07:00
Siwat Sirichai 41db2fa38b update ir code 2023-11-07 22:55:59 +07:00
Siwat Sirichai d67afdd1ea Merge branch 'main' into cud 2023-11-07 20:44:53 +07:00
Siwat Sirichai 934aebd735 Update user_code.hpp 2023-11-07 19:43:43 +07:00
Siwat Sirichai 35734518c1 Merge branch 'main' into cud 2023-11-07 19:42:51 +07:00
Siwat Sirichai 6896ac932e Merge branch 'main' into cud 2023-11-07 19:38:03 +07:00
Siwat Sirichai a4400a1094 Merge branch 'main' into cud 2023-11-07 00:21:22 +07:00
Siwat Sirichai 4c74d5a64e Update ir_codes.hpp 2023-11-06 14:54:19 +07:00
Siwat Sirichai 3ea8f6fbe4 Update ir_codes.hpp 2023-11-05 13:33:24 +07:00
Siwat Sirichai 01d8f6aebc Merge branch 'main' into cud 2023-11-05 13:13:04 +07:00
Siwat Sirichai 1ab243d1b0 add initial daikin A IR 2023-11-05 13:12:07 +07:00
Siwat Sirichai 733d72f7a2 audio 2023-10-26 23:34:40 +07:00
Siwat Sirichai 00d0bc634f Merge branch 'main' into cud 2023-10-13 23:10:49 +07:00
Siwat Sirichai 5b329e79ba Merge branch 'main' into cud 2023-10-10 17:26:44 +07:00
Siwat Sirichai 8e42902bf6 change lcd layout 2023-10-10 16:34:45 +07:00
Siwat Sirichai 31cfb252df Merge branch 'main' into cud 2023-10-04 13:47:32 +07:00
Siwat Sirichai d4656bdcfe Merge branch 'main' into cud 2023-10-04 03:27:52 +07:00
Siwat Sirichai 79748da31c Merge branch 'main' into cud 2023-10-04 03:14:39 +07:00
Siwat Sirichai 65173c67ad Merge branch 'main' into cud 2023-10-04 03:06:49 +07:00
Siwat Sirichai 6b2f260153 Merge branch 'main' into cud 2023-10-04 02:36:32 +07:00
Siwat Sirichai e23a21e25f Merge branch 'main' into cud 2023-10-04 02:28:14 +07:00
Siwat Sirichai 2f69ac54ac Merge branch 'main' into cud 2023-10-03 03:47:19 +07:00
Siwat Sirichai a6aaad3d93 robustness 2023-10-03 03:44:31 +07:00
Siwat Sirichai 4ebafa7cb7 Update user_code.cpp 2023-10-03 03:19:51 +07:00
Siwat Sirichai b22d3bc8a4 Merge branch 'main' into cud 2023-10-03 02:35:01 +07:00
Siwat Sirichai 6963ea78df update state callback 2023-10-03 02:34:40 +07:00
Siwat Sirichai 2079c77a7a Merge branch 'main' into cud 2023-10-03 02:24:56 +07:00
Siwat Sirichai 3add72c116 Update user_code.hpp 2023-10-03 02:22:03 +07:00
Siwat Sirichai b06f65c0fc add lock state reporting 2023-10-03 02:21:27 +07:00
Siwat Sirichai 1e8e5664a2 Merge branch 'main' into cud 2023-10-03 02:20:10 +07:00
Siwat Sirichai 1d775584db cud lcd implementation 2023-10-03 02:01:55 +07:00
Siwat Sirichai 97eb56d256 Merge branch 'main' into cud 2023-10-02 23:20:18 +07:00
Siwat Sirichai f0e1dea7ac update icons order 2023-10-02 23:19:28 +07:00
Siwat Sirichai 0e6ef77af6 Merge branch 'main' into cud 2023-10-02 18:47:58 +07:00
Siwat Sirichai 1ea278834a cud_iot_cpp 2023-10-02 18:45:59 +07:00
Siwat Sirichai 39a08fadce Merge branch 'main' into cud 2023-10-02 18:03:40 +07:00
Siwat Sirichai 41131514cb top three button 2023-10-02 18:00:01 +07:00
Siwat Sirichai b97c00605e update user code 2023-10-02 16:04:44 +07:00
Siwat Sirichai 2fe04bcdfa add cud images 2023-10-02 15:29:57 +07:00
40 changed files with 392 additions and 86 deletions

2
Jenkinsfile vendored
View File

@ -4,7 +4,7 @@ pipeline {
stages {
stage('Build') {
steps {
git branch: 'main', url: 'https://git.siwatsystem.com/ise-senior-iot/iot-firmware.git'
git branch: 'cud', url: 'https://git.siwatsystem.com/ise-senior-iot/iot-firmware.git'
sh 'export PLATFORMIO_PATH=/root/.platformio/penv/bin/platformio'
sh '/usr/bin/python3 gen_release.py'
stash includes: 'release/**/*', name: 'release_binaries'

BIN
cud_display/AC-COOL-A.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/AC-COOL-B.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/AC-FAN-A.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cud_display/AC-FAN-B.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cud_display/AC-OFF-A.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/AC-OFF-B.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/ACF-1-A-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
cud_display/ACF-1-A.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cud_display/ACF-2-A-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cud_display/ACF-2-A.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cud_display/ACF-3-A-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/ACF-3-A.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/ACF-AT-A.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/ACF-AT-B.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cud_display/Boot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
cud_display/Down-Float.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
cud_display/FAN_OFF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
cud_display/FAN_ON.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
cud_display/LT_OFF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
cud_display/LT_ON.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
cud_display/PURI_OFF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
cud_display/PURI_ON.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
cud_display/Up-Float.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

BIN
cud_display/audio/boot.wav Normal file

Binary file not shown.

BIN
cud_display/audio/error.wav Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
cud_display/cud_display.HMI Normal file

Binary file not shown.

Binary file not shown.

View File

@ -314,11 +314,6 @@ bool NexButton::Set_background_image_pic(uint32_t number)
cmd += ".pic=";
cmd += buf;
sendCommand(cmd.c_str());
cmd = "";
cmd += "ref ";
cmd += getObjName();
sendCommand(cmd.c_str());
return recvRetCommandFinished();
}

View File

@ -11,6 +11,24 @@
[platformio]
build_dir = firmware
[env:cud]
platform = espressif32
board = wt32-eth01
framework = arduino
board_build.f_cpu = 240000000L
build_flags = -DENABLE_INTERNAL_LCD -DENABLE_IR_MODULE -DENABLE_CLIMATE_MODULE -DENABLE_WEBUI
lib_deps = siwats/ESPMegaPROR3@^1.3.0
knolleary/PubSubClient@^2.8
ivanseidel/ArduinoThread@^2.1.1
arduino-libraries/Arduino_BuiltIn@^1.0.0
dersimn/PubSubClientTools@^0.6
z3t0/IRremote@^4.2.0
robtillaart/DHTNEW@^0.4.18
seithan/Easy Nextion Library@^1.0.6
robtillaart/FRAM_I2C@^0.6.1
esphome/ESPAsyncWebServer-esphome@^3.1.0
monitor_speed = 115200
[env:full]
platform = espressif32
board = wt32-eth01

View File

@ -1,59 +1,88 @@
#pragma once
#include <ESPMegaPRO.h>
extern const uint8_t ir_code_cool[3][16][750] = {
extern const uint16_t ir_code_cool[4][16][91] = {
// Fan Speed Auto
{
{8976, 4498, 562, 546, 589, 547, 588, 1649, 588, 548, 587, 1649, 588, 547, 589, 548, 587, 564, 589, 547, 588, 1649, 588, 548, 587, 547, 588, 548, 588, 548, 588, 547, 587, 566, 587, 548, 587, 548, 588, 548, 587, 548, 588, 548, 587, 549, 586, 548, 587, 565, 588, 549, 586, 548, 588, 548, 588, 548, 560, 577, 584, 549, 586, 551, 585, 565, 588, 549, 587, 548, 560, 576, 560, 574, 587, 549, 587, 550, 586, 548, 588, 570, 560, 576, 586, 549, 560, 575, 560, 1665, 560}, // 15C
{8976, 4498, 560, 548, 587, 549, 587, 1650, 587, 549, 587, 1649, 586, 550, 587, 548, 587, 565, 587, 549, 586, 1652, 586, 549, 586, 549, 587, 548, 587, 549, 586, 549, 587, 1667, 587, 548, 587, 548, 587, 549, 588, 547, 587, 549, 587, 549, 587, 548, 587, 565, 587, 549, 586, 549, 587, 549, 586, 548, 587, 549, 587, 549, 587, 547, 589, 564, 587, 548, 588, 548, 587, 548, 587, 549, 587, 550, 585, 549, 587, 549, 586, 570, 587, 548, 587, 550, 586, 549, 587, 536, 587}, // 16C
{8976, 4499, 531, 577, 558, 577, 559, 1678, 559, 577, 558, 1679, 559, 577, 558, 577, 558, 595, 558, 577, 558, 1679, 558, 577, 559, 576, 559, 578, 558, 576, 559, 1679, 558, 594, 558, 578, 558, 577, 559, 576, 558, 578, 558, 577, 558, 577, 558, 578, 558, 594, 559, 577, 558, 577, 558, 578, 557, 578, 558, 577, 559, 577, 557, 578, 559, 593, 559, 577, 558, 577, 559, 576, 559, 577, 558, 578, 557, 578, 559, 576, 559, 599, 558, 1678, 559, 1679, 559, 1678, 558, 1666, 560}, // 17C
{8977, 4498, 561, 549, 587, 547, 588, 1649, 588, 547, 589, 1648, 589, 547, 588, 548, 587, 565, 589, 547, 587, 1650, 587, 547, 589, 548, 588, 546, 589, 547, 588, 1649, 588, 1667, 587, 548, 588, 547, 588, 548, 588, 547, 588, 548, 588, 548, 587, 548, 587, 565, 587, 548, 588, 547, 588, 549, 587, 548, 587, 548, 588, 548, 587, 548, 588, 564, 588, 547, 588, 549, 586, 550, 587, 547, 588, 548, 587, 548, 588, 548, 587, 570, 587, 1649, 588, 1650, 588, 1649, 588, 536, 587}, // 18C
{8998, 4502, 534, 574, 587, 549, 585, 1652, 586, 550, 560, 1677, 560, 575, 586, 550, 561, 591, 587, 548, 586, 1651, 587, 549, 586, 549, 585, 550, 561, 1676, 563, 573, 560, 592, 587, 549, 561, 574, 586, 550, 586, 550, 559, 575, 561, 575, 561, 575, 560, 592, 560, 576, 560, 575, 560, 576, 560, 574, 561, 575, 560, 576, 560, 575, 560, 593, 559, 576, 560, 575, 560, 577, 558, 576, 560, 575, 562, 574, 560, 576, 560, 597, 560, 1676, 562, 1676, 559, 576, 561, 1665, 560}, // 19C
{8978, 4503, 562, 548, 586, 549, 588, 1649, 587, 547, 589, 1649, 588, 547, 588, 548, 587, 565, 590, 546, 587, 1649, 588, 548, 588, 548, 587, 548, 587, 1649, 588, 548, 588, 1666, 588, 547, 588, 547, 588, 549, 587, 548, 588, 547, 588, 547, 589, 547, 587, 565, 588, 547, 588, 549, 587, 548, 587, 549, 587, 547, 588, 548, 588, 547, 588, 564, 589, 547, 587, 549, 587, 548, 588, 548, 588, 547, 588, 547, 588, 547, 588, 570, 588, 1649, 588, 1649, 587, 548, 588, 535, 589}, // 20C
{8977, 4503, 560, 549, 587, 548, 560, 1677, 587, 548, 587, 1650, 587, 549, 586, 549, 586, 567, 587, 548, 587, 1650, 588, 547, 587, 549, 587, 548, 587, 1650, 587, 1650, 588, 565, 588, 547, 587, 549, 587, 548, 587, 548, 587, 548, 588, 548, 587, 549, 587, 565, 586, 549, 587, 548, 588, 548, 587, 549, 586, 549, 587, 548, 587, 548, 588, 565, 588, 547, 588, 548, 587, 548, 588, 548, 587, 548, 587, 548, 588, 548, 587, 570, 588, 1649, 588, 547, 588, 1650, 588, 1635, 589}, // 21C
{8996, 4503, 506, 603, 533, 603, 533, 1703, 534, 602, 532, 1705, 533, 602, 533, 602, 533, 619, 533, 603, 533, 1704, 533, 602, 533, 603, 533, 603, 531, 1705, 533, 1704, 532, 1722, 533, 602, 533, 603, 533, 602, 534, 602, 533, 602, 533, 602, 533, 603, 533, 619, 533, 602, 533, 603, 533, 603, 532, 603, 533, 602, 533, 602, 534, 602, 533, 620, 532, 603, 533, 602, 533, 603, 533, 602, 533, 602, 533, 603, 533, 602, 533, 624, 533, 1705, 533, 602, 533, 1704, 533, 590, 533}, // 22C
{8976, 4504, 560, 549, 587, 548, 587, 1650, 587, 548, 587, 1650, 587, 549, 587, 548, 587, 566, 587, 548, 587, 1649, 589, 548, 587, 548, 587, 1650, 587, 549, 587, 548, 588, 564, 588, 548, 587, 548, 587, 549, 587, 548, 587, 548, 587, 548, 588, 548, 588, 565, 587, 548, 588, 548, 587, 547, 588, 548, 587, 549, 586, 549, 587, 548, 588, 565, 587, 548, 587, 548, 588, 548, 586, 549, 587, 549, 587, 548, 588, 548, 587, 570, 587, 1650, 588, 547, 587, 549, 587, 1637, 588}, // 23C
{8976, 4504, 560, 549, 587, 549, 586, 1651, 586, 549, 586, 1651, 587, 548, 587, 548, 588, 565, 587, 548, 587, 1650, 587, 549, 586, 549, 587, 1650, 587, 549, 586, 549, 587, 1667, 587, 548, 587, 549, 587, 549, 586, 549, 586, 549, 587, 548, 588, 548, 587, 565, 587, 548, 587, 549, 587, 548, 587, 549, 587, 548, 587, 549, 587, 548, 586, 567, 586, 549, 586, 549, 586, 549, 587, 548, 588, 549, 586, 549, 586, 550, 587, 570, 586, 1650, 587, 549, 587, 548, 587, 537, 586}, // 24C
{8977, 4503, 531, 578, 534, 602, 556, 1680, 534, 602, 533, 1704, 556, 579, 557, 579, 533, 619, 533, 603, 532, 1704, 558, 578, 533, 603, 532, 1705, 555, 580, 532, 1705, 557, 595, 557, 579, 556, 579, 557, 579, 557, 578, 557, 579, 557, 578, 557, 578, 557, 596, 557, 578, 557, 579, 557, 577, 559, 577, 559, 576, 558, 578, 557, 578, 558, 594, 559, 577, 558, 578, 558, 577, 558, 577, 559, 577, 559, 576, 560, 575, 560, 598, 558, 578, 558, 1678, 559, 1679, 559, 1666, 558}, // 25C
{8976, 4498, 507, 602, 534, 602, 533, 1703, 534, 602, 533, 1704, 533, 602, 557, 579, 533, 619, 533, 602, 557, 1680, 534, 602, 533, 602, 534, 1703, 534, 602, 556, 1680, 534, 1720, 533, 602, 534, 602, 534, 602, 533, 602, 556, 580, 533, 601, 535, 601, 534, 619, 533, 602, 534, 602, 534, 601, 534, 602, 533, 602, 558, 577, 534, 602, 533, 619, 534, 602, 557, 578, 557, 578, 534, 602, 533, 603, 532, 603, 556, 579, 533, 624, 557, 579, 533, 1704, 533, 1704, 533, 590, 533}, // 26C
{8977, 4503, 533, 576, 560, 575, 559, 1679, 559, 577, 559, 1677, 559, 576, 559, 580, 556, 593, 559, 577, 559, 1677, 561, 575, 559, 576, 560, 1678, 559, 1678, 560, 575, 559, 593, 559, 577, 559, 576, 560, 575, 560, 576, 559, 576, 560, 576, 560, 576, 559, 592, 560, 576, 560, 575, 560, 576, 559, 576, 560, 576, 559, 577, 558, 576, 560, 593, 559, 576, 560, 575, 561, 575, 560, 575, 559, 577, 559, 576, 560, 576, 559, 598, 560, 576, 560, 1677, 558, 577, 559, 1667, 559}, // 27C
{8996, 4504, 483, 626, 533, 602, 510, 1727, 533, 602, 533, 1704, 533, 602, 534, 602, 510, 642, 533, 603, 533, 1704, 532, 602, 534, 602, 533, 1704, 533, 1704, 533, 603, 512, 1742, 531, 604, 532, 603, 533, 603, 531, 604, 532, 603, 532, 603, 533, 603, 532, 620, 532, 604, 531, 604, 531, 604, 533, 602, 511, 626, 532, 603, 509, 626, 510, 643, 531, 604, 532, 603, 533, 603, 532, 603, 531, 605, 532, 602, 533, 602, 533, 625, 531, 605, 532, 1704, 533, 603, 533, 590, 534}, // 28C
{8977, 4497, 508, 601, 534, 601, 535, 1702, 535, 601, 534, 1703, 534, 601, 535, 601, 534, 618, 534, 601, 535, 1702, 534, 602, 535, 600, 534, 1703, 534, 1703, 534, 1704, 534, 618, 534, 601, 534, 602, 534, 601, 534, 601, 535, 600, 535, 601, 535, 601, 534, 618, 534, 602, 534, 600, 535, 601, 535, 600, 535, 601, 534, 602, 533, 602, 534, 619, 534, 600, 535, 601, 534, 602, 533, 602, 535, 600, 535, 601, 534, 601, 535, 623, 533, 602, 534, 601, 534, 1703, 535, 1690, 534}, // 29C
{8978, 4503, 533, 575, 561, 575, 559, 1678, 559, 577, 559, 1678, 559, 577, 558, 576, 560, 593, 559, 576, 560, 1677, 560, 575, 559, 577, 560, 1677, 560, 1677, 559, 1679, 558, 1696, 559, 576, 559, 576, 560, 576, 559, 576, 559, 576, 560, 576, 560, 575, 559, 594, 559, 576, 560, 575, 560, 576, 560, 575, 560, 576, 559, 576, 560, 575, 560, 594, 558, 576, 560, 575, 559, 577, 560, 575, 560, 576, 559, 577, 561, 574, 559, 599, 559, 576, 559, 579, 557, 1677, 560, 564, 559} // 30C
},
// Fan Speed High
{
{0}, // 18C
{0}, // 19C
{0}, // 20C
{0}, // 21C
{0}, // 22C
{0}, // 23C
{0}, // 24C
{0}, // 25C
{0}, // 26C
{0}, // 27C
{0}, // 28C
{0}, // 29C
{0} // 30C
{8978, 4504, 561, 548, 587, 549, 586, 1650, 587, 549, 586, 1650, 586, 550, 586, 549, 586, 566, 586, 550, 586, 1649, 587, 549, 585, 1651, 586, 550, 585, 550, 586, 550, 584, 568, 585, 550, 585, 550, 584, 552, 583, 552, 584, 550, 585, 551, 584, 551, 585, 568, 584, 550, 559, 576, 585, 551, 560, 576, 583, 551, 559, 577, 558, 577, 584, 568, 584, 551, 584, 552, 584, 551, 558, 577, 558, 577, 559, 577, 558, 577, 558, 599, 558, 577, 558, 577, 584, 552, 558, 564, 559}, // 15C
{8978, 4503, 563, 546, 588, 546, 590, 1647, 589, 546, 590, 1647, 589, 546, 590, 545, 590, 563, 589, 546, 589, 1647, 590, 545, 590, 1647, 589, 546, 589, 547, 589, 545, 589, 1665, 589, 546, 589, 546, 589, 547, 589, 546, 589, 546, 589, 547, 588, 547, 589, 563, 589, 545, 589, 547, 589, 546, 589, 547, 588, 546, 589, 547, 589, 546, 589, 563, 589, 546, 589, 547, 589, 545, 589, 547, 588, 547, 588, 548, 588, 546, 589, 568, 589, 1648, 589, 1647, 589, 1648, 589, 1635, 589}, // 16C
{8978, 4447, 561, 549, 587, 548, 588, 1648, 588, 547, 588, 1648, 589, 546, 589, 547, 588, 564, 588, 548, 588, 1648, 588, 548, 588, 1648, 588, 547, 588, 547, 589, 1648, 588, 564, 587, 548, 588, 548, 587, 548, 587, 548, 587, 549, 587, 547, 587, 549, 587, 564, 588, 547, 588, 548, 588, 548, 587, 547, 588, 548, 588, 547, 587, 552, 584, 565, 587, 548, 587, 547, 589, 547, 587, 548, 588, 547, 588, 547, 588, 548, 587, 569, 589, 1647, 589, 1649, 587, 1648, 589, 535, 589}, // 17C
{8978, 4523, 507, 602, 533, 602, 533, 1703, 534, 601, 534, 1704, 533, 601, 534, 601, 534, 618, 534, 601, 534, 1703, 534, 601, 534, 1703, 534, 601, 534, 601, 534, 1703, 534, 1719, 534, 601, 534, 602, 534, 601, 533, 602, 534, 602, 533, 602, 533, 602, 534, 618, 533, 602, 534, 602, 533, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 618, 534, 601, 534, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 601, 535, 623, 534, 1703, 533, 1703, 534, 601, 534, 1691, 533}, // 18C
{8978, 4502, 559, 550, 585, 551, 585, 1650, 587, 549, 586, 1649, 587, 549, 587, 549, 585, 567, 586, 549, 586, 1650, 586, 550, 585, 1652, 585, 550, 586, 1650, 586, 549, 586, 567, 586, 549, 586, 549, 587, 547, 587, 549, 587, 548, 587, 549, 586, 549, 586, 566, 586, 549, 586, 549, 586, 550, 585, 550, 586, 549, 586, 549, 586, 549, 586, 567, 585, 549, 586, 550, 585, 550, 586, 549, 586, 550, 587, 548, 586, 549, 586, 571, 586, 1650, 586, 1651, 586, 549, 586, 537, 586}, // 19C
{8978, 4502, 562, 547, 635, 500, 589, 1647, 589, 546, 589, 1648, 589, 546, 590, 545, 589, 563, 589, 547, 588, 1648, 589, 547, 588, 1648, 589, 547, 588, 1648, 589, 546, 589, 1664, 589, 547, 589, 546, 588, 547, 588, 547, 589, 546, 589, 547, 588, 547, 588, 564, 589, 547, 588, 546, 589, 546, 589, 547, 588, 548, 588, 546, 589, 546, 589, 564, 588, 547, 588, 547, 588, 547, 588, 547, 589, 546, 589, 546, 589, 547, 588, 568, 589, 1648, 589, 547, 588, 1648, 589, 1635, 589}, // 20C
{8978, 4502, 532, 577, 533, 602, 560, 1676, 560, 576, 559, 1677, 534, 602, 533, 601, 561, 592, 559, 576, 560, 1677, 558, 577, 560, 1676, 558, 578, 559, 1677, 560, 1677, 559, 594, 558, 577, 558, 577, 533, 602, 559, 576, 559, 576, 558, 577, 559, 577, 558, 594, 558, 577, 535, 600, 558, 577, 558, 577, 559, 576, 559, 577, 558, 577, 559, 593, 559, 576, 559, 576, 534, 601, 559, 577, 533, 601, 558, 578, 559, 577, 558, 598, 534, 1702, 534, 602, 558, 1679, 533, 590, 558}, // 21C
{8978, 4497, 562, 547, 588, 546, 589, 1648, 589, 546, 590, 1647, 589, 546, 589, 547, 589, 563, 588, 546, 590, 1648, 588, 547, 588, 1648, 589, 547, 588, 1647, 589, 1649, 589, 1664, 589, 546, 589, 547, 588, 547, 588, 546, 590, 546, 590, 546, 587, 547, 590, 562, 589, 546, 589, 547, 589, 546, 588, 547, 589, 547, 588, 546, 590, 546, 589, 563, 588, 547, 589, 546, 589, 547, 588, 548, 588, 546, 588, 547, 589, 547, 588, 569, 588, 1648, 589, 546, 589, 547, 588, 1636, 589}, // 22C
{8978, 4495, 564, 546, 589, 546, 589, 1648, 589, 546, 589, 1648, 588, 547, 589, 546, 589, 563, 589, 546, 590, 1646, 590, 546, 589, 1647, 590, 1646, 590, 546, 589, 546, 590, 563, 588, 547, 589, 546, 589, 546, 589, 546, 589, 546, 590, 545, 590, 546, 589, 563, 589, 546, 589, 547, 589, 545, 590, 545, 590, 546, 589, 546, 589, 546, 589, 564, 589, 545, 590, 545, 590, 546, 589, 546, 589, 546, 589, 546, 590, 546, 589, 568, 589, 1647, 590, 546, 589, 545, 590, 534, 589}, // 23C
{8978, 4501, 562, 547, 589, 546, 588, 1648, 589, 547, 588, 1649, 587, 548, 587, 547, 589, 564, 589, 546, 588, 1649, 588, 547, 588, 1649, 588, 1648, 589, 546, 588, 547, 588, 1665, 589, 547, 588, 548, 587, 548, 588, 547, 588, 547, 588, 547, 588, 548, 588, 564, 587, 547, 589, 547, 588, 547, 588, 547, 588, 548, 587, 548, 588, 547, 588, 564, 588, 547, 589, 546, 589, 547, 587, 547, 589, 547, 587, 548, 588, 548, 588, 569, 587, 548, 587, 1649, 588, 1649, 588, 1636, 588}, // 24C
{8978, 4502, 559, 548, 562, 574, 561, 1676, 560, 575, 561, 1676, 561, 574, 561, 574, 562, 590, 561, 575, 561, 1675, 586, 550, 560, 1676, 561, 1675, 560, 575, 561, 1676, 561, 592, 560, 575, 586, 548, 588, 548, 561, 574, 560, 575, 562, 573, 561, 574, 561, 591, 561, 575, 560, 576, 586, 548, 586, 550, 586, 548, 562, 574, 561, 574, 561, 592, 586, 548, 587, 548, 585, 551, 561, 574, 561, 574, 562, 574, 560, 575, 587, 569, 588, 548, 585, 1652, 585, 1651, 588, 535, 561}, // 25C
{8978, 4496, 507, 601, 534, 601, 534, 1703, 534, 602, 533, 1702, 534, 602, 534, 601, 533, 620, 533, 602, 533, 1703, 534, 601, 534, 1703, 533, 1704, 533, 602, 533, 1703, 533, 1720, 534, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 535, 600, 534, 619, 534, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 601, 534, 618, 534, 601, 534, 602, 533, 602, 534, 602, 533, 601, 534, 602, 534, 601, 534, 623, 533, 603, 533, 1702, 535, 601, 533, 1691, 534}, // 26C
{8978, 4501, 533, 576, 560, 575, 560, 1677, 560, 575, 559, 1677, 560, 575, 560, 576, 559, 592, 560, 576, 560, 1676, 561, 575, 559, 1677, 560, 1676, 561, 1676, 560, 576, 559, 593, 559, 576, 559, 576, 560, 575, 560, 575, 560, 576, 559, 575, 560, 576, 559, 593, 560, 575, 560, 576, 559, 575, 560, 576, 560, 575, 560, 576, 559, 576, 559, 593, 560, 575, 559, 575, 560, 576, 559, 576, 560, 575, 560, 576, 559, 576, 560, 597, 560, 575, 559, 1678, 559, 576, 559, 564, 560}, // 27C
{8978, 4496, 562, 547, 589, 547, 588, 1648, 589, 546, 589, 1647, 589, 547, 589, 546, 588, 565, 588, 546, 588, 1648, 590, 546, 588, 1649, 588, 1649, 588, 1648, 588, 547, 589, 1664, 588, 548, 588, 547, 592, 543, 588, 547, 589, 547, 588, 547, 588, 547, 588, 564, 588, 548, 588, 547, 588, 547, 588, 546, 589, 547, 588, 547, 589, 546, 589, 564, 588, 547, 588, 547, 588, 547, 588, 548, 588, 546, 589, 547, 588, 547, 588, 569, 588, 547, 588, 548, 588, 1648, 589, 1636, 588}, // 28C
{8978, 4503, 507, 601, 534, 601, 534, 1702, 534, 602, 534, 1703, 533, 602, 533, 602, 533, 619, 534, 601, 558, 1679, 534, 601, 557, 1680, 533, 1704, 533, 1703, 534, 1702, 534, 618, 534, 601, 534, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 602, 533, 619, 534, 601, 534, 602, 533, 602, 534, 601, 533, 602, 534, 602, 533, 601, 535, 617, 534, 602, 534, 601, 534, 601, 534, 602, 533, 601, 534, 602, 557, 578, 534, 624, 533, 601, 559, 577, 533, 1703, 534, 590, 533}, // 29C
{8978, 4502, 534, 575, 562, 573, 561, 1675, 561, 575, 560, 1676, 561, 575, 560, 574, 562, 591, 560, 575, 560, 1676, 562, 574, 560, 1676, 561, 1675, 562, 1675, 561, 1676, 560, 1693, 561, 575, 561, 574, 560, 575, 561, 575, 560, 574, 561, 575, 560, 575, 561, 591, 561, 574, 561, 575, 560, 574, 561, 575, 563, 572, 560, 576, 560, 574, 561, 592, 560, 574, 561, 575, 561, 574, 561, 573, 562, 575, 561, 574, 560, 575, 560, 597, 560, 575, 561, 574, 561, 575, 560, 1664, 561} // 30C
},
// Fan Speed Med
{
{0}, // 18C
{0}, // 19C
{0}, // 20C
{0}, // 21C
{0}, // 22C
{0}, // 23C
{0}, // 24C
{0}, // 25C
{0}, // 26C
{0}, // 27C
{0}, // 28C
{0}, // 29C
{0} // 30C
{8978, 4497, 506, 602, 534, 602, 557, 1679, 534, 602, 533, 1703, 556, 579, 534, 602, 533, 618, 534, 601, 534, 1703, 534, 1703, 533, 602, 534, 601, 534, 601, 534, 601, 534, 618, 534, 602, 533, 603, 533, 601, 534, 602, 533, 602, 533, 602, 533, 603, 533, 618, 534, 602, 557, 577, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 619, 534, 601, 533, 602, 534, 602, 533, 601, 534, 602, 533, 602, 534, 602, 533, 623, 534, 1703, 534, 1702, 534, 1703, 534, 1691, 533}, // 15C
{8978, 4503, 560, 550, 585, 549, 587, 1650, 586, 549, 586, 1651, 585, 550, 585, 550, 586, 566, 586, 549, 587, 1650, 586, 1651, 585, 550, 585, 550, 586, 550, 585, 550, 585, 1668, 585, 550, 587, 548, 586, 549, 586, 549, 586, 549, 586, 550, 586, 549, 586, 566, 586, 549, 586, 549, 586, 549, 586, 550, 586, 549, 585, 550, 586, 549, 586, 567, 585, 550, 585, 550, 585, 550, 586, 549, 585, 551, 585, 550, 585, 550, 585, 572, 586, 1650, 586, 1651, 585, 1651, 586, 538, 586}, // 16C
{8978, 4529, 507, 601, 534, 601, 534, 1703, 534, 601, 534, 1703, 533, 602, 534, 602, 533, 618, 534, 602, 533, 1704, 533, 1703, 533, 601, 534, 602, 534, 601, 534, 1703, 534, 618, 533, 603, 533, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 619, 534, 601, 534, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 601, 534, 618, 534, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 623, 534, 1703, 533, 1703, 534, 602, 533, 1691, 534}, // 17C
{8978, 4496, 508, 600, 535, 601, 534, 1702, 535, 600, 535, 1701, 536, 600, 535, 601, 534, 618, 534, 601, 534, 1702, 535, 1702, 534, 601, 535, 600, 535, 601, 534, 1702, 534, 1719, 535, 601, 534, 601, 534, 602, 534, 601, 533, 601, 535, 601, 534, 601, 534, 618, 534, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 601, 535, 617, 535, 601, 534, 601, 534, 601, 535, 600, 534, 601, 535, 600, 535, 601, 534, 623, 534, 1703, 533, 1703, 534, 601, 534, 589, 535}, // 18C
{8978, 4522, 508, 601, 534, 602, 533, 1703, 534, 602, 533, 1703, 533, 602, 534, 601, 534, 619, 533, 602, 533, 1703, 534, 1702, 534, 602, 535, 600, 534, 1702, 535, 601, 534, 618, 533, 602, 533, 603, 533, 602, 534, 601, 533, 602, 534, 601, 533, 602, 534, 619, 533, 602, 533, 602, 533, 602, 534, 602, 533, 602, 533, 601, 534, 601, 534, 619, 533, 601, 535, 601, 534, 601, 534, 602, 533, 602, 533, 602, 533, 602, 534, 624, 533, 1702, 535, 601, 534, 1702, 534, 1691, 533}, // 19C
{8978, 4523, 507, 602, 534, 601, 533, 1704, 533, 601, 534, 1703, 534, 601, 534, 601, 534, 619, 533, 601, 534, 1703, 534, 1703, 534, 601, 534, 601, 534, 1702, 535, 600, 535, 1719, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 602, 533, 602, 533, 619, 533, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 603, 533, 601, 534, 618, 534, 602, 533, 601, 535, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 624, 534, 1703, 533, 601, 534, 1702, 535, 589, 534}, // 20C
{8978, 4503, 562, 547, 588, 547, 589, 1647, 589, 546, 589, 1648, 588, 547, 589, 546, 589, 564, 588, 547, 589, 1648, 588, 1648, 588, 546, 590, 546, 589, 1648, 588, 1648, 589, 564, 588, 547, 589, 546, 588, 548, 588, 546, 589, 546, 589, 547, 588, 547, 589, 563, 589, 547, 587, 547, 589, 547, 588, 547, 588, 547, 588, 547, 589, 545, 590, 564, 588, 546, 589, 546, 589, 547, 589, 546, 589, 546, 589, 547, 588, 547, 589, 569, 587, 1648, 589, 547, 588, 546, 589, 1637, 588}, // 21C
{8978, 4497, 508, 601, 534, 601, 534, 1702, 535, 601, 534, 1702, 534, 602, 534, 601, 534, 617, 534, 602, 534, 1703, 533, 1703, 534, 602, 533, 602, 533, 1703, 534, 1703, 533, 1720, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 619, 533, 602, 534, 601, 534, 601, 534, 602, 533, 601, 535, 602, 532, 602, 534, 618, 534, 602, 533, 601, 535, 601, 533, 602, 534, 602, 533, 601, 534, 601, 534, 624, 533, 1703, 534, 602, 533, 602, 533, 590, 534}, // 22C
{8978, 4503, 507, 602, 534, 602, 533, 1703, 534, 601, 534, 1702, 534, 602, 533, 602, 533, 619, 533, 602, 534, 1703, 533, 1704, 533, 602, 533, 1703, 534, 600, 535, 601, 534, 619, 533, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 602, 533, 619, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 533, 601, 534, 619, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 601, 533, 624, 534, 601, 534, 1703, 533, 1703, 534, 1691, 533}, // 23C
{8978, 4495, 507, 602, 557, 581, 531, 1703, 533, 601, 559, 1679, 557, 578, 558, 577, 558, 594, 558, 578, 557, 1679, 533, 1704, 533, 601, 558, 1679, 557, 578, 534, 601, 534, 1720, 558, 577, 558, 577, 534, 601, 559, 577, 558, 577, 558, 577, 534, 602, 533, 619, 557, 578, 557, 577, 558, 578, 534, 601, 557, 578, 559, 576, 559, 577, 558, 593, 558, 578, 559, 577, 533, 601, 557, 579, 558, 577, 557, 578, 534, 601, 559, 598, 558, 577, 534, 1703, 559, 1678, 538, 585, 558}, // 24C
{8978, 4501, 507, 601, 558, 578, 534, 1702, 534, 601, 534, 1703, 558, 577, 534, 602, 533, 619, 558, 577, 534, 1702, 534, 1703, 534, 602, 557, 1679, 533, 602, 534, 1703, 533, 619, 533, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 602, 534, 619, 532, 602, 534, 601, 534, 602, 533, 602, 533, 602, 534, 602, 533, 601, 534, 619, 533, 602, 534, 601, 533, 602, 557, 578, 534, 601, 534, 602, 533, 602, 534, 623, 533, 602, 534, 1703, 534, 601, 534, 1691, 533}, // 25C
{8978, 4529, 531, 577, 533, 603, 558, 1678, 559, 576, 559, 1678, 558, 576, 561, 575, 558, 594, 559, 576, 559, 1677, 561, 1676, 559, 576, 560, 1677, 559, 577, 558, 1678, 533, 1721, 558, 576, 550, 586, 559, 576, 560, 575, 558, 577, 558, 577, 559, 577, 533, 619, 559, 576, 559, 577, 557, 577, 560, 575, 559, 577, 558, 577, 559, 576, 558, 594, 558, 578, 559, 575, 558, 578, 559, 576, 559, 576, 558, 577, 558, 578, 558, 599, 558, 576, 559, 1678, 558, 578, 559, 565, 556}, // 26C
{8978, 4495, 562, 547, 588, 547, 588, 1648, 589, 547, 588, 1648, 588, 547, 589, 547, 589, 563, 590, 544, 591, 1647, 588, 1648, 589, 545, 590, 1647, 590, 1647, 589, 546, 589, 564, 589, 546, 589, 546, 588, 547, 589, 546, 589, 547, 589, 545, 589, 546, 590, 563, 589, 546, 590, 545, 590, 546, 588, 547, 589, 546, 589, 546, 588, 547, 588, 564, 590, 546, 588, 547, 588, 547, 588, 548, 588, 547, 589, 546, 588, 547, 588, 570, 587, 547, 588, 548, 588, 1648, 589, 1634, 589}, // 27C
{8978, 4502, 562, 547, 587, 549, 587, 1649, 586, 549, 588, 1648, 588, 548, 588, 547, 561, 591, 587, 548, 562, 1675, 564, 1673, 587, 548, 587, 1649, 588, 1648, 588, 548, 562, 1691, 588, 548, 587, 548, 587, 548, 561, 575, 586, 548, 588, 547, 588, 548, 587, 564, 588, 548, 562, 573, 587, 549, 588, 546, 563, 572, 588, 548, 588, 548, 587, 564, 562, 573, 563, 572, 588, 548, 588, 548, 561, 574, 587, 547, 562, 574, 587, 570, 587, 547, 563, 573, 588, 1648, 588, 536, 561}, // 28C
{8978, 4495, 534, 575, 562, 573, 561, 1676, 561, 574, 561, 1675, 560, 576, 560, 574, 561, 592, 561, 574, 561, 1676, 561, 1676, 560, 574, 561, 1677, 559, 1676, 562, 1675, 560, 593, 560, 575, 560, 575, 560, 575, 560, 575, 561, 574, 561, 574, 560, 575, 561, 592, 561, 574, 560, 575, 561, 575, 559, 576, 559, 576, 560, 575, 561, 574, 561, 592, 560, 575, 560, 575, 560, 575, 560, 575, 561, 574, 560, 576, 560, 574, 561, 597, 559, 576, 560, 575, 560, 575, 561, 1664, 560}, // 29C
{8978, 4503, 534, 575, 559, 577, 560, 1676, 558, 577, 559, 1677, 560, 575, 560, 576, 560, 592, 559, 576, 561, 1675, 561, 1676, 560, 575, 559, 1678, 560, 1676, 559, 1677, 561, 1693, 560, 576, 558, 577, 560, 575, 558, 577, 560, 575, 559, 576, 560, 575, 559, 594, 559, 576, 560, 575, 559, 577, 559, 579, 556, 576, 559, 576, 560, 575, 560, 592, 559, 576, 559, 577, 559, 576, 559, 576, 560, 575, 560, 575, 559, 577, 559, 598, 560, 576, 557, 578, 559, 576, 559, 564, 559} // 30C
},
// Fan Speed Low
{
{0}, // 18C
{0}, // 19C
{0}, // 20C
{0}, // 21C
{0}, // 22C
{0}, // 23C
{0}, // 24C
{0}, // 25C
{0}, // 26C
{0}, // 27C
{0}, // 28C
{0}, // 29C
{0} // 30C
{8978, 4502, 508, 600, 536, 600, 535, 1702, 534, 601, 534, 1703, 534, 601, 535, 599, 535, 618, 535, 600, 534, 1703, 534, 1702, 535, 1702, 534, 601, 534, 601, 535, 601, 534, 618, 533, 601, 535, 601, 534, 601, 534, 601, 535, 601, 534, 601, 534, 601, 534, 617, 536, 600, 535, 600, 535, 600, 535, 600, 535, 601, 535, 600, 536, 599, 534, 618, 535, 601, 534, 601, 535, 600, 534, 601, 535, 600, 535, 600, 535, 601, 534, 622, 535, 1702, 535, 1701, 535, 1703, 534, 589, 534}, // 15C
{8978, 4497, 508, 601, 533, 602, 535, 1701, 535, 601, 534, 1703, 534, 601, 536, 598, 535, 618, 534, 601, 534, 1703, 534, 1702, 535, 1702, 533, 602, 534, 602, 533, 601, 535, 1719, 534, 601, 534, 601, 535, 600, 535, 601, 534, 601, 535, 600, 534, 601, 535, 617, 535, 601, 533, 602, 534, 601, 534, 601, 534, 602, 534, 601, 535, 601, 533, 618, 535, 600, 535, 601, 533, 602, 534, 602, 532, 602, 534, 601, 535, 601, 534, 623, 535, 1701, 535, 1701, 536, 600, 534, 1690, 535}, // 16C
{8978, 4525, 507, 601, 534, 602, 533, 1704, 533, 602, 534, 1702, 534, 601, 534, 602, 533, 618, 535, 600, 535, 1702, 534, 1702, 535, 1702, 534, 601, 534, 602, 533, 1703, 534, 618, 534, 603, 532, 602, 533, 602, 534, 601, 533, 602, 534, 601, 535, 600, 534, 618, 535, 601, 534, 601, 534, 601, 534, 601, 535, 601, 534, 600, 535, 601, 534, 618, 534, 600, 536, 600, 535, 601, 533, 602, 534, 601, 534, 601, 535, 601, 534, 622, 535, 1702, 534, 1703, 534, 601, 534, 589, 534}, // 17C
{8978, 4504, 505, 603, 533, 603, 533, 1703, 533, 602, 533, 1704, 534, 601, 533, 602, 533, 620, 533, 601, 533, 1704, 533, 1703, 534, 1703, 533, 602, 533, 603, 532, 1704, 533, 1720, 534, 602, 533, 602, 532, 604, 534, 600, 534, 601, 534, 601, 533, 603, 533, 618, 534, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 533, 619, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 624, 532, 1704, 534, 601, 534, 1703, 533, 1692, 533}, // 18C
{8978, 4496, 508, 601, 534, 601, 534, 1703, 533, 602, 534, 1702, 534, 602, 534, 601, 533, 619, 534, 601, 534, 1703, 534, 1702, 534, 1703, 534, 601, 534, 1702, 535, 600, 534, 618, 535, 601, 533, 602, 534, 602, 533, 602, 533, 601, 534, 601, 534, 602, 534, 619, 533, 601, 534, 602, 534, 601, 534, 601, 534, 601, 534, 601, 534, 601, 534, 618, 535, 600, 535, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 623, 534, 1702, 535, 601, 534, 1702, 535, 589, 534}, // 19C
{8978, 4522, 508, 602, 533, 602, 533, 1703, 534, 602, 533, 1703, 533, 603, 533, 602, 533, 618, 534, 602, 533, 1704, 533, 1703, 533, 1703, 534, 602, 533, 1703, 533, 603, 533, 1719, 534, 602, 533, 602, 534, 601, 533, 602, 534, 601, 534, 602, 533, 602, 533, 619, 534, 601, 533, 603, 533, 602, 533, 602, 533, 602, 534, 602, 556, 578, 534, 618, 534, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 624, 533, 1704, 533, 602, 533, 602, 533, 1691, 534}, // 20C
{8978, 4503, 506, 603, 533, 602, 533, 1703, 534, 602, 533, 1703, 533, 602, 533, 603, 532, 620, 533, 602, 533, 1703, 534, 1703, 533, 1703, 534, 601, 560, 1677, 533, 1704, 533, 619, 533, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 602, 533, 602, 533, 619, 533, 603, 532, 603, 533, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 618, 534, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 625, 532, 1703, 534, 602, 533, 604, 531, 590, 533}, // 21C
{8978, 4523, 508, 601, 534, 601, 535, 1702, 534, 600, 535, 1702, 535, 600, 535, 600, 535, 618, 534, 603, 532, 1703, 534, 1702, 534, 1702, 535, 601, 534, 1702, 535, 1702, 535, 1719, 534, 601, 534, 601, 534, 601, 534, 601, 535, 600, 535, 600, 535, 601, 534, 618, 534, 601, 534, 601, 534, 601, 535, 601, 534, 600, 535, 601, 534, 602, 533, 618, 535, 601, 534, 601, 534, 601, 534, 601, 534, 601, 535, 600, 535, 600, 534, 623, 534, 602, 534, 1703, 534, 1702, 534, 1690, 535}, // 22C
{8978, 4504, 507, 601, 534, 601, 534, 1702, 534, 602, 534, 1702, 534, 602, 534, 600, 535, 618, 534, 601, 534, 1702, 535, 1702, 534, 1702, 534, 1703, 534, 601, 535, 600, 535, 618, 533, 601, 535, 601, 534, 601, 535, 600, 535, 600, 534, 602, 534, 600, 535, 618, 534, 601, 534, 602, 533, 601, 535, 601, 535, 600, 534, 601, 535, 600, 534, 618, 534, 601, 535, 601, 535, 600, 534, 601, 534, 601, 535, 600, 534, 601, 535, 622, 535, 601, 535, 1702, 534, 1703, 533, 590, 534}, // 23C
{8978, 4529, 507, 602, 534, 600, 535, 1702, 535, 600, 535, 1703, 533, 602, 533, 601, 535, 617, 535, 601, 534, 1702, 535, 1702, 534, 1702, 534, 1703, 534, 601, 535, 600, 534, 1720, 534, 601, 534, 601, 534, 602, 533, 601, 535, 601, 534, 601, 534, 601, 535, 617, 534, 602, 534, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 618, 534, 601, 534, 601, 534, 601, 534, 602, 534, 600, 534, 601, 535, 601, 534, 623, 533, 602, 534, 1702, 534, 602, 534, 1691, 534}, // 24C
{8978, 4529, 506, 603, 533, 602, 533, 1703, 533, 602, 534, 1703, 533, 602, 533, 602, 533, 619, 533, 603, 533, 1703, 533, 1703, 534, 1703, 534, 1702, 534, 602, 533, 1703, 534, 619, 533, 601, 534, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 601, 534, 619, 533, 602, 533, 601, 535, 601, 534, 601, 534, 602, 533, 602, 533, 603, 533, 620, 532, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 601, 534, 601, 534, 623, 534, 602, 533, 1703, 534, 602, 533, 590, 533}, // 25C
{8978, 4504, 506, 603, 533, 602, 533, 1703, 534, 601, 534, 1703, 533, 602, 534, 602, 533, 619, 533, 602, 533, 1704, 532, 1704, 534, 1702, 533, 1704, 533, 602, 533, 1704, 533, 1720, 534, 602, 533, 601, 534, 602, 533, 602, 533, 602, 533, 603, 532, 602, 535, 617, 534, 602, 534, 601, 533, 602, 533, 602, 534, 601, 533, 603, 533, 602, 533, 620, 532, 602, 533, 603, 532, 603, 533, 602, 533, 601, 534, 602, 533, 602, 533, 624, 533, 602, 534, 601, 534, 1703, 534, 1691, 533}, // 26C
{8978, 4497, 507, 600, 534, 602, 533, 1704, 533, 602, 533, 1704, 533, 602, 533, 602, 533, 619, 533, 602, 533, 1704, 532, 1705, 533, 1703, 533, 1704, 533, 1703, 533, 602, 533, 620, 532, 603, 533, 602, 533, 602, 534, 601, 533, 602, 533, 603, 532, 603, 533, 619, 533, 602, 533, 602, 533, 602, 534, 601, 533, 603, 533, 601, 534, 602, 534, 618, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 532, 603, 533, 623, 534, 601, 534, 602, 533, 1704, 532, 591, 533}, // 27C
{8978, 4503, 506, 602, 534, 603, 532, 1704, 532, 603, 532, 1704, 533, 602, 533, 603, 532, 620, 532, 603, 533, 1704, 531, 1705, 532, 1705, 532, 1704, 532, 1704, 533, 603, 532, 1721, 533, 602, 533, 603, 532, 602, 533, 603, 532, 603, 533, 602, 533, 602, 533, 619, 533, 603, 533, 601, 534, 602, 532, 603, 533, 602, 534, 601, 533, 603, 532, 620, 533, 602, 533, 602, 533, 603, 532, 603, 533, 602, 533, 602, 533, 602, 534, 623, 532, 603, 533, 603, 533, 602, 532, 1692, 534}, // 28C
{8978, 4497, 507, 602, 532, 603, 533, 1703, 534, 601, 533, 1704, 533, 603, 532, 602, 534, 619, 532, 603, 533, 1704, 532, 1704, 533, 1704, 532, 1704, 534, 1702, 533, 1704, 533, 619, 533, 602, 534, 602, 533, 602, 532, 602, 534, 603, 533, 601, 533, 602, 533, 619, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 533, 602, 533, 619, 533, 602, 533, 602, 533, 603, 533, 602, 532, 603, 532, 603, 533, 602, 533, 624, 533, 602, 533, 603, 532, 603, 533, 589, 534}, // 29C
{8978, 4504, 507, 601, 533, 603, 533, 1703, 533, 602, 534, 1703, 533, 602, 533, 602, 534, 618, 533, 602, 534, 1703, 533, 1704, 533, 1703, 534, 1703, 533, 1704, 532, 1704, 533, 1720, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 619, 533, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 619, 532, 602, 534, 602, 532, 603, 533, 602, 533, 602, 533, 602, 534, 601, 533, 624, 533, 1704, 533, 1703, 534, 1703, 533, 1691, 534} // 30C
}};
extern const uint8_t ir_code_fan[3][750] = {
{0}, // LOW
{0}, // MED
{0} // HIGH
extern const uint16_t ir_code_fan[4][91] = {
{8976, 4498, 559, 551, 584, 550, 560, 1677, 586, 550, 584, 1652, 585, 551, 560, 575, 585, 568, 559, 576, 585, 551, 585, 550, 584, 552, 559, 1677, 584, 1653, 560, 1677, 585, 1669, 584, 551, 560, 576, 559, 576, 584, 554, 583, 550, 584, 551, 585, 551, 585, 567, 561, 575, 584, 551, 560, 576, 584, 551, 585, 550, 560, 576, 584, 551, 560, 593, 560, 576, 584, 550, 585, 551, 584, 551, 584, 552, 584, 551, 584, 551, 560, 598, 559, 576, 585, 1652, 583, 1654, 559, 565, 559}, // AUTO
{8990, 4500, 530, 579, 557, 578, 557, 1680, 557, 578, 557, 1680, 557, 579, 557, 578, 557, 595, 557, 579, 557, 578, 557, 579, 556, 1680, 558, 1679, 557, 1680, 558, 1680, 556, 1697, 558, 577, 558, 579, 555, 579, 558, 578, 557, 578, 557, 578, 557, 579, 556, 596, 557, 579, 556, 579, 557, 578, 557, 579, 556, 579, 557, 579, 556, 579, 557, 595, 557, 578, 558, 578, 557, 579, 556, 579, 557, 579, 556, 578, 557, 579, 557, 600, 557, 579, 556, 1680, 557, 579, 557, 1668, 557}, // HIGH
{8977, 4497, 508, 601, 533, 602, 535, 1702, 534, 602, 533, 1703, 535, 601, 534, 602, 533, 619, 534, 601, 533, 603, 533, 1703, 534, 602, 533, 1704, 533, 1704, 534, 1702, 534, 1721, 533, 601, 534, 602, 534, 602, 533, 602, 533, 602, 534, 601, 536, 600, 534, 618, 534, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 602, 533, 602, 533, 619, 534, 602, 533, 602, 533, 602, 533, 603, 533, 602, 534, 602, 534, 601, 533, 624, 534, 602, 533, 1703, 534, 603, 534, 588, 533}, // MED
{8976, 4505, 506, 602, 534, 601, 534, 1703, 533, 603, 533, 1705, 532, 602, 534, 602, 533, 619, 534, 601, 533, 603, 533, 1704, 533, 1704, 533, 1703, 533, 1705, 533, 1704, 533, 1720, 534, 602, 533, 602, 534, 601, 534, 602, 533, 602, 534, 601, 534, 603, 532, 620, 532, 603, 532, 604, 532, 602, 534, 602, 532, 603, 534, 602, 533, 602, 534, 618, 534, 601, 534, 602, 534, 602, 534, 600, 534, 602, 533, 602, 534, 602, 533, 624, 534, 602, 533, 602, 534, 1703, 533, 1692, 534} // LOW
};
extern const uint8_t ir_code_off[750] = {0};
extern const uint16_t ir_code_off[91] = {9004, 4475, 559, 552, 583, 578, 557, 1680, 557, 554, 582, 578, 557, 553, 582, 553, 583, 569, 583, 552, 584, 1679, 558, 552, 583, 578, 557, 1680, 557, 1655, 582, 1680, 557, 1697, 557, 553, 582, 578, 558, 577, 558, 578, 558, 552, 583, 578, 557, 579, 557, 569, 583, 553, 583, 578, 557, 552, 584, 577, 558, 553, 582, 553, 582, 553, 583, 594, 557, 579, 557, 579, 556, 552, 584, 579, 557, 578, 557, 552, 584, 578, 557, 600, 557, 1653, 584, 552, 584, 1679, 558, 539, 584};

View File

@ -1,22 +1,43 @@
#include <user_code.hpp>
//Timer Components
ESPMega_Timer timer1(0, 50, timer1_callback, 15001);
// AC Control Locking
char AC_LOCK_TOPIC[75];
char AC_LOCK_REPORT_TOPIC[75];
#define AC_LOCK_ADDRESS 15002
bool ac_lock = false;
// Display Componets
// Link with Dual state button object with id 2 on page 1 named bt0
NexDSButton bt0 = NexDSButton(1, 2, "bt0");
NexButton up_bt = NexButton(1, 2, "up_bt");
NexButton down_bt = NexButton(1, 3, "down_bt");
NexButton mode_off_btn = NexButton(1, 4, "mode_off_btn");
NexButton mode_fan_btn = NexButton(1, 5, "mode_fan_btn");
NexButton mode_cool_btn = NexButton(1, 6, "mode_cool_btn");
NexButton fan_auto_btn = NexButton(1, 7, "fan_auto_btn");
NexButton fan_1_btn = NexButton(1, 8, "fan_1_btn");
NexButton fan_2_btn = NexButton(1, 9, "fan_2_btn");
NexButton fan_3_btn = NexButton(1, 10, "fan_3_btn");
NexButton lt_bt = NexButton(1, 11, "lt_bt");
NexButton fan_bt = NexButton(1, 12, "fan_bt");
NexButton puri_bt = NexButton(1, 13, "puri_bt");
// List of Component ID Message to listen to
NexTouch *nex_listen_list[] =
{
&bt0,
&lt_bt,
&fan_bt,
&puri_bt,
&up_bt,
&down_bt,
&mode_off_btn,
&mode_fan_btn,
&mode_cool_btn,
&fan_auto_btn,
&fan_1_btn,
&fan_2_btn,
&fan_3_btn,
NULL};
void bt0PopCallback(void *ptr)
{
pwm_toggle(2);
}
/*
This Code will run right after ESPMega PRO's
Peripheral Initialization Routine
@ -24,6 +45,10 @@ Peripheral Initialization Routine
void user_pre_init()
{
nexInit();
memcpy(AC_LOCK_REPORT_TOPIC, MQTT_BASE_TOPIC, 20);
strcat(AC_LOCK_REPORT_TOPIC, "/ac/lock");
memcpy(AC_LOCK_TOPIC, MQTT_BASE_TOPIC, 20);
strcat(AC_LOCK_TOPIC, "/ac/set/lock");
}
/*
@ -31,12 +56,28 @@ This code will run after every component is initialized
*/
void user_init()
{
timer1.begin();
ESPMega_EXTLCD.print("page home");
ESPMega_EXTLCD.write(0xFF);
ESPMega_EXTLCD.write(0xFF);
ESPMega_EXTLCD.write(0xFF);
bt0.attachPop(bt0PopCallback, &bt0);
elcd.print("page dashboard");
elcd_sendstop();
ac_lock = ESPMega_FRAM.read8(AC_LOCK_ADDRESS);
ac_lock = ac_lock > 1 ? 0 : ac_lock;
elcd.print("dashboard.pic=");
elcd.print(ac_lock ? "2" : "1");
elcd_sendstop();
lt_bt.attachPop(lt_btn_cb, &lt_bt);
fan_bt.attachPop(fan_btn_cb, &fan_bt);
puri_bt.attachPop(puri_btn_cb, &puri_bt);
up_bt.attachPop(temp_up_btn_cb, &up_bt);
down_bt.attachPop(temp_down_btn_cb, &down_bt);
mode_off_btn.attachPop(mode_off_btn_cb, &mode_off_btn);
mode_fan_btn.attachPop(mode_fan_btn_cb, &mode_fan_btn);
mode_cool_btn.attachPop(mode_cool_btn_cb, &mode_cool_btn);
fan_auto_btn.attachPop(fan_auto_btn_cb, &fan_auto_btn);
fan_1_btn.attachPop(fan_1_btn_cb, &fan_1_btn);
fan_2_btn.attachPop(fan_2_btn_cb, &fan_2_btn);
fan_3_btn.attachPop(fan_3_btn_cb, &fan_3_btn);
ac_update_lcd();
pwm_update_lcd();
timer_tick_callback();
}
/*
@ -52,15 +93,15 @@ This code will run when an input pin changed state
*/
void virtual_interrupt_user_callback(int pin, int state)
{
if (pin >= 0 & pin <= 7)
{
pwm_toggle(pin);
}
}
void pwm_changed_user_callback(int pin)
{
if (pin == 2)
{
// inform the lcd when pwm 2 changed
bt0.setValue(pwm_get_state(2));
}
pwm_update_lcd();
}
/*
@ -68,32 +109,199 @@ This code will run every 15 seconds
*/
void timer_tick_callback()
{
if (standalone)
{
timer1.loop();
}
rtctime_t time = ESPMega_getTime();
elcd.printf("clock.txt=\"%02d:%02d\"", time.hours, time.minutes);
elcd_sendstop();
}
void timer1_callback()
void lt_btn_cb(void *comp)
{
for (int i = 0; i < 16; i++)
cud_light_toggle();
}
void fan_btn_cb(void *comp)
{
cud_fan_toggle();
}
void puri_btn_cb(void *comp)
{
pwm_toggle(AIR_PURIFIER_PIN);
}
void temp_up_btn_cb(void *comp)
{
if (!ac_lock)
{
pwm_set_state(i, 1);
ac_set_state(ac_get_mode(), ac_get_temperature() + 1, ac_get_fan_speed());
}
}
void temp_down_btn_cb(void *comp)
{
if (!ac_lock)
{
ac_set_state(ac_get_mode(), ac_get_temperature() - 1, ac_get_fan_speed());
}
}
void mode_cool_btn_cb(void *comp)
{
if (!ac_lock)
ac_set_state(1, ac_get_temperature(), ac_get_fan_speed());
}
void mode_fan_btn_cb(void *comp)
{
if (!ac_lock)
ac_set_state(2, ac_get_temperature(), ac_get_fan_speed());
}
void mode_off_btn_cb(void *comp)
{
if (!ac_lock)
ac_set_state(0, ac_get_temperature(), ac_get_fan_speed());
}
void fan_auto_btn_cb(void *comp)
{
if (!ac_lock)
{
ac_set_state(ac_get_mode(), ac_get_temperature(), 0);
}
}
void fan_1_btn_cb(void *comp)
{
if (!ac_lock)
{
ac_set_state(ac_get_mode(), ac_get_temperature(), 3);
}
}
void fan_2_btn_cb(void *comp)
{
if (!ac_lock)
{
ac_set_state(ac_get_mode(), ac_get_temperature(), 2);
}
}
void fan_3_btn_cb(void *comp)
{
if (!ac_lock)
{
ac_set_state(ac_get_mode(), ac_get_temperature(), 1);
}
}
void ac_changed_user_callback(int mode, int temperature, int fan_speed) {
void cud_light_toggle()
{
bool new_state = !cud_light_group_state();
pwm_set_state(LIGHT1_PIN, new_state);
pwm_set_state(LIGHT2_PIN, new_state);
pwm_set_state(LIGHT3_PIN, new_state);
pwm_set_state(LIGHT4_PIN, new_state);
}
bool cud_light_group_state()
{
return pwm_get_state(LIGHT1_PIN) || pwm_get_state(LIGHT2_PIN) || pwm_get_state(LIGHT3_PIN) || pwm_get_state(LIGHT4_PIN);
}
void cud_fan_toggle()
{
bool new_state = !cud_fan_group_state();
pwm_set_state(FAN1_PIN, new_state);
pwm_set_state(FAN2_PIN, new_state);
pwm_set_state(FAN3_PIN, new_state);
}
bool cud_fan_group_state()
{
return pwm_get_state(FAN1_PIN) || pwm_get_state(FAN2_PIN) || pwm_get_state(FAN3_PIN);
}
void ac_changed_user_callback(uint8_t mode, uint8_t temperature, uint8_t fan_speed)
{
ac_update_lcd();
}
void ac_update_lcd() {
uint8_t temperature = ac_get_temperature();
uint8_t mode = ac_get_mode();
uint8_t fan_speed = ac_get_fan_speed();
elcd_sendstop();
elcd.print("temp_txt.txt=\"");
elcd.print(temperature);
elcd.print("C\"");
elcd_sendstop();
elcd.print("mode_off_btn.pic=");
elcd.print(mode == 0 ? 14 : 13);
elcd_sendstop();
elcd.print("mode_fan_btn.pic=");
elcd.print(mode == 2 ? 16 : 15);
elcd_sendstop();
elcd.print("mode_cool_btn.pic=");
elcd.print(mode == 1 ? 18 : 17);
elcd_sendstop();
elcd.print("fan_auto_btn.pic=");
elcd.print(fan_speed == 0 ? 20 : 19);
elcd_sendstop();
elcd.print("fan_1_btn.pic=");
elcd.print(fan_speed == 3 ? 22 : 21);
elcd_sendstop();
elcd.print("fan_2_btn.pic=");
elcd.print(fan_speed == 2 ? 24 : 23);
elcd_sendstop();
elcd.print("fan_3_btn.pic=");
elcd.print(fan_speed == 1 ? 26 : 25);
elcd_sendstop();
}
void ac_lock_callback(char* payload)
{
if (!strcmp(payload,"lock"))
{
ac_lock = true;
ESPMega_FRAM.write8(AC_LOCK_ADDRESS, ac_lock);
elcd.print("dashboard.pic=");
elcd.print(ac_lock ? "2" : "1");
elcd_sendstop();
}
else if (!strcmp(payload,"unlock"))
{
ac_lock = false;
ESPMega_FRAM.write8(AC_LOCK_ADDRESS, ac_lock);
elcd.print("dashboard.pic=");
elcd.print(ac_lock ? "2" : "1");
elcd_sendstop();
}
ac_lock_report();
}
void ac_lock_report() {
mqtt.publish(AC_LOCK_REPORT_TOPIC,ac_lock?"lock":"unlock");
}
void elcd_sendstop() {
ESPMega_EXTLCD.write(0xFF);
ESPMega_EXTLCD.write(0xFF);
ESPMega_EXTLCD.write(0xFF);
}
void pwm_update_lcd() {
elcd.print("lt_bt.pic=");
elcd.print(cud_light_group_state()?4:3);
elcd_sendstop();
elcd.print("fan_bt.pic=");
elcd.print(cud_fan_group_state()?6:5);
elcd_sendstop();
elcd.print("puri_bt.pic=");
elcd.print(pwm_get_state(AIR_PURIFIER_PIN)?8:7);
elcd_sendstop();
}
void mqtt_connected_user_callback() {
mqtt.subscribe(AC_LOCK_TOPIC);
ac_lock_report();
}
void user_state_request_callback() {
ac_lock_report();
}
void user_mqtt_callback(char* topic, uint8_t topic_length, char* payload, unsigned int payload_length) {
if(!strcmp(topic,AC_LOCK_TOPIC)) {
ac_lock_callback(payload);
}
}

View File

@ -6,6 +6,9 @@
#include "espmega_iot_timer.hpp"
#include "espmega_iot_external_lcd.hpp"
// Device Info
// #define ESPMEGA_REV "ESPMega PRO R3.3b"
// Bus Overclocking Configuration
// Do not enable if you are using external I/O cards as it will cause signal integrity issues.
// Choose only one mode
@ -25,13 +28,39 @@
// IR Kit Configuration
#define IR_RECIEVE_PIN 35
#define IR_SEND_PIN 17
#define IR_SEND_PIN 5
#define MARK_EXCESS_MICROS 20
#define IR_RAW_BUFFER_LENGTH 750
#define AC_MAX_TEMPERATURE 30
#define AC_MIN_TEMPERATURE 15
#define DHT22_PIN 32
/*
Environment Details
P0-P2: Fans
P3-P6: Lights
P7: Air Purifier
I0-I2: Fan Switch
*/
// Pin Definition
#define FAN1_PIN 4
#define FAN2_PIN 5
#define FAN3_PIN 6
#define LIGHT1_PIN 0
#define LIGHT2_PIN 1
#define LIGHT3_PIN 2
#define LIGHT4_PIN 3
#define AIR_PURIFIER_PIN 7
#define FAN1_BTN_PIN 4
#define FAN2_BTN_PIN 5
#define FAN3_BTN_PIN 6
#define LIGHT1_BTN_PIN 0
#define LIGHT2_BTN_PIN 1
#define LIGHT3_BTN_PIN 2
#define LIGHT4_BTN_PIN 3
#define AIR_PURIFIER_BTN_PIN 7
// External LCD Configuration
#define ENABLE_EXTERNAL_LCD
#define TXD2 4
@ -39,6 +68,7 @@
#ifdef ENABLE_EXTERNAL_LCD
#define ESPMega_EXTLCD Serial2
#define elcd ESPMega_EXTLCD
#endif
// Analog Module Configuration
@ -56,8 +86,32 @@ void user_pre_init();
void user_init();
void user_loop();
void pwm_changed_user_callback(int pin);
void ac_changed_user_callback(int mode, int temperature, int fan_speed);
void ac_changed_user_callback(uint8_t mode, uint8_t temperature, uint8_t fan_speed);
void timer_tick_callback();
void lt_btn_cb(void *comp);
void fan_btn_cb(void *comp);
void puri_btn_cb(void *comp);
void temp_up_btn_cb(void *comp);
void temp_down_btn_cb(void *comp);
void mode_off_btn_cb(void *comp);
void mode_fan_btn_cb(void *comp);
void mode_cool_btn_cb(void *comp);
void fan_auto_btn_cb(void *comp);
void fan_1_btn_cb(void *comp);
void fan_2_btn_cb(void *comp);
void fan_3_btn_cb(void *comp);
void cud_light_toggle();
bool cud_light_group_state();
void cud_fan_toggle();
bool cud_fan_group_state();
void ac_lock_callback(char* payload);
void elcd_sendstop();
void ac_update_lcd();
void pwm_update_lcd();
void mqtt_connected_user_callback();
void ac_lock_report();
void user_state_request_callback();
void user_mqtt_callback(char* topic, uint8_t topic_length, char* payload, unsigned int payload_length);
void virtual_interrupt_user_callback(int pin, int state);
// ESPMega IoT Core Build-in Functions
@ -72,6 +126,7 @@ extern boolean pwm_group_state(int id1, int id2);
extern bool input_get_state(int id);
extern bool standalone;
extern PubSubClient mqtt;
extern char MQTT_BASE_TOPIC[];
// IR Kit Build-in Functions
#ifdef ENABLE_IR_MODULE
@ -79,6 +134,7 @@ extern void ac_set_state(int mode, int temperature, int fan_speed);
extern uint8_t ac_get_temperature();
extern uint8_t ac_get_mode();
extern uint8_t ac_get_fan_speed();
#endif
//Analog Expansion Card Build-in Functions
@ -92,4 +148,4 @@ extern uint16_t adc_get_value(int id);
extern bool adc_get_state(int id);
extern uint16_t dac_get_value(int id);
extern bool dac_get_state(int id);
#endif
#endif