Integration

Pulsoid

Display your heart rate on stream with Pulsoid integration. Create triggers based on BPM thresholds for exciting interactive content during intense gaming moments.

Overview

FaustBot connects to Pulsoid to receive real-time heart rate data from your wearable device, enabling:

Real-Time BPM

Get current heart rate updated every second.

Statistics

Track min, max, and average heart rate.

Threshold Triggers

Trigger actions when BPM crosses thresholds.

Heart Rate Zones

Calculate zones based on max heart rate.

Overlay Integration

Display BPM in stream overlays.

Variable Access

Use BPM data in any action or script.

Setup

Connect to Pulsoid

1

Get Pulsoid Account

Sign up at pulsoid.net and connect your heart rate monitor (smartwatch, chest strap, etc.) via the Pulsoid app.

2

Get API Token

In your Pulsoid account settings, go to API Access and generate an access token. Copy this token.

Screenshot: Pulsoid API token
3

Connect in FaustBot

In FaustBot, go to Pulsoid in the sidebar. Paste your API token and click Connect. Your heart rate should appear within seconds.

Pulsoid BRO Subscription

WebSocket streaming requires a Pulsoid BRO subscription for real-time updates. Without it, polling is used which has a slight delay.

Configure Thresholds

Set up BPM thresholds to trigger actions when your heart rate goes above or below certain levels:

  • Low Threshold - Trigger when BPM drops below (e.g., 60 BPM for resting)
  • High Threshold - Trigger when BPM goes above (e.g., 120 BPM for intense moments)

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 Pulsoid connection established
Disconnected Pulsoid connection lost

Trigger Variables

Heart rate triggers provide these variables: %heartRate%, %minHeartRate%, %maxHeartRate%, %avgHeartRate%, %heartRateZone%.

Effects

Set Thresholds

Update low/high BPM thresholds.

Reset Statistics

Reset min/max/avg tracking.

Connect

Establish Pulsoid connection.

Disconnect

Close Pulsoid connection.

Scripting API

Access heart rate data programmatically from your scripts:

Connection & Status

# Check connection
if CPH.PulsoidIsConnected():
    info = CPH.PulsoidGetConnectionInfo()
    CPH.Log(f"Connected: {info['connected']}")
else:
    # Connect to Pulsoid
    CPH.PulsoidConnect()

Heart Rate Data

# Get current heart rate
bpm = CPH.PulsoidGetCurrentHeartRate()
CPH.Log(f"Current BPM: {bpm}")

# Get statistics
min_bpm = CPH.PulsoidGetMinHeartRate()
max_bpm = CPH.PulsoidGetMaxHeartRate()
avg_bpm = CPH.PulsoidGetAverageHeartRate()

CPH.Log(f"Min: {min_bpm}, Max: {max_bpm}, Avg: {avg_bpm}")

# Get all stats at once
stats = CPH.PulsoidGetHeartRateStats()
# Returns: {current, min, max, average, sampleCount}

# Check if we have data
if CPH.PulsoidHasData():
    CPH.Log("Heart rate data is available")

Threshold Management

# Get current thresholds
low = CPH.PulsoidGetLowThreshold()
high = CPH.PulsoidGetHighThreshold()
CPH.Log(f"Thresholds: {low} - {high} BPM")

# Set new thresholds
CPH.PulsoidSetLowThreshold(60)
CPH.PulsoidSetHighThreshold(140)

# Check threshold states
if CPH.PulsoidIsAboveHighThreshold():
    CPH.Log("Heart rate is HIGH!")
elif CPH.PulsoidIsBelowLowThreshold():
    CPH.Log("Heart rate is LOW!")
elif CPH.PulsoidIsInNormalRange():
    CPH.Log("Heart rate is normal")

Heart Rate Zones

# Get heart rate zone name
zone = CPH.PulsoidGetHeartRateZone()
CPH.Log(f"Current zone: {zone}")
# Returns: "Resting", "Light", "Moderate", "Vigorous", or "Maximum"

# Get zone percentage (requires max heart rate)
max_hr = 190  # Your max heart rate
zone_percent = CPH.PulsoidGetHeartRateZonePercent(max_hr)
CPH.Log(f"Zone percentage: {zone_percent}%")

# Get full state
state = CPH.PulsoidGetState()
# Returns: {connected, heartRate, min, max, avg, zone, ...}

See the full API reference for all available Pulsoid methods.