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
Get Pulsoid Account
Sign up at pulsoid.net and connect your heart rate monitor (smartwatch, chest strap, etc.) via the Pulsoid app.
Get API Token
In your Pulsoid account settings, go to API Access and generate an access token. Copy this token.
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 receivedAbove High Threshold BPM crossed above high thresholdBelow Low Threshold BPM dropped below low thresholdReturned to Normal BPM returned between thresholdsConnected Pulsoid connection establishedDisconnected Pulsoid connection lostTrigger 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.