Skip to content

WebSocket and MQTT supported device code for the roller blind. As rework of the design and code is on its way there won't be any updates to this repository

License

Notifications You must be signed in to change notification settings

philsson/motor-on-roller-blind-ws

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OBS. This project has been completely rebuilt from the button up! Although this README is not revised. Most of the functionality described should still apply. Original project by nidayand

This repo has been archived as a complete redesign is on its way - including physical components

motor-on-roller-blind-ws

WebSocket based version of motor-on-roller-blind. I.e. there is no need of an MQTT server but MQTT is supported as well - you can control it with WebSockets and/or with MQTT messages.

3d parts for printing are available on Thingiverse.com: "motor on a roller blind"

  1. A tiny webserver is setup on the esp8266 that will serve one page to the client
  2. Upon powering on the first time WIFI credentials, a hostname and - optional - MQTT server details is to be configured. You can specify if you want clockwise (CW) rotation to close the blind and you can also specify MQTT authentication if required. Connect your computer to a new WIFI hotspot named BlindsConnectAP. Password = nidayand
  3. Connect to your normal WIFI with your client and go to the IP address of the device - or if you have an mDNS supported device (e.g. iOS, OSX or have Bonjour installed) you can go to http://{hostname}.local. If you don't know the IP-address of the device check your router for the leases (or check the serial console in the Arduino IDE or check the /raw/esp8266/register MQTT message if you are using an MQTT server)
  4. As the webpage is loaded it will connect through a websocket directly to the device to progress updates and to control the device. If any other client connects the updates will be in sync.
  5. Go to the Settings page to calibrate the motor with the start and end positions of the roller blind. Follow the instructions on the page

Flashing

This project is set-up in plattformIO (VSCode) but there is no need to pull the source code and build the project yourself. A binary is available in the bin folder. To flash it use esptool and run the following command:

esptool.py --port <replace with your com port> write_flash 0x00000 bin/firmware.bin

OTA updates

As well as providing flashing through wifi (ArduinoOTA) a binary can also be uploaded to the board via http://board_name:82/.

Reset

To reset the board settings you can hold in the Flash button on the board slightly after powering it. Keep holding it in for a few seconds and the board will reboot itself when done and publish its SSID.

MQTT

  • When it connects to WIFI and MQTT it will send a "register" message to topic /raw/esp8266/register with a payload containing chip-id and IP-address
  • A message to /raw/esp8266/[chip-id]/in will steer the blind according to the "payload actions" below
  • Updates from the device will be sent to topic /raw/esp8266/[chip-id]/out

If you don't want to use MQTT

Simply do not enter any string in the MQTT server form field upon WIFI configuration of the device (step 3 above)

Payload options

  • (start) - (calibrate) Sets the current position as top position
  • (max) - (calibrate) Sets the current position as max position. Set start before you define max as max is a relative position to start
  • (0) - (manual mode) Will stop the curtain
  • (-1) - (manual mode) Will open the curtain. Requires (0) to stop the motor
  • (1)- (manual mode) Will close the curtain. Requires (0) to stop the motor
  • 0-100 - (auto mode) A number between 0-100 to set % of opened blind. Requires calibration before use. E.g. 50 will open it to 50%
  • downspeed/x 5 by default. This will be stored in flash
  • upspeed/x 5 by default. Tis will be stored in flash

Required libraries (3rd party)

All required libraries are included as git submodules. Clone this library with submodules.

Screenshots

Control

Control

Calibrate

Settings

Communication settings

WIFI Manager

About

WebSocket and MQTT supported device code for the roller blind. As rework of the design and code is on its way there won't be any updates to this repository

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%