OpenShock Action
Control OpenShock devices in response to alert triggers. Supports shock, vibrate, and beep operations with advanced customization including dynamic intensity curves, randomization, and warning vibrations.
What You Need
- An OpenShock account connected in TipLink (Settings → Platforms → OpenShock)
- At least one OpenShock device configured in your account
- Your device must be online and accessible
Quick Start
- Create or edit an alert
- Add the OpenShock action
- Select your OpenShock account(s)
- Select your device(s)
- Choose operation mode (Shock/Vibrate/Beep)
- Set intensity and duration
- Save and test
Configuration interface screenshot will be added here.
Configuration Options
Device Selection
Select OpenShock Account(s)
- Choose which OpenShock account(s) to use
- Can select multiple accounts if you have several configured
Select OpenShock Device(s)
- Choose which device(s) to trigger
- All selected devices use the same settings
- Only shows devices from selected accounts
Operation Settings
Select Action
- Shock: Delivers an electric shock
- Vibrate: Vibrates the device
- Beep: Makes a beeping sound
Start with low intensity values (1-10%) when testing shock operations. Always test on yourself before using in production.
Intensity (1-100%)
- Controls the strength of the operation
- Applies to shock, vibrate, and beep modes
- Hidden when using random or dynamic intensity
Duration (1-65 seconds)
- How long the operation lasts
- Maximum 65 seconds (longer than PiShock's 15 second limit)
- Hidden when using random or dynamic duration
Random Settings
Enable Random Intensity
- Randomly varies intensity for each trigger
- Cannot be used with dynamic intensity
Random Intensity Range
- Set min/max values (e.g., 25%-50%)
- Each trigger picks a random value in this range
Enable Random Duration
- Randomly varies duration for each trigger
- Cannot be used with dynamic duration
Random Duration Range
- Set min/max values (e.g., 5-15 seconds)
- Each trigger picks a random value in this range
- Max of 65 seconds
Dynamic Curves
Enable Dynamic Intensity
- Scales intensity based on event values (e.g., tip amount)
- Cannot be used with random intensity
Dynamic Intensity Curve
- Graph editor for mapping event values to intensity
- Example: $1 tip = 10% intensity, $50 tip = 100% intensity
- Linear interpolation between points
Dynamic curve editor screenshot will be added here.
Enable Dynamic Duration
- Scales duration based on event values
- Cannot be used with random duration
Dynamic Duration Curve
- Graph editor for mapping event values to duration
- Example: $1 tip = 5 seconds, $50 tip = 30 seconds
- Linear interpolation between points
- Y-axis supports up to 65 seconds
Advanced Options
Enable Duplicate Shocks
- Repeats the operation multiple times for one trigger
- Useful for creating patterns or extended actions
Number of Duplicate Shocks
- How many times to repeat (minimum 1)
Delay Between Duplicate Shocks
- Pause between repeats in seconds
- Can be set to 0 for immediate successive operations
Enable Warning Vibrate
- Vibrates the device before the main operation
- Gives the wearer a heads-up
Warning Intensity (1-100%)
- Strength of the warning vibration
- Independent of main operation intensity
Warning Duration (1-65 seconds)
- How long the warning vibration lasts
- Occurs before the main operation
Setup Guide
Basic Setup
-
Connect OpenShock Account
- Go to Settings → Platforms → OpenShock
- Enter your API token
- Save and test connection
-
Create Alert
- Navigate to Alerts section
- Create new alert or edit existing
- Set your trigger conditions
-
Add OpenShock Action
- In Actions section, click "Add Action"
- Select "OpenShock"
-
Configure Device
- Select your OpenShock account
- Choose device(s) from dropdown
- Pick operation mode
-
Set Intensity & Duration
- Start with low values (e.g., 5% intensity, 2 seconds)
- Test before going live
- Adjust as needed
Dynamic Intensity Setup
For tips that scale with donation amount:
- Enable Dynamic Intensity
- In the curve editor:
- Set low-end: $1 → 10% intensity
- Set mid-range: $10 → 35% intensity
- Set high-end: $50 → 75% intensity
- Test with various tip amounts
OpenShock allows longer durations (65s vs PiShock's 15s), making it better for extended dynamic duration curves.
Long Duration Setup
For extended operations:
- Set duration to 30-60 seconds
- Use lower intensity (10-25%) for comfort
- Enable warning vibrate for transparency
- Test thoroughly before production use
Common Use Cases
Tip-Scaled Shock
- Use dynamic intensity curve
- Map tip amounts to shock strength
- Small tips = light shock, big tips = stronger
Random Surprise
- Enable random intensity (25-75%)
- Enable random duration (5-20 seconds)
- Each trigger is unpredictable
Extended Vibration
- Mode: Vibrate
- Duration: 45 seconds
- Intensity: 30%
- Great for passive feedback
Pattern Shocks
- Enable duplicate shocks (5 repeats)
- Set 2 second delay between
- Creates a multi-pulse pattern
Gentle Warning System
- Enable warning vibrate
- Set warning: 30% intensity, 5 seconds
- Main shock: 50% intensity, 3 seconds
Troubleshooting
Devices not showing up
- Verify OpenShock account is connected in Settings
- Check that devices are online in OpenShock app
- Refresh TipLink and check again
Nothing happens when triggered
- Test device directly in OpenShock app first
- Check device battery/connection status
- Verify API token is correct
- Look at TipLink logs for error messages
Intensity too weak/strong
- OpenShock devices vary by model and firmware
- Skin conductivity affects sensation
- Start low and gradually increase
- Test on yourself first
Random/Dynamic not working
- Cannot use both random and dynamic at the same time
- Check that you've disabled one if using the other
- Verify curve has valid points (dynamic mode)
Warning vibrate not triggering
- Check warning is enabled
- Verify warning duration > 0
- Main operation executes after warning completes
Long durations cutting off
- Verify duration is within 1-65 second range
- Check device firmware supports extended durations
- Test with shorter durations first
Safety & Best Practices
- Always test on yourself before using on others
- Start with low values (1-10% intensity)
- Know your device limits - different models have different strengths
- Use warning vibrations for transparency
- Set reasonable maximums - don't exceed 75% without careful testing
- Monitor usage - take breaks between sessions
- Longer durations = lower intensity - use reduced intensity for extended operations
Recommended Starting Values:
- Intensity: 5-10%
- Duration: 1-3 seconds
- Warning intensity: 20-30%
- Warning duration: 2-3 seconds
Extended Duration Guidelines:
- 30-45s duration: max 25% intensity
- 45-65s duration: max 15% intensity
Testing Checklist:
- ✅ Test device directly in OpenShock app
- ✅ Test with low intensity (5%) in TipLink
- ✅ Verify correct device is triggering
- ✅ Test all operation modes (shock/vibrate/beep)
- ✅ Test dynamic/random settings if used
- ✅ Verify warning vibrate works
- ✅ Test extended durations at low intensity
Technical Reference
API Limits:
- Max intensity: 100%
- Max duration: 65 seconds (vs PiShock's 15 seconds)
- Operations are queued if triggered rapidly
Value Ranges:
- Intensity: 1-100 (percentage)
- Duration: 1-65 (seconds)
- Duplicate count: 1+ (no upper limit)
- Duplicate delay: 0+ seconds (no upper limit)
Dynamic Curve Interpolation:
- Uses linear interpolation between defined points
- Values outside defined range use nearest endpoint
- Curve values are clamped to valid ranges (1-100% intensity, 1-65s duration)
Differences from PiShock:
- Longer max duration: 65s vs 15s
- Beep vs Sound: OpenShock calls it "Beep" instead of "Sound"
- API implementation: Uses OpenShock API instead of PiShock API
- Default curve values: Higher duration ranges in default dynamic curves