Google Home

First Conversations

GDG-Capital Region DevFest

12 Nov 2016

Who am I?

Allen Firstenberg


Software developer / Consultant


Google Developer Expert


Author: Designing and Developing for Google Glass

What are we talking about?

  • Google Home
  • The Google Assistant
  • Programming (more like some kludges) with the Google Assistant, IFTTT, the Firebase Database, and some code.

Default Features in Home

  • Voice commands
  • Voice responses
  • Contextual conversations


  • Ask questions
  • Audio
  • Home device control

What about programming?


  • Bad news
  • "OK" news
  • Good news!

Programming: Bad news


Not available. Yet.

Programming: Good news


It is coming!

Sign up at:

Programming: Until then...

IFTTT for the Google Assistant is available today, and we can use it to build some simple actions.


Like being able to control a slide deck.

Coding: node.js server

We need a simple server that will accept some JSON and set a value in Firebase.

exports.webFirebase = function( req, res ){
  var body  = req.body;
  var child = body.child;
  var cmd   = body.cmd;
  var val   = body.val;

  var fb = require('firebase');
  var ref = fb.database().ref('/slides').child(child);

  if( cmd === 'change' ){
    ref.once( 'value' ).then( oldValue => {
      var newValue = oldValue.val() + val;
      return ref.set( newValue );
    }).then( result => {
      console.log( 'result', result );
    }).catch( err => {
      console.log( 'err', err );
    } ).then( () => res.send('') );
  } else if( cmd === 'set' ){
    ref.set( val ).then( result => {
      console.log( 'set result', result );
    } ).catch( err => {
      console.log( 'set err', err );
    } ).then( () => res.send('') );

(Some parts of this, like security, have clearly been omitted.)

Coding: Slide deck

Start with slides generated from

<script src=""></script>
<script src=""></script>
  // Initialize Firebase
  var config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "..."

  var db = firebase.database();
  db.ref('/slides/gdg-capdist-home').on('value', function(ref){
    var val = ref.val();

Then add some code that calls the reveal.js API when the Firebase db changes

Coding Glue: IFTTT This

Use the "Google Assistant" service to setup a trigger that includes a number

Coding Glue: IFTTT That

Use the "Maker" service to setup an action that POSTs some JSON to a public URL

(Again, some parts of this, like security, have been omitted.)


Allen Firstenberg

Google Home

By Allen “Prisoner” Firstenberg