SwitchBot MQTT client
MQTT client controlling SwitchBot button automators
Compatible with Home Assistant's MQTT Switch platform.
Setup
$ pip3 install --user --upgrade switchbot-mqtt
$ switchbot-mqtt --mqtt-host HOSTNAME_OR_IP_ADDRESS
Use sudo hcitool lescan
or select device settings > 3 dots on top right in
SwitchBot app
to determine your SwitchBot's mac address.
Send ON or OFF to topic homeassistant/switch/switchbot/aa:bb:cc:dd:ee:ff/set.
$ mosquitto_pub -h MQTT_BROKER -t homeassistant/switch/switchbot/aa:bb:cc:dd:ee:ff/set -m ON
Home Assistant 🏡
Rationale
Why not use the official SwitchBot integration?
I prefer not to share the host's network stack with home assistant (more complicated network setup and additional netfilter rules required for isolation).
Sadly, docker run --network host even requires --userns host:
docker: Error response from daemon: cannot share the host's network namespace when user namespaces are enabled.
The docker image built from this repository works around this limitation by explicitly running as an unprivileged user.
The official home assistant image
runs as root.
This imposes an unnecessary security risk, especially when disabling user namespace remapping
(--userns host).
See https://github.com/fphammerle/docker-home-assistant for an alternative.
Setup
# https://www.home-assistant.io/docs/mqtt/broker/#configuration-variables
mqtt:
broker: BROKER_HOSTNAME_OR_IP_ADDRESS
# credentials, additional options…
# https://www.home-assistant.io/integrations/switch.mqtt/#configuration-variables
switch:
- platform: mqtt
name: some_name
command_topic: homeassistant/switch/switchbot/aa:bb:cc:dd:ee:ff/set
# http://materialdesignicons.com/
icon: mdi:light-switch
Docker 🐳
$ docker build -t switchbot-mqtt .
$ docker run --name spelunca_switchbot \
--userns host --network host \
switchbot-mqtt:latest \
switchbot-mqtt --mqtt-host HOSTNAME_OR_IP_ADDRESS
Alternatives
Metadata
Release files for switchbot-mqtt 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| switchbot-mqtt-0.1.0.tar.gz | 28.6 kB | Without provenance | Details for switchbot-mqtt-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| switchbot_mqtt-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for switchbot_mqtt-0.1.0-py3-none-any.whl |
Total release size: 45.9 kB
Release files / switchbot-mqtt-0.1.0.tar.gz
| Download URL | switchbot-mqtt-0.1.0.tar.gz |
|---|---|
| Size | 28.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
93f7edbe75c0f1b391c946338ec8717ffec5f5e6cc420deb7513b8446089c7c5
|
|
BLAKE2b-256 checksum How to use checksums |
aa09777569894916faf7fb15cba9d2eb88ce04a2aac51e4f7d65d4f33ebad656
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.9
|
Release files / switchbot_mqtt-0.1.0-py3-none-any.whl
| Download URL | switchbot_mqtt-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
210bf31d6a89caabecd2688802579028b3c753a6253a61ee786db57479fcb03c
|
|
BLAKE2b-256 checksum How to use checksums |
cb72ab5121ed031cd575b6f1f26ce5d366a9bbe8869ccb57cdc2405cc531bb2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.9
|
Security for switchbot-mqtt 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.