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

Building
--------
  - prepare environment
        examples/prerequisites.sh
  - build daemon
        examples/build.sh
  - binaries for daemon is at
        out/Debug/weave_daemon

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/clouddevices/v1/registrationTickets
         Enter request body:
            {
              "userEmail": "me"
            }
         then "Send the request", a ticket id will be returned in
            {
              "userEmail": "user@google.com",
              "kind": "clouddevices#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 --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/clouddevices/v1/commands
        Enter request body:
        {
          "deviceId": "0f8a5ff5-1ef0-ec39-f9d8-66d1caeb9e3d",
          "name": "_greeter._greet",
          "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 '_greeter._greet' arrived, ...
         received command: _greeter._greet
         _greeter._greet 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/clouddevices/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": "clouddevices#command",
          "name": "_greeter._greet",
          "results": {
            "_greeting": "Hello cloud user"
          },
          ...

