Integration

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

1

Install HypeRate App

Download the HypeRate app on your phone or smart device. Connect your heart rate monitor following the in-app instructions.

2

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

Screenshot: HypeRate session ID
3

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 received
Above High Threshold BPM crossed above high threshold
Below Low Threshold BPM dropped below low threshold
Returned to Normal BPM returned between thresholds
Connected HypeRate connection established
Disconnected HypeRate connection lost

Trigger 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
# 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.