Diivo HomGar WG03 Wi-Fi

You can use Google Home to connect your HomGar device to HASS.

If you want to go beyond controlling your irrigation via HASS, i.e, you also want to trigger actions in HASS when your irrigation is turned on/off via HomGar app, Google Home/Assistant, or using the hardware buttons on your irrigation device, you need a Google Thread Border Router. More about that at the end of this post; let’s have a look at controlling your irrigation via HASS first:

  1. In your Google Home app (iOS/Android, simply install it in case you don’t have it yet) go to “Devices” - “Add “ - “Works with Google Home” and add “HomGar Smart”, and connect using your HomGar credentials.

  2. In HASS, add the integration “Google Assistant SDK” or, if you also want to capture responses from Google Home/Assistant (which is not necessary if you simply want to control your irrigation), Google Assistant SDK Custom. The necessary steps for setting up this integration are outlined here.

Now you can address the Google Home entities of your HomGar device in HASS; here is an example:

  1. Create a helper toggle (“Devices & services” - “Helpers” - “Toggle”); I’ve named it “zone1”, which leads to the entity being named “input_boolean.zone1”.

  2. Create an automation(“Automations and scenes” - “CREATE AUTOMATION” - “Create new automation").

Use the following trigger (“When”):

trigger: state
entity_id:
  - input_boolean.zone1

And the following action (“Then do”):

if:
  - condition: state
    entity_id: input_boolean.zone1
    state: "off"
then:
  - action: google_assistant_sdk.send_text_command
    data:
      command: turn zone 1 off
else:
  - action: google_assistant_sdk.send_text_command
    data:
      command: turn zone 1 on

If you use the custom SDK, use “google_assistant_sdk_custom.send_text_command” in the code above.

In case you prefer to control your irrigation via Python, in my case using AppDaemon (substitute “on” with “off” to turn zone 1 off):

self.call_service(
	service = "google_assistant_sdk/send_text_command",
	command  = "turn zone 1 on”,
)

or, in case you use the custom integration, substitute line 2 with the following:

	service = "google_assistant_sdk_custom/send_text_command",

As mentioned, using Google Assistant SDK Custom you can additionally capture Google Assistants’ reponses, for example:

data:
	command: is zone 1 open
response_variable: response
action: google_assistant_sdk_custom.send_text_command

The output by Google Home/Assistant can be shown in a text helper:

data:
  value: "{{ response.responses[0].text }}"
target:
  entity_id: input_text.zone1response
action: input_text.set_value

I’ve already mentioned the possibility of having HASS react to your irrigation being turned on/off via Google Home/Assistant, HomGar, or the hardware buttons on your irrigation device. To achieve this, you can use the also otherwise highly commendable add-on Matterbridge.

With Matterbridge up and running, add a helper toggle in Hass and import it in Google Home via Matterbridge. In Google Home then create an automation that switches on/off this “helper” whenever the corresponding valve is turned on/off. In HASS, simply use an automation (or AppDaemon) to react to the changed state of this toggle.

For the Matterbridge to work with Google Home, your Home Assistant needs to be using a Google Thread Border Router, e.g., Google TV Streamer (4K) or Google Nest Wifi Pro.

1 Like