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. Comminucation without controller

Comminucation without controller

Scheduled Pinned Locked Moved Troubleshooting
12 Posts 2 Posters 4.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.
  • H Offline
    H Offline
    hek
    Admin
    wrote on last edited by
    #3

    You get a fail if no hw-ack is received from the recipient.

    C 1 Reply Last reply
    0
    • H hek

      You get a fail if no hw-ack is received from the recipient.

      C Offline
      C Offline
      C.r.a.z.y.
      wrote on last edited by
      #4

      @hek Thank you but my goal is to keep it working when there is no controller. My light will not be on or off if there is no controller so i want to add a some code like this;
      "
      re = String(message.sensor);
      if (re.indexOf("fail") >=0)
      {
      asm volatile (" jmp 0"); //reboot
      }
      "

      H 1 Reply Last reply
      0
      • C C.r.a.z.y.

        @hek Thank you but my goal is to keep it working when there is no controller. My light will not be on or off if there is no controller so i want to add a some code like this;
        "
        re = String(message.sensor);
        if (re.indexOf("fail") >=0)
        {
        asm volatile (" jmp 0"); //reboot
        }
        "

        H Offline
        H Offline
        hek
        Admin
        wrote on last edited by
        #5

        @C.r.a.z.y.

        Sorry, I don't understand what your setup looks like or what your´re trying to archive.

        C 1 Reply Last reply
        0
        • H hek

          @C.r.a.z.y.

          Sorry, I don't understand what your setup looks like or what your´re trying to archive.

          C Offline
          C Offline
          C.r.a.z.y.
          wrote on last edited by
          #6

          @hek I am using Relay with Button sketch. When there is no controller-no hw-ack, my lights work 2-3 more times and i got "fail" then i can't change the lights state manually.

          When i see "fail" i have to restart the nano.

          1 Reply Last reply
          0
          • H Offline
            H Offline
            hek
            Admin
            wrote on last edited by
            #7

            The hw ack is handled by the library/radio itself. Controller is not involved.

            So, what is your button sketch communicating with?

            1 Reply Last reply
            0
            • C Offline
              C Offline
              C.r.a.z.y.
              wrote on last edited by
              #8

              This Sketch works 1 on and 1 off when there is no controller;

              repeater started, id 0
              send: 0-0-0-0 s=255,c=0,t=18,pt=0,l=5,st=fail:1.4.1
              send: 0-0-0-0 s=255,c=3,t=6,pt=1,l=1,st=fail:0
              send: 0-0-0-0 s=255,c=3,t=11,pt=0,l=5,st=fail:Relay
              send: 0-0-0-0 s=255,c=3,t=12,pt=0,l=3,st=fail:1.0
              send: 0-0-0-0 s=1,c=0,t=3,pt=0,l=5,st=fail:1.4.1
              **send: 0-0-0-0 s=1,c=1,t=2,pt=2,l=2,st=fail:0
              send: 0-0-0-0 s=1,c=1,t=2,pt=2,l=2,st=fail:0
              **


              "#include <MySensor.h>
              "#include <SPI.h>
              "#include <Bounce2.h>

              "#define RELAY_1 3 // 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
              "#define CHILD_ID 1

              "#define TRIGGER_PIN 7 // Arduino pin tied to trigger pin on the ultrasonic sensor.
              unsigned long SLEEP_TIME = 700; // Sleep time between reads (in milliseconds)

              MySensor gw;
              //int hey =50;

              int dist;
              int kac;
              int value;
              int oldValue=0;
              bool state;
              Bounce debouncer = Bounce();
              Bounce debouncer2 = Bounce();
              MyMessage msg(CHILD_ID, V_LIGHT);

              void setup()
              {
              gw.begin(incomingMessage, AUTO, true);
              gw.sendSketchInfo("Relay", "1.0");
              for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) {
              gw.present(sensor, S_LIGHT);
              pinMode(pin, OUTPUT);
              state = gw.loadState(CHILD_ID);
              digitalWrite(pin, state?RELAY_ON:RELAY_OFF);
              }
              debouncer.attach(TRIGGER_PIN);
              debouncer2.attach(RELAY_1);
              debouncer.interval(5); debouncer2.interval(5);
              }

              void loop()
              {
              gw.process();
              debouncer.update();
              dist = debouncer.read();
              debouncer2.update();
              kac = debouncer2.read();

              if (dist == 0) 
               {
                  if(kac==0  ) //MANUAL ON-OFF
                   {   
                   digitalWrite(RELAY_1, HIGH );  // gw.send(msg.set(1));   
                   delay(1000); //  gw.sleep(SLEEP_TIME); 
                   }
                  else  //MANUAL ON-OFF
                   {  
                    digitalWrite(RELAY_1, LOW );   // gw.send(msg.set(0));   
                     delay(1000);//  gw.sleep(SLEEP_TIME); 
                   }
               }
               
               //NORMAL PROCESS FOR MYSENSORS.h
                if (dist != oldValue && dist==0) {
              
                 gw.send(msg.set(state?false:true), true); // Send new state and request ack back
                 } 
              
                 oldValue = dist;
                }
              

              void incomingMessage(const MyMessage &message) {
              if (message.type==V_LIGHT) {
              // digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
              gw.saveState(message.sensor, message.getBool());
              Serial.print("Incoming change for sensor:");
              Serial.print(message.sensor);
              Serial.print(", New status: ");
              Serial.println(message.getBool());
              }

              }

              1 Reply Last reply
              0
              • H Offline
                H Offline
                hek
                Admin
                wrote on last edited by
                #9

                Wierd. even if the node loses it's parent it should retry finding a new each time you press the "button" and send a new state.

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

                  There has been a few edge-case bugfixes done recently on github/master.
                  Could you just download latest and try the again to check if it has been fixed already?

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    hek
                    Admin
                    wrote on last edited by
                    #11

                    repeater started, id 0

                    You cannot use id=0 for a repeater node.
                    Id 0 is reserved for gateway.

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      C.r.a.z.y.
                      wrote on last edited by
                      #12

                      New master file didn't make difference. When i see "fail" i can't change the state with original RelayWithButtonActuator sketch.

                      Ok id is not "0" now.

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      15

                      Online

                      12.0k

                      Users

                      11.2k

                      Topics

                      113.4k

                      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