diff --git a/.gitignore b/.gitignore index 894a44c..a640a89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,104 +1,11 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -.hypothesis/ -.pytest_cache/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# pyenv -.python-version - -# celery beat schedule file -celerybeat-schedule - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ +# Specifies intentionally untracked files to ignore when using Git +# http://git-scm.com/docs/gitignore + +node_modules/ +platforms/ +plugins/ +/ml/.ipynb_checkpoints +/ml/thermostat-predict-temperature-Copy1.ipynb +/ml/learning-thermostat-state.ipynb +/ml/keras-test.ipynb +/ml/datasets/thermostat diff --git a/docs/block-diagram.png b/docs/block-diagram.png new file mode 100644 index 0000000..a8d0bab Binary files /dev/null and b/docs/block-diagram.png differ diff --git a/docs/flow-graph.png b/docs/flow-graph.png new file mode 100644 index 0000000..85267bd Binary files /dev/null and b/docs/flow-graph.png differ diff --git a/docs/hardware-modules.jpg b/docs/hardware-modules.jpg new file mode 100644 index 0000000..d44375a Binary files /dev/null and b/docs/hardware-modules.jpg differ diff --git a/docs/sample-training-data.xlsx b/docs/sample-training-data.xlsx new file mode 100644 index 0000000..ce65b07 Binary files /dev/null and b/docs/sample-training-data.xlsx differ diff --git a/docs/sensors.png b/docs/sensors.png new file mode 100644 index 0000000..ad1e06c Binary files /dev/null and b/docs/sensors.png differ diff --git a/docs/services-diagram.png b/docs/services-diagram.png new file mode 100644 index 0000000..27718bd Binary files /dev/null and b/docs/services-diagram.png differ diff --git a/docs/sharp-crmc-a863jbez.txt b/docs/sharp-crmc-a863jbez.txt new file mode 100644 index 0000000..d76622a --- /dev/null +++ b/docs/sharp-crmc-a863jbez.txt @@ -0,0 +1,77 @@ +//on +uint16_t power_on[211] = {3846, 1832, 518, 432, 518, 1330, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 434, 516, 1328, 518, 432, 518, 1330, 522, 428, 522, 1324, 522, 1328, 518, 432, 518, 1328, 522, 428, 518, 1328, 522, 1328, 518, 1330, 518, 1328, 522, 428, 522, 428, 522, 1324, 522, 1328, 518, 432, 518, 432, 518, 432, 518, 434, 518, 1328, 522, 428, 518, 434, 516, 434, 518, 1328, 522, 1324, 524, 1328, 518, 1328, 524, 428, 522, 428, 518, 1328, 522, 1328, 518, 1328, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 428, 522, 430, 520, 428, 518, 1328, 522, 428, 522, 428, 518, 1330, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 434, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 1330, 522, 428, 522, 428, 522, 428, 518, 434, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 430, 520, 430, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 432, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 430, 516, 1330, 522, 1324, 522, 1330, 518, 1328, 522, 1328, 518, 432, 518, 428, 522, 428, 522, 1328, 518, 1330, 522, 1324, 522, 430, 496}; // UNKNOWN 76C7CC00 + +//off +uint16_t power_off[211] = {3850, 1828, 522, 428, 522, 1330, 518, 432, 518, 1328, 518, 432, 518, 1328, 522, 428, 522, 1330, 518, 432, 518, 1328, 518, 432, 518, 1328, 522, 1328, 518, 432, 518, 1328, 518, 434, 516, 1330, 522, 1328, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 1328, 518, 1328, 518, 432, 518, 434, 518, 432, 518, 432, 518, 1328, 518, 432, 518, 432, 518, 428, 522, 1328, 518, 1328, 522, 1328, 518, 1330, 522, 428, 518, 432, 518, 1328, 522, 1324, 522, 1328, 518, 432, 518, 432, 518, 432, 518, 428, 522, 1328, 518, 432, 518, 434, 518, 430, 520, 1328, 518, 432, 518, 432, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 430, 522, 428, 522, 428, 522, 428, 518, 432, 518, 432, 518, 432, 518, 434, 518, 428, 522, 430, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 518, 434, 518, 432, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 524, 428, 522, 428, 518, 432, 518, 432, 518, 430, 522, 428, 522, 428, 524, 428, 522, 430, 522, 1324, 522, 1328, 518, 1328, 522, 1324, 522, 1328, 522, 428, 518, 434, 518, 432, 518, 428, 522, 428, 522, 1330, 518, 432, 492}; // off + +//fan 1 +uint16_t fan_1[211] = {3850, 1828, 522, 428, 522, 1328, 518, 432, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 1330, 522, 1324, 522, 1328, 522, 428, 522, 428, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 430, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 1328, 522, 430, 522, 428, 518, 1328, 522, 1324, 522, 1328, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1328, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 430, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 526, 424, 522, 428, 522, 1328, 522, 1326, 520, 430, 522, 1324, 526, 424, 526, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1330, 520, 1324, 522, 1324, 526, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 492}; // UNKNOWN 95A70964 + +//fan 2 +uint16_t fan_2[211] = {3850, 1828, 522, 428, 522, 1326, 522, 428, 522, 1324, 522, 428, 522, 1326, 522, 428, 522, 1330, 516, 430, 522, 1328, 518, 432, 518, 1330, 518, 1328, 522, 428, 518, 1328, 522, 428, 518, 1328, 524, 1328, 518, 1328, 518, 1330, 522, 428, 524, 428, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 430, 516, 1330, 522, 428, 522, 428, 518, 432, 518, 1328, 522, 1324, 522, 1328, 518, 1330, 516, 434, 518, 428, 522, 1328, 518, 1330, 522, 1324, 522, 428, 524, 428, 522, 428, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 428, 522, 1324, 522, 428, 522, 430, 522, 428, 522, 428, 518, 434, 518, 428, 522, 428, 522, 428, 522, 428, 518, 434, 518, 432, 518, 1328, 518, 1328, 522, 428, 518, 1330, 522, 428, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 1328, 518, 1328, 522, 1326, 522, 1324, 522, 1328, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 434, 492}; // UNKNOWN 1069B160 + +//fan 3 +uint16_t fan_3[211] = {3850, 1828, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 428, 522, 1328, 518, 432, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 1328, 522, 1328, 518, 1328, 518, 434, 518, 434, 516, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 428, 522, 428, 522, 1326, 520, 1328, 518, 1330, 522, 1324, 522, 428, 522, 430, 522, 1328, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 518, 434, 516, 434, 516, 428, 522, 1328, 522, 428, 518, 434, 516, 1328, 522, 1328, 518, 1328, 522, 428, 522, 428, 518, 432, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 1328, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 430, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1330, 516, 432, 518, 1328, 522, 428, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 520, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 1328, 518, 1328, 522, 428, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 428, 492}; // UNKNOWN E7FB2764 + +//fan auto +uint16_t fan_auto[211] = {3850, 1828, 518, 434, 518, 1328, 522, 428, 518, 1328, 522, 428, 522, 1328, 518, 432, 518, 1328, 518, 432, 518, 1328, 522, 428, 522, 1328, 518, 1330, 516, 432, 518, 1328, 522, 430, 522, 1324, 522, 1328, 518, 1330, 522, 1328, 518, 428, 522, 428, 522, 1328, 518, 1328, 522, 428, 522, 428, 518, 432, 518, 432, 518, 1328, 518, 432, 518, 434, 518, 432, 518, 1328, 518, 1328, 522, 1328, 518, 1328, 522, 428, 518, 432, 518, 1330, 522, 1324, 522, 1328, 518, 432, 518, 428, 522, 428, 522, 1330, 518, 1330, 522, 428, 518, 432, 518, 432, 518, 1328, 522, 428, 518, 434, 518, 432, 518, 1328, 522, 428, 518, 432, 518, 434, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 432, 518, 432, 518, 428, 522, 428, 522, 1328, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1330, 516, 432, 518, 1328, 522, 428, 522, 428, 518, 432, 518, 432, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 518, 1330, 522, 1330, 518, 1328, 518, 1328, 522, 1328, 518, 428, 522, 428, 522, 428, 522, 1328, 518, 1328, 522, 1324, 522, 428, 496}; // UNKNOWN F2782E6C + +//temp 16 +uint16_t temp_16[211] = {3850, 1828, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 434, 516, 1328, 524, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 1328, 518, 432, 518, 1328, 522, 428, 522, 1324, 522, 1328, 518, 1328, 522, 1324, 522, 430, 522, 428, 522, 1326, 520, 1330, 518, 432, 518, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 430, 522, 428, 518, 432, 518, 428, 522, 1328, 518, 1330, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 430, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 518, 432, 518, 428, 522, 430, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 432, 518, 428, 522, 428, 522, 1328, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 428, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 430, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 1328, 488}; // UNKNOWN D087BFAB + +//tmep_17 +uint16_t temp_17[211] = {3852, 1830, 522, 428, 520, 1328, 518, 432, 518, 1332, 516, 434, 516, 1328, 520, 432, 518, 1328, 522, 428, 520, 1328, 522, 428, 522, 1328, 518, 1332, 518, 432, 516, 1328, 520, 432, 518, 1328, 522, 1328, 522, 1328, 518, 1332, 518, 432, 518, 432, 518, 1328, 520, 1328, 522, 428, 522, 428, 522, 428, 522, 432, 518, 1328, 522, 428, 522, 432, 518, 432, 518, 432, 518, 1328, 522, 432, 518, 432, 518, 432, 518, 432, 518, 1332, 518, 1328, 522, 1328, 522, 428, 522, 428, 522, 428, 522, 1328, 522, 1328, 516, 432, 522, 428, 522, 428, 522, 1328, 518, 434, 520, 428, 522, 1328, 518, 1328, 522, 432, 518, 432, 518, 432, 516, 434, 516, 432, 518, 432, 516, 432, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1328, 520, 428, 522, 428, 520, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 432, 518, 432, 518, 434, 516, 1328, 522, 432, 516, 432, 518, 1328, 522, 428, 522, 428, 522, 428, 522, 432, 518, 432, 516, 432, 518, 432, 518, 432, 522, 428, 522, 1326, 518, 1328, 522, 1328, 522, 1328, 522, 1324, 522, 432, 518, 432, 516, 434, 516, 432, 522, 1324, 522, 432, 518, 1328, 470}; // UNKNOWN B58B878D + +//temp_18 +uint16_t temp_18[211] = {3852, 1828, 520, 428, 522, 1328, 522, 428, 522, 1324, 522, 428, 520, 1328, 522, 430, 520, 1324, 522, 428, 522, 1328, 522, 428, 522, 1324, 526, 1324, 522, 428, 522, 1326, 526, 428, 522, 1324, 522, 1328, 522, 1324, 528, 1324, 520, 430, 520, 428, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1328, 522, 428, 522, 428, 522, 428, 522, 1324, 526, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1328, 522, 1324, 522, 1328, 522, 428, 522, 428, 524, 426, 522, 1324, 526, 1322, 522, 428, 522, 428, 522, 428, 522, 1328, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 430, 520, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 526, 424, 526, 424, 526, 424, 526, 424, 526, 424, 526, 424, 526, 424, 526, 424, 526, 428, 522, 424, 526, 428, 522, 1324, 522, 428, 522, 428, 522, 1328, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 526, 1324, 522, 1324, 526, 428, 522, 428, 522, 424, 526, 1324, 520, 1328, 522, 428, 522, 1324, 466}; // UNKNOWN CAE63F5 + +//temp_19 +uint16_t temp_19[211] = {3848, 1830, 518, 432, 518, 1328, 522, 428, 522, 1328, 518, 434, 518, 1328, 522, 428, 522, 1328, 518, 434, 516, 1328, 522, 428, 522, 1328, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 1328, 522, 1328, 518, 1330, 520, 430, 522, 428, 518, 1328, 522, 1328, 516, 434, 516, 432, 518, 432, 518, 432, 518, 1328, 522, 428, 522, 428, 522, 428, 522, 428, 522, 430, 522, 1324, 522, 432, 518, 432, 518, 428, 522, 1328, 522, 1324, 522, 1328, 522, 428, 522, 428, 518, 434, 518, 1328, 522, 1328, 518, 432, 518, 432, 518, 432, 518, 1328, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 428, 522, 428, 522, 428, 516, 432, 518, 432, 518, 432, 518, 432, 518, 432, 518, 432, 518, 432, 518, 428, 522, 428, 522, 428, 522, 1328, 518, 432, 518, 432, 518, 432, 518, 432, 518, 432, 516, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 430, 520, 1328, 518, 434, 516, 432, 518, 1328, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 1328, 522, 1324, 522, 1328, 522, 1324, 522, 428, 520, 430, 522, 428, 522, 428, 522, 428, 522, 1328, 518, 1328, 496}; // UNKNOWN C7DE9FF3 + +//temp_20 +uint16_t temp_20[211] = {3854, 1828, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 432, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1330, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1330, 518, 1328, 522, 1324, 522, 1328, 522, 428, 518, 432, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 428, 518, 428, 522, 430, 522, 1328, 522, 428, 518, 428, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 524, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 1328, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 430, 520, 430, 522, 428, 518, 1328, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 430, 520, 430, 516, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 430, 522, 1324, 522, 1328, 466}; // UNKNOWN DF5C87E3 + +//temp_21 +uint16_t temp_21[211] = {3854, 1828, 518, 432, 518, 1330, 522, 428, 522, 1324, 522, 428, 520, 1324, 522, 428, 524, 1324, 522, 430, 522, 1328, 522, 428, 522, 1324, 524, 1324, 522, 430, 522, 1324, 524, 428, 522, 1328, 522, 1324, 522, 1324, 526, 1324, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 430, 520, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1326, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 430, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 430, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 430, 520, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 424, 526, 424, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 430, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 520, 1326, 522, 428, 522, 428, 524, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 526, 1324, 522, 1324, 522, 1328, 522, 428, 522, 424, 522, 428, 522, 428, 522, 1324, 526, 1324, 522, 1324, 468}; // UNKNOWN C7E6BD1B + +//temp_22 +uint16_t temp_22[211] = {3850, 1832, 518, 432, 518, 1328, 518, 432, 518, 1330, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 432, 518, 1328, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 1328, 522, 1324, 522, 1328, 518, 428, 522, 428, 522, 1330, 520, 1324, 522, 428, 522, 428, 522, 428, 518, 434, 518, 1328, 522, 428, 522, 428, 518, 434, 518, 1328, 522, 1326, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 430, 522, 1324, 522, 1328, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 524, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 430, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 428, 522, 430, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 524, 424, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1326, 522, 1324, 522, 1330, 522, 428, 518, 428, 522, 428, 522, 1324, 526, 1324, 522, 1324, 522, 1330, 462}; // UNKNOWN 1F099983 + +//temp_23 +uint16_t temp_23[211] = {3846, 1832, 518, 432, 518, 1330, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 428, 522, 1328, 518, 432, 518, 1328, 518, 1330, 522, 428, 522, 1324, 522, 428, 522, 1324, 524, 1328, 518, 1328, 524, 1324, 522, 428, 524, 428, 522, 1324, 522, 1330, 518, 430, 522, 428, 522, 430, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 428, 522, 1328, 518, 432, 518, 428, 522, 1328, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 1324, 522, 428, 522, 428, 524, 428, 522, 1324, 522, 428, 522, 428, 522, 1326, 522, 1328, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 428, 522, 428, 522, 430, 518, 432, 518, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 518, 434, 518, 428, 522, 428, 522, 430, 522, 428, 518, 432, 518, 428, 522, 428, 522, 1324, 522, 430, 522, 428, 522, 1326, 522, 428, 522, 428, 518, 434, 518, 430, 522, 428, 522, 428, 522, 428, 522, 428, 518, 434, 518, 1330, 518, 1330, 522, 1324, 522, 1324, 522, 1328, 518, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 430, 496}; // UNKNOWN 47D3C0CA + +//temp_24 +uint16_t temp_24[211] = {3850, 1828, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 1330, 522, 430, 516, 1330, 522, 428, 518, 1328, 522, 1324, 522, 1328, 518, 1330, 522, 428, 518, 432, 518, 1330, 522, 1324, 522, 428, 522, 428, 522, 428, 518, 432, 518, 1330, 518, 434, 516, 430, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 1326, 522, 430, 522, 428, 522, 1326, 522, 1326, 522, 1324, 524, 428, 522, 428, 522, 428, 522, 1326, 522, 1324, 522, 428, 522, 430, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 430, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 430, 522, 428, 522, 428, 522, 424, 522, 1330, 522, 430, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 430, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 1328, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 524, 428, 522, 428, 490}; // UNKNOWN D86E332 + +//temp_25 +uint16_t temp_25[211] = {3852, 1828, 522, 428, 518, 1330, 522, 428, 522, 1326, 522, 428, 522, 1324, 522, 428, 524, 1324, 522, 430, 522, 1326, 522, 428, 524, 1324, 524, 1324, 522, 430, 522, 1324, 522, 428, 522, 1326, 522, 1326, 522, 1324, 526, 1324, 522, 428, 522, 424, 522, 1324, 526, 1324, 522, 428, 522, 424, 522, 428, 522, 428, 522, 1324, 522, 428, 524, 428, 522, 428, 522, 424, 524, 1324, 528, 424, 522, 1324, 526, 424, 524, 428, 522, 1326, 522, 1326, 522, 1324, 526, 424, 522, 430, 522, 428, 522, 1326, 522, 1326, 522, 430, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 424, 522, 1324, 526, 1324, 522, 428, 522, 424, 522, 428, 522, 428, 522, 430, 522, 424, 522, 428, 522, 430, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 526, 424, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 1324, 528, 1324, 522, 1324, 522, 428, 524, 428, 522, 428, 522, 424, 526, 1324, 522, 428, 522, 424, 468}; // UNKNOWN CAAEB07A + +//temp_26 +uint16_t temp_26[211] = {3852, 1828, 522, 430, 518, 1328, 522, 428, 518, 1330, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1326, 522, 428, 522, 1324, 522, 1328, 518, 428, 522, 1330, 518, 432, 518, 1328, 518, 1330, 522, 1324, 522, 1326, 522, 428, 522, 428, 522, 1326, 522, 1326, 522, 428, 522, 428, 522, 428, 522, 428, 518, 1330, 522, 428, 518, 432, 518, 428, 522, 1324, 522, 1328, 518, 430, 522, 1330, 518, 432, 518, 428, 522, 1328, 518, 1330, 522, 1324, 522, 428, 522, 428, 518, 430, 522, 1326, 522, 1328, 522, 430, 518, 428, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 1324, 522, 1330, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 430, 522, 1324, 522, 428, 522, 428, 522, 1326, 522, 430, 522, 424, 522, 428, 522, 428, 524, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 1324, 522, 1326, 522, 1330, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1326, 522, 1326, 522, 428, 524, 428, 466}; // UNKNOWN DC41FDA + +//temp_27 +uint16_t temp_27[211] = {3852, 1828, 522, 428, 522, 1324, 522, 430, 522, 1326, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1326, 522, 428, 522, 1324, 522, 1330, 522, 428, 518, 1330, 522, 424, 522, 1326, 522, 1326, 526, 1326, 522, 1326, 522, 428, 522, 428, 518, 1326, 526, 1324, 522, 428, 518, 428, 522, 430, 522, 428, 522, 1326, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 1326, 522, 1324, 522, 428, 522, 430, 520, 1326, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 430, 522, 1324, 522, 1326, 520, 430, 522, 430, 522, 424, 526, 1324, 522, 428, 522, 426, 522, 1324, 526, 1324, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 430, 522, 428, 522, 1324, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 424, 526, 1324, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 430, 522, 424, 526, 424, 522, 430, 522, 1324, 524, 1324, 526, 1324, 522, 1326, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 430, 522, 424, 522, 1326, 526, 424, 468}; // UNKNOWN B17C29D8 + +//temp_28 +uint16_t temp_28[211] = {3852, 1828, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 430, 522, 1328, 518, 428, 522, 1328, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 1328, 518, 430, 520, 1328, 522, 428, 518, 1330, 522, 1324, 522, 1330, 522, 1324, 522, 430, 522, 428, 522, 1324, 522, 1328, 518, 432, 518, 428, 522, 428, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 428, 522, 1326, 522, 428, 522, 1324, 524, 1328, 522, 428, 518, 430, 522, 1328, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 428, 522, 428, 518, 430, 522, 1328, 522, 428, 518, 432, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 430, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 1328, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 430, 520, 1328, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 428, 522, 430, 516, 428, 524, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1326, 522, 1324, 522, 1330, 522, 1324, 522, 1324, 524, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 1328, 522, 424, 496}; // UNKNOWN C8FA11C8 + +//temp_29 +uint16_t temp_29[211] = {3850, 1828, 522, 428, 522, 1324, 522, 428, 522, 1328, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 1328, 522, 428, 522, 1326, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 1330, 522, 424, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 430, 522, 428, 522, 428, 524, 1324, 522, 1324, 522, 1328, 522, 428, 522, 424, 522, 1330, 522, 1324, 522, 1324, 528, 424, 522, 428, 522, 428, 522, 1324, 526, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 524, 428, 520, 428, 522, 424, 526, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 430, 522, 428, 522, 428, 522, 428, 522, 424, 526, 424, 522, 430, 522, 428, 522, 428, 522, 1324, 522, 1324, 528, 1324, 522, 1324, 522, 1324, 526, 424, 522, 430, 522, 428, 522, 430, 522, 1324, 522, 1324, 528, 428, 462}; // UNKNOWN B1844700 + +//temp 30 +uint16_t temp_30[211] = {3850, 1828, 522, 428, 522, 1324, 522, 428, 522, 1330, 518, 428, 522, 1330, 518, 434, 518, 1328, 518, 432, 518, 1330, 522, 428, 522, 1324, 522, 1328, 518, 432, 518, 1328, 522, 428, 522, 1324, 522, 1330, 516, 1330, 522, 1326, 522, 428, 522, 428, 522, 1324, 522, 1330, 518, 428, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 1324, 522, 1330, 518, 1328, 522, 428, 518, 434, 518, 1330, 522, 1324, 522, 1328, 518, 434, 518, 428, 522, 428, 522, 1328, 518, 1328, 522, 428, 522, 428, 518, 434, 518, 1328, 522, 428, 522, 430, 516, 434, 518, 1328, 522, 428, 522, 428, 518, 432, 518, 432, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 434, 518, 428, 522, 1330, 518, 432, 518, 430, 520, 428, 522, 430, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 432, 518, 428, 522, 1328, 518, 434, 518, 432, 518, 1328, 522, 428, 518, 432, 518, 432, 518, 428, 524, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 1328, 522, 1324, 522, 1330, 522, 1324, 522, 1330, 516, 434, 518, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 428, 466}; // UNKNOWN 560C4500 + + +//mode_dry +uint16_t mode_dry[211] = {3854, 1828, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 1330, 522, 1324, 522, 1324, 522, 430, 522, 428, 522, 1330, 522, 1324, 522, 428, 522, 430, 522, 428, 522, 424, 522, 1328, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 430, 522, 428, 522, 428, 522, 430, 522, 428, 522, 430, 520, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 428, 522, 428, 522, 1324, 526, 1324, 522, 428, 522, 428, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 424, 526, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 526, 424, 522, 1328, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 528, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 1328, 522, 1326, 520, 1328, 522, 428, 522, 428, 522, 424, 526, 424, 522, 428, 522, 428, 522, 428, 492}; // UNKNOWN 80C14556 + +//mode_auto +uint16_t mode_auto[211] = {3850, 1830, 520, 430, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1330, 522, 430, 518, 1328, 522, 1324, 522, 428, 522, 1324, 522, 428, 522, 1328, 522, 1324, 522, 1324, 522, 1330, 522, 428, 518, 430, 522, 1330, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 430, 522, 1324, 522, 428, 522, 428, 522, 424, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 526, 1324, 522, 428, 522, 428, 522, 430, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 526, 1324, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 424, 522, 430, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1324, 526, 1324, 522, 1324, 522, 1328, 522, 428, 522, 424, 526, 424, 522, 1330, 522, 1324, 522, 428, 522, 428, 494}; // UNKNOWN 4949571E + +//mode_cool +uint16_t mode_cool[211] = {3850, 1832, 518, 432, 518, 1328, 522, 428, 518, 1328, 522, 428, 522, 1328, 518, 428, 522, 1328, 518, 434, 518, 1328, 522, 428, 518, 1328, 522, 1328, 518, 432, 518, 1328, 522, 428, 518, 1328, 522, 1324, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 1330, 516, 434, 518, 432, 518, 428, 522, 428, 522, 1328, 518, 432, 518, 428, 522, 428, 522, 428, 522, 1328, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 1328, 518, 1328, 522, 428, 522, 428, 518, 432, 518, 1328, 522, 1324, 522, 428, 522, 428, 522, 430, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 434, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 518, 434, 516, 430, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 1330, 522, 428, 522, 428, 518, 434, 518, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 432, 518, 428, 522, 428, 522, 1324, 522, 1330, 522, 1324, 522, 1324, 522, 1328, 522, 428, 522, 428, 518, 428, 522, 1330, 522, 1324, 522, 428, 522, 428, 492}; // UNKNOWN 74DA8AF6 + +//swing_toggle +uint16_t swing_toggle[211] = {3850, 1832, 518, 432, 518, 1328, 522, 428, 518, 1328, 522, 428, 522, 1324, 522, 428, 522, 1328, 518, 434, 516, 1328, 522, 428, 522, 1324, 522, 1328, 518, 432, 518, 1328, 522, 428, 522, 1324, 522, 1324, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 1328, 518, 434, 518, 428, 522, 428, 522, 428, 522, 1326, 522, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 1324, 522, 1324, 522, 1328, 522, 428, 522, 428, 518, 428, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 1328, 522, 424, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 522, 428, 518, 428, 522, 428, 522, 428, 522, 1328, 522, 424, 522, 1328, 522, 1324, 522, 428, 522, 428, 522, 430, 522, 428, 518, 428, 524, 428, 522, 430, 522, 428, 522, 428, 522, 1324, 522, 1328, 522, 1324, 522, 1324, 522, 1328, 522, 428, 522, 428, 522, 428, 518, 428, 522, 1328, 522, 428, 522, 428, 492}; // UNKNOWN 74C366AC + + diff --git a/hardware/20180123_212823.jpg b/hardware/20180123_212823.jpg new file mode 100644 index 0000000..761dcc3 Binary files /dev/null and b/hardware/20180123_212823.jpg differ diff --git a/hardware/ir-blaster-2.jpg b/hardware/ir-blaster-2.jpg new file mode 100644 index 0000000..d3aca44 Binary files /dev/null and b/hardware/ir-blaster-2.jpg differ diff --git a/hardware/ir-blaster.jpg b/hardware/ir-blaster.jpg new file mode 100644 index 0000000..f476f4e Binary files /dev/null and b/hardware/ir-blaster.jpg differ diff --git a/hardware/pir-schematic.jpg b/hardware/pir-schematic.jpg new file mode 100644 index 0000000..cba5fed Binary files /dev/null and b/hardware/pir-schematic.jpg differ diff --git a/hardware/power-supply-and-ir-blaster-schematic.jpg b/hardware/power-supply-and-ir-blaster-schematic.jpg new file mode 100644 index 0000000..5523a8d Binary files /dev/null and b/hardware/power-supply-and-ir-blaster-schematic.jpg differ