ESP32-Jarolift-Controller (TDEF, CC1101, W5500)

Hello,

I have installed TDEF wireless roller shutters from Jarolift everywhere in my house.

I have been using the ‘madmartin/Jarolift_MQTT’ project to control them for years. I have now created a new project on this basis in the last few weeks. Among other things, this also offers an MQTT Auto Discovery function for Home Assistant.
This means that the controller is recognised as a device and the individual shutters are automatically integrated into Home Assistant.

Features:

  • ESP32 + CC1101
  • WebUI
  • Optional Ethernet support with W5500
  • MQTT interface
  • Telnet interface
  • Home Assistant Auto Discovery
  • WebUI logger
  • OTA updates via WebUI

WebUI:

Home Assistant:

You can find a first release here:

Have a look at it - I would be happy if there are one or two users who would like to use it in the future. As always, I am open to feedback, suggestions and enhancements.

Regards
Sven

Thanks for the project. I’ve been looking at upgrading my unreliable Jarolift_MQTT setup for a while but there was never anything better available.

I really appreciate the nice webinterface (which I will never use beyond the setup because I do the actual interactions through homeassistant ;D) and the homeassistant auto discovery.

Some feedback based on my experience setting this up:

  1. Ethernet: I was unable to get the W5500 module working though to be honest I didn’t spend a lot of time troubleshooting. One thing that confused me is the apparent inability to use the same SPI bus from the CC1101 for the W5500 as well. When I tried that I got some error messages in my log because the pins were already in use for the transceiver.

  2. WiFi password storage: I am not a fan of how the WiFi password is stored in plaintext in the config file which can easily be exported by anyone with access to the web UI. Currently it is possible to do a double reset to get into the setup mode, connect to the AP and export the config file to get your WiFi password. While the actual security risk of this is probably low due to the attacker already needing physical access, I believe this can be solved better.

    One thing I typically do for my own projects is to store passwords separately from the rest of the configuration. This could be in the EEPROM or just in a separate file which cannot be exported. While this still allows a determined attacker to read the flash of the device to get at the password this would significantly raise the effort required.

  3. Config import/export: During testing I was unable to import configurations at all. I am not sure if this was a bug or a user error though.

  4. Loosing settings: Again during testing I often times ran into an issue where some settings would get lost between reboots, specifically the Jarolift settings in my case. I had to reenter the jarolift keys and serial numbers multiple times because they somehow got reset to 0 after a reboot.

  5. Device in homeassistant: Personally I would prefer to have each shutter as an individual device in homeassistant but I saw that you already discussed this here.

  6. CC1101 Wiring Diagram: Based on the diagram you published in your README I guess you are using an EBYTE E07 CC1101 module? If so it would be good to mention that under your wiring example since there are multiple different CC1101 modules with different pinouts on the market. For example on an EBYTE E07 module pin 6 is MOSI while on a D-SUN and many other generic modules it is GDO2.

Thanks for your feedback, that is always welcome.

  1. yes I decided to use different SPI instances for the CC1101 and the optional W5500 to ensure, that they will not influence each other. Maybe it will also work on the same bus, but I wanted to be “on the safe side” Maybe I can add some more words on that in the documentation. But if you wire it as described in the description it should work. There is at least one user that has a running setup with the W5500. #17

  2. I agree that this could be improved and I already had some ideas on how to encrypt the password in the config file. As you said, the risk is not that hight if the device is in a local network, but yes it is not the best way and I will put it on my ToDo List.

3,4) That is not known so far. I have to test a bit if I can reproduce it.

  1. yes, for now I would like to let it as it is.

  2. yes, there are some different modules, but I hope together with the pinout table, it should be clear how to connect the two modules. But ok, maybe I should remove the information about the PINs of the CC1101 and use only the “signals” like MOSI, MISO, etc.