Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork4
A custom Home Assistant integration to connect and control the Storz & Bickel Volcano Hybrid Vaporizer via Bluetooth. This integration enables precise control over the vaporizer's heat and pump functions, real-time monitoring of temperature, and seamless automation into the Home Assistant scripting and automation systems.
License
Chuffnugget/volcano_integration
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation

A customHome Assistant integration to connect and control theStorz & Bickel Volcano Hybrid Vaporizer viaBluetooth. This integration enables precise control over the vaporizer's heat and pump functions, real-time monitoring of temperature, and seamless automation into the Home Assistant scripting and automation systems.
🚀Volcano Integration is now published in the HACS Default Store!
If you previously added it as a custom repository, you can remove that entry underHACS → Integrations → ⋮ → Custom Repositories to avoid duplicates.
One of the main features of the official Volcano app includes workflows; these are the real-time Bluetooth instructions usually sent from your mobile device to the vaporizer when using it. But, because these instructions are sent in real-time, it means that closing or sometimes even minimizing the app actually stops the workflow prematurely. This integration fixes that by using Home Assistant as the Bluetooth client instead of your mobile device; the connection is persistent and asynchronous. This allows us to utilize Home Assistant scripts and automations in the same way we would create a workflow.
Home Assistant WebUI - Volcano Device Page
The default workflow in the official app is as follows:
- Turn heat on.- Set temperature to 170C.- Wait until temperature reaches target.- Turn on pump for 5 seconds.- Set heat to 175C.- Wait until temperature reaches target.- Turn on pump for 5 seconds. Set heat to 180C.- Wait until temperature reaches target. Turn on pump for 5 seconds.- Repeats until temperature reaches 200C.To translate this into a Home Assistant script:
alias: Volcano Workflow 1sequence: - action: volcano_integration.connect data: wait_until_connected: true - action: volcano_integration.heat_on data: {} - action: volcano_integration.set_temperature data: temperature: 170 wait_until_reached: true - action: volcano_integration.pump_on data: {} - delay: seconds: 5 - action: volcano_integration.pump_off data: {} - action: volcano_integration.set_temperature data: temperature: 175 wait_until_reached: true - action: volcano_integration.pump_on data: {} - delay: seconds: 5 - action: volcano_integration.pump_off data: {} - action: volcano_integration.set_temperature data: temperature: 180 wait_until_reached: true - action: volcano_integration.pump_on data: {} - delay: seconds: 5 - action: volcano_integration.pump_off data: {} - action: volcano_integration.set_temperature data: temperature: 185 wait_until_reached: true - action: volcano_integration.pump_on data: {} - delay: seconds: 5 - action: volcano_integration.pump_off data: {} - action: volcano_integration.set_temperature data: temperature: 190 wait_until_reached: true - action: volcano_integration.pump_on data: {} - delay: hours: 0 minutes: 0 seconds: 5 milliseconds: 0 - action: volcano_integration.pump_off data: {} - action: volcano_integration.set_temperature data: temperature: 195 wait_until_reached: true - action: volcano_integration.pump_on data: {} - delay: seconds: 5 - action: volcano_integration.pump_off data: {} - action: volcano_integration.set_temperature data: temperature: 200 wait_until_reached: true - action: volcano_integration.pump_on data: {} - delay: seconds: 5 - action: volcano_integration.pump_off data: {} - action: volcano_integration.heat_off data: {}description: "A full workflow from 170C to 200C, with 5 second pumps between every 5C."mode: restartI also strongly recommend creating another script, which allows you to stop any Volcano workflow at will. It should also turn the heat and pump off:
alias: Volcano Stop All Scriptssequence: - action: volcano_integration.heat_off - action: volcano_integration.pump_off - action: script.turn_off target: entity_id: - script.volcano_workflow_1description: "Stops all Volcano scripts and turns off the heat/pump."mode: restartNow you're set to create your own scripts and automations for the Volcano Vaporizer.
- Temperature Control: Set the heater temperature between 40°C and 230°C with 1°C precision.
- Pump Control: Turn the pumpON orOFF to start or stop air circulation.
- Heat Control: Turn the heaterON orOFF.
- LED Brightness Control: Adjust the LED brightness between 0% and 100%.
- Auto Shutoff Setting: Configure how long until the Volcano automatically turns off, in minutes.
- Real-Time Temperature Monitoring: Monitor the current heater temperature in real time.
- Bluetooth Status: View the current Bluetooth connection status (Connected, Disconnected, etc.).
- Firmware and Serial Information: Access BLE firmware version, device firmware version, and serial number.
- Operational Hours Monitoring: Track hours and minutes of operation.
- Connection Control: Manage Bluetooth connection via a dedicated service.
- Full Automation Support: Automate heat, pump, LED brightness, auto shutoff setting, and connection logic using Home Assistant scripts or automations.
- User-Friendly Services: Use built-in Home Assistant services to control various aspects of the vaporizer (temperature, brightness, auto shutoff setting, etc.).
- Bluetooth Hardware: The host system must have Bluetooth hardware or a compatible USB Bluetooth adapter.
- Python Dependency: Requires the
bleaklibrary (>= 0.20.0).
Prerequisites
- Ensure you haveHACS installed in your Home Assistant.
Install the Integration
- In Home Assistant, go toHACS → Integrations.
- Click the“+” button and search forVolcano Integration.
- ClickInstall.
Restart Home Assistant
- After installation completes, restart Home Assistant to activate the integration.
Configure the Integration
- Navigate toSettings → Devices & Services, clickAdd Integration, and selectVolcano Integration.
- Follow the on-screen prompts to scan for Bluetooth devices and pick your Volcano Vaporizer.
Download the Integration
- Clone or download from GitHub:
https://github.com/Chuffnugget/volcano_integration
- Clone or download from GitHub:
Place in Custom Components
- Copy the
volcano_integrationfolder into your Home Assistant’scustom_components/directory.
- Copy the
Restart Home Assistant
- Restart Home Assistant so it picks up the new component.
Add & Configure
- Go toSettings → Devices & Services → Add Integration, chooseVolcano Integration, and complete setup.
Sensors
- Current Temperature: Displays the current temperature of the vaporizer.
- Heat Status: Shows whether the heater isON,OFF, or in an unknown state.
- Pump Status: Indicates if the pump isON,OFF, or in an unknown state.
- Bluetooth Status: Displays the current Bluetooth connection status.
- BLE Firmware Version: Shows the BLE firmware version of the device.
- Serial Number: Displays the device's serial number.
- Firmware Version: Shows the device's firmware version.
- LED Brightness: Displays the current LED brightness level.
- Hours of Operation: Tracks the total hours the device has been in operation.
- Minutes of Operation: Tracks the total minutes the device has been in operation.
Numbers
- Heater Temperature Setpoint: Allows setting the desired temperature between 40°C and 230°C.
- LED Brightness: Adjusts the LED brightness between 0% and 100%.
- Auto Shutoff Setting: Sets the auto shutoff duration in minutes (e.g., 30–360).
volcano_integration.connect
Connect to the vaporizer.- Parameters
wait_until_connected(optional, default: true): Whether to block until the device is fully connected.
- Parameters
volcano_integration.disconnect
Disconnect from the vaporizer.volcano_integration.set_temperature
Set the heater temperature.- Parameters
temperature(required): The target temperature in °C (40–230).wait_until_reached(required, default: true): Whether to block until the target temperature is reached.
- Parameters
volcano_integration.set_led_brightness
Set the LED brightness.- Parameters
brightness(required): The LED brightness percentage (0–100).
- Parameters
volcano_integration.set_auto_shutoff_setting
Set the auto shutoff time in minutes.- Parameters
minutes(required): The duration in minutes before auto shutoff is triggered (e.g., 30–360).
- Parameters
Bluetooth Adapter
Ensure your system recognizes and can use the Bluetooth adapter. If the adapter isn’t detected, the integration won’t be able to connect.Proximity
Keep the Volcano within a reasonable range of the Bluetooth adapter to prevent connectivity issues.Logs
Check Home Assistant’s logs for debug messages. Increasing the log level forcustom_components.volcano_integrationcan help diagnose connection problems.
All contributions, including bug reports, new features, and documentation improvements are welcome. Please file issues on GitHub and/or submit PRs with your proposed changes.
Enjoy creating your own custom workflows and happy vaping!
About
A custom Home Assistant integration to connect and control the Storz & Bickel Volcano Hybrid Vaporizer via Bluetooth. This integration enables precise control over the vaporizer's heat and pump functions, real-time monitoring of temperature, and seamless automation into the Home Assistant scripting and automation systems.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.