{"id":16360153,"url":"https://github.com/firsttris/reactive-volcano-app","last_synced_at":"2026-03-10T04:34:00.932Z","repository":{"id":211482046,"uuid":"727572833","full_name":"firsttris/reactive-volcano-app","owner":"firsttris","description":"A reactive web app to control Storz \u0026 Bickel vaporizers (Volcano, Venty, Veazy, Crafty) via Bluetooth Low Energy.","archived":false,"fork":false,"pushed_at":"2026-01-29T09:22:42.000Z","size":924,"stargazers_count":9,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-29T22:48:25.035Z","etag":null,"topics":["bluetooth","bluetooth-low-energy","crafty","docker","docker-compose","iot","pwa","solidjs","styled-components","typescript","vaporizer","veazy","venty","volcano","web-bluetooth","web-bluetooth-api"],"latest_commit_sha":null,"homepage":"https://firsttris.github.io/reactive-volcano-app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firsttris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-05T06:10:11.000Z","updated_at":"2026-01-29T09:22:46.000Z","dependencies_parsed_at":"2026-01-05T05:10:57.246Z","dependency_job_id":null,"html_url":"https://github.com/firsttris/reactive-volcano-app","commit_stats":null,"previous_names":["firsttris/reactive-volcano-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/firsttris/reactive-volcano-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firsttris%2Freactive-volcano-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firsttris%2Freactive-volcano-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firsttris%2Freactive-volcano-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firsttris%2Freactive-volcano-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firsttris","download_url":"https://codeload.github.com/firsttris/reactive-volcano-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firsttris%2Freactive-volcano-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30324450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T01:36:58.598Z","status":"online","status_checked_at":"2026-03-10T02:00:06.579Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bluetooth","bluetooth-low-energy","crafty","docker","docker-compose","iot","pwa","solidjs","styled-components","typescript","vaporizer","veazy","venty","volcano","web-bluetooth","web-bluetooth-api"],"created_at":"2024-10-11T02:10:42.692Z","updated_at":"2026-03-10T04:34:00.913Z","avatar_url":"https://github.com/firsttris.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Reactive Vaporizer App\n\n\u003cimg src=\"./docs/ui-1.png\" alt=\"User Interface\" height=\"500\" /\u003e\n\n[![Build](https://github.com/firsttris/reactive-volcano-app/actions/workflows/build.yml/badge.svg)](https://github.com/firsttris/reactive-volcano-app/actions/workflows/build.yml)\n[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)\n\n[![SolidJS](https://img.shields.io/badge/SolidJS-2c4f7c?style=for-the-badge\u0026logo=solid\u0026logoColor=c8c8c8)](https://www.solidjs.com/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n[![Vite](https://img.shields.io/badge/Vite-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white)](https://vitejs.dev/)\n[![Styled Components](https://img.shields.io/badge/styled--components-DB7093?style=for-the-badge\u0026logo=styled-components\u0026logoColor=white)](https://styled-components.com/)\n\n**Control your Storz \u0026 Bickel devices with cutting-edge Web Bluetooth technology.**\n\n[German Version](README_de.md)\n\n\u003c/div\u003e\n\n\n## 📖 Introduction\n\nThe Volcano, Venty, Veazy, and Crafty, made by Storz \u0026 Bickel in Tuttlingen, Germany, are well-known high-quality vaporizers. These devices can be controlled using the Bluetooth Web API.\n\nThis project showcases how to use **cutting-edge technology** to control these devices via the Web Bluetooth API.\n\n## 📱 Device Support\n\nThis app supports the following Storz \u0026 Bickel devices:\n\n- **Volcano**\n- **Venty**\n- **Veazy**\n- **Crafty** (both new and old firmware versions)\n\n*Note: Available features may vary depending on the device model.*\n\n## 🚀 Features\n\n### App Features\n- 🌑 **Dark mode**\n- 📱 **Responsive UI** (Desktop \u0026 Mobile)\n- 🌍 **Localization** (German \u0026 English)\n- 💾 **PWA** (Progressive Web App)\n\n## 🎮 Test my App\n\nAccess \u0026 Test the WebApp here: **[Reactive Vaporizer App](https://firsttris.github.io/reactive-volcano-app/)**\n\n## 🐧 Prerequisites\n\nMake sure the **Web Bluetooth API** is activated in your browser.\n\n1. Open Chrome and navigate to `chrome://flags/#enable-web-bluetooth`.\n2. Enable the flag as shown in the image below.\n\n![Enabling Web Bluetooth API in Chrome](/docs/web-bluetooth-api.png)\n\n## 🖼️ User Interface Overview\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick to view User Interface screenshots\u003c/b\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\nThe user interface is responsive and designed to work well on both desktop and mobile devices.\n\n### Click on the Bluetooth icon to initiate Bluetooth discovery\n\u003cdiv align=\"center\"\u003e\n\n![Bluetooth Discovery](/docs/bluetooth-connect.png)\n\n\u003c/div\u003e\n\n### Effortlessly control your Storz \u0026 Bickel device\n\u003cdiv align=\"center\"\u003e\n\n![User Interface](/docs/ui-1.png)\n![User Interface](/docs/ui-2.png)\n\n\u003c/div\u003e\n\n### Veazy Venty\n\u003cdiv align=\"center\"\u003e\n\n![User Interface](/docs/veazy1.png)\n![User Interface](/docs/veazy2.png)\n\n\u003c/div\u003e\n\n\u003c/details\u003e\n\n## 📲 Adding the PWA to Your Home Screen\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick to see PWA installation steps\u003c/b\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\nProgressive Web Apps can be installed on your device like native apps.\n\n### On Android:\n1. Open the PWA in your browser (Chrome, Firefox, etc.).\n2. Tap on the browser's menu (usually three dots in the top right corner).\n3. Tap on \"Add to Home screen\".\n\n### On iOS:\n1. Open the PWA in Safari.\n2. Tap the Share button (the box with an arrow pointing upwards).\n3. Scroll down and tap \"Add to Home Screen\".\n\n\u003c/details\u003e\n\n\n\n## 🛠️ Development and Build\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick to see Development and Build steps\u003c/b\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\nTo develop and build this project, follow these steps:\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/firsttris/reactive-volcano-app.git\n   ```\n2. Navigate into the project directory:\n   ```bash\n   cd reactive-volcano-app\n   ```\n3. Install the dependencies:\n   ```bash\n   npm install\n   ```\n4. Start the development server:\n   ```bash\n   npm run dev\n   ```\n5. To build the project:\n   ```bash\n   npm run build\n   ```\n\n\u003c/details\u003e\n\n### 🐛 Remote Debugging on Android\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick to see Remote Debugging steps\u003c/b\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\n1. **Enable USB Debugging** on your Android device.\n2. **Connect Your Device** via USB.\n3. **Enable Bluetooth Web API for HTTP**: Go to `chrome://flags/#unsafely-treat-insecure-origin-as-secure` in Chrome on your PC.\n4. **Enter Your Local IP Address**: Add your local dev machine IP, enable, and restart.\n   ![unsafely-treat-insecure-origin-as-secure](docs/chrome-insecure-origins.png)\n5. **Open Local Server URL**: Open `http://\u003cYOUR_IP\u003e:5174/` on your Android device.\n6. **Enable Remote Debugging**: On your PC, go to `chrome://inspect/#devices`.\n   ![inspect](docs/inspect.png)\n7. **Debug**: Click \"inspect\" to open the DevTools.\n\n\u003c/details\u003e\n\n## ⚠️ Connection Issues and Pitfalls\n\n- **Single Connection**: The Volcano can maintain a Bluetooth connection with only one device at a time. Disconnect existing connections before pairing a new device.\n\n## 🤝 Contributing\n\nWant to contribute?\n- Visit our [issues page](https://github.com/firsttris/reactive-volcano-app/issues).\n- Submit pull requests or open issues for bugs and feature suggestions.\n\n## ⚖️ Code Ownership \u0026 License\n\n**Code Ownership**:\nThis project has been developed with utmost care to respect Storz \u0026 Bickel's rights. All code was written from scratch using different technologies. Assets are open source. If existing concerns arise, please contact me before taking legal action.\n\n**License**:\nThis work is licensed under a [Creative Commons Attribution-NonCommercial 4.0 International License](http://creativecommons.org/licenses/by-nc/4.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirsttris%2Freactive-volcano-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirsttris%2Freactive-volcano-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirsttris%2Freactive-volcano-app/lists"}