Simple bot to control your home-assistant via a telegram chatbot. As a requirement, the telegram platform has to be configured in home-assistant (https://www.home-assistant.io/components/notify.telegram/).
Currently the bot provides a simple request/response command interface. The following commands are available:
- /help: Help
- /state_cover: State of cover
- /state_vacuum: State of vacuum
- /state_light: State of light
- /state_climate: State of climate
- /state_person: State of person
- /open_cover: Open cover
- /close_cover: Close cover
- /turnoff_light: Turn off light
- /turnon_light: Turn on light
- /start_vacuum: Start vacuum
- /stop_vacuum: Stop running vacuum
- /restart_hass: Restart hass
- /state_system: State of home-assistant
- /state_sensor: State of sensors
- /get_version: Get version of telegrambot
- /turnon_automation: Turn on automation
- /turnoff_automation: Turn off automation
- /trigger_automation: Trigger automation
- /state_automation: State of automation
- send location message from telegram: for each defined zone in home-assistant the travel time from the current location sent is computed
Just copy the files
- TelegramBot.py
- Helper.py
to your apps folder of appaemon and add the following configuration to your apps.yaml (example data shown for some parameters)
TelegramBot:
module: TelegramBot
class: TelegramBot
debug: True
extend_system: sensor.date,sensor.heartbeat
extend_light: switch.light
- load_1m
- load_5m
filter_whitelist:
- sample
routing:
waze:
region: EU
avoid_toll_roads: True
||Configuration parameter || Description || |extend_system | comma separated list of complete entities to include in the system report| |extend_light | comma separated list of complete entities to include in the commands /state_light /turnoff_light /turnon_light| |filter_blacklist| python regex to exclude entities from being reported/used from telegrambot| |filter_whitelist| python regex to whitelist entities from being reported/used from telegrambot The following logic is used to apply the blacklist and whitelist:
- If the blacklist is empty - nothing is filtered out
- If the whitelist is empty - nothing is filtered out
- If both the blacklist and whitelist are non-empty, first the blacklist ist applied and then the whitelist | |routing| currently only waze is supported. region can be 'US','EU','IL','AU' and is used to select the correct routingserver from waze. avoid_toll_roads is a boolean to enable/disable the use of toll roads in the travel time computation.|
The file Helper.py is also used by one of my other appdaemon project. In both projects the same file is used!
- All contributions are welcome!
- A PR must be accompanied with some tests for the new feature
- Please take care that:
- The code is readable and is optimally documented
- The code passes all tests
For the unit test the Appdamon-Test-Framework is used together with pytest.
All necessary requirements are listed in the requirements-dev.txt