Skip to main content

PiShock Action

Control PiShock devices in response to alert triggers. Supports shock, vibrate, and beep operations with advanced customization options including dynamic intensity curves, randomization, and warning vibrations.

What You Need

  • A PiShock account connected in TipLink (Settings → Platforms → PiShock)
  • At least one PiShock device configured in your account
  • Your device must be online and accessible

Quick Start

  1. Create or edit an alert
  2. Add the PiShock action
  3. Select your PiShock 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 PiShock Account(s)

  • Choose which PiShock account(s) to use
  • Can select multiple accounts if you have several configured

Select PiShock Device(s)

  • Choose which device(s) to trigger
  • All selected devices use the same settings
  • Only shows devices from selected accounts

Enable Random Device Selection

  • Randomly picks device(s) from your selection
  • Useful for multi-device setups with variety

Minimum/Maximum Random Devices

  • Control how many devices are randomly selected
  • Example: Min=1, Max=3 picks 1-3 random devices from your list

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-15 seconds)

  • How long the operation lasts
  • Maximum 15 seconds per PiShock API limits
  • 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-10 seconds)
  • Each trigger picks a random value in this range

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 = 1 second, $50 tip = 15 seconds
  • Linear interpolation between points

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-15 seconds)

  • How long the warning vibration lasts
  • Occurs before the main operation

Setup Guide

Basic Setup

  1. Connect PiShock Account

    • Go to Settings → Platforms → PiShock
    • Enter your username and API key
    • Save and test connection
  2. Create Alert

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

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

    • Select your PiShock 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

Use dynamic curves with percentage-based scaling instead of fixed amounts for better flexibility across different tip ranges.

Multi-Device Setup

For variety across multiple devices:

  1. Select all your devices
  2. Enable Random Device Selection
  3. Set min/max selections (e.g., 1-2 devices)
  4. Each trigger picks different random device(s)

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 (3-10 seconds)
  • Each trigger is unpredictable

Pattern Shocks

  • Enable duplicate shocks (3 repeats)
  • Set 1 second delay between
  • Creates a 3-pulse pattern

Gentle Warning System

  • Enable warning vibrate
  • Set warning: 30% intensity, 3 seconds
  • Main shock: 50% intensity, 2 seconds

Multi-Device Lottery

  • Select 5+ devices
  • Random selection: min 1, max 1
  • Each trigger hits one random device

Troubleshooting

Devices not showing up

  • Verify PiShock account is connected in Settings
  • Check that devices are online in PiShock app
  • Refresh TipLink and check again

Nothing happens when triggered

  • Test device directly in PiShock app first
  • Check device battery/connection status
  • Verify API key is correct
  • Look at TipLink logs for error messages

Intensity too weak/strong

  • Remember PiShock devices vary by model
  • 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

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

Recommended Starting Values:

  • Intensity: 5-10%
  • Duration: 1-3 seconds
  • Warning intensity: 20-30%
  • Warning duration: 2-3 seconds

Testing Checklist:

  1. ✅ Test device directly in PiShock 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

Technical Reference

API Limits:

  • Max intensity: 100%
  • Max duration: 15 seconds
  • Operations are queued if triggered rapidly

Value Ranges:

  • Intensity: 1-100 (percentage)
  • Duration: 1-15 (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-15s duration)

Device Selection:

  • Random selection uses cryptographically secure randomization
  • Min/max values are inclusive
  • If min > device count, all devices are selected