Table of Contents

Ferngesteuerte Geräte

Falls Du es bisher noch nicht getan hast, empfehle ich Dir das oder die Geräte mit “Jennifer in Control” zu verlinken. Wir hoffen, wir können es für jeden einfach machen, sein Gerät zu verbinden, aber das benötigt Zeit. Der zur Zeit leichteste Weg is ein Audio controlled e-stim, aber das ist leider sehr teuer. Wir hoffen, dass wir bald eine einfache Lösung finden, die sich jeder zusammenbauen, oder aber für unter 50€ kaufen kann.

Falls Du zu ängstlich sein solltest, “Jennifer in Control” beizutreten, ist die Schnittstelle zur Fernsteuerung (Device-API) dennoch unter https://play-link.com/devices.html für Dich verfügbar.

Du musst Dir lediglich eine kostenlose ID erzeugen lassen. Wenn Du dann dein Gerät direkt oder über ein Steuerungsprogramm mit der Schnittstelle verbunden hast, kannst Du einen Test unter https://play-link.com/jen/devices.php?id=XXXX starten. Dabei kannst Du das Gerät entweder direkt oder zufallsgesteuert triggern. Der Link erlaubt Dir auch mit einem Schlüsselsafe oder einem Keuschheitsgürtel zu spielen, das mit dem SafeAPI verbunden ist.

Beschreibung des API

Gelesene Werte

Die Geräte werden über JSON-Daten getriggert, die von der folgenden Adresse gelesen werden: [https://play-link.com/jen/remote.php?id=XXX]

Dabei wird folgenden Format genutzt:

{
"servertime": 1466500571,
"triggers": [
{
"start": 1466500601,
"level": 100,
"device": "estim",
"duration": 2
}
,
{
"start": 1466500606,
"level": 100,
"device": "lock",
"duration": 2
}
]}

Wenn Du “&format=text” oder “&format=json2” an den obigen Link anfügst, kannst Du die Daten auch in Text- oder einem alternativen JSON-Format erhalten. Manchmal sind diese Formate einfach besser zu lesen. Im obigen Beispiel werden zwei Trigger definiert: einer für die elektrische Stimulation und der andere zum Öffnen des Verschlusses.

Viele zur Zeit entwickelte Geräte verwenden Relais bei denen der Level ignoriert wird.

Rückgabewert

Wo immer möglich, ist es wünschenswert ein Statusupdate zu erhalten, wenn der Trigger aktiviert wurde. Das ermöglicht Herrin Jennifer (und externen Herrinnen/Herren) eine Rückmeldung zu erhalten, wenn sie/er versucht Dich zu schocken ;-) Um einen Statustext zurückzumelden, benutze bitte den folgenden Link: https://play-link.com/jen/return.php?id=XXX&device=estim&text=Shock

Das obige Beispiel würde den Text “Shock” zurückmelden, wen ein Gerät erfolgreich aktiviert wurde. Außerdem wäre es gut, wenn die Geräte eine Statusmeldung versenden würden, um anzuzeigen, dass das Gerät verbunden und betriebsbereit ist. Beispiel: https://play-link.com/jen/return.php?id=XXX&device=estim&text=Ready

Erzeugen von Triggern

Das hier wird eigentlich nur zu Testzwecken benötigt…

Trigger können wie folgt hinzugefügt werden: https://play-link.com/jen/remote.php?id=XXX&device=estim&delay=60&duration=1&level=100 In diesem Beispiel wird das Gerät für eine 1 Sekunde nach einer Wartezeit von 60 Sekunden aktiviert. Wenn Du keine Verzögerung (delay), keine Dauer (duration) und/oder keinen Level (level) definierst, werden Standardwerte genutzt.

Dem System aktuell bekannte Geräte sind: estim, shock, lock und vibe

Alternativ kannst Du auch das Kontrollprogramm unten nutzen um Trigger für den Test zu erzeugen.

Safe API

(Für Safes und Keuschheitsgürtel)

Im letzten Jahr haben wir verschiedene Anfragen nach einer Erweiterung des API zur Kontrolle eines Safes, einer Lockbox oder eines Keuschheitsgürtels gehabt. Um zu verhindern, dass die Leute ihr Gerät “hacken”, besitzt das Safe API ein zusätzliches Schlüsselcode-System. Ein Beispiel:

1) Bevor der Safe verschlossen wird, wird die Adresse https://play-link.com/jen/safe.php?id=1XXX&cmd=status&locked=0 angepingt. Es wird die folgende Zeile zurückgegeben:

unlocked

2) Wenn der Safe verschlossen werden soll, werden 2 Zeilen zurückgegeben (die zweite Zeile enthält den Freischaltcode):

close
BKJG989hBJG

Dieser Code wird nur ein einziges Mal geschickt (Zur Sicherheit, damit er nicht mehr ermittelt werden kann, nachdem der Safe verschlossen ist). - DEIN CODE WIRD EIN ANDERER SEIN Die Moderatoren haben zur Zeit keine Möglichkeit den Code zurückzusetzen, falls Du ihn vergessen solltest (das wird wahrscheinlich geändert werden). Weitere Statusanfragen (“status”) geben dann das Folgende zurück:

locked

Falls Herrin Jennifer der Meinung ist, dass der Save bei der nächsten Statusabfrage geöffnet werden kann, wird die folgende Zeile zurückgegeben:

open

Um das Öffnen des Safes zu vervollständigen, muss dann das folgende gesendet werden:

/jen/safe.php?id=1XXX&cmd=open&code=BKJG989hBJG

Wenn der Code korrekt ist, wird folgendes gesendet:

releasing

Der Safe kann sich nun selbst öffnen und sollte wieder in der Startposition sein. Fall ein falscher Code gesendet wird, wird ein Manipulationsflag gesendet und die Zeit bis zum Öffnen verlängert.

Darüber hinaus haben die Geräte noch folgende Kommandos:

/jen/safe.php?id=1XXX&cmd=tamper&text=motion

Diese Zeile loggt Manipulationsversuche, wie z.B. den falschen Unlockschlüssel, oder einen Verschlussstatus der nicht mit dem auf dem Server gespeicherten Status übereinstimmt.

Andere Manipilationsversuche sind z.B., dass das Gerät einen Impuls registriert. Das resultiert in einer verlängerten Verschlusszeit.

/jen/safe.php?id=1XXXXX&cmd=tamper&text=no pulse

Zeit setzen

Zur Zeit ist Dein Keuschheitsstatus nicht mit dem in Jennifer verlinkt. Um Dein Gerät zu testen oder wenn Du nicht Teil von Jennifer bist, kannst Du Dein Gerät für eine Zeit (Tage, Stunden, Minuten), wie folgt, verschließen (wenn Du keinen Wert für Tage, Stunden und/oder Minuten angibst, ist der Standardwert 0):

/​jen/​safe.php?​id=1XXX&​cmd=lock&days=0&​hours=3&​mins=0&​

Sobald wir einige Geräte in Betrieb haben, wird Dein Verschlussstatus mit Deinem Keuschheitsstatus abgeglichen. Du kannst Liz eine Nachricht senden, um Wege zum Testen eines Geräts zu erfahren.

Kontrolle

Anstatt herausfinden zu müssen, wie das API funktioniert, kannst Du auch ein Controllerprogramm hier herunterladen: https://play-link.com/jen/controller.zip. Nach dem Anpassen des Ini-Files kannst Du Kommandos ausführen um das Gerät zu steuern. Beispiel:

[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

Die ID muss natürlich so angepasst werden, dass sie zu Deinem Gerät passt. Im obigen Beispiel wird ein e-Stim Gerät über ein Kommandozeilenprogramm an-, bzw. ausgeschaltet, und ein Lock über das Öffnen und Schließen des DVD-Laufwerks D. Seit dem Aufkommen von IoT können die Start- und Stopaktionen auch Webadressen oder ähnliches sein:

[Device2]
type=lock
start=http://192.168.1.32/control.php?switch1=on
end=http://192.168.1.32/control.php?switch1=off

Auch wenn das Gerät möglicherweise nicht direkt zu kontrollieren ist, so solltest Du dennoch in der Lage sein, es über den Aufruf eines Scripts zu steuern. So kann z.B. für den Vibrator “Lovense Lush” ein Python-Script erzeugen, dass das Gerät mit verschiedenen Leveln ein-, bzw. ausschaltet: https://pypi.python.org/pypi/lovesense

Das Controller-Paket enthält den Sourcecode in Lazarus und ein paar Beispiele in anderen Programmiersprachen, wie C++, dass sich sicherlich anzuschauen lohnt, wenn Du ein paar Pointer brauchst.

Geräte

Design & Experimente