Create Your Own Zigbee Hub & Network
This simple but powerful little adapter lets you build your own Zigbee network and easily add and manage it in Home Assistant, no hub required!
Disclosures
- Nothing in this video was sponsored
Info
- SMLIGHT homepage: https://smlight.tech/
- Zigbee2MQTT: https://github.com/Koenkk/zigbee2mqtt
- Mosquitto: https://github.com/eclipse/mosquitto
- Home Assistant: https://github.com/home-assistant/core
Hardware
- SMLIGHT SLZB-06: https://amzn.to/4doSJ6B (affiliate link)
- THIRDREALITY ZigBee Smart Plug: https://amzn.to/3A8AlA7 (affiliate link)
Code
A simplified Home Assistant Stack with Zigbee2MQTT Support. Don’t forget to update your Zigbee2MQTT configuration!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
---
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
depends_on:
- mqtt
- zigbee2mqtt
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./home-assistant/config:/config
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
restart: unless-stopped
ports:
- 8123:8123
mqtt:
container_name: mqtt
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
image: eclipse-mosquitto:latest
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./mqtt/data:/mosquitto
ports:
- 1883:1883
- 9001:9001
command: mosquitto -c /mosquitto-no-auth.conf
zigbee2mqtt:
container_name: zigbee2mqtt
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
restart: unless-stopped
image: koenkk/zigbee2mqtt:latest
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./zigbee2mqtt/data:/app/data
ports:
- 8080:8080
My Home Assistant Stack:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
---
services:
homeassistant:
container_name: homeassistant
networks:
iot_macvlan:
ipv4_address: 192.168.20.202
traefik:
image: ghcr.io/home-assistant/home-assistant:stable
depends_on:
- faster-whisper-gpu
- wyoming-piper
- mqtt
- zigbee2mqtt
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./home-assistant/config:/config
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.homeassistant.rule=Host(`homeassistant.local.techtronic.us`)"
- "traefik.http.routers.homeassistant.entrypoints=https"
- "traefik.http.routers.homeassistant.tls=true"
- "traefik.http.routers.homeassistant.tls.certresolver=cloudflare"
- "traefik.http.routers.homeassistant.middlewares=default-headers@file"
- "traefik.http.services.homeassistant.loadbalancer.server.port=8123"
- "com.centurylinklabs.watchtower.enable=true"
faster-whisper-gpu:
image: lscr.io/linuxserver/faster-whisper:gpu
container_name: faster-whisper-gpu
networks:
- traefik
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- WHISPER_MODEL=tiny-int8
- WHISPER_BEAM=1 #optional
- WHISPER_LANG=en #optional
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./faster-whisper/data:/config
restart: unless-stopped
labels:
- "com.centurylinklabs.watchtower.enable=true"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
wyoming-piper:
container_name: wyoming-piper
networks:
- traefik
image: rhasspy/wyoming-piper # no gpu
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./wyoming-piper/data:/data
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
restart: unless-stopped
labels:
- "com.centurylinklabs.watchtower.enable=true"
command: --voice en_US-lessac-medium
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
mqtt:
container_name: mqtt
networks:
- traefik
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
image: eclipse-mosquitto:latest
restart: unless-stopped
labels:
- "com.centurylinklabs.watchtower.enable=true"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./mqtt/data:/mosquitto
command: mosquitto -c /mosquitto-no-auth.conf
zigbee2mqtt:
container_name: zigbee2mqtt
networks:
iot_macvlan:
ipv4_address: 192.168.20.204
traefik:
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.zigbee2mqtt.rule=Host(`zigbee2mqtt.local.techtronic.us`)"
- "traefik.http.routers.zigbee2mqtt.entrypoints=https"
- "traefik.http.routers.zigbee2mqtt.tls=true"
- "traefik.http.routers.zigbee2mqtt.tls.certresolver=cloudflare"
- "traefik.http.routers.zigbee2mqtt.middlewares=default-headers@file"
- "traefik.http.services.zigbee2mqtt.loadbalancer.server.port=8080"
- "com.centurylinklabs.watchtower.enable=true"
image: koenkk/zigbee2mqtt:latest
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./zigbee2mqtt/data:/app/data
networks:
traefik:
external: true
iot_macvlan:
external: true
Join the conversation
In today's side quest, I created my own Zigbee hub and network and added it to Home Assistant with this awesome little adapter!!
— Techno Tim (@TechnoTimLive) August 4, 2024
check it out--->https://t.co/s0VRC6oLOD pic.twitter.com/8V9pavNH1T
Links
🛍️ Check out the new Merch Shop at https://l.technotim.live/shop
⚙️ See all the hardware I recommend at https://l.technotim.live/gear
🚀 Don’t forget to check out the 🚀Launchpad repo with all of the quick start source files
🤝 Support me and help keep this site ad-free!
This post is licensed under CC BY 4.0 by the author.