Relay and Repeater - Just learning stuff

  • So I have several nodes going in the house. I love mysensors and really appreciate all who have made this possible.

    Today I am looking into repeaters and learning how to make my custom multi sensor nodes into repeaters. Specifically any with a relay since they process incoming messages. From what I can tell they already are. Could someone fact check me to make sure I am thinking about this correctly?

    1.) To make a repeater node you first off cannot have any sort of sleep function

    2.) You need this code to enable repeater mode, specifically I think you only need the true part.

    gw.begin(NULL, AUTO, true);

    this would also work i am thinking

    gw.begin(incomingMessage, AUTO, true);

    3.) This is what makes a repeater do repeater things.


  • Hardware Contributor


    Not the expert, but I think you are on the right track.
    The gw.begin(incomingMessage, AUTO, true); is only needed if you have a senser expecting incoming messages.
    If its only a repeater you can use the first one.


  • Contest Winner

    I have never worked with the repeater but I just hacked an example for you. I'm not able to test it and I don't know if this will effect the performance of the repeater. But at least it compiles.

    For test purposes it might be better to hook an led with a 220 ohm resistor to the relay_pin.

     * The MySensors Arduino library handles the wireless radio link and protocol
     * between your home built sensors/actuators and HA controller of choice.
     * The sensors forms a self healing radio network with optional repeaters. Each
     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
     * network topology allowing messages to be routed to nodes.
     * Created by Henrik Ekblad <>
     * Copyright (C) 2013-2015 Sensnology AB
     * Full contributor list:
     * Documentation:
     * Support Forum:
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * version 2 as published by the Free Software Foundation.
     * Version 1.0 - Henrik Ekblad
     * Example sketch showing how to create a node thay repeates messages
     * from nodes far from gateway back to gateway. 
     * It is important that nodes that has enabled repeater mode calls  
     * gw.process() frequently. Repeaters should never sleep. 
    #include <MySensor.h>
    #include <SPI.h>
    #define CHILD_ID_RELAY 1   // Id of the sensor child
    #define RELAY_PIN 3 // The pin for controling the relay
    MySensor gw;
    void setup()  
      // The third argument enables repeater mode.
      gw.begin( incomingMessage, AUTO, true);
      //Send the sensor node sketch version information to the gateway
      gw.sendSketchInfo("Repeater Node", "1.0");
      pinMode (RELAY_PIN, OUTPUT );
      gw.present(CHILD_ID_RELAY, S_LIGHT);
    void loop() 
      // By calling process() you route messages in the background
    void incomingMessage(const MyMessage &message) {
      if (message.type==V_LIGHT) {
         if ( message.sensor == CHILD_ID_RELAY ) {
            digitalWrite( RELAY_PIN, message.getBool()? HIGH :LOW );

    Let me know if it works. Might be somthing I'll be needing myself 😉

  • Do I need to link/pair the repeater node to the gateway or does it just work when I power it up?