HypeRate
Connect your heart rate monitor via HypeRate to display real-time BPM data on stream. Create interactive experiences based on heart rate thresholds and events.
Overview
FaustBot connects to HypeRate's WebSocket service to receive real-time heart rate data from various devices:
Real-Time BPM
Get instant heart rate updates from your device.
Statistics
Track min, max, and average heart rate per session.
Session ID
Connect using unique session identifiers.
Threshold Triggers
Trigger actions on BPM threshold crossings.
Overlay Support
Display BPM in stream overlays.
Multi-Device
Works with watches, bands, and chest straps.
Supported Devices
HypeRate works with Apple Watch, Garmin, Fitbit, Polar, Whoop, and many other heart rate devices. Check hyperate.io for the full list.
Setup
Connect to HypeRate
Install HypeRate App
Download the HypeRate app on your phone or smart device. Connect your heart rate monitor following the in-app instructions.
Get Session ID
In the HypeRate app, find your unique session ID. This is usually displayed on the
main screen or in settings. It looks like: ABC123
Connect in FaustBot
In FaustBot, go to HypeRate in the sidebar. Enter your session ID and click Connect. Your heart rate should appear within seconds.
Session ID Changes
Your HypeRate session ID may change if you reinstall the app or switch devices. Make sure to update the ID in FaustBot if you lose connection.
Configure Thresholds
Set up BPM thresholds similar to Pulsoid:
- Low Threshold - Actions trigger when BPM drops below this value
- High Threshold - Actions trigger when BPM exceeds this value
Triggers
Respond to heart rate events:
Heart Rate Update New BPM reading receivedAbove High Threshold BPM crossed above high thresholdBelow Low Threshold BPM dropped below low thresholdReturned to Normal BPM returned between thresholdsConnected HypeRate connection establishedDisconnected HypeRate connection lostTrigger Variables
Heart rate triggers provide: %heartRate%, %minHeartRate%, %maxHeartRate%, %avgHeartRate%, %sessionId%.
Effects
Set Thresholds
Update low/high BPM thresholds.
Reset Statistics
Reset min/max/avg tracking.
Connect
Establish HypeRate connection.
Disconnect
Close HypeRate connection.
Scripting API
Access heart rate data programmatically from your scripts:
Connection & Status
# Check connection
if CPH.HyperateIsConnected():
info = CPH.HyperateGetConnectionInfo()
CPH.Log(f"Connected to session: {info['sessionId']}")
else:
# Connect to HypeRate
CPH.HyperateConnect()
# Get session ID
session_id = CPH.HyperateGetSessionId()
CPH.Log(f"Session: {session_id}")
# Set a different session ID
CPH.HyperateSetSessionId("ABC123")Heart Rate Data
# Get current heart rate
bpm = CPH.HyperateGetHeartRate()
CPH.Log(f"Current BPM: {bpm}")
# Get statistics
min_bpm = CPH.HyperateGetMinHeartRate()
max_bpm = CPH.HyperateGetMaxHeartRate()
avg_bpm = CPH.HyperateGetAvgHeartRate()
CPH.Log(f"Min: {min_bpm}, Max: {max_bpm}, Avg: {avg_bpm}")
# Get all stats at once
stats = CPH.HyperateGetHeartRateStats()
# Returns: {current, min, max, average}
# Get full state including connection info
state = CPH.HyperateGetState()
CPH.Log(f"Connected: {state['connected']}, BPM: {state['heartRate']}")Practical Example
# Heart rate alert script
# Trigger: HypeRate Heart Rate Update
bpm = CPH.HyperateGetHeartRate()
max_bpm = CPH.HyperateGetMaxHeartRate()
# Alert on new max
if bpm == max_bpm and bpm > 100:
CPH.SendMessage(f"NEW MAX HEART RATE: {bpm} BPM!")
# Change Hue lights to red
if CPH.HueIsConnected():
CPH.HueSetAllLightsColor("#FF0000")
# Scale overlay based on BPM
intensity = min(100, max(0, (bpm - 60) / (180 - 60) * 100))
CPH.SetGlobalVar("heartIntensity", intensity)See the full API reference for all available HypeRate methods.