Go to the Google Play Store
DECLARATION OF DATA-INDEPENDENCE (privacy policy)

---------

CLIENT: Geesiam (Android app)

Changelog:
- 1610.1: UI fix, Tasker integration enhancement
- 1602.4: optimizations
- 1602.3: more Material Design
- 1602.2: Tasker integration (Tasker)
- 1601.1/1602.1: introduced visual categories
- 1504.2: receiving data from other applications
- 1504.1: API migration
- 1502.3: UI fixes for devices with hardware buttons
- 1502.2: note to self; supported by Light Flow (Light Flow); Declaration of Data-Independence (privacy policy)
- 1502.1: DashClock Extension (DashClock)
- 1501.5: updated resources
- 1501.4: initial public release

Notes:
- the app itself does not send any (!) data (especially any personal data) to any server; the permissions requested during the installation are only needed for communicating with GCM and exporting the received and decoded notifications to your own device

Usage:
- download and start the app, go to menu, "Device ID" - should be empty the first time -, close the app
- start the app again, go to menu, "Device ID" - you should see the device id now, which means that your device has successfully been registered for GCM -, copy the device id to where you want to send the push requests to Geesiam from
- go to menu, "Passphrase" and enter the string you want to use for decoding the transmitted message text (this is the same string you used for encoding the message text)
- the passphrase is only stored on your device, once you entered and saved it, it is no longer displayed for security reasons
- the passphrase is applied after receiving a push message, but before saving it to the client database and displaying it in the app
- if a message cannot be decoded, it has to be re-sent (make sure that the passphrase is correct); after a message has been decoded, you may use a different passphrase on both server and client side, since this does not affect already decoded messages
- Tasker integration: to benefit from Tasker integration, Tasker needs to be installed on your device

---------

SERVER: Geesiam Backend (App Engine app)

Notes:
- the server does not store any data (especially any personal data), it takes your requests and directly forwards them to the GCM infrastructure (the GCM time to live is set to 7 days; the number of messages sent over the GCM infrastructure is unlimited)
- there are only App Engine application logs, which reveal that someone sent something to the server, but not who and what
- the Geesiam Backend can be used via a browser or your own code
- special characters like umlauts are only supported if you encode them before transmission
- when pushing messages from the browser, make sure the message is not yet URL-encoded, when pushing messages from the command line or your own source code, make sure the message is already URL-encoded

Parameters:
- did: your device id
- pph: your ideally non-empty passphrase, only you know this passphrase, it is not transmitted to the GCM infrastructure
- enc: {"false"}, only used if the message text is already encoded on the local machine (if you want to send an already encoded message text via your browser, check the "encoded locally" checkbox)
- msg: your to-be-pushed message text

Usage:
- checkout the Java code on GitHub to encode and send a message to your device
- in case the message is encoded on the server (add the device id after did=): 
$ curl -X POST -d "msg=Hello world" -d "pph=test" -d "did=" https://geesiam-backend.appspot.com/push
- in case the message is encoded on the local machine (don't forget to store the passphrase "test" in the client app; add the device id after did=):
$ curl -X POST -d "msg=Vir%2Brg5xIXIKx1lZrwTrNA%3D%3D" -d "did=" https://geesiam-backend.appspot.com/push -d "enc=false"
- if the HTTP POST request was successful, the HTTP status code 200 is returned; otherwise 400
- Tasker integration: just tag a notification message [Tasker] (as a part of the overall message text) and Tasker will react to the message text according to your defined keywords and corresponding tasks