mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2024-11-17 10:58:31 -07:00
117 lines
2.5 KiB
Markdown
117 lines
2.5 KiB
Markdown
|
# Running Zigbee2mqtt in Virtual Environment
|
||
|
It is possible to run Zigbee2mqtt in a virtual environment, this has been tested with a Raspberry Pi 3B+.
|
||
|
|
||
|
This guide is similar to the [Running zigbee2mqtt guide](../information/running_zigbee2mqtt.md), follow the steps from there by replacing the steps with the ones from below.
|
||
|
|
||
|
## 2. Installing
|
||
|
```bash
|
||
|
# Clone zigbee2mqtt repository
|
||
|
sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
|
||
|
sudo chown -R pi:pi /opt/zigbee2mqtt
|
||
|
|
||
|
# Enter folder
|
||
|
cd /opt/zigbee2mqtt
|
||
|
|
||
|
# Install python env
|
||
|
python3 -m venv .
|
||
|
|
||
|
# Activate environment
|
||
|
source /opt/zigbee2mqtt/bin/activate
|
||
|
|
||
|
# Upgrade pip, wheel and setuptools
|
||
|
pip install --upgrade pip wheel setuptools
|
||
|
|
||
|
# Install node environment
|
||
|
pip install nodeenv
|
||
|
|
||
|
# Init node environment
|
||
|
nodeenv -p -n 10.15.1
|
||
|
|
||
|
# Deactivate and activate environment to be sure
|
||
|
deactivate
|
||
|
source /opt/zigbee2mqtt/bin/activate
|
||
|
|
||
|
# Install dependencies
|
||
|
cd /opt/zigbee2mqtt
|
||
|
npm install
|
||
|
|
||
|
# Deactivate environment
|
||
|
deactivate
|
||
|
```
|
||
|
|
||
|
## 4. Starting zigbee2mqtt
|
||
|
```bash
|
||
|
# Enter folder
|
||
|
cd /opt/zigbee2mqtt
|
||
|
|
||
|
# Activate environment
|
||
|
source /opt/zigbee2mqtt/bin/activate
|
||
|
|
||
|
# Start
|
||
|
npm start
|
||
|
|
||
|
# ctrl + c to quit
|
||
|
|
||
|
# Deactivate environment
|
||
|
deactivate
|
||
|
```
|
||
|
|
||
|
## 5. (Optional) Running as a daemon with systemctl
|
||
|
To run zigbee2mqtt as daemon (in background) and start it automatically on boot we will run Zigbee2mqtt with systemctl.
|
||
|
```bash
|
||
|
# Create a systemctl configuration file for zigbee2mqtt
|
||
|
sudo nano /etc/systemd/system/zigbee2mqtt.service
|
||
|
```
|
||
|
|
||
|
Add the following to this file:
|
||
|
|
||
|
```bash
|
||
|
[Unit]
|
||
|
Description=zigbee2mqtt
|
||
|
After=network.target
|
||
|
|
||
|
[Service]
|
||
|
ExecStart=/bin/bash -c 'source /opt/zigbee2mqtt/bin/activate; /opt/zigbee2mqtt/bin/npm start'
|
||
|
WorkingDirectory=/opt/zigbee2mqtt
|
||
|
StandardOutput=inherit
|
||
|
StandardError=inherit
|
||
|
Restart=always
|
||
|
User=pi
|
||
|
|
||
|
[Install]
|
||
|
WantedBy=multi-user.target
|
||
|
```
|
||
|
|
||
|
Now continue with *Verify that the configuration works:* from the *Running Zigbee2mqtt guide*.
|
||
|
|
||
|
## 6. (For later) Update Zigbee2mqtt to the latest version
|
||
|
To update Zigbee2mqtt to the latest version, execute:
|
||
|
|
||
|
```sh
|
||
|
# Stop zigbee2mqtt and go to directory
|
||
|
sudo systemctl stop zigbee2mqtt
|
||
|
cd /opt/zigbee2mqtt
|
||
|
|
||
|
# Activate environment
|
||
|
source /opt/zigbee2mqtt/bin/activate
|
||
|
|
||
|
# Backup configuration
|
||
|
cp -R data data-backup
|
||
|
|
||
|
# Update
|
||
|
git checkout HEAD -- npm-shrinkwrap.json
|
||
|
git pull
|
||
|
rm -rf node_modules
|
||
|
npm install
|
||
|
|
||
|
# Restore configuration
|
||
|
cp -R data-backup/* data
|
||
|
rm -rf data-backup
|
||
|
|
||
|
# Deactivate environment
|
||
|
deactivate
|
||
|
|
||
|
# Start zigbee2mqtt
|
||
|
sudo systemctl start zigbee2mqtt
|
||
|
```
|