Skip to main content

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

  1. Create or edit an alert
  2. Add the OpenShock action
  3. Select your OpenShock account(s)
  4. Select your device(s)
  5. Choose operation mode (Shock/Vibrate/Beep)
  6. Set intensity and duration
  7. Save and test
Screenshot Coming Soon

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
Safety Warning

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
Screenshot Coming Soon

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

  1. Connect OpenShock Account

    • Go to Settings → Platforms → OpenShock
    • Enter your API token
    • Save and test connection
  2. Create Alert

    • Navigate to Alerts section
    • Create new alert or edit existing
    • Set your trigger conditions
  3. Add OpenShock Action

    • In Actions section, click "Add Action"
    • Select "OpenShock"
  4. Configure Device

    • Select your OpenShock account
    • Choose device(s) from dropdown
    • Pick operation mode
  5. 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:

  1. Enable Dynamic Intensity
  2. In the curve editor:
    • Set low-end: $1 → 10% intensity
    • Set mid-range: $10 → 35% intensity
    • Set high-end: $50 → 75% intensity
  3. Test with various tip amounts
Pro Tip

OpenShock allows longer durations (65s vs PiShock's 15s), making it better for extended dynamic duration curves.

Long Duration Setup

For extended operations:

  1. Set duration to 30-60 seconds
  2. Use lower intensity (10-25%) for comfort
  3. Enable warning vibrate for transparency
  4. 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

Important Safety Notes
  • 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:

  1. ✅ Test device directly in OpenShock app
  2. ✅ Test with low intensity (5%) in TipLink
  3. ✅ Verify correct device is triggering
  4. ✅ Test all operation modes (shock/vibrate/beep)
  5. ✅ Test dynamic/random settings if used
  6. ✅ Verify warning vibrate works
  7. ✅ 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