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. General Discussion
  3. Why I quit using MySensors for actuators

Why I quit using MySensors for actuators

Scheduled Pinned Locked Moved General Discussion
55 Posts 19 Posters 13.2k Views 25 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.
  • Sergio RiusS Offline
    Sergio RiusS Offline
    Sergio Rius
    wrote on last edited by Sergio Rius
    #39

    In the past storms season, our garage door board fried, so I replaced it with a new one using mysensors.
    It has double power supply, the door motor is on its isolated own.
    But I was having this strange behaving. Sometimes when opening or closing the door, it will stop after some centimeters. Then with my click it will go back until completely open or closed. That's strange alone, but in some cases, it will then start again without command and do the complete travel. Coming from an stop interrupt that would be impossible.
    Also, if I insisted clicking or stopped this movement it ended in the gateway being hung and I had to restart it along with the rpi.

    I thought it was caused by duplicate orders sent back by controller, echoes or so, So I Incorporated two things:
    While travelling, it doesn't do anything more. Nothing is sent back to controller.
    And, after an order is received, decline all to follow for 1-2sec.

    The door now behaves immaculate, without any fail or hesitation. The gateway hasn't hung since the change.

    K 1 Reply Last reply
    2
    • Sergio RiusS Sergio Rius

      In the past storms season, our garage door board fried, so I replaced it with a new one using mysensors.
      It has double power supply, the door motor is on its isolated own.
      But I was having this strange behaving. Sometimes when opening or closing the door, it will stop after some centimeters. Then with my click it will go back until completely open or closed. That's strange alone, but in some cases, it will then start again without command and do the complete travel. Coming from an stop interrupt that would be impossible.
      Also, if I insisted clicking or stopped this movement it ended in the gateway being hung and I had to restart it along with the rpi.

      I thought it was caused by duplicate orders sent back by controller, echoes or so, So I Incorporated two things:
      While travelling, it doesn't do anything more. Nothing is sent back to controller.
      And, after an order is received, decline all to follow for 1-2sec.

      The door now behaves immaculate, without any fail or hesitation. The gateway hasn't hung since the change.

      K Offline
      K Offline
      korvad
      wrote on last edited by
      #40

      @Sergio-Rius I have a similar behaviour with 2 of my relay actuators. Could you share your sketch?

      Sergio RiusS 1 Reply Last reply
      0
      • K korvad

        @Sergio-Rius I have a similar behaviour with 2 of my relay actuators. Could you share your sketch?

        Sergio RiusS Offline
        Sergio RiusS Offline
        Sergio Rius
        wrote on last edited by
        #41

        @korvad The sketch is a mess and I'm sure what I'm doing with 4 relays could be made with only two, but the changes I incorporated where basically:

        void loop() {
          refreshStatus();
        
          // Don't do anything else during movement
          if (CurrentStatus == GOINGUP || CurrentStatus == GOINGDOWN) return;
        ...
        

        And in receive:

        void receive(const MyMessage &message) {
          static uint32_t next_cmd = 0;
          switch (message.type) {
          case V_STATUS:
            if (message.sensor == CHILD_ID_TOGGLE) {
        #ifdef _DEBUG
              DEBUGPLN("*** RECEIVED TOGGLE *************************");
        #endif
              // Avoid controller command echoes.
              const uint32_t now = millis();
              if (PENDING(now, next_cmd)) {
        #ifdef _DEBUG
                DEBUGPLN("Too much commands in a short while! Ignoring.");
        #endif
                return;
              }
              next_cmd = now + MIN_RX_INTERVAL;
        ...
        
        YveauxY K 2 Replies Last reply
        0
        • Sergio RiusS Sergio Rius

          @korvad The sketch is a mess and I'm sure what I'm doing with 4 relays could be made with only two, but the changes I incorporated where basically:

          void loop() {
            refreshStatus();
          
            // Don't do anything else during movement
            if (CurrentStatus == GOINGUP || CurrentStatus == GOINGDOWN) return;
          ...
          

          And in receive:

          void receive(const MyMessage &message) {
            static uint32_t next_cmd = 0;
            switch (message.type) {
            case V_STATUS:
              if (message.sensor == CHILD_ID_TOGGLE) {
          #ifdef _DEBUG
                DEBUGPLN("*** RECEIVED TOGGLE *************************");
          #endif
                // Avoid controller command echoes.
                const uint32_t now = millis();
                if (PENDING(now, next_cmd)) {
          #ifdef _DEBUG
                  DEBUGPLN("Too much commands in a short while! Ignoring.");
          #endif
                  return;
                }
                next_cmd = now + MIN_RX_INTERVAL;
          ...
          
          YveauxY Offline
          YveauxY Offline
          Yveaux
          Mod
          wrote on last edited by
          #42

          @Sergio-Rius Can you explain why you send a toggle to the door instead of up or down?
          A toggle message that is received multiple times will move the door in an arbitrary direction...

          http://yveaux.blogspot.nl

          Sergio RiusS 1 Reply Last reply
          0
          • NeverDieN Offline
            NeverDieN Offline
            NeverDie
            Hero Member
            wrote on last edited by NeverDie
            #43

            Were you previously debouncing the button press? Also, is the module on the same electrical circuit as the garage door motor? I wonder whether it's a power/noise isolation issue that comes into play because of the heavy motor.

            Sergio RiusS 1 Reply Last reply
            0
            • YveauxY Yveaux

              @Sergio-Rius Can you explain why you send a toggle to the door instead of up or down?
              A toggle message that is received multiple times will move the door in an arbitrary direction...

              Sergio RiusS Offline
              Sergio RiusS Offline
              Sergio Rius
              wrote on last edited by
              #44

              @Yveaux I initially have it designed for open/close commands. But I was having too much trouble with sync when messages where lost.
              Now it simply ignores the type of command and relies more on controlling its own state.
              That's the complex part of the sketch.
              But it works as factory default.

              1 Reply Last reply
              0
              • NeverDieN NeverDie

                Were you previously debouncing the button press? Also, is the module on the same electrical circuit as the garage door motor? I wonder whether it's a power/noise isolation issue that comes into play because of the heavy motor.

                Sergio RiusS Offline
                Sergio RiusS Offline
                Sergio Rius
                wrote on last edited by
                #45

                @NeverDie it doesn't have any physical button. It's always actuated through the controller.
                Also the door motor is on a completely separated circuit. Has its own PSU (ac) and it's independently activated with relays through opto-isolators.
                It cuts motor power when it's not used.

                Don't miss understand, is working very well. I only presented it as an example for an actuator that was giving trouble but that was made to work.

                NeverDieN 1 Reply Last reply
                0
                • Sergio RiusS Sergio Rius

                  @NeverDie it doesn't have any physical button. It's always actuated through the controller.
                  Also the door motor is on a completely separated circuit. Has its own PSU (ac) and it's independently activated with relays through opto-isolators.
                  It cuts motor power when it's not used.

                  Don't miss understand, is working very well. I only presented it as an example for an actuator that was giving trouble but that was made to work.

                  NeverDieN Offline
                  NeverDieN Offline
                  NeverDie
                  Hero Member
                  wrote on last edited by NeverDie
                  #46

                  @Sergio-Rius said in Why I quit using MySensors for actuators:

                  independently activated with relays through opto-isolators

                  If I'm not mistaken, relay contacts can bounce too, just like a button. Well, anyway, just water under the bridge at this point it sounds like.

                  Sergio RiusS 1 Reply Last reply
                  0
                  • Sergio RiusS Sergio Rius

                    @korvad The sketch is a mess and I'm sure what I'm doing with 4 relays could be made with only two, but the changes I incorporated where basically:

                    void loop() {
                      refreshStatus();
                    
                      // Don't do anything else during movement
                      if (CurrentStatus == GOINGUP || CurrentStatus == GOINGDOWN) return;
                    ...
                    

                    And in receive:

                    void receive(const MyMessage &message) {
                      static uint32_t next_cmd = 0;
                      switch (message.type) {
                      case V_STATUS:
                        if (message.sensor == CHILD_ID_TOGGLE) {
                    #ifdef _DEBUG
                          DEBUGPLN("*** RECEIVED TOGGLE *************************");
                    #endif
                          // Avoid controller command echoes.
                          const uint32_t now = millis();
                          if (PENDING(now, next_cmd)) {
                    #ifdef _DEBUG
                            DEBUGPLN("Too much commands in a short while! Ignoring.");
                    #endif
                            return;
                          }
                          next_cmd = now + MIN_RX_INTERVAL;
                    ...
                    
                    K Offline
                    K Offline
                    korvad
                    wrote on last edited by
                    #47

                    @Sergio-Rius thx, will try to adapt your sketch to my needs.

                    1 Reply Last reply
                    0
                    • NeverDieN NeverDie

                      @Sergio-Rius said in Why I quit using MySensors for actuators:

                      independently activated with relays through opto-isolators

                      If I'm not mistaken, relay contacts can bounce too, just like a button. Well, anyway, just water under the bridge at this point it sounds like.

                      Sergio RiusS Offline
                      Sergio RiusS Offline
                      Sergio Rius
                      wrote on last edited by
                      #48

                      @NeverDie As the relays only activate the main motor power supply and controls start&stop and direction, bouncing is not a problem.
                      Perhaps you where thinking on an arduino actuating the door mechanism button?

                      1 Reply Last reply
                      0
                      • alowhumA Offline
                        alowhumA Offline
                        alowhum
                        Plugin Developer
                        wrote on last edited by
                        #49

                        @dakipro said in Why I quit using MySensors for actuators:

                        I understand the principle, number of sent packets should match number of received ones per node :)
                        I thought it was perhaps already implemented on node/gateway level. I guess one could always send Text or some custom label and handle it in controller, but having it integrated in gateway itself would be awesome :)

                        wait, what?

                        I thought MySensors already implemented this! It doesn't?

                        I want to use mysensors to turn a heater on and off. That's serious stuff. I thought MySensors went beyond 433 stuff because if made sure that messages arrived?

                        Nca78N 1 Reply Last reply
                        1
                        • alowhumA alowhum

                          @dakipro said in Why I quit using MySensors for actuators:

                          I understand the principle, number of sent packets should match number of received ones per node :)
                          I thought it was perhaps already implemented on node/gateway level. I guess one could always send Text or some custom label and handle it in controller, but having it integrated in gateway itself would be awesome :)

                          wait, what?

                          I thought MySensors already implemented this! It doesn't?

                          I want to use mysensors to turn a heater on and off. That's serious stuff. I thought MySensors went beyond 433 stuff because if made sure that messages arrived?

                          Nca78N Offline
                          Nca78N Offline
                          Nca78
                          Hardware Contributor
                          wrote on last edited by
                          #50

                          @alowhum if you use ACK you know if message arrived or not. MySensors will resend message a few times if it fails (there's a #define for this I think) but not forever. If it's critical you can handle the false when it's returned in your code and resend the message after a little delay, and send yourself a warning/alert in the end if the node is unreachable).

                          alowhumA 1 Reply Last reply
                          2
                          • Nca78N Nca78

                            @alowhum if you use ACK you know if message arrived or not. MySensors will resend message a few times if it fails (there's a #define for this I think) but not forever. If it's critical you can handle the false when it's returned in your code and resend the message after a little delay, and send yourself a warning/alert in the end if the node is unreachable).

                            alowhumA Offline
                            alowhumA Offline
                            alowhum
                            Plugin Developer
                            wrote on last edited by
                            #51

                            @nca78 Thanks for the explananation! Do you perhaps know of an example sketch that has good example code for this? I haven't come accross it.

                            Nca78N 1 Reply Last reply
                            2
                            • alowhumA alowhum

                              @nca78 Thanks for the explananation! Do you perhaps know of an example sketch that has good example code for this? I haven't come accross it.

                              Nca78N Offline
                              Nca78N Offline
                              Nca78
                              Hardware Contributor
                              wrote on last edited by
                              #52

                              @alowhum I made a test with the scipt of a remote control switch. I will look for it but it's really not some advanced programming :)

                              alowhumA 1 Reply Last reply
                              1
                              • Nca78N Nca78

                                @alowhum I made a test with the scipt of a remote control switch. I will look for it but it's really not some advanced programming :)

                                alowhumA Offline
                                alowhumA Offline
                                alowhum
                                Plugin Developer
                                wrote on last edited by
                                #53

                                @nca78 Well, anything is helpful! Thanks!

                                1 Reply Last reply
                                0
                                • JohnRobJ Offline
                                  JohnRobJ Offline
                                  JohnRob
                                  wrote on last edited by
                                  #54

                                  Hi, I know I'm a little late to this thread. I'm just starting with MySensors and am learning by reading the posts.

                                  Currently I am waiting for hardware for my 1st gateway so I am not encumbered by details.

                                  I notice in all the reported cases the "problem" node is AC powered, while many of the "good" sensor nodes are battery powered. Could this be significant? It would be interesting if someone with a "problem" actuator node could put a battery operated sensor node in the same area.

                                  Just a thought.

                                  Nca78N 1 Reply Last reply
                                  0
                                  • JohnRobJ JohnRob

                                    Hi, I know I'm a little late to this thread. I'm just starting with MySensors and am learning by reading the posts.

                                    Currently I am waiting for hardware for my 1st gateway so I am not encumbered by details.

                                    I notice in all the reported cases the "problem" node is AC powered, while many of the "good" sensor nodes are battery powered. Could this be significant? It would be interesting if someone with a "problem" actuator node could put a battery operated sensor node in the same area.

                                    Just a thought.

                                    Nca78N Offline
                                    Nca78N Offline
                                    Nca78
                                    Hardware Contributor
                                    wrote on last edited by
                                    #55

                                    @johnrob said in Why I quit using MySensors for actuators:

                                    Hi, I know I'm a little late to this thread. I'm just starting with MySensors and am learning by reading the posts.

                                    Currently I am waiting for hardware for my 1st gateway so I am not encumbered by details.

                                    I notice in all the reported cases the "problem" node is AC powered, while many of the "good" sensor nodes are battery powered. Could this be significant? It would be interesting if someone with a "problem" actuator node could put a battery operated sensor node in the same area.

                                    Hello,

                                    the problem is an actuator node has to listen to the radio constantly and can't sleep, so it can't last long on batteries...

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


                                    20

                                    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