{"id":23113740,"url":"https://github.com/dewenni/esp32-jarolift-controller","last_synced_at":"2025-05-06T21:10:02.859Z","repository":{"id":268168563,"uuid":"903525295","full_name":"dewenni/ESP32-Jarolift-Controller","owner":"dewenni","description":"Controlling Jarolift(TM) TDEF shutters via ESP32 and CC1101 - MQTT - Home Assistant","archived":false,"fork":false,"pushed_at":"2025-04-15T07:52:30.000Z","size":32698,"stargazers_count":45,"open_issues_count":3,"forks_count":3,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-05-06T21:09:31.933Z","etag":null,"topics":["alexa","cc1101","esp32","gateway","hass","home-assistant","homeassistant","homekit","jarolift","mqtt","smarthome","tdef","w5500"],"latest_commit_sha":null,"homepage":"https://dewenni.github.io/ESP32-Jarolift-Controller/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dewenni.png","metadata":{"files":{"readme":"README.md","changelog":"changeNew.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"dewenni","custom":"https://paypal.me/toensjost"}},"created_at":"2024-12-14T20:28:52.000Z","updated_at":"2025-05-05T20:58:09.000Z","dependencies_parsed_at":"2025-02-13T18:21:55.487Z","dependency_job_id":"4a84ec5a-54ee-43cc-987f-2efd077816ad","html_url":"https://github.com/dewenni/ESP32-Jarolift-Controller","commit_stats":null,"previous_names":["dewenni/esp32-jarolift-controller"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP32-Jarolift-Controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP32-Jarolift-Controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP32-Jarolift-Controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP32-Jarolift-Controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dewenni","download_url":"https://codeload.github.com/dewenni/ESP32-Jarolift-Controller/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252769425,"owners_count":21801378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alexa","cc1101","esp32","gateway","hass","home-assistant","homeassistant","homekit","jarolift","mqtt","smarthome","tdef","w5500"],"created_at":"2024-12-17T03:13:32.835Z","updated_at":"2025-05-06T21:10:02.852Z","avatar_url":"https://github.com/dewenni.png","language":"HTML","funding_links":["https://github.com/sponsors/dewenni","https://paypal.me/toensjost"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg style=\"width: 100px;\" src=\"./Doc/ESP32_Jarolift_Controller_Logo.svg\"\u003e\n\n\u003ch3 style=\"text-align: center;\"\u003eESP32-Jarolift-Controller\u003c/h3\u003e\n\u003c/div\u003e\n\n-----\n\n**[🇩🇪 Deutsche Version der Beschreibung](README_DE.md)**\n\n-----\n\n\u003cdiv align=\"center\"\u003e\n\n[![Current Release](https://img.shields.io/github/release/dewenni/ESP32-Jarolift-Controller.svg)](https://github.com/dewenni/ESP32-Jarolift-Controller/releases/latest)\n![GitHub Release Date](https://img.shields.io/github/release-date/dewenni/ESP32-Jarolift-Controller)\n![GitHub last commit](https://img.shields.io/github/last-commit/dewenni/ESP32-Jarolift-Controller)\n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/dewenni/ESP32-Jarolift-Controller/total?label=downloads%20total\u0026color=%23f0cc59)\n![GitHub Downloads (all assets, latest release)](https://img.shields.io/github/downloads/dewenni/ESP32-Jarolift-Controller/latest/total?label=downloads%20latest%20Release\u0026color=%23f0cc59)\n\n![GitHub watchers](https://img.shields.io/github/watchers/dewenni/ESP32-Jarolift-Controller?style=social)\n[![GitHub stars](https://img.shields.io/github/stars/dewenni/ESP32-Jarolift-Controller.svg?style=social\u0026label=Star)](https://github.com/dewenni/ESP32-Jarolift-Controller/stargazers/)\n\n[![Stargazers over time](http://starchart.cc/dewenni/ESP32-Jarolift-Controller.svg?background=%23ffffff00\u0026axis=%236c81a6\u0026line=%236c81a6)](https://github.com/dewenni/ESP32-Jarolift-Controller/stargazers/)\n\n\u003c/div\u003e\n\n-----\n\n\u003cdiv align=\"center\"\u003e\nIf you like this project, feel free to push the \u003cb\u003e[Star ⭐️]\u003c/b\u003e button and click \u003cb\u003e[Watch 👁]\u003c/b\u003e to stay updated.\n\u003cbr\u003e\u003cbr\u003e\nAnd if you'd like to support my work, you can also\u003cp\u003e\n\n[![Sponsor](https://img.shields.io/badge/Sponsor%20me%20on-GitHub-%23EA4AAA.svg?style=for-the-badge\u0026logo=github)](https://github.com/sponsors/dewenni)\n\n\u003c/div\u003e\n\n-----\n\n# ESP32-Jarolift-Controller\n\nControlling Jarolift(TM) TDEF 433MHz radio shutters via **ESP32** and **CC1101** Transceiver Module in asynchronous mode.\n\n## Features\n\n- **Web-based User Interface (WebUI):**  \nA modern, mobile-friendly interface for easy configuration and control.\n\n- **MQTT Support:**  \nCommunication and control of devices are handled via MQTT, a lightweight and reliable messaging protocol.\n\n- **HomeAssistant Integration:**  \nAutomatic device discovery in HomeAssistant through MQTT Auto Discovery for seamless integration.\n\n- **Support for up to 16 Roller Shutters:**  \nControl up to 16 roller shutters with ease, all managed through the WebUI and MQTT.\n\n- **Support for up to 6 Roller Shutter Groups:**  \ndefine shutter groups to control several shutters at once\n\n- **Timer function**  \nstand alone timer function with fixed time, sunrise or sunset as trigger.\n\n### WebUI-Demo\n\nFor a first impression of the functions and the WebUI, a limited demo is also available.  \nThis can be accessed via the following link: [WebUI-DEMO](https://dewenni.github.io/ESP32-Jarolift-Controller/)\n\nExperimental version.\nUse at your own risk. For private/educational use only. (Keeloq algorithm licensed only to TI Microcontrollers)\nThis project is not affiliated in any way with the vendor of the Jarolift components.\nJarolift is a Trademark of Schöneberger Rolladenfabrik GmbH \u0026 Co. KG\n\nThis version is for an ESP32 and is based on ideas and code from [madmartin/Jarolift_MQTT](https://github.com/madmartin/Jarolift_MQTT).\n\n### Project Homepage, Forum and Author\n\nThe original control code was written from Steffen Hille in Nov, 2017\n\nThe project home is here: [Project Home](http://www.bastelbudenbuben.de/2017/04/25/protokollanalyse-von-jarolift-tdef-motoren/)\n\n-----\n\n# Table of Contents\n\n- [Hardware](#hardware)\n  - [ESP32](#esp32)\n  - [CC1101 433Mhz](#cc1101-433mhz)\n  - [Optional: Ethernet Module W5500](#optional-ethernet-module-w5500)\n- [Getting started](#getting-started)\n  - [Platform-IO](#platform-io)\n  - [ESP-Flash-Tool](#esp-flash-tool)\n  - [OTA-Updates](#ota-updates)\n  - [Setup-Mode](#setup-mode)\n  - [Configuration](#configuration)\n  - [Filemanager](#filemanager)\n  - [Teach-in of roller shutters](#teach-in-of-roller-shutters)\n  - [Migration](#migration)\n- [WebUI](#webui)\n  - [Channels](#channels)\n  - [Groups](#groups)\n  - [Timer](#timer)\n- [MQTT](#mqtt)\n  - [Commands](#commands)\n  - [Status](#status)\n  - [Home Assistant](#home-assistant)\n- [Optional Communication](#optional-communication)\n  - [WebUI-Logger](#webui-logger)\n  - [Telnet](#telnet)\n\n-----\n\n# Hardware\n\nyou can find working setups from users of this project here: [working setups](https://github.com/dewenni/ESP32-Jarolift-Controller/discussions/34)\n\n## ESP32\n\nThe firmware is currently only available for the following chips:\n\n**Standard ESP32 (Xtensa® 32-bit LX6, 4MB Flash)**\n\n- `ESP32-WROOM-32 series` (e.g. WROOM, WROOM-32D, WROOM-32U)\n- `ESP32-WROVER series` (e.g. WROVER, WROVER-B, WROVER-IE)\n- `ESP32-MINI series`\n- `ESP32-S2 series`\n- `ESP32-S3 series`\n- `ESP32-C3 series`\n\n**Not compatible:**\n\n- `ESP32-H series`\n- `YB-ESP32-S3-ETH`\n- `WT32-ETH01`\n\n## CC1101 433Mhz\n\n**compatible and tested products:**\n\n- `EBYTE E07-M1101D-SMA V2.0`\n- `CC1101 433MHZ Green`\n\n\na standard SPI GPIO configuration is:\n\n| CC1101-Signal| ESP-GPIO|\n|--------------|---------|\n| VCC          | --      |\n| GND          | --      |\n| GD0          | 21      |\n| GD2          | 22      |\n| SCK/CLK      | 18      |\n| MOSI         | 23      |\n| MISO         | 19      |\n| CS(N)        | 5       |\n\n\u003cimg style=\"width: 500px;\" src=\"./Doc/ESP32_CC1101_Steckplatine.png\"\u003e\n\n\u003cimg style=\"width: 500px;\" src=\"./Doc/ESP32_CC1101_Schaltplan.png\"\u003e \n\n\u003cimg style=\"width: 500px;\" src=\"./Doc/hw_1.png\"\u003e\n\nexample with ESP32-Mini and CC1101\n\n\u003cimg style=\"width: 500px;\" src=\"./Doc/hw_2.png\"\u003e\n\nexample for direct replacement with ESP32-Mini and the custom board from M. Maywald\n\n## Optional: Ethernet Module W5500\n\nIt is also possible to connect a W5500 Ethernet module to the Board or a generic ESP32.  \n\n**compatible and tested products:**\n\n- `W5500` HanRun (HR911105A)\n- `W5500 Lite` HanRun (HR961160C)\n\n\n\u003e [!IMPORTANT]\n\u003e The connection cable should be as short as possible (approx 10cm)\n\nExample for generic ESP32-Mini (Standard SPI port is used by CC1101)\n\n| Signal| GPIO |\n|-------|------|\n| CLK   | 25   |\n| MOSI  | 26   |\n| MISO  | 27   |\n| CS    | 32   |\n| INT   | 33   |\n| RST   | 17   |\n\n-----\n\n# Getting started\n\n## Platform-IO\n\nThe software is created with [Visual Studio Code](https://code.visualstudio.com) and the [pioarduino-Plugin](https://github.com/pioarduino/pioarduino-vscode-ide).  \nAfter installing the software you can clone the project from GitHub or you can download it as zip and open it in PlatformIO.\nThen adapt the `upload_port` and corresponding settings in `platformio.ini` to your USB-to-serial Adapter and upload the code to the ESP.\n\n\u003e [!NOTE]\n\u003e Python must also be installed in order to fully compile the project. The scripts folder contains, for instance, scripts for creating the web pages that are called when the project is compiled.\n\n## ESP-Flash-Tool\n\nIn the releases, you can find also the binary of the Software. If you don´t want to use PlatformIO, you can also use the `esp32_jarolift_controller_flash_vx.x.x.bin` file and flash it directly on the ESP. This bin-file is already a merge with bootloader.bin, partitions.bin and the application.bin. You can flash this image an the ESP at address 0x00.  \n\n**Windows**  \nThere are several tools available to flash binaries to the ESP.  \nOne of them is [espressif-flash-download-tool](https://www.espressif.com/en/support/download/other-tools)\n\n**macOS/Linux**  \nfor Mac it is hard to find a tool with a graphical UI, but you can simple use the esptool.py:\n\n1. open Terminal\n2. install esptool: `pip install esptool`  \n3. optional get the install path: `which esptool.py`  \n4. set path: `export PATH=\"$PATH:/\u003cpath\u003e/esptool.py\"` (\u003c- change \u003cpath\u003e with result from 3.)\n5. goto path where the bin file is located\n6. get Device String: `ls /dev/tty* | grep usb` (use this in next Step for \u003cUPLOAD-PORT\u003e)\n7. upload: `esptool.py -p \u003cUPLOAD-PORT\u003e write_flash 0x00 esp32_jarolift_controller_flash_vx.x.x.bin`  \n\n## OTA-Updates\n\n### local Web OTA-Update\n\nThe first option is, to download the ota Update File from the latest release at GitHub.\nAfter you have downloaded this to your computer, you can perform a update with the embedded WebUI OTA-Update.\nYou can find the update function in the \"Tools\" Tab of the WebUI.\n\nhere you can choose \"Firmware\" and select the `esp32_jarolift_controller_ota_update_vx.x.x.bin` file from the release section\n\n![ota-1](Doc/webUI_ota.gif)\n\n### GitHub OTA-Update\n\nsince Version 1.4.0 it is also possible to update the controller directly in the WebUI without downloading the .bin file before.\nIf you click on the Version info on the bottom left, a dialog will open. If there is a new version available, you can directly initiate the update here. It will then automatically download and install the latest release from github!\n\n![ota-2](Doc/github_ota.gif)\n\n### PlatformIO OTA-Update\n\nBut it is also possible to download the software wireless with platformio.\nYou only have to change the `upload_port` settings in `platformio.ini`\n\nThere are two predefined Options:\n\n- OPTION 1: direct cable upload\n- OPTION 2: wireless OTA Update\n\n## Setup Mode\n\nA `Setup Mode` is available. Setup mode is activated when the ESP is restarted **5** times.\nA maximum of 5 seconds may elapse after each restart.\n\nExample: restart 1/5 - wait 2s - restart 2/5 - wait 2s - restart 3/5 - wait 2s - restart 4/5 - wait 2s - restart /5/5 =\u003e Setup-Mode\n\nThe \"Setup Mode\" will also activated if there is no valid wifi and no valid ETH connection configured.\n\nIf the ESP goes into \"Setup Mode\", it will automatically create a own network access point with ssid  \n📶 `\"ESP32_Jarolift\"`  \nAfter you are connected to this network, you can open the webUI on ip-address  \n**\"\u003chttp://192.168.4.1\u003e\"**\n\n## Configuration\n\nHere you can setup all the configuration that fits to your heating system and your infrastructure.\n\n- **WiFi**  \nenter your WiFi credentials to connect the ESP to your network\n\n- **Ethernet W5500**  \nuse Ethernet connection based on W5500 to connect the ESP to your network\n\n- **Authentication**  \nyou can activate the authentication feature and configure user and password.\n\n- **NTP Server**  \nthe ESP can connect to a NTP server to get the right Time information.\nThe default Time-Zone should fit if you are located in germany. Otherwise you can change it manually\n\n- **MQTT**  \nhere you can activate the MQTT communication and enter mandatory parameters\nAll the parameters are mandatory!\n\n- **GPIO**  \nHere you can configure the GPIO to connect the CC1101 to the ESP32\n\n- **Jarolift**  \nhere you have to configure some Jarolift specific protocol settings\n\n- **Shutter**  \nhere you can configure each shutter with individual name\n\n- **Group**  \nhere you can define optional shutter-groups\n\n- **Remotes**  \n\n  You can register some of your existing jarolift remote controls here.\n  This can be helpful if you want to recognize and react on the commands of these remote controls.\n\n  You can assign any name you like to the remote control. This is also output in the MQTT message.\n\n  The upper 6 digits of the 8-digit serial number must be entered for the serial number. The serial number can be found in the logbook by pressing the remote control near the controller. A message like this should then appear in the log:  \n  `I (220364) JARO: received remote signal | serial: 0c7c00 | ch: 3 | cmd: 0x8, | rssi: -96 dbm`  \n  \n  With the help of the bit mask and the dialogue behind it, it is then possible to define which shutters are assigned to this remote control, as with the groups. The status of these shutters is then updated depending on the signal received.\n  This means that the status of the roller shutters can be updated even if they are not operated via the ESP controller but via the original remote control.\n  \n  But please be aware that this will not be 100% reliable.\n\n- **Language**  \nThere are two languages available. Choose what you prefer.\nThe language take effect on the webUI and also on the mqtt messages!\n\n\u003e [!NOTE]\n\u003e All settings are automatically saved when changes are made\n\n\u003e [!IMPORTANT]\n\u003e Changes to GPIO or Jarolift settings require a restart!\n\n![weubui-settings](Doc/webUI_settings.png)\n\n## Filemanager\n\nthere is also a builtin file manager to open (show), download (export) and upload (import) the configuration file.\nThe configuration is stored in the ```config.json``` file. To backup and restore the configuration you can download and upload this file.\n\n![filemanager](/Doc/webUI_tools.png)\n\n## Teach-in of roller shutters\n\nThere are basically several ways to teach-in a roller shutter.\nThere are the same options as when using the original remote controls.\n\n### Teach-in by pressing the teach-in button on the motor\n\nEvery TDEF motor has a button for programming new remote controls.\nIf you press this button, the motor confirms the learning process with a vibration.\n\n\u003e [!TIP]\n\u003e If you cannot reach the button, you can also switch the motor off for a few seconds. For example, by briefly switching off the fuse.\n\nNow press the corresponding ‘Learn button’ in the WebUI in the settings for the respective roller shutter within 5 seconds.\nIf the roller shutter has been successfully programmed, the motor will vibrate again.\n\n### Programming by copying an existing radio code\n\nAlternatively, you can also use an already programmed remote control and ‘copy’ it.\nTo do this, press the UP and DOWN buttons simultaneously on the already programmed transmitter. Then, on this transmitter, press the STOP button\neight times on this transmitter. The motor will vibrate briefly to confirm.\n\nNow press the corresponding ‘Learn button’ in the WebUI in the settings for the respective roller shutter within 5 seconds.\nIf the roller shutter has been successfully learnt, the motor will vibrate again.\n\n## Migration\n\nIt is possible to migrate from a latest version of [madmartin/Jarolift_MQTT](https://github.com/madmartin/Jarolift_MQTT) to this project.\n\n### Get a working Setup of this Project\n\n- get a working version of this project up and running\n- set the right GPIO settings for CC1101\n- set the Master Keys\n- set the Log-Level in the Logger of the WebUI to \"Debug\"\n\n### Get the right serial number\n\n- execute a shutter UP command of \"old\" Setup `(madmartin/Jarolift_MQTT)` for **channel 0!**.\n- now you should see a debug message of this command in the Logger of the WebUI.  \nIt contains a message with `I (220364) JARO: received remote signal | serial: 0c7c00 | ch: 3 | cmd: 0x8, | rssi: -96 dbm` \nThis **serial** number should be the same as configured in the WebUI of the \"old\" setup, but now we are sure to have the right one.\n- set this serial in the WebUI of this project\n\n### Get the right Device Counter\n\n- read the actual device counter of the \"old\" setup from the System Page of the WebUI.\n- set the same Device Counter value in the settings of this project.\n\n### define the Shutter\n\n- define the same shutter as in the \"old\" setup and activate them.\n\nfinished!  \nnow restart the ESP and test it.  \nAfter restarting, first check whether the device counter has been read correctly from the EEPROM. Only continue testing if this is the case.\nIf everything done correct, all shutters should work like before. If not, some setting is wrong or you haven´t used the latest version of `(madmartin/Jarolift_MQTT)`. In that case I would prefer to set a new Serial number, reset the Device Counter und learn the shutter again.\n\n-----\n\n# WebUI\n\nThe WebUI is responsive and also offers a mobile layout.\n\n![weubui_dash](Doc/webUI_1.png)\n(Desktop Version)\n\n\u003cimg style=\"display: inline;\n  margin-right: 50px;\n  width: 200px;\" src=\"./Doc/webUI_mobile_1.png\"\u003e\n\u003cimg style=\"display: inline;\n  margin-right: 50px;\n  width: 200px;\" src=\"./Doc/webUI_mobile_2.png\"\u003e\n\n(Mobile Version)\n\n## Channels\n\nOnce the roller shutters have been configured and activated, they can also be controlled directly in the WebUI.\n\n![webUI_shutter](/Doc/webUI_shutter.png)\n\n## Groups\n\nThe groups that are configured in the settings can also be operated directly in the WebUI in the same way as the individual roller shutters.\n\n![webUI_groups](/Doc/webUI_groups.png)\n\n## Timer\n\nThe timer function enables the automatic control of individual roller shutters or a selection of several roller shutters as a group.\nA fixed time can be specified as a trigger, or sunrise or sunset with an optional time offset.\n\n![webUI_timer](/Doc/webUI_timer.png)\n\nThe selection of roller shutters is supported by an additional dialogue. All configured and activated roller shutters are displayed there. These can be selected there and the bitmask is then automatically created from them.\n\n\u003cimg style=\"width: 444px;\" src=\"./Doc/webUI_bitmask_wiz.png\"\u003e\n\n-----\n\n# MQTT\n\n## Commands\n\n### Shutter\n\nTo control the shutters you can use the following mqtt commands.\n{UP, OPEN, 0} means, that you can use one of the listed payload commands.\n\n```text\ncommand:    restart ESP\ntopic:      ../cmd/restart\npayload:    none\n\ncommand:    shutter up\ntopic:      ../cmd/shutter/1 ... cmd/shutter/16\npayload:    {UP, OPEN, 0}\n\ncommand:    shutter down\ntopic:      ../cmd/shutter/1 ... cmd/shutter/16\npayload:    {DOWN, CLOSE, 1}\n\ncommand:    shutter stop\ntopic:      ../cmd/shutter/1 ... cmd/shutter/16\npayload:    {STOP, 2}\n\ncommand:    shutter shade\ntopic:      ../cmd/shutter/1 ... cmd/shutter/16\npayload:    {SHADE, 3}\n\n```\n\n### predefined Group\n\nTo control shutters a group you can use the following mqtt commands.\n{UP, OPEN, 0} means, that you can use one of the listed payload commands.\n\n```text\n\ncommand:    group up\ntopic:      ../cmd/group/1 ... cmd/group/6\npayload:    {UP, OPEN, 0}\n\ncommand:    group down\ntopic:      ../cmd/group/1 ... cmd/group/6\npayload:    {DOWN, CLOSE, 1}\n\ncommand:    group stop\ntopic:      ../cmd/group/1 ... cmd/group/6\npayload:    {STOP, 2}\n\ncommand:    group shade\ntopic:      ../cmd/group/1 ... cmd/group/6\npayload:    {SHADE, 3}\n\n```\n\n### Group with bitmask\n\nYou can also use a generic group command and provide the bitmask to select the shutters directly.  \nThe bitmask is a 16-bit number, with the least significant bit (on the right) representing channel 1.  \nA set bit means that the channel belongs to this group.  \n\n**Example**: `0000000000010101` means that channels 1, 3, and 5 belong to this group.\n\nAs payload, you can use three different formats to represent the same bitmask:\n\n- **Binary**: `0b0000000000010101`\n- **Hex**: `0x15`\n- **Decimal**: `21`\n\n```text\n\ncommand:    group up\ntopic:      ../cmd/group/up\npayload:    {0b0000000000010101, 0x15, 21}\n\ncommand:    group down\ntopic:      ../cmd/group/down\npayload:    {0b0000000000010101, 0x15, 21}\n\ncommand:    group stop\ntopic:      ../cmd/group/stop\npayload:    {0b0000000000010101, 0x15, 21}\n\ncommand:    group shade\ntopic:      ../cmd/group/shade\npayload:    {0b0000000000010101, 0x15, 21}\n\n```\n\n## Status\n\n### shutter status\n\nThe controller will also send a status **based on the commands**.  \n\n\u003e [!IMPORTANT]\n\u003e But it is important to know, that this status is only a \"copy of the received command\".  \n\u003e It does not correspond to the real status of the roller shutter, because unfortunately the roller shutter itself does not have a status that could be analyzed. So if the roller shutter is operated via the original remote control, for example, or via local operation, or is stopped during movement, then this status is no longer correct!\n\n```text\n\nStatus:     Shutter OPEN\ntopic:      ../status/shutter/1 ... status/shutter/16\npayload:    {0}\n\nStatus:     Shutter CLOSED\ntopic:      ../status/shutter/1 ... status/shutter/16\npayload:    {100}\n\nStatus:     Shutter SHADE\ntopic:      ../status/shutter/1 ... status/shutter/16\npayload:    {90}\n```\n\n### Remotes\n\nIf original remote controls are also stored in the settings via the serial number, signals from these remote controls can also be recorded and output via MQTT.\nThe information about which shutter is controlled can be seen in the two variables `chBin` and `chDec`. `chBin` shows the used shutter as a 16-bit binary value, while `chDec` shows the same information as a decimal value for easier automation.\n\n```json\ntopic:      \"../status/remote/\u003cserial-number\u003e\"\npayload:    {\n              \"name\":   \"\u003calias-name\u003e\", \n              \"cmd\":    \"\u003cUP, DOWN, STOP, SHADE\u003e\",\n              \"chBin\":  \"\u003cchannel-binary\u003e\",\n              \"chDec\":  \"\u003cchannel-decimal\u003e\"\n            }\n```\n\n\u003e [!NOTE]\n\u003e \u003c ../ \u003e is the placeholder for the MQTT topic which is specified in the settings.\n\n## additional information's (read only)\n\nstatus information about WiFi:\n\n```text\nTopic: ESP32-Jarolift-Controller/wifi = {  \n    \"status\":\"online\",  \n    \"rssi\":\"-50\",  \n    \"signal\":\"90\",  \n    \"ip\":\"192.168.1.1\",  \n    \"date-time\":\"01.01.2022 - 10:20:30\"  \n}\n```\n\n## Home Assistant\n\nMQTT discovery for Home Assistant makes it easy to get all values in Home Assistant.\nThe configured shutters will automatically visible as mqtt device in Home Assistant if HomeAssistant is enabled.\n\nsee also the official documentation: \u003chttps://www.home-assistant.io/integrations/mqtt/#discovery-messages\u003e\n\n\u003cimg src=\"Doc/webUI_ha2.png\" alt=\"mqtt_ha1\" width=\"75%\"\u003e\n\nIn the mqtt settings you can activate the discovery function and also set the mqtt discovery topic and the device name for Home Assistant  \n\u003cimg src=\"Doc/webUI_ha1.png\" alt=\"mqtt_ha1\" width=\"50%\"\u003e\n\n-----\n\n# Optional Communication\n\nin addition to mqtt there are more communication options.\n\n## WebUI-Logger\n\nThere is also a log function with which you can record various messages depending on the filter and display them via the WebUI. This can be useful for your own debugging and also for the further development of the software.\n\n\u003cimg src=\"./Doc/webUI_Logger.png\" width=\"75%\"\u003e\n\n## Telnet\n\nIn addition to the WebUI and MQTT, there is also a Telnet interface to communicate with the ESP.\nThe interface offers several commands to read out information and send commands.\nAn overview of the commands can be called up using the \"help\" command.\nTo connect, a simple Telnet connection can be started via the corresponding IP address of the ESP.\n\nExample:\n\n`\u003e telnet 192.168.178.193`\n\n\u003cimg src=\"./Doc/telnet.png\" width=\"75%\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdewenni%2Fesp32-jarolift-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdewenni%2Fesp32-jarolift-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdewenni%2Fesp32-jarolift-controller/lists"}