I liked gBridge, and it’s a shame the service was so short-lived. In my goodbye post, I listed four Google Assistant for NodeRED alternatives. I picked Nora. It’s a choice that carries some risks but it was the easiest one to implement.

Nora as service

At the time of the writing, the service is free. There is no such thing as free dinner, therefore I’m fully aware of potential issues that can arrive in the future. For now, Google Assistant for NodeRED works great, and we will deal with any issues when we cross that (g)Bridge.

I mentioned gBridge in purpose, as anyone using Nora has to be aware that service may end up in the same way. Right now the userbase is small enough that the dev can get away with free API calls but as the system expands, Nora will change into a paid service, or end up like it’s predecessor.

Google Assistant in NodeRED

Adding Google Assistant works in a similar manner to Alexa in NodeRED implementation. There is a generated token that authorises Nora user to access Google Home API (sign up link). Once registered, you can start adding your virtual gadgets.

To get started, download node-red-contrib-nora from Palette Manager and visit this website to register your account and obtain a token. Once configured, you can start dropping devices into your NodeRED flows.

Each node corresponds to a single device. Remember about this when constructing your flows. If you have 2 different projects involving the same gadget, you must link it together.

Nora devices

This node comes with a list of the most popular devices:

These are the most popular options and they should cover probably most of your use cases. Each node comes with device name (this is how the device will be named in Google Home app, and how you will refer to it via voice commands) and room hint, which you can use to specify the room the device is assigned to.

I’m going to walk you step by step how to use it.

Blinds

To control blinds in your house you can use this node. You can open or shut the blinds close. You can link it to smart curtains as well. I have it working with Zemismart motorised curtains.

The node responds to commands like:

Open/Close blinds

Open blinds to 70%

Set blinds to 50%

There is no Google Home interface that you can use, so you will be limited to voice controls only. A typical payload to update the blinds would be stored as msg.payload and would look like this:

{"openPercent":70}

This is also the same payload that is send to node red when you issue a voice command. If your blinds are controlled in a opposite way, you can use invert option to invert the commands.

Outlet

If you want to control a smart socket/ plug, this is the node to use. The node comes with a Google Home interface that you can switch, just bear in mind you will have to exit the control menu for Google Home to update the status change issued from NodeRED.

Typically, you would ask Google Assistant to:

Turn the Test Outlet ON Switch Test Outlet OFF Disable/Enable Test Outlet

The node takes only true|false inputs stored in msg.payload and returns the payload specified by you ( true|false by default, but you can change this).

Switch

The switch is a generic toggle that you can apply to lights, plugs and other devices. It works in a similar way to the outlet node. The node comes with a Google Home interface that you can switch, just bear in mind you will have to exit the control menu for Google Home to update the status change issued from NodeRED. If you want to know how to wire wall light switches – take a look at this article.

Typically, you would ask Google Assistant to:

Turn the Test Switch ON Switch Test Switch OFF Disable/Enable Test Switch

The node takes only true|false inputs stored in msg.payload and returns the payload specified by you ( true|false by default, but you can change this).

Garage Door

This is another binary toggle that can be used in NodeRED. There is no Google Home interface that you can use, so you will be limited to voice controls only.

Typically, you would ask Google Assistant to:

Open/Close Test Garage Door Shut Test Garage Door Is the Test Garage Door open?

The node takes only true|false inputs stored in msg.payload and returns the payload specified by you ( true|false by default, but you can change this).

Lock

This node controls a smart lock and has the ability to lock|unlock it and inform you about possible lock jams. There is no Google Home interface that you can use, so you will be limited to voice controls only. I used the node in my Smart Door project to query the lock status, even though I don’t have a smart lock.

Typically, you would ask Google Assistant to:

Open/Close Test Lock Shut Test Lock Is the Test Lock?

The node takes only true|false inputs stored in msg.payload and returns the payload specified by you ( true|false by default, but you can change this). Sadly there is no visual notification when the lock is jammed, to update Google Assistant about the jam, use msg.topic = jammed msg.payload = true|false .

Light

If you want to connect lights – especially these that have control over colour and brightness, the light node is your option. The node comes with a Google Home interface that you can set state, colour and brightness of each light, just bear in mind you will have to exit the control menu for Google Home to update the status change issued from NodeRED.

Typically, you would ask Google Assistant to:

turn Test Light ON set Test Light to RED set Test Light brightness to 50%

Both, payload at the input and the output has the same format and the msg.payload looks like this.

{"online":true, "on":true, "brightness":83, "color":{ "spectrumHsv":{ "hue":16.23529434204102, "saturation":1, "value":1} } }

This is an HSV colour format where colour has Hue 0-360 , Saturation 0-1.00 and Value 0-1.00 format. It’s possible to submit only partial information ie: msg.payload = {"on": false} ; to control the setting you want.

Speaker

You can also control the power state and volume of a connected speaker. There is no Google Home interface that you can use, so you will be limited to voice controls only.

Typically, you would ask Google Assistant to:

Turn Test Speaker ON|OFF Set Test Speaker volume to 50% Turn Test Speaker volume up|down (default 5%)

The speaker payload is the same for both inputs and the output and it looks like this:

{"on":true,"volume":65}

Please note that this node can’t be used to control the volume of your Google Home devices.

Scenes

If you need something else to happen – a custom scene might be your option. This node isn’t available in Google Home app at all and can only be triggered via voice command.

Typically, you would ask Google Assistant to:

Activate Test Scene Deactivate Test Scene

On activation|deactivation a payload is sent to NodeRED true|false (select reversible if you want an option to deactivate scenes) and you can use this trigger in your NodeRED projects.

Thermostat

This node represents a smart thermostat in NodeRED – I used a similar one in my NEST alike thermostat for $5, and I’m changing it to work with Nora. The thermostat widget is available in Google Home app and you can set temperature, mode and read the current values, just bear in mind you will have to exit the control menu for Google Home to update the status change issued from NodeRED.

Typically, you would ask Google Assistant to:

Set Test Thermostat to 20C Turn Test Thermostat off Set Test Thermostat to Eco/Heat/Cool mode

This node works in Celsius degrees. It needs readouts from a temperature sensor (humidity is optional) to work. A typical payload would contain the following data:

{"mode":"cool", "setpoint":20, "setpointLow":20, "setpointHigh":30, "humidity":44, "temperature": 21}

The termostat node supports heating and cooling systems (HVAC) and can work in following modes:

eco – overrides the schedules, can’t be adjusted manually

– overrides the schedules, can’t be adjusted manually cool – thermostat (AC) is enabled if setpoint < temperature

– thermostat (AC) is enabled if Heat Cool – balances temperature setpointLow<temperature<setpointHigh

– balances temperature Heat – thermostat (heat) is enabled if setpoint > temperature

– thermostat (heat) is enabled if off – thermostat is not activated

– thermostat is not activated on – returns to previous working mode

This node can be fed partial information only, so it’s possible to submit the sensor data separate msg.payload = {"temperature":21,"humidity":44}; to control data.

Even though the node contains selector for ℃ and ℉ degrees, the sensor data has to be submitted in ℃.

Conclusion

Nora is very simple in use. It could use some improvements (all the nodes without the actual widget ie: blinds) but it’s a great start. I hope the service will last as I like having access to my home devices directly from the Google Assistant build into my phone. Will you use Nora? Let me know what do you think about it, what would you like to see, and if you have a better alternative in this Reddit thread.