Installing the Inovelli VZM32SN ZHA Custom Quirk (Home Assistant)
🔍 Overview (for advanced users)
This process will:
Back up
configuration.yaml.Add the following to your HA config:
zha:
custom_quirks_path: /config/zhacustomquirksCreate the folder:
/config/zhacustomquirks
Download two quirk files into that folder. VZM32SN.py | __init__.py
Modify an import in
VZM32SN.py. Change in the VZM32SN.py file:
from zhaquirks.inovelli import INOVELLI_AUTOMATION_TRIGGERS, InovelliVZM32SNCluster
to
from zhacustomquirks import INOVELLI_AUTOMATION_TRIGGERS, InovelliVZM32SNCluster, InovelliVZM32SNMMWaveClusterRestart Home Assistant.
🪜 Step-by-Step Instructions
1. Open the Home Assistant Terminal
Note: To install this add-on please refer to the instructions here:
Go to Settings → Add-ons → Terminal & SSH → OPEN WEB UI.
2. Go to the Home Assistant config directory
cd /config
3. Back up your configuration.yaml
cp configuration.yaml configuration.yaml.backup_$(date +"%Y%m%d_%H%M%S")
4. Create the custom quirks directory
mkdir -p zhacustomquirks
5. Add the ZHA custom quirks path to configuration.yaml
grep -qxF 'zha:' configuration.yaml || echo -e '\nzha:\n custom_quirks_path: /config/zhacustomquirks' >> configuration.yaml
grep -q 'custom_quirks_path:' configuration.yaml || sed -i '/^zha:/a\ custom_quirks_path: /config/zhacustomquirks' configuration.yaml
6. Download the Inovelli quirk files
wget -O /config/zhacustomquirks/VZM32SN.py https://raw.githubusercontent.com/InovelliUSA/zha-device-handlers/refs/heads/inovelli-vzm32/zhaquirks/inovelli/VZM32SN.py
wget -O /config/zhacustomquirks/__init__.py https://raw.githubusercontent.com/InovelliUSA/zha-device-handlers/refs/heads/inovelli-vzm32/zhaquirks/inovelli/__init__.py
7. Fix the import inside VZM32SN.py
sed -i 's/from zhaquirks.inovelli/from zhacustomquirks/' /config/zhacustomquirks/VZM32SN.py
8. Fix file permissions
chmod 644 zhacustomquirks/*.py
9. Restart Home Assistant
Go to Settings → System → Restart
(or restart just ZHA if you prefer).
📦 Full Command Block (Copy & Paste)
All commands below now include blank lines between lines for clean Intercom formatting:
cd /config
cp configuration.yaml configuration.yaml.backup_$(date +"%Y%m%d_%H%M%S")
mkdir -p zhacustomquirks
grep -qxF 'zha:' configuration.yaml || echo -e '\nzha:\n custom_quirks_path: /config/zhacustomquirks' >> configuration.yaml
grep -q 'custom_quirks_path:' configuration.yaml || sed -i '/^zha:/a\ custom_quirks_path: /config/zhacustomquirks' configuration.yaml
wget -O /config/zhacustomquirks/VZM32SN.py https://raw.githubusercontent.com/InovelliUSA/zha-device-handlers/refs/heads/inovelli-vzm32/zhaquirks/inovelli/VZM32SN.py
wget -O /config/zhacustomquirks/__init__.py https://raw.githubusercontent.com/InovelliUSA/zha-device-handlers/refs/heads/inovelli-vzm32/zhaquirks/inovelli/__init__.py
sed -i 's/from zhaquirks.inovelli/from zhacustomquirks/' /config/zhacustomquirks/VZM32SN.py
chmod 644 zhacustomquirks/*.py
