Linknode R8 - 8 station sprinkler controller build ~ $65

July 17, 2020 Edit:


I do not recommend building this controller, as the Linknode intermittently loses wifi signal and freezes, sometimes causing stations to stick and stay on, requiring manual reboots (I’ve had this same issue occur on 2 separate Linknode devices). I have since built a replacement controller with a NodeMCU and 8 channel relay that has been completely solid for over a month. Details provided here


LinkNode R8 - 8 Station Sprinkler Controller

Created my first sprinkler relay system for Home Assistant for ~ $65.00 (could be cheaper depending on availability of parts/electronics).

The main device is a Linknode R8 flashed with Tasmota, communicating with hass via mqtt. I have basic python/hass scripts for running each station manually for a specific period of time, and also to push out timers to the Linknode R8 for scheduled watering (I wanted to make sure the R8 will still retain the schedules in the event of a power outage/wifi disconnect).

Part list


Optional (buy if wanted/needed)


Note: My controllers are indoors. If your controllers will be outdoors, you may need to take extra precautions to keep the area safe and dry.

Cost could be significantly cheaper depending on sourcing and needs. I also used a couple inline fuses (most likely overkill and unnecessary).

1 Like

Please give us more!

Do you have 8 speinklers? What is controlling them? How much programming did you do after the flashing or can you control each of the 8 relays with just a simple on/off switch?
What sprinklers and are you using and what other hardware is needed to control the flow?

Im planning for something like this for the summer.

I have 2 zones, each has 6 stations (hence only 6 wires connected to the block), each station has about 6 sprinklers. I replaced an old orbit controller. I will be building my second zone controller next weekend to replace an old rainbird controller.

I’ve updated the OP with my part list.

Notes From My Experience


  • Ensure only 1 station can be on at any given time

    • On the R8, I chained the NCs, so that any relay turned on will break the power chain.
    • I also call an all off command through hass/python (mqtt cmd POWER0) that I trigger whenever I toggle/program a sprinkler timer.
  • Tasmota - Set proper datetime with dst/std on device

  • Software Overview

    • I’m running these docker containers for my IOT devices:
      • home assistant (homeassistant/home-assistant:stable)
      • MQTT server (eclipse-mosquitto)
      • NTP server (cturra/ntp:latest) to sync the time/date on my IOT devices (as they are VLAN’d without any internet connectivity)
  • Integration/Scripting Overview

    • Created raw switches in hass to view the state of each relay via mqtt
    • Created python script for these functions:
      • Manually run a station for an interval of time
      • Push out daily/weekly timer schedules, starttime, and station intervals to the relay
    • Created applicable hass cards to set up schedules or manually tap-to-run via picture elements card.

Thank you. Can you explain what you are using for controlling the water valves?

I’m not sure exactly what you’re asking, but my setup is Sprinkler Valves <—> LinkNode R8 <—> MQTT Server <—> Home Assistant.

I am controlling all the valve relays via Home Assistant sending commands to the R8 (through MQTT) to set schedules or manually run stations.

Hopefully this answers your question.

I think this was the piece being inquired about!