![]() This commit updates the github workflow to push the docker images to Github Container Registry (ghcr.io) as well as Docker Hub. The main advantage of ghcr is that it doesn't have any pull limits for the users like Docker Hub now does: https://docs.docker.com/docker-hub/download-rate-limit/ |
3 years ago | |
---|---|---|
.github | 3 years ago | |
src | 3 years ago | |
.gitignore | 5 years ago | |
Dockerfile | 4 years ago | |
LICENSE | 5 years ago | |
README.md | 3 years ago | |
VERSION | 3 years ago | |
requirements.txt | 3 years ago |
README.md
amcrest2mqtt
A simple app to expose all events generated by an Amcrest device to MQTT using the
python-amcrest
library.
It supports the following environment variables:
AMCREST_HOST
(required)AMCREST_PORT
(optional, default = 80)AMCREST_USERNAME
(optional, default = admin)AMCREST_PASSWORD
(required)MQTT_USERNAME
(required)MQTT_PASSWORD
(optional, default = empty password)MQTT_HOST
(optional, default = 'localhost')MQTT_QOS
(optional, default = 0)MQTT_PORT
(optional, default = 1883)MQTT_TLS_ENABLED
(required if using TLS) - set totrue
to enableMQTT_TLS_CA_CERT
(required if using TLS) - path to the ca certsMQTT_TLS_CERT
(required if using TLS) - path to the private certMQTT_TLS_KEY
(required if using TLS) - path to the private keyHOME_ASSISTANT
(optional, default = false)HOME_ASSISTANT_PREFIX
(optional, default = 'homeassistant')STORAGE_POLL_INTERVAL
(optional, default = 3600) - how often to fetch storage data (in seconds) (set to 0 to disable functionality)DEVICE_NAME
(optional) - override the default device name used in the Amcrest app
It exposes events to the following topics:
amcrest2mqtt/[SERIAL_NUMBER]/event
- all eventsamcrest2mqtt/[SERIAL_NUMBER]/doorbell
- doorbell status (if AD110 or AD410)amcrest2mqtt/[SERIAL_NUMBER]/human
- human detection (if AD410)amcrest2mqtt/[SERIAL_NUMBER]/motion
- motion events (if supported)amcrest2mqtt/[SERIAL_NUMBER]/config
- device configuration information
Device Support
The app supports events for any Amcrest device supported by python-amcrest
.
Home Assistant
The app has built-in support for Home Assistant discovery. Set the HOME_ASSISTANT
environment variable to true
to enable support.
If you are using a different MQTT prefix to the default, you will need to set the HOME_ASSISTANT_PREFIX
environment variable.
Running the app
The easiest way to run the app is via Docker Compose, e.g.
version: "3"
services:
amcrest2mqtt:
container_name: amcrest2mqtt
image: dchesterton/amcrest2mqtt:latest
restart: unless-stopped
environment:
AMCREST_HOST: 192.168.0.1
AMCREST_PASSWORD: password
MQTT_HOST: 192.168.0.2
MQTT_USERNAME: admin
MQTT_PASSWORD: password
HOME_ASSISTANT: "true"
Out of Scope
Multiple Devices
The app will not support multiple devices. You can run multiple instances of the app if you need to expose events for multiple devices.
Non-Docker Environments
Docker is the only supported way of deploying the application. The app should run directly via Python but this is not supported.
Home Assistant Addons
There are a couple of Home Assistant Addons that use my code to be able to port this software into Supervised versions of Home Assistant. I do not specifically support the add-ons themselves, only the base software in the original docker format. Please contact the authors of those add-ons for support if using that method.
https://github.com/ikifar2012/amcrest2mqtt-addon/blob/master/README.md
https://github.com/robsonke/hassio-addons/blob/master/amcrest2mqtt/README.md
Buy Me A Coffee Beer 🍻
A few people have kindly requested a way to donate a small amount of money. If you feel so inclined I've set up a "Buy Me A Coffee" page where you can donate a small sum. Please do not feel obligated to donate in any way - I work on the app because it's useful to myself and others, not for any financial gain - but any token of appreciation is much appreciated 🙂