Presence Detector


$30/unit OUT OF STOCK
Out of stock
$100 for 4-pack OUT OF STOCK
Out of stock
emailE-Mail me when back in stock

What is it?


The Happy Bubbles presence detector is a Bluetooth Wifi Gateway.

Each presence detector listens for Bluetooth low energy advertisements around it that are sent constantly by things like iBeacons, or even your phone if you make it act as a beacon. The detector also connects to your home WiFi and an MQTT server of your choice. Each detector will then send the beacon advertisments it sees, as well as their signal strengths, to the MQTT server over WiFi. You can subscribe to these topics through your MQTT broker.

Documentation is available here: https://www.happybubbles.tech/presence/docs/

Check out how you can use it for presence detection here: https://www.happybubbles.tech/presence/


Set it up


  1. Power the unit on by plugging in a micro USB cable.
  2. Status LED should be orange to indicate it's in 'Config Mode'. If not, hold down the 'config' button for about 5 seconds.
  3. Look for an access point called 'happy-bubbles-ble' on your phone or computer, and connect to it.
  4. On a browser, go to http://192.168.4.1/
  5. You will see a user-interface where you can change the unit's hostname on your network, select it which WiFi network to connect, and enter which MQTT server to connect to and communicate on.
  6. Finally, when you've changed the settings how you want them, hold the config button down for about 5 seconds. The detector should reboot itself and the status LED will quickly blink purple few times. This means it's in 'Operation Mode'. It's now listening for Bluetooth beacons and sending their info over MQTT.
    NOTE: For security reasons, the config user interface webpage can only be accessed when the unit is in 'Config Mode'.


MQTT and Message Format


Happy Bubbles Bluetooth Presence Detectors are designed to communicate over MQTT and will send Bluetooth Low Energy advertisements to the selected MQTT server over QoS 0 type message. The payload of the messages is in JSON format.

Happy Bubbles will publish all advertisments it sees to the MQTT topic:

happy-bubbles/ble/<the-hostname>/raw/<the-bluetooth-MAC-address>
with a payload like:
{
	"hostname": "living-room",
	"mac": "dd6ed85b7a80",
	"rssi": -94,
	"is_scan_response": "0",
	"type": "3",
	"data": "0201061aff4c000215e2c56db5dffb48d2b060d0f5a71096e000680068c5"
}
					

Eddystone beacons: if the advertisment looks to be in Eddystone format (the UID packet), it will also be published to the topic:
happy-bubbles/ble/<the-hostname>/eddystone/<the-Eddystone-namespace>
with a payload like:
{
	"hostname": "<the-hostname>",
	"beacon_type": "eddystone",
	"mac": "<the-hostname>",
	"rssi": -89,
	"tx_power": c8,
	"namespace": "<the-namespace>",
	"instance_id": "<the-instance-ID>"
}
					

iBeacons: if the advertisment looks to be in iBeacon format, it will also be published to the topic:
happy-bubbles/ble/<the-hostname>/ibeacon/<the-iBeacon-UUID>
with a payload like:
{
	"hostname": "living-room",
	"beacon_type": "ibeacon",
	"mac": "dd6ed85b7a80",
	"rssi": -92,
	"uuid": "e2c56db5dffb48d2b060d0f5a71096e0",
	"major": "0068",
	"minor": "0068",
	"tx_power": "c5"
}
					

Clear skies, no clouds
Unsplashed background img 2