Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. relay actuator fails to presenting itself

relay actuator fails to presenting itself

Scheduled Pinned Locked Moved Troubleshooting
12 Posts 2 Posters 3.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Y Offline
    Y Offline
    yury
    wrote on last edited by yury
    #1

    I took Example sketch showing how to control physical relays and modified it a bit to use fixed NodeID in the sensor.
    It is not presenting it self in the gateway. I was trying to use MYSController to debug but the actuator node also was not appearing there.
    If I flush to the same hardware setup I use for actuator the sample code for switch it works like a charm. All radios communicates well.
    Really lost here...

    IDE 1.6.4
    my sensors 1-5
    nano Arduino board

    #include <MySigningNone.h>
    #include <MyTransportNRF24.h>
    #include <MyTransportRFM69.h>
    #include <MyHwATMega328.h>
    #include <MySensor.h>
    #include <SPI.h>
    
    #define RELAY_1 5  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
    #define NUMBER_OF_RELAYS 1 // Total number of attached relays
    #define RELAY_ON 1  // GPIO value to write to turn on attached relay
    #define RELAY_OFF 0 // GPIO value to write to turn off attached relay
    
    // NRFRF24L01 radio driver (set low transmit power by default) 
    MyTransportNRF24 radio(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL_GW);  
    //MyTransportRFM69 radio;
    // Message signing driver (none default)
    //MySigningNone signer;
    // Select AtMega328 hardware profile
    MyHwATMega328 hw;
    // Construct MySensors library
    MySensor gw(radio, hw);
    
    void setup()  
    {   
      
      #define NodeID 55
    
      // Initialize library and add callback for incoming messages
      gw.begin(incomingMessage, NodeID, false,5);
      // Send the sketch version information to the gateway and Controller
      gw.sendSketchInfo("Relay", "1.0");
    
        gw.present(NodeID , S_LIGHT);
        // Then set relay pins in output mode
        pinMode(RELAY_1, OUTPUT);   
        // Set relay to last known state (using eeprom storage) 
        digitalWrite(RELAY_1, gw.loadState(NodeID)?RELAY_ON:RELAY_OFF);
    }
    
    
    void loop() 
    {
      // Alway process incoming messages whenever possible
      gw.process();
    }
    
    void incomingMessage(const MyMessage &message) {
      // We only expect one type of message from controller. But we better check anyway.
      if (message.type==V_LIGHT) {
         // Change relay state
         digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
         // Store state in eeprom
         gw.saveState(message.sensor, message.getBool());
         // Write some debug info
         Serial.print("Incoming change for sensor:");
         Serial.print(message.sensor);
         Serial.print(", New status: ");
         Serial.println(message.getBool());
       } 
    }
    
    

    actuator monitor log

    send: 55-55-5-0 s=255,c=0,t=17,pt=0,l=3,sg=0,st=fail:1.5
    send: 55-55-5-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=fail:5
    sensor started, id=55, parent=5, distance=1
    send: 55-55-5-0 s=255,c=3,t=11,pt=0,l=5,sg=0,st=fail:Relay
    send: 55-55-5-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=fail:1.0
    send: 55-55-5-0 s=55,c=0,t=3,pt=0,l=0,sg=0,st=fail:

    gateway monitor log

    0;0;3;0;9;gateway started, id=0, parent=0, distance=0
    0;0;3;0;14;Gateway startup complete.

    1 Reply Last reply
    0
    • hekH Offline
      hekH Offline
      hek
      Admin
      wrote on last edited by
      #2

      You seem to have had-coded parent to 5. Is that really correct?

      1 Reply Last reply
      0
      • Y Offline
        Y Offline
        yury
        wrote on last edited by
        #3

        Yes. I use switch as parent with ID ==5

        like this :

        #include <MySensor.h>
        #include <SPI.h>
        #include <Bounce2.h>
        
        #define CHILD_ID 55
        #define BUTTON_PIN  5  // Arduino Digital I/O pin for button/reed switch
        
        MySensor gw;
        Bounce debouncer = Bounce(); 
        int oldValue=-1;
        
        // Change to V_LIGHT if you use S_LIGHT in presentation below
        MyMessage msg(CHILD_ID,V_LIGHT);
        
        void setup()  
        {  
          #define NodeID 5
        
          // Initialize library and add callback for incoming messages
          gw.begin(NULL, NodeID, false);
        
        
        
        //  gw.begin();
        
         // Setup the button
          pinMode(BUTTON_PIN,INPUT);
          // Activate internal pull-up
          digitalWrite(BUTTON_PIN,HIGH);
          
          // After setting up the button, setup debouncer
          debouncer.attach(BUTTON_PIN);
          debouncer.interval(5);
          
          // Register binary input sensor to gw (they will be created as child devices)
          // You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage. 
          // If S_LIGHT is used, remember to update variable type you send in. See "msg" above.
          gw.present(CHILD_ID, S_LIGHT);  
        }
        
        
        1 Reply Last reply
        0
        • hekH Offline
          hekH Offline
          hek
          Admin
          wrote on last edited by hek
          #4

          And what does the repeater (5) log look like?

          As you can see (ack fail) the node is having problem communicating with repeater.

          Also.. are you calling gw.process() in the loop-function on your repeater?

          1 Reply Last reply
          0
          • Y Offline
            Y Offline
            yury
            wrote on last edited by yury
            #5

            re:
            And what does the repeater (5) log look like?

            I do not use repeater. 5 is sample code for switch with hard coded ID == 5

            switch monitor log

            send: 5-5-0-0 s=255,c=0,t=17,pt=0,l=3,sg=0,st=ok:1.5
            send: 5-5-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
            sensor started, id=5, parent=0, distance=1
            send: 5-5-0-0 s=55,c=0,t=3,pt=0,l=0,sg=0,st=ok:
            send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:1
            send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:0
            send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:1

            re:
            As you can see (ack fail) the node is having problem communicating with repeater.

            do I need to switch off somewhere repeater mode? I do not need repeater.
            I use
            gw.begin(incomingMessage, NodeID, false,5); in actuator code
            gw.begin(NULL, NodeID, false); in switch code.

            re:
            Also.. are you calling gw.process() in the loop-function on your repeater?

            I added now...

            //  Check if digital input has changed and send in new value
            void loop() 
            {
            
              debouncer.update();
              // Get the update value
              int value = debouncer.read();
             
              if (value != oldValue) {
                 // Send in the new value
                 gw.send(msg.set(value==HIGH ? 1 : 0));
                 oldValue = value;
              }
             gw.process();
            }
            
            

            After I added gw.process(); log looks good but still no traeces of actuator in serial gateway.

            Actuator log:
            send: 55-55-5-0 s=255,c=0,t=17,pt=0,l=3,sg=0,st=ok:1.5
            send: 55-55-5-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:5
            sensor started, id=55, parent=5, distance=1
            send: 55-55-5-0 s=255,c=3,t=11,pt=0,l=5,sg=0,st=ok:Relay
            send: 55-55-5-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
            send: 55-55-5-0 s=55,c=0,t=3,pt=0,l=0,sg=0,st=ok:

            1 Reply Last reply
            0
            • hekH Offline
              hekH Offline
              hek
              Admin
              wrote on last edited by
              #6

              @yury said:

              gw.begin(NULL, NodeID, false); <--

              You must enable repeater mode (3:rd argument) of your repeater, otherwise it won't relay message from your node 55 to your gateway.

              gw(0) <-- Repeater(5) <---- Node (55)

              1 Reply Last reply
              0
              • Y Offline
                Y Offline
                yury
                wrote on last edited by
                #7

                added as repeater node 5, but still no traces of the actuator 55 in the gateway.

                send: 5-5-0-0 s=255,c=0,t=18,pt=0,l=3,sg=0,st=ok:1.5
                send: 5-5-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
                repeater started, id=5, parent=0, distance=1
                send: 5-5-0-0 s=55,c=0,t=3,pt=0,l=0,sg=0,st=ok:
                send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:1

                1 Reply Last reply
                0
                • hekH Offline
                  hekH Offline
                  hek
                  Admin
                  wrote on last edited by
                  #8

                  Ok, What does the Node(55) log look like now then?

                  1 Reply Last reply
                  0
                  • Y Offline
                    Y Offline
                    yury
                    wrote on last edited by
                    #9

                    55 log looks llike this:

                    send: 55-55-5-0 s=255,c=0,t=17,pt=0,l=3,sg=0,st=ok:1.5
                    send: 55-55-5-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:5
                    sensor started, id=55, parent=5, distance=1
                    send: 55-55-5-0 s=255,c=3,t=11,pt=0,l=5,sg=0,st=ok:Relay
                    send: 55-55-5-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
                    send: 55-55-5-0 s=55,c=0,t=3,pt=0,l=0,sg=0,st=ok:

                    1 Reply Last reply
                    0
                    • hekH Offline
                      hekH Offline
                      hek
                      Admin
                      wrote on last edited by hek
                      #10

                      Ok. Are you sure the repeater log above is correct? We can we that node 55 successfully sends its messages to it.

                      1 Reply Last reply
                      0
                      • Y Offline
                        Y Offline
                        yury
                        wrote on last edited by yury
                        #11

                        Hek, you are the best!

                        I plug all three things into my laptop to be able to see all logs and actuator (55) appeared in the serial gateway log

                        0;0;3;0;9;gateway started, id=0, parent=0, distance=0
                        0;0;3;0;14;Gateway startup complete.
                        0;0;3;0;9;read: 5-5-0 s=255,c=0,t=18,pt=0,l=3,sg=0:1.5
                        5;255;0;0;18;1.5
                        0;0;3;0;9;read: 5-5-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0
                        5;255;3;0;6;0
                        0;0;3;0;9;read: 55-5-0 s=255,c=0,t=17,pt=0,l=3,sg=0:1.5
                        55;255;0;0;17;1.5
                        0;0;3;0;9;read: 55-5-0 s=255,c=3,t=6,pt=1,l=1,sg=0:5
                        55;255;3;0;6;5
                        0;0;3;0;9;read: 5-5-0 s=55,c=0,t=3,pt=0,l=0,sg=0:
                        5;55;0;0;3;
                        0;0;3;0;9;read: 5-5-0 s=55,c=1,t=2,pt=2,l=2,sg=0:1
                        5;55;1;0;2;1
                        0;0;3;0;9;read: 55-5-0 s=255,c=3,t=11,pt=0,l=5,sg=0:Relay
                        55;255;3;0;11;Relay
                        0;0;3;0;9;read: 55-5-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
                        55;255;3;0;12;1.0
                        0;0;3;0;9;read: 55-5-0 s=55,c=0,t=3,pt=0,l=0,sg=0:
                        55;55;0;0;3;

                        repeater (5) log also showing it
                        send: 5-5-0-0 s=255,c=0,t=18,pt=0,l=3,sg=0,st=ok:1.5
                        send: 5-5-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
                        repeater started, id=5, parent=0, distance=1
                        send: 5-5-0-0 s=55,c=0,t=3,pt=0,l=0,sg=0,st=ok:
                        send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:1
                        read: 55-55-0 s=255,c=0,t=17,pt=0,l=3,sg=0:1.5
                        send: 55-5-0-0 s=255,c=0,t=17,pt=0,l=3,sg=0,st=ok:1.5
                        read: 55-55-0 s=255,c=3,t=6,pt=1,l=1,sg=0:5
                        send: 55-5-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:5
                        read: 55-55-0 s=255,c=3,t=11,pt=0,l=5,sg=0:Relay
                        send: 55-5-0-0 s=255,c=3,t=11,pt=0,l=5,sg=0,st=ok:Relay
                        read: 55-55-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
                        send: 55-5-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
                        read: 55-55-0 s=55,c=0,t=3,pt=0,l=0,sg=0:
                        send: 55-5-0-0 s=55,c=0,t=3,pt=0,l=0,sg=0,st=ok:
                        send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:0
                        send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:1

                        understand something wrong was with external power supply.

                        the only thing left, actuator(55) not receiving from repeater(5) which is the switch sensor, messages. These two entries

                        send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:0
                        send: 5-5-0-0 s=55,c=1,t=2,pt=2,l=2,sg=0,st=ok:1

                        not getting to actuator...

                        1 Reply Last reply
                        0
                        • hekH Offline
                          hekH Offline
                          hek
                          Admin
                          wrote on last edited by
                          #12

                          There was a bug fix a couple of days ago fixing problem when routing from repeater to a node. Please make sure that you run the latest library code.

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          27

                          Online

                          11.7k

                          Users

                          11.2k

                          Topics

                          113.1k

                          Posts


                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • MySensors
                          • OpenHardware.io
                          • Categories
                          • Recent
                          • Tags
                          • Popular