Overview
--------
The wrapper implements OS dependent services for libweave

Building
--------
  - prepare environment
        examples/prerequisites.sh
  - build daemon
        examples/build.sh
  - binaries for daemon are in the directory
        out/Debug/

Prepare Host OS
---------------
enable user-service-publishing in avahi daemon
    file:    /etc/avahi/avahi-daemon.conf
    check:   disable-user-service-publishing=no
    restart: sudo service avahi-daemon restart

Acquire Registration Ticket
---------------------------
Goto https://developers.google.com/oauthplayground/
  - "Step 1", paste to "Authorize APIs" with
          https://www.googleapis.com/auth/clouddevices
        click "Authorize APIs", then "Allow" to get an
        "authorization code"
  - "Step 2", "Exchange authorization code for tokens"
  - "Step 3", obtain a registration ticket for your new weave device
         HTTP Method:  POST
         Request URI:  https://www.googleapis.com/weave/v1/registrationTickets
         Enter request body:
            {
              "userEmail": "me"
            }
         then "Send the request", a ticket id will be returned in
            {
              "userEmail": "user@google.com",
              "kind": "weave#registrationTicket",
              "expirationTimeMs": "1443204934855",
              "deviceId": "0f8a5ff5-1ef0-ec39-f9d8-66d1caeb9e3d",
              "creationTimeMs": "1443204694855",
              "id": "93019287-6b26-04a0-22ee-d55ad23a4226"
            }
    Note: the ticket "id" is not used within 240 sec, it will be expired.

Register device to cloud
------------------------
  - copy the ticket "id" generated above
        93019287-6b26-04a0-22ee-d55ad23a4226
  - go to terminal, register and start the daemon with

        sudo out/Debug/weave_daemon_sample --registration_ticket=93019287-6b26-04a0-22ee-d55ad23a4226

        you should see something like:
          Publishing service
          Saving settings to /var/lib/weave/weave_settings.json

       note: in second and future runs, --registration_ticket
             options is not necessary anymore

  - get your device id with
          sudo cat /var/lib/weave/weave_settings.json
       you should see
            ...
            "device_id": 0f8a5ff5-1ef0-ec39-f9d8-66d1caeb9e3d
            ...

       this device_id shall be used for future communication
       with your device. it does not expire and no need to
       register.

  - verify device is up with Weave Device Manager at
        android: https://play.google.com/apps/testing/com.google.android.apps.weave.management
        chrome: https://chrome.google.com/webstore/detail/weave-device-manager/pcdgflbjckpjmlofgopidgdfonmnodfm
        [need your whitelisted EAP account]

Send Command to the Daemon
--------------------------
  - go to the oauthplayground used for registration ticket command
     in "Step 3", send base.identify with
        HTTP Method: POST
        Request URI: https://www.googleapis.com/weave/v1/commands
        Enter request body:
        {
          "deviceId": "0f8a5ff5-1ef0-ec39-f9d8-66d1caeb9e3d",
          "name": "_sample._hello",
          "parameters": { "_name": "cloud user" }
        }
   "Send the request", you command will be "queued" as its "state"

  - verify the command execution with weave daemon
       in terminal running the daemon, observe something similar to
         New command '_sample._hello' arrived, ...
         received command: _sample._hello
         _sample._hello command: finished
  - verify the command history with oauthplayground
       Similar to "Acquire Registration Ticket" section in this document,
       except in "step 3", do:

       HTTP Method:  GET    [not POST anymore]
       Request URI:  https://www.googleapis.com/weave/v1/commands?deviceId=0f8a5ff5-1ef0-ec39-f9d8-66d1caeb9e3d

       "Send the request", you get all of the commands executed on your
       device, find something like
          "kind": "weave#command",
          "name": "_sample._hello",
          "results": {
            "_reply": "Hello cloud user"
          },
          ...

