===== Remote Controlled Devices ===== If you have not done it yet I would recommend using a remote controlled device linked to Jennifer! We hope to make it easy for anyone to easily link a device in. This will take time. The easiest way at the moment is an [[remote_audio|Audio controlled e-stim]] but that costs a lot. We hope to have a simple solution that anyone can put together or buy off the shelf for under £20 soon. If you are too scared to join Jennifer the device API is also available by getting an ID from [[https://play-link.com/devices.html]] Once you have linked your device to the API directly or via the controller program you can test it at [[https://play-link.com/jen/devices.php?id=XXXX]] either by directly triggering the device or a random chance of being triggered. This link also allows you to play with a keysafe or chastity device that are linked to the SafeAPI. ==== API ==== === Reading Values === The remote devices are triggered by reading JSON data from the following address: [https://play-link.com/jen/remote.php?id=XXX] The format is in the following format: { "servertime": 1466500571, "triggers": [ { "start": 1466500601, "level": 100, "device": "estim", "duration": 2 } , { "start": 1466500606, "level": 100, "device": "lock", "duration": 2 } ]} You can also get the data in text or an alternative json format by adding "&format=text" or "&format=json2" to the link above if thats is easier for you to read. In the example above there are 2 upcoming triggers one for the estim and 5 seconds later to release the lock. A lot of devices currently being developed make use of relays so the level value is ignored. === Return Status === Where possible it preferable to return a status update when a trigger has been activated. This enables Jennifer (and external mistresses) to get feedback when she tries to shock you etc ;-) To return a status text use the following: https://play-link.com/jen/return.php?id=XXX&device=estim&text=Shock The above example would return the text "Shock" for if an estim device had been successfully triggered. It would also be good for devices to send a status update to show a device is connected and ready for action e.g. https://play-link.com/jen/return.php?id=XXX&device=estim&text=Ready === Creating Triggers === This will only really be needed for testing... You can add triggers as follows: https://play-link.com/jen/remote.php?id=XXX&device=estim&delay=60&duration=1&level=100 in this example it will trigger the estim for 1 second in 60 seconds time. If you don't specify delay, duration or level, default values will be used. Devices currently in the system are: estim, shock, lock, vibe Alternatively you can use the control program below to create test triggers. ==== Safe API ==== (For safes and chastity locks) Over the last year we have had several calls to extend the api to control a safe, lockbox or chastity device. To help prevent people from hacking their device the SafeAPI also has an additional key code system. An example use will be as follows: 1) Before the safe is locked it will ping the address https://play-link.com/jen/safe.php?id=1XXX&cmd=status&locked=0 This will return the line (where locked is the current safe status to check matches with API): unlocked 2) Until the safe should be locked where it will return 2 line (The second being an unlock code) close BKJG989hBJG This code is only given **ONCE** (to save people grabbing it after the safe is locked) - **YOUR CODE WILL be DIFFERENT** to above! Currently mod have no way of resetting if you forget the code (will probably put an override in at some stage). Subsequent calls with "status" will just return: locked When Jennifer thinks the safe can be opened the next time(s) status is called it will return: open To complete the open the safe will then need to send: /jen/safe.php?id=1XXX&cmd=open&code=BKJG989hBJG if the code is correct it will return: releasing The safe/device can then unlock itself and is essentially back to the start position - if the wrong code is given it will flag as a tamper warning (and add time till unlock) Devices also have the command: /jen/safe.php?id=1XXX&cmd=tamper&text=motion That would log suspected tamper attempts as would using the wrong key to unlock and the locked status not matching the server. Other tamper feedback available e.g. for devices that detect a pulse in the device: (will add to time) /jen/safe.php?id=1XXXXX&cmd=tamper&text=no pulse === Setting Times === At the moment your lock status is not linked to your chastity status in Jennifer. To test your device or if you are not part of Jennifer you can lock your device for a specific time in days,hours,mins as following (if you don't specify a value for days, hours or mins they will default to 0): /jen/safe.php?id=1XXX&cmd=lock&days=0&hours=3&mins=0& Once we have some devices using this out there, your locked status will relate to your chastity status (if in Jennifer). But can message Liz for ways to test if developing a device. You can also use this API with the ID you get from devices https://play-link.com/devices.html if you don't want to be under Jennifer in Control. As well as physical devices it will also be easy to develop some software that takes a picture of a combination lock and only reveals it once the API says so. ==== Control ==== Instead of having to workout how to use the API you can download a controller program. The controller program is available at [[https://play-link.com/jen/controller.zip]] you can download this and after updating the ini file will allow you to run commands to trigger devices. An example ini file would be as follows [PlayLink] ID=XXXX [Device] type=estim start=CommandApp_USBRelay.exe SVJGX open 01 end=CommandApp_USBRelay.exe SVJGX close 01 [Device2] type=lock start=cdtray=D end=cdtray=D You will need to change the ID to match yours. In the above example your estim device is switched on and off from a command line instruction and the lock is via open and closing the CD drive "D". With the advent of IoT you can also send start and stop instructions by putting in a webaddress e.g. [Device2] type=lock start=http://192.168.1.32/control.php?switch1=on end=http://192.168.1.32/control.php?switch1=off Even if you can't control a device directly you should be able to do so by calling a script e.g for "lovesense Lush" you can create a python script to switch the device on or off at different levels that is called by the controller - see [[https://pypi.python.org/pypi/lovesense/]] The controller package also contains the source-code in Lazarus and some examples in other languages such as C++ so worth a look if you need some pointers. ==== Devices ==== * [[remote/audio|Audio Controlled device]] - How to link an audio controlled estim into Jennifer * [[remote/estim|External estim devices]] - E-Stim devices linked to a controller * [[remote/RasberryPi|RasberryPi]] - Project page on how to link a rasberrypi to Jennifer with example pyphon script and hardware description and pictures. * [[remote/arduino|Arduino devices]] - arduino based devices ( Smichael27 ? ) * [[remote/Relay|WiFi Relay controller]] - Project page on building / using a wifi relay device ( edinburghJay ) ==== Design & Experimentation ==== * [[dick_as_a_circuit|Dick As A Circuit]] - Measuring how a certain body part behaves in an estim circuit. * [[how_estim_works|How EStim Works]] - Measuring how a TENS7000 unit works * [[how_audio_output_works|How Audio Output Works]] - What are typical properties of phone/laptop/amplifier audio out? * [[high_voltage_switches|High Voltage Switches]] - Which switches can we control the high-voltage estim from low-voltage computer / phone / arduino outputs?