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. Controllers
  3. Domoticz
  4. Robot mower ignores the rain, MySensors to the rescue!

Robot mower ignores the rain, MySensors to the rescue!

Scheduled Pinned Locked Moved Domoticz
28 Posts 6 Posters 8.0k Views 5 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.
  • TRS-80T Offline
    TRS-80T Offline
    TRS-80
    wrote on last edited by
    #5

    Well, I would presume that the robot mower base station has some battery charging function for the mower when it returns home to park? If so, there should be some sort of power supply available there.

    Why not add a node at the mower base station that is either always on, or checks in more frequently with the controller (or wherever it's getting it's rain information from) in order to tell it to "stay home" somehow.

    Also, I would think you would want to base the decision whether to send the mower out or not based on if it's raining right now or not. How long after it starts raining does it take your soil moisture sensor(s) to register? If this happens quickly, then disregard. Otherwise maybe you might want some sort of rain sensor instead.

    1 Reply Last reply
    0
    • SparkmanS Offline
      SparkmanS Offline
      Sparkman
      Hero Member
      wrote on last edited by Sparkman
      #6

      Hi Mark,

      Why not have the sensor on the mower wake up periodically (eg every 30 seconds, or once per minute, etc.) and have it ask for an update? If it does not get a response, then leave it in its current state. That should accommodate both issues.

      Cheers
      Al

      Mark SwiftM 1 Reply Last reply
      0
      • SparkmanS Sparkman

        Hi Mark,

        Why not have the sensor on the mower wake up periodically (eg every 30 seconds, or once per minute, etc.) and have it ask for an update? If it does not get a response, then leave it in its current state. That should accommodate both issues.

        Cheers
        Al

        Mark SwiftM Offline
        Mark SwiftM Offline
        Mark Swift
        wrote on last edited by
        #7

        @Sparkman said:

        Hi Mark,

        Why not have the sensor on the mower wake up periodically (eg every 30 seconds, or once per minute, etc.) and have it ask for an update? If it does not get a response, then leave it in its current state. That should accommodate both issues.

        Cheers
        Al

        This sounds like an ideal situation, sadly I have absolutely no idea how to perform such an action from the node on the mower, I presume it would need to query Domoticz somehow... Any ideas or examples?

        Thanks,

        Mark

        1 Reply Last reply
        0
        • SparkmanS Offline
          SparkmanS Offline
          Sparkman
          Hero Member
          wrote on last edited by
          #8

          Hi Mark,

          The only example I can think of is @BulldogLowell's sprinkler controller. It queries for run-times from the controller. I think that is supported on the Vera, and not sure if Domoticz supports the same feature.

          Cheers
          Al

          1 Reply Last reply
          1
          • sundberg84S Offline
            sundberg84S Offline
            sundberg84
            Hardware Contributor
            wrote on last edited by
            #9

            Hi!
            Some examples of getting a value from Domoticz is
            @AWI http://forum.mysensors.org/topic/1976/scrolling-text-sensor-node-with-new-v_text and http://forum.mysensors.org/topic/1957/lcd-clock-and-text-sensor-node-with-new-v_text.
            My LCD screen uses the same method:
            https://www.openhardware.io/view/23/In-wall-LCD-SwitchScene-controller-for-MySensors

            Controller: Proxmox VM - Home Assistant
            MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
            MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
            RFLink GW - Arduino Mega + RFLink Shield, 433mhz

            1 Reply Last reply
            1
            • Mark SwiftM Offline
              Mark SwiftM Offline
              Mark Swift
              wrote on last edited by
              #10

              Hi Guys,

              Firstly, thank you very much for the replies and help. I'm really struggling to get my head around it, and have been playing around the last few hours with little results.

              From the above is seems logical to have one node in the mower garage, connected to both a rain sensor and soil sensor, this doesn't need to sleep and can update domoticz frequently. I'm using simple on / off switches for both rain and moisture in Domoticz.

              I now need to figure out how to have a node wake up and check the status of the rain and moisture switches from Domoticz - after a couple of hours trying various things, I'm at a loss how to achieve this. Perhaps I should consider giving up :-(

              TheoLT 1 Reply Last reply
              0
              • Mark SwiftM Mark Swift

                Hi Guys,

                Firstly, thank you very much for the replies and help. I'm really struggling to get my head around it, and have been playing around the last few hours with little results.

                From the above is seems logical to have one node in the mower garage, connected to both a rain sensor and soil sensor, this doesn't need to sleep and can update domoticz frequently. I'm using simple on / off switches for both rain and moisture in Domoticz.

                I now need to figure out how to have a node wake up and check the status of the rain and moisture switches from Domoticz - after a couple of hours trying various things, I'm at a loss how to achieve this. Perhaps I should consider giving up :-(

                TheoLT Offline
                TheoLT Offline
                TheoL
                Contest Winner
                wrote on last edited by
                #11

                @Mark-Swift You can let that one node sleep. It will save power, thus energy an money. Since it would only be a sensor and not an actuator. Unless you want to node to do more than just rain and soil detection. If however you want to be able to add more intelligence, let's say the robot should not go out during night times - anti theft - you probably want that node to respond to message from your Home Automation system. As far as I've understood a node cannot be awoken, by a message received from the gateway.

                But of course it all depends on the definition of real-time. If it's okay, that you'll only require a response time of half a minute or more, you could let the node query the gateway for new states. But that will complicate your implementation. Hence you see the problem? In cases like this, it's more important to design what you want rather than let the electronics dictate what you can do. That's at least my point of view. Because there are a lot of possibilities.

                We can help you with that implementation. But my advice is, think what it is you want to achieve. Just grab a pencil and make a simple drawing. Visualizing problems often lead to to simple and pragmatic solutions.

                A node can be awoken by either on an interrupt and/or a timer. Just have a look at the MySensor API description of gw.sleep

                1 Reply Last reply
                0
                • Mark SwiftM Offline
                  Mark SwiftM Offline
                  Mark Swift
                  wrote on last edited by
                  #12

                  @TheoL I think I understand that, thanks... I think I'm clear on what I need to do, but the missing piece for me is how to have a node look up a value in Domoticz.

                  I think the logic is quite simple?

                  Mower node, wakes up every 30 minutes and checks the status of switches rain & soil moisture within Domoticz (sent by mower garage node). If either switch is 'on', activate relay (bridge rain sensor connections on mower).

                  TheoLT 1 Reply Last reply
                  0
                  • Mark SwiftM Mark Swift

                    @TheoL I think I understand that, thanks... I think I'm clear on what I need to do, but the missing piece for me is how to have a node look up a value in Domoticz.

                    I think the logic is quite simple?

                    Mower node, wakes up every 30 minutes and checks the status of switches rain & soil moisture within Domoticz (sent by mower garage node). If either switch is 'on', activate relay (bridge rain sensor connections on mower).

                    TheoLT Offline
                    TheoLT Offline
                    TheoL
                    Contest Winner
                    wrote on last edited by
                    #13

                    @Mark-Swift I think the way sending text messages, like sundberg has done, will do exactly what you need.

                    1. Let the node sleep
                    2. If it awakes it needs to query the gateway and domotics for a message
                    3. Handle the response
                    4. Notify the robot if needed.

                    I believe you need to do some things on the domoticz side. Haven't played with it yet. But @Awi and @sundberg84 have accomplished this already. They might be able to help you with that part as well.

                    1 Reply Last reply
                    0
                    • sundberg84S Offline
                      sundberg84S Offline
                      sundberg84
                      Hardware Contributor
                      wrote on last edited by
                      #14

                      This requiers dev branch !
                      You need to have the node create text sensor

                      MyMessage textMsg(messageCHILD, V_TEXT);      // message for Sending Text to Controller
                      

                      Then you use a script and update this in the controller with json for example.
                      See the examples.

                      Then you use request to fetch it:

                      request(messageCHILD, V_TEXT, 0);                    
                      

                      and recive to handle the incoming message.

                      void receive(const MyMessage &message) {
                        if (message.sensor == messageCHILD) {
                          if (message.type == V_TEXT) {                   // Text content
                      }
                      }
                      

                      Controller: Proxmox VM - Home Assistant
                      MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
                      MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
                      RFLink GW - Arduino Mega + RFLink Shield, 433mhz

                      Mark SwiftM 1 Reply Last reply
                      0
                      • Mark SwiftM Offline
                        Mark SwiftM Offline
                        Mark Swift
                        wrote on last edited by
                        #15
                        This post is deleted!
                        1 Reply Last reply
                        0
                        • sundberg84S sundberg84

                          This requiers dev branch !
                          You need to have the node create text sensor

                          MyMessage textMsg(messageCHILD, V_TEXT);      // message for Sending Text to Controller
                          

                          Then you use a script and update this in the controller with json for example.
                          See the examples.

                          Then you use request to fetch it:

                          request(messageCHILD, V_TEXT, 0);                    
                          

                          and recive to handle the incoming message.

                          void receive(const MyMessage &message) {
                            if (message.sensor == messageCHILD) {
                              if (message.type == V_TEXT) {                   // Text content
                          }
                          }
                          
                          Mark SwiftM Offline
                          Mark SwiftM Offline
                          Mark Swift
                          wrote on last edited by Mark Swift
                          #16

                          @sundberg84 said:

                          This requiers dev branch !
                          You need to have the node create text sensor

                          MyMessage textMsg(messageCHILD, V_TEXT);      // message for Sending Text to Controller
                          

                          Then you use a script and update this in the controller with json for example.
                          See the examples.

                          Then you use request to fetch it:

                          request(messageCHILD, V_TEXT, 0);                    
                          

                          and recive to handle the incoming message.

                          void receive(const MyMessage &message) {
                            if (message.sensor == messageCHILD) {
                              if (message.type == V_TEXT) {                   // Text content
                          }
                          }
                          

                          Hi @sundberg84,

                          Thanks for taking time out to reply.

                          I think I kind of understand, but I'm a new to Arduino's and hence can't quite apply it to my situation. Could you perhaps point me in the right direction with regards the problem I've presented? I know it's a big ask but would be greatly appreciated. This is the final piece of the puzzle I need to solve before deploying my new mower garage...

                          As stated earlier, I have 2 sensors:

                          Node 1: Reports Moisture / Rain to Domoticz
                          Node 2: Relay (Closes contacts of mower rain pins)

                          I need node 2 to wake every 30 minutes and check if node 1 has reported either moisture or rain (they are switches in Domoticz).

                          TheoLT 1 Reply Last reply
                          0
                          • sundberg84S Offline
                            sundberg84S Offline
                            sundberg84
                            Hardware Contributor
                            wrote on last edited by sundberg84
                            #17

                            @Mark-Swift Sorry friend, I dont have time to code and test a sketch at the moment. Work, family and own projects.
                            I suggest you take it step by step, look at http://www.mysensors.org/build/ and build yourself some temp nodes and learn as you go.
                            Also look at the provided examples above - the logic is the same in them all... you will see.
                            Copy paste code and try and see what happens... watch the serial output and you will learn.

                            Controller: Proxmox VM - Home Assistant
                            MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
                            MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
                            RFLink GW - Arduino Mega + RFLink Shield, 433mhz

                            1 Reply Last reply
                            1
                            • Mark SwiftM Mark Swift

                              @sundberg84 said:

                              This requiers dev branch !
                              You need to have the node create text sensor

                              MyMessage textMsg(messageCHILD, V_TEXT);      // message for Sending Text to Controller
                              

                              Then you use a script and update this in the controller with json for example.
                              See the examples.

                              Then you use request to fetch it:

                              request(messageCHILD, V_TEXT, 0);                    
                              

                              and recive to handle the incoming message.

                              void receive(const MyMessage &message) {
                                if (message.sensor == messageCHILD) {
                                  if (message.type == V_TEXT) {                   // Text content
                              }
                              }
                              

                              Hi @sundberg84,

                              Thanks for taking time out to reply.

                              I think I kind of understand, but I'm a new to Arduino's and hence can't quite apply it to my situation. Could you perhaps point me in the right direction with regards the problem I've presented? I know it's a big ask but would be greatly appreciated. This is the final piece of the puzzle I need to solve before deploying my new mower garage...

                              As stated earlier, I have 2 sensors:

                              Node 1: Reports Moisture / Rain to Domoticz
                              Node 2: Relay (Closes contacts of mower rain pins)

                              I need node 2 to wake every 30 minutes and check if node 1 has reported either moisture or rain (they are switches in Domoticz).

                              TheoLT Offline
                              TheoLT Offline
                              TheoL
                              Contest Winner
                              wrote on last edited by TheoL
                              #18

                              @Mark-Swift I'm afraid I have the same problem as @sundberg84. I have too many things that need my attention at the moment. I'm developing an Arduino/MySensors course for beginners which was unforeseen - and consumes a lot of time - and I'm following a Big Data course at San Diego University. That with my family and some projects I'm working on is more than enough at the moment.

                              I'm willing to help except for the part with the text message exchange between Domoticz. I feel bad about that, but it is what it is.

                              Maybe we can start with a simpler sketch than the one you have in mind. It is the way I always developping things. Start simple and then add more complexity. Just give me a holla if you want me to help you with things.

                              1 Reply Last reply
                              0
                              • Mark SwiftM Offline
                                Mark SwiftM Offline
                                Mark Swift
                                wrote on last edited by Mark Swift
                                #19

                                @sundberg84 @TheoL I understand, no hard feelings, I'm also pretty busy (currently a week away from launching my startup) so I know how it feels :)

                                The code for the mower node I've got so far is

                                // Enable debug prints to serial monitor
                                #define MY_DEBUG
                                
                                // Enable and select radio type attached
                                #define MY_RADIO_NRF24
                                // #define MY_RADIO_RFM69
                                
                                // Enable repeater functionality for this node
                                // #define MY_REPEATER_FEATURE
                                
                                #include <SPI.h>
                                #include <MySensor.h>
                                
                                #define CHILD_ID1 1
                                #define CHILD_ID2 2
                                #define RELAY_PIN 3
                                #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
                                
                                MyMessage MowerMsg(CHILD_ID2, V_TEXT);      // message for Sending Text to Controller
                                
                                void before() {
                                  // Then set relay pins in output mode
                                  pinMode(RELAY_PIN, OUTPUT);
                                  // Set relay to last known state (using eeprom storage)
                                  digitalWrite(RELAY_PIN, loadState(CHILD_ID1) ? RELAY_ON : RELAY_OFF);
                                  // Fetch mower run status
                                }
                                
                                void setup() {
                                }
                                
                                void presentation() {
                                  // Send the sketch version information to the gateway and Controller
                                  sendSketchInfo("Relay", "1.0");
                                
                                  // Register all sensors to gw (they will be created as child devices)
                                  present(CHILD_ID1, S_LIGHT);
                                  present(CHILD_ID2, S_CUSTOM);
                                }
                                
                                
                                void loop() {
                                }
                                
                                void receive(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, message.getBool() ? RELAY_ON : RELAY_OFF);
                                    // Store state in eeprom
                                    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());
                                  }
                                }
                                
                                

                                I've no idea if I'm on the right lines or not, I have however managed to get the V_TEXT to show in Domoticz and update it to '1', it's currently living under utility sensors?

                                Now, if I can just figure out how to update the utility sensor based on my moisture / rain sensors and retrieve it, once that's done I'm sure I can add the logic for if V_TEXT = 1.

                                1 Reply Last reply
                                0
                                • TheoLT Offline
                                  TheoLT Offline
                                  TheoL
                                  Contest Winner
                                  wrote on last edited by
                                  #20

                                  It's a bit too late over here, will look at it tomorrow. Your own startup cool!! What is your business?

                                  1 Reply Last reply
                                  1
                                  • Mark SwiftM Offline
                                    Mark SwiftM Offline
                                    Mark Swift
                                    wrote on last edited by
                                    #21

                                    @TheoL Yes, we've been building our product for a year; we're due to launch in a month or so. We're looking to revolutionise the recruitment industry :-)

                                    I hope you can help point me in the right direction regarding this predicament, it's the last thing I need to complete.

                                    Cheers,

                                    Mark

                                    TheoLT C 2 Replies Last reply
                                    0
                                    • Mark SwiftM Mark Swift

                                      @TheoL Yes, we've been building our product for a year; we're due to launch in a month or so. We're looking to revolutionise the recruitment industry :-)

                                      I hope you can help point me in the right direction regarding this predicament, it's the last thing I need to complete.

                                      Cheers,

                                      Mark

                                      TheoLT Offline
                                      TheoLT Offline
                                      TheoL
                                      Contest Winner
                                      wrote on last edited by
                                      #22

                                      @Mark-Swift I'll see what I can do. But as said before. I haven't tested the V_TEXT. And since I'm on an old version of Domoticz, I won't be able to.

                                      1 Reply Last reply
                                      0
                                      • Mark SwiftM Mark Swift

                                        @TheoL Yes, we've been building our product for a year; we're due to launch in a month or so. We're looking to revolutionise the recruitment industry :-)

                                        I hope you can help point me in the right direction regarding this predicament, it's the last thing I need to complete.

                                        Cheers,

                                        Mark

                                        C Offline
                                        C Offline
                                        chickey
                                        wrote on last edited by
                                        #23

                                        @Mark-Swift Random one here, you didn't happen to work for a company called ABS in the past did you?

                                        Mark SwiftM 1 Reply Last reply
                                        0
                                        • C chickey

                                          @Mark-Swift Random one here, you didn't happen to work for a company called ABS in the past did you?

                                          Mark SwiftM Offline
                                          Mark SwiftM Offline
                                          Mark Swift
                                          wrote on last edited by
                                          #24

                                          @chickey Sadly I did, I remember OSG ;)

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


                                          17

                                          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