Volcano Hybrid Web App: Help & FAQ changelog

by magikh0e · source

← back to the controller

Before you connect

  — Chromium only. Desktop Chrome / Edge / Opera, or Android Chrome.
    No iOS, no Firefox, no Safari — they don't implement Web Bluetooth.
  — Secure context. Serve over HTTPS, or run it from http://localhost.
  — Local, not remote. Works only within Bluetooth range of the
    Volcano. This is not remote control.
  — One connection at a time. The Volcano allows a single BLE link.
    If Home Assistant or the S&B app is connected, this page can't be —
    disconnect that first (or vice-versa).
  — It's a 230 °C heater. The page clamps 40–230 °C and confirms
    before turning heat on, but don't walk away from a running unit.

FAQ

It won't connect, or no device shows up

The Volcano allows only one Bluetooth connection at a time. If Home Assistant or the Storz & Bickel app is connected, disconnect it first. Also check that Bluetooth is on, the unit is powered, and you're within a few metres.

Which browsers and devices work?

Desktop Chrome, Edge, or Opera, and Chrome on Android. iOS, Firefox, and Safari don't implement Web Bluetooth, so they can't connect. The page must be served over HTTPS (localhost also works).

Does it work over the internet, or as remote control?

No — it's local only. The browser talks straight to the device over Bluetooth, so you have to be in range. Nothing is sent to any server.

Do I need an app or account? Where's my data?

No app, no account, no backend. Your presets, workflows and preferences are stored in your browser and never leave your machine. Clearing the browser's site data, or switching phones, loses them, so keep a copy: on the Workflows tab, ⤓ Backup downloads every saved workflow and your presets as one file, and ⤒ Restore brings them back (it adds the workflows, skipping any you already have, and replaces the presets).

Can I use this and Home Assistant at the same time?

No — the Volcano accepts only one connection. Disconnect one to use the other.

Can I try it without a Volcano?

Yes: open the demo (or Try the demo at the top of the app). It connects straight away to a simulated Volcano and starts heating; ▶ Run a 3-bag session in its banner shows a whole session. The simulated Volcano heats, runs the pump and counts down like the real one, so you can try templates, the drawing, history and everything else. It works in any browser, including ones without Web Bluetooth. Speed in the demo banner runs it at 1×, 5× (the default) or 20×. What you save in the demo stays in that browser tab and never mixes with your real workflows; Exit demo goes back to the normal app.

Are there keyboard shortcuts?

Yes, on any tab while connected: − and + lower and raise the target (hold to keep going), H switches the heater, A the air (fan), and F starts or cancels a bag fill. They're ignored while you're typing in a field, such as the Console. Ctrl+Z undoes the latest delete.

What's the Volcano drawing on the Control tab?

A control panel laid out like the real one. The screen shows the current temperature (top) and the target (bottom), with a dot that lights while the heater is on. − and + change the target and send it to the Volcano a moment after your last press (tap the screen to type an exact target); HEAT and AIR switch the heater and fan, lighting up while they're on. Below it, choose Bags, Whip or All, pick a saved workflow or template and press ▶ Run; its progress and Stop buttons show right there. Under Fill bag, a graph shows the last 10 minutes: the chamber temperature as a solid line, the target dashed, and each fill shaded.

What happens if the connection drops during a session?

The run pauses and the banner shows "Connection lost — reconnecting". It keeps trying for up to a minute, then carries on from the step it was on (a bag that was filling counts as done). If it can't reconnect, it stops with a warning: the app can't turn the heater off without a connection, so the Volcano's own auto-off timer takes over. Check the device.

Can I change the colours?

Yes. Settings → App → Theme has Amber (the default), Phosphor, Ice, Neon, Light and High contrast. The choice is saved in this browser and applies to the Help page too.

How do I see °F?

Settings has two switches. App units sets what this app shows: current and target temperature, presets and workflow progress. Device units sets the Volcano's own screen. The two are independent. Template names, the workflow editor and the ladder builder stay in °C, which is what the Volcano works in.

Where did "Run ladder" go?

It's now a template: Vapesuvius 5-min Ladder (Workflows → Templates, or the Control tab's dropdown under Whip). It steps 179→230 °C and holds each rung for 5 minutes once reached. For a bag at every rung, run Vapesuvius Temp Step (8 bags). The console's ladder command still runs the original timed ladder.

What are Workflows, and what does each action do?

A small editor for scripting your own sequences. Action types: Heat On (optionally set a target), Heat Off, Fan On for N seconds (or "background", which doesn't block the next step), Wait, Set LED, Conditional Temp Set, Exit When Temp Reached, and Loop From Beginning. Conditional Temp Set is a temperature ladder stored as data. It reads the current target, matches it to a rung and moves up to the next one. It then waits for the chamber to get there, heating up or cooling down (if the chamber is well above it), before its hold timer starts. Exit When Temp Reached can compare against the target (as Project Onyx does), the chamber reading, or either one. Use target for looping ladders, so a hot start or a bag fill can't throw it off. Use chamber to wait until the chamber really gets there. Save as many workflows as you like and run them over the live connection. The action model is inspired by Project Onyx.

Are there ready-made workflows?

Yes. On the Workflows tab, click 📋 Templates. Press ▶ on one to run it straight away, or + Save to keep an editable copy under My workflows (the row then shows ✓ Saved · Show, which jumps to it). While anything runs, a banner at the top shows its progress, with ■ Stop (leaves the heater as it is) and ■ Stop & heat off. The screen stays on while something runs, so a phone doesn't sleep and drop the connection mid-session. With 🔔 Sound & vibration cues ticked, it beeps (and vibrates on Android) when it's time to fit a fresh bag, and again when the bag is full. Every template runs start to finish on one press. It always starts at its first rung, and it turns the heat off at the end.

Temperature ladders come in two versions, each with its own button:

From Project Onyx's premade set, with step temperatures from Vapesuvius' chart:

magikh0e created, using the boiling-point guide below. Ladders (bags or whip):

And single-purpose ones:

Filters: the buttons above the list narrow it to Bags, Whip, Single bag or Utility. Under Bags or Whip, ladder rows show only that version's button.

🪜 Build your own ladder: at the top of the Templates panel. Set a start, an end and a step (°C), then choose Bags (with the time to fit each bag and the fill length) or Whip (with the hold at each rung). The preview lists every rung and the bag count; then ▶ Run ladder runs it now, or + Save ladder keeps it. If the step doesn't land exactly on the end, the end is still the last rung. Start above the end to step down; it waits for the chamber to cool between rungs.

A template you save is an ordinary workflow, so you can edit it however you like. Starting a ladder with the chamber still hot from an earlier session means it waits for the chamber to cool to the first rung.

Can I keep my usual templates at the top?

Yes. Tap ☆ next to a template's name (Workflows → Templates), or next to the dropdown under the Volcano drawing when a template is selected. Favourites come first in that dropdown, under ★ Favourites, and the ★ Favourites filter shows just them. Tap ★ again to remove one. They're saved in this browser and included in ⤓ Backup.

Can I share a workflow with someone?

Yes — on the Workflows tab, click 🔗 on a workflow to copy a share link. Whoever opens it is asked to import the workflow. It's encoded in the URL's # fragment, so nothing is uploaded — the whole workflow travels inside the link. You can also paste a share link (or exported JSON) into the Import button.

Is there a history of my sessions?

Yes. On the Workflows tab, 📜 Session history lists each workflow or template you've run: when, how long, how many bags, and whether it finished, was stopped or hit an error. ✎ on a row adds a note and a 1–5 star rating (the strain, how it hit), kept with the entry and in backups. When a session ends, a bar at the bottom sums it up (“Done: … 3 bags in 12:40”) with ✎ Add a note, which opens that entry's note. ↻ on a row runs that session again (the saved workflow, the template in the same mode, or the ladder you built). It's stored in this browser (the latest 200) and included in ⤓ Backup. To tweak a saved workflow without losing the original, use ⧉ on its card to duplicate it. ▲ and ▼ move a saved workflow up or down, which also sets its place in the dropdown under the drawing.

I deleted something by mistake

Press Undo in the bar at the bottom of the screen (or Ctrl+Z) within about 8 seconds. That works for a deleted workflow, action or condition, a removed preset, and a cleared session history. Only the latest delete can be undone. After that, ⤒ Restore from a backup brings back workflows and history.

It disconnected on its own — now what?

Click Reconnect (it appears after a drop) to reconnect to the same unit without picking it again. If that fails, use Connect.

Can it tell me when to fit a bag while I'm in another app?

Yes. Tick 📣 Notify in background on the Workflows tab and allow notifications when the browser asks. While a session runs and the app isn't on screen, you get a notification to fit a fresh bag, when the bag is full, and when the session ends (or stops on an error). Tapping one brings the app back. Nothing is sent while you're looking at the app; the beeps cover that. The browser has to stay open in the background for the session to keep running.

Can I install it as an app?

Yes — it's a PWA. Your browser will offer to install it (or use Settings → App → Install app), and it works offline after the first load. The Bluetooth link still needs the device in range. When a new version is out, a banner offers Reload; it waits until any running session ends. After an update, a What's new card at the top lists what changed since the version you last used; Got it closes it.

Found a bug, or have an idea?

Report a problem (also at the bottom of the app) opens a bug report on GitHub with the app version, your browser and system, and the Volcano's firmware already filled in; describe what happened and add a screenshot if you can. For a feature or a new session template, use the other forms. Problems with the Volcano in Home Assistant belong with SavageNL's integration. A GitHub account is needed to post.

Is it safe?

It's a 230 °C heater. The page clamps the range to 40–230 °C and asks before turning heat on, and the device's own auto-off timer still applies — but don't walk away from a running unit.

Nothing it does is permanent or irreversible. It only uses the Volcano's own Bluetooth controls — the same ones the device buttons and the Storz & Bickel app use — so nothing is flashed, reset, or recalibrated. The device preferences on the Settings tab (units, cooling display, vibration, LED brightness, auto-off) are stored on the unit and stay as you leave them; you can switch any of them back at any time, here or on the device.

Temperature guide

The Vapesuvius templates climb the eight Vapesuvius rungs (179→230 °C); as the target rises, progressively higher-boiling compounds come off. Roughly what volatilizes where — set a target for the effect you want. These are compound boiling points; the Volcano reads a touch low, so nudge the target up 1–2 °C to fully reach one. The Control panel always shows °C (flip the device to °F in Settings if you prefer).

  °C  compound              type
  157 THC                   cannabinoid
  166 β-Pinene              terpene
  167 β-Myrcene             terpene
  168 α-Humulene            terpene
  169 δ-3-carene            terpene
  177 1,8-Cineole           terpene
  178 p-Cymene              terpene
  178 D-Limonene            terpene
  178 Δ8-THC                cannabinoid
  180 CBD                   cannabinoid
  182 cannflavin A          flavonoid
  185 CBN                   cannabinoid
  200 linalool              terpene
  212 (+)-Terpinen-4-ol     terpene
  213 borneol               terpene
  219 α-Terpineol           terpene
  220 CBC                   cannabinoid
  220 THCV                  cannabinoid
  224 pulegone              terpene
  230 geraniol              terpene

Dosing: for edibles made from already-vaped bud, run only the even ladder steps (2 / 4 / 6 / 8) and skip the odd ones — you leave more actives behind for the capsule. Comfort: above ~205 °C (rung 5) the vapor runs warm; a waterpipe helps. Source: Vapesuvius Temp Step Guide, 3rd ed.

Console

The Console tab is a command line for the Volcano. Type help for the list; chain commands with ; to run them in sequence, or run <name> to run a workflow built on the Workflows tab.

  help                  list commands
  status                connection + temperature state
  connect / disconnect  open or close the BLE link
  temp <40-230>         set target (°C)
  heat on | off         heater on / off
  fan on | off | <s>    pump on/off, or <s> secs
  bag                   fill a bag (41 s)
  led <0-100>           LED brightness
  units c | f           device display units
  ladder                timed Vapesuvius ladder
  wait <s>              pause <s> seconds
  ls                    list saved workflows
  run <name>            run a saved workflow
  stop                  cancel a running script
  clear                 wipe the screen

Scripts chain with ';' and run in order — a workflow from the command line:

  heat on; wait 300; temp 220; wait 120; bag

Up / down arrows recall history, and everything the app does is logged here.

Protocol notes

The GATT it uses, all under service 10110000-5354-4f52-5a26-4249434b454c
(the tail spells STORZ&BICKEL in ASCII):

  current temp   …0001  read / notify, uint16 LE ÷ 10
  set temp       …0003  write (target × 10), uint16 LE
  heat on / off  …000f / …0010  write [1] / [0]
  fan on / off   …0013 / …0014  write [1] / [0]
  status regs    service 10100000…, PRJSTAT1 masks (heat 32, pump 8192)
  setting regs   PRJSTAT2 …000d (°F 0x200, cooling-display 0x1000),
                 PRJSTAT3 …000e (vibration 0x400)

Heat and fan state are read back from the PRJSTAT1 register every couple of
seconds, so the indicators reflect the device, not just what you clicked.

Units, cooling-display, and vibration are active-low bits in PRJSTAT2/3: write
the mask alone to clear a bit (feature on), or 0x10000 | mask to set it (off).
They change the Volcano's own display and buzzer, not this panel.

Fill bag runs the pump for 41 s with a countdown (standard S&B Easy Valve) —
heat to your target first, and give XL bags 75–100 s.

`ladder` turns heat on and walks 179→230 °C, one rung every 5 min
(~35 min total) with a live countdown.

← back to the controller · BLE protocol reverse-engineered by SavageNL/home-assistant-volcano-hybrid. Not affiliated with Storz & Bickel. — by magikh0e · Changelog · Report a problem

Free and open source. If it's handy, support it on Patreon or buy me weed.