main
buttonplus-esphome-generator
A python script that generates a full ESPHome config for the Button+ V2
Features
- Notification Action:
esphome.<name>_notification- Shows a notification, which has to be dismissed
- Toast Action:
esphome.<name>_toast- Shows a quick toast message which dissapears after a timeout
- Perfect for confirming actions
- Get info Action:
esphome.<name>_get_page_info- Shows data needed for the set_page_led action
- Set Led per page Action:
esphome.<name>_set_page_led- Allows you to set the LED for a specific page
- So that you don't need to keep track of which page is active when setting a LED
- Generates pages and all buttons and events belonging to each page
- Breathe and Blink effect for all LEDs
- more to come..
Setup
Project uses pipenv (Optional)
run pipenv install to setup the project the first time.
run pipenv shell after that to open the virtual environment.
Run script
You can then use python src/main.py --help to run the generator
Example run command
python src/main.py -v 1 -b 3 -p Start Music Lights Security -c single double hold
Config example
The configuration (handmade) on which this generator is based, can be found in the esphome folder.
Todo
Ideas
- Show image service
- Top level config only for drawing, everything else hidden
- back to using packages or includes probably
- with --no-split option
- two files
Missing config
- Event lambda's (see config.yaml)
- Implement --no-click-confirm
- Make effects optional (--no-effects)
- service: get led state
- led name
- page name
- page num
- service: get_page_info
- rename the service
- add the effect options
Languages
Python
100%