[RELEASE] Hubitat Snooz BLE Service (Local WebSocket BLE Bridge + Drivers)

Hi everyone,

I’ve been working on a integration for Snooz white noise machines with Hubitat.

The goal was to get reliable on/off + volume control inside Hubitat. The approach is a small BLE-backed WebSocket service(runs on a Linux device like a Raspberry Pi, or even a Mac) plus Hubitat parent/child drivers that maintain a persistent WS connection and create a child device per Snooz unit.

:wrench: KEY FEATURES:

  • :white_check_mark: Local-only control over Bluetooth (no cloud)
  • :white_check_mark: Persistent WebSocket & Bluetooth connection from Hubitat → BLE service (LAN)
  • :white_check_mark: Multi-device support (one BLE host, multiple Snooz devices)
  • :white_check_mark: Child device per Snooz machine with:
    • Switch (on/off)
    • Volume (0–100)
    • Exposed as a Fan device (speed maps to volume) for Homebridge friendliness
    • Connection metadata (connected / model / firmware / etc.)
  • :white_check_mark: Optional Bearer token auth on the WebSocket service
  • :white_check_mark: Docker / docker-compose ready service for easy deployment
  • :white_check_mark: macOS support (on Mac you typically match by device name instead of address)

:building_construction: How it works (high level):

  • A BLE host (Pi / Linux box / etc.) runs the Python WS service
  • The service talks to Snooz devices over Bluetooth using pysnooz
  • Hubitat connects over WebSocket and auto-creates child devices
  • Commands flow Hubitat → WS → BLE and state updates flow back WS → Hubitat

:point_right: GitHub Repo & Setup Guide:
https://github.com/K-MTG/Hubitat-Snooz-BLE

:computer: My hardware setup so far:

  • Tested on Raspberry Pi (Ubuntu Server) & iMac
  • BLE reliability improves a lot with a decent USB Bluetooth adapter if you’re in a noisy RF environment or farther away

:information_source: Notes / Tips:

  • This is LAN-local only — don’t expose the WS port (8765) to the internet.
  • If your LAN has untrusted devices, enable the auth token.
  • On macOS, BLE “addresses” can show up as UUIDs — the service supports matching by device name (e.g. Snooz-040F) which works better.

Feedback, issues, and suggestions are very welcome!

3 Likes


This is really impressive work local-only BLE control with persistent WS is exactly what Hubitat users need.Thanks for sharing such a well-thought-out solution and detailed setup notes excited to try it out

1 Like