Jarolift_MQTT
Jarolift_MQTT copied to clipboard
Controlling Jarolift TDEF 433MHZ radio shutters via ESP8266 and CC1101 Transceiver Module in asynchronous mode
Jarolift_MQTT
Controlling Jarolift(TM) TDEF 433MHz radio shutters via ESP8266 and CC1101 Transceiver Module in asynchronous mode. Experimental version. Use at your own risk. For private/educational use only. (Keeloq algorithm licensed only to TI Microcontrollers) This project is not affiliated in any way with the vendor of the Jarolift components. Jarolift is a Trademark of Schöneberger Rolladenfabrik GmbH & Co. KG
This is the MQTT version of Jarolift_RX_TX_FHEM, which was originally developed to operate with the FHEM home automation server. You find the original FHEM version on the project's homepage.
Author
Written by Steffen Hille in Nov, 2017
Project Homepage and Forum
The project home is here: Project Home If you need support please use the forum Project Forum
License
The main code of Jarolift_MQTT is licensed under the GPLv3. The provided libraries have different licenses, look into the respective files for more information.
- CC1101 library LGPL-License
- DoubleResetDetector MIT License
- Keeloq library unknown License
- PubSubClient MIT License
- simpleDSTadjust unknown License
Necessary Hardware:
- a NodeMCU board or similar, based on ESP8266 microcontroller
- a CC1101 Transmitter board
- some connection cables
Photos and hints on project home website
Prepare Arduino IDE and libraries
Download an install the Arduino IDE from Arduino website (as time of writing the current version is 1.8.5)
Locate your arduino sketch directory - this is $HOME/Arduino/
in linux
Download and / or unpack this project folder to a subfolder of this sketch directory
Locate the user library folder of your arduino sketch directory
Default under linux: $HOME/Arduino/libraries/
- copy the folder
DoubleResetDetector
to the arduino library folder - copy the folder
PubSubClient
to the arduino library folder - copy the folder
KeeloqLib
to the arduino library folder - copy the folder
simpleDSTadjust
to the arduino library folder
when updating from earlier Jarolift_MQTT releases
- in earlier releases, the folder
PubSubClient-2.6.09
was delivered. Make sure you removePubSubClient-2.6.09
from the library folder and put the currentPubSubClient
folder there!
Compile
Open the Arduino IDE and open the project .ino file (Jarolift_MQTT.ino
)
TODO write a more detailed description
Check the board settings
In menu "Tools" set the correct board type. If you have any kind of NodeMCU, the board
NodeMCU 1.0 (ESP-12E Module
will probably work.
You may look at the wiki for pictures of the modules or at this comparison of boards.
There are two possible pitfalls when choosing the wrong board type or changing between board types:
- the LED on the board may work / not work - necessary for the LED heardbeat and Admin-Mode.
- take a look at the flash size and the SPIFFS setting - a changed SPIFFS setting needs a new upload of the SPIFFS data files and an existing configuration may be not be found on next boot, then it is initialized with default values.
Note on the LED on the board:
The following settings have proofed to work:
ESP Core 2.4.1 / NodeMCU v1.0/V2
- Board: "NodeMCU 1.0 (ESP-12E Module)"
- Flash Size: "4M (1M SPIFFS)"
- lwIP variant: "v2 Lower Memory"
- CPU Frequency: "80 MHz"
- Upload speed: "115200"
ESP Core 2.4.1 / NodeMCU v3 and WeMos mini & its clones
- Board: "WeMos mini D1 R2 & mini"
- Flash Size: "4M (1M SPIFFS)"
- lwIP variant: "v2 Lower Memory"
- CPU Frequency: "80 MHz"
- Upload speed: "115200"
Dont forget to set the correct serial port (Tools->Port) after plugging the USB connector of the NodeMCU into the computer.
Upload the compiled sketch into the NodeMCU. Second, you need to upload the files from the data directory into the SPIFFS area. This is only necessary on first use of the NodeMCU and then only after the content of the files has changed.
Uploading files to SPIFFS (ESP8266 internal filesystem)
ESP8266FS is a tool which integrates into the Arduino IDE. It adds a menu item to Tools menu for uploading the contents of sketch data directory into ESP8266 flash file system.
- Download the SPIFFS tool
- In your Arduino sketchbook directory, create
tools
directory if it doesn't exist yet - Unpack the tool into
tools
directory (the path will look like$HOME/Arduino/tools/ESP8266FS/tool/esp8266fs.jar
) - Restart Arduino IDE
- Open the Jarolift_MQTT sketch
- Make sure you have selected a board, port, and closed Serial Monitor
- Select Tools > ESP8266 Sketch Data Upload. This should start
uploading the files into ESP8266 flash file system. When done, IDE
status bar will display
SPIFFS Image Uploaded
message.
Cabling instructions
ESP | CC1101 | Remark |
---|---|---|
D8 | CSN | |
D2 | GDO0 | (perhaps 1Kohm to GND) |
D1 | GDO2 | |
D6 | SO(GDO1) | |
D5 | SCLK | |
D7 | SI | |
GND | GND | |
VCC | VCC | 3.3 Volt !!! |
Setup instructions
The configuration of the Jarolift Dongle is stored in the EEPROM memory of the ESP8266. On first initialisation, when no configuration is found, it is initialized with some default values and the Dongle turns on the Admin-Mode.
In Admin-Mode, the blue LED on the ESP submodule is turned on and the Dongle creates an WLAN-Access-Point with the SSID Jarolift-Dongle
, protectet with the WPA-Passwort 12345678
. Now you have 180 seconds (3 minutes) time to connect to the WLAN Accesspoint and visit the configuration webserver on
http://192.168.4.1
Admin-Mode quits after the 180 second timeout or when you restart the Dongle from the configuration webserver.
If you need the Admin-Mode later, just press the "Reset" button on the NodeMCU module two times within 10 seconds. This double-reset will be detected and the Dongle enters Admin-Mode again, showing this with the blue LED turned on.
The running Jarolift Dongle does some debug output on the serial console. Console Speed is 115200 Bit/s
Known issues
- after flashing the NodeMCU board, on the first run of the fresh flashed sketch, any kind of restart (through WebUI or after a crash) of the ESP8266 may not properly work, causes the NodeMCU board board to hang. On the serial monitor, you see output like
handleFileRead: /favicon.png
[INFO] - Writing Config to EEPROM
ets Jan 8 2013,rst cause:2, boot mode:(1,6)
ets Jan 8 2013,rst cause:4, boot mode:(1,6)
wdt reset
-
this is a hardware issue, solution: power cycle your NodeMCU after flashing, pressing the reset button is not sufficient
-
sometimes opening the "system" page in the WebUI causes a crash (Exception 28) of the ESP8266. The cause is not found yet.
Contribute
You can contribute to Jarolift_MQTT by
- providing Pull Requests (Features, Proof of Concepts, Language files or Fixes)
- testing new released features and report issues
- please try to follow the Style-Guide another Style-Guide