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. Communication problem (maybe)

Communication problem (maybe)

Scheduled Pinned Locked Moved Troubleshooting
30 Posts 5 Posters 12.7k Views 3 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 hek

    @Hausner said:

    //gw.sleep(SLEEP_TIME);

    Why did you comment away this line?

    H Offline
    H Offline
    Hausner
    wrote on last edited by
    #21

    @hek

    Because it looks like that the sleep function is messing with the repeater function. With sleep enabled, almost all messages to the relay actuator node gets lost.

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

      Hmm.. shouldn't affect transmissions. When you removed this line you will get several hundreds of temp readings per second. It is a very big chance a few of them differs which means they will send it to gateway.

      You could try adding:
      gw.powerUp();
      delay(10)
      Just before gw.send() to add a small some additional delay after radio powers up.

      If you want to keep node awake another option is to use millis() keep track of send frequency. See here:
      https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/examples/TimeAwareSensor/TimeAwareSensor.ino#L47

      H 1 Reply Last reply
      0
      • H hek

        Hmm.. shouldn't affect transmissions. When you removed this line you will get several hundreds of temp readings per second. It is a very big chance a few of them differs which means they will send it to gateway.

        You could try adding:
        gw.powerUp();
        delay(10)
        Just before gw.send() to add a small some additional delay after radio powers up.

        If you want to keep node awake another option is to use millis() keep track of send frequency. See here:
        https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/examples/TimeAwareSensor/TimeAwareSensor.ino#L47

        H Offline
        H Offline
        Hausner
        wrote on last edited by
        #23

        @hek said:

        delay(10)

        I assume that is milliseconds, but does that mean that the radio will be powered on during that delay, and will the node repeat incoming messages during that?

        If so, I think a much bigger delay would be better, like 30000 or even more.

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

          This node isn't configured to be a repeater. So no, it won't.

          1 Reply Last reply
          0
          • H Offline
            H Offline
            Hausner
            wrote on last edited by Hausner
            #25

            It isn't??

            hmm... now i'm puzzled!

            Cause this is 2 temp nodes

            0;0;3;0;9;read: 24-23-0 s=0,c=1,t=0,pt=7,l=5:23.8
            

            My relay actuator is 22

            1 Reply Last reply
            0
            • N Offline
              N Offline
              niccodemi
              wrote on last edited by
              #26

              @Hausner do you have any issues with relay node if you are NOT using it also as repeater?

              1 Reply Last reply
              0
              • H Hausner

                @hek said:

                delay(10)

                I assume that is milliseconds, but does that mean that the radio will be powered on during that delay, and will the node repeat incoming messages during that?

                If so, I think a much bigger delay would be better, like 30000 or even more.

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

                If so, I think a much bigger delay would be better, like 30000 or even more.

                Yes, thats is actually a third option like you say. Just add a delay(30000) at the end of loop(). (If this node just acts a as a temp sensor and nothing else).

                1 Reply Last reply
                0
                • H Hausner

                  @daulagari

                  By 1-way node I mean a reporting node. It only reports a temperature, nothing else. So therefore 1 way traffic TO the GW/controller.

                  A relay node on the other hand has to receive also, else you can't flip on/off the relays.

                  This is roughly 1 minute worth of controller log:

                   2014-11-13 04:49:27 - Helena_temp_LastUpdate state updated to 2014-11-13T04:49:27
                   2014-11-13 04:49:28 - Temperature_GF_Helena state updated to 26.7
                   2014-11-13 04:49:28 - Helena_temp_LastUpdate state updated to 2014-11-13T04:49:28
                   2014-11-13 04:49:29 - Temperature_GF_Helena state updated to 26.6
                   2014-11-13 04:49:29 - Helena_temp_LastUpdate state updated to 2014-11-13T04:49:29
                   2014-11-13 04:49:30 - Temperature_GF_Helena state updated to 26.7
                   2014-11-13 04:49:30 - Helena_temp_LastUpdate state updated to 2014-11-13T04:49:30
                   2014-11-13 04:49:39 - Temperature_GF_Helena state updated to 26.6
                   2014-11-13 04:49:39 - Helena_temp_LastUpdate state updated to 2014-11-13T04:49:39
                   2014-11-13 04:50:07 - Temperature_GF_Living state updated to 24.3
                   2014-11-13 04:50:07 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:07
                   2014-11-13 04:50:08 - Temperature_GF_Living state updated to 24.2
                   2014-11-13 04:50:08 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:08
                   2014-11-13 04:50:12 - Temperature_GF_Living state updated to 24.3
                   2014-11-13 04:50:12 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:12
                   2014-11-13 04:50:14 - Temperature_GF_Living state updated to 24.2
                   2014-11-13 04:50:14 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:14
                   2014-11-13 04:50:15 - Temperature_GF_Helena state updated to 26.7
                   2014-11-13 04:50:15 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:15
                   2014-11-13 04:50:16 - Temperature_GF_Helena state updated to 26.6
                   2014-11-13 04:50:16 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:16
                   2014-11-13 04:50:16 - Temperature_GF_Living state updated to 24.3
                   2014-11-13 04:50:16 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:16
                   2014-11-13 04:50:16 - Temperature_GF_Living state updated to 24.2
                   2014-11-13 04:50:16 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:16
                   2014-11-13 04:50:18 - Temperature_GF_Living state updated to 24.3
                   2014-11-13 04:50:18 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:18
                   2014-11-13 04:50:19 - Temperature_GF_Helena state updated to 26.7
                   2014-11-13 04:50:19 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:19
                   2014-11-13 04:50:20 - Temperature_GF_Helena state updated to 26.6
                   2014-11-13 04:50:20 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:20
                   2014-11-13 04:50:20 - Temperature_GF_Living state updated to 24.2
                   2014-11-13 04:50:20 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:20
                   2014-11-13 04:50:20 - Temperature_GF_Helena state updated to 26.7
                   2014-11-13 04:50:20 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:20
                   2014-11-13 04:50:20 - Temperature_GF_Living state updated to 24.3
                   2014-11-13 04:50:20 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:20
                   2014-11-13 04:50:22 - Temperature_GF_Helena state updated to 26.6
                   2014-11-13 04:50:22 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:22
                   2014-11-13 04:50:23 - Temperature_GF_Living state updated to 24.2
                   2014-11-13 04:50:23 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:23
                   2014-11-13 04:50:24 - Temperature_GF_Living state updated to 24.3
                   2014-11-13 04:50:24 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:24
                   2014-11-13 04:50:26 - Temperature_GF_Helena state updated to 26.7
                   2014-11-13 04:50:26 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:26
                   2014-11-13 04:50:26 - Temperature_GF_Living state updated to 24.2
                   2014-11-13 04:50:26 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:26
                   2014-11-13 04:50:27 - Temperature_GF_Living state updated to 24.3
                   2014-11-13 04:50:27 - Living_temp_LastUpdate state updated to 2014-11-13T04:50:27
                   2014-11-13 04:50:29 - Temperature_GF_Helena state updated to 26.6
                   2014-11-13 04:50:29 - Helena_temp_LastUpdate state updated to 2014-11-13T04:50:29
                  

                  As you can see i'm getting way more than 1 reading a second. I think this is happening because of the rounding up/down of the temperature readings.

                  P Offline
                  P Offline
                  pgo
                  wrote on last edited by
                  #28

                  @Hausner I send the temp changes only if change is > 1 deg C and light changes only > +/- 40 lux, have this in main loop:

                  void loop()     
                  {     
                    // Process incoming messages (like config from server)
                    gw.process(); 
                  
                    // Fetch temperatures from Dallas sensors
                    sensors.requestTemperatures(); 
                  
                    // Read temperatures and send them to controller 
                    for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
                  
                      // Fetch and round temperature to one decimal
                      float temperature = static_cast<float>(static_cast<int>((gw.getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;
                  
                      // Only send data if temperature has changed more then 1 degC and no error
                      if (int(lastTemperature[i]) != int(temperature) && temperature != -127.00) { //added integer
                  
                        // Send in the new temperature
                        gw.send(msg.setSensor(i).set(temperature,1));
                        lastTemperature[i]=temperature;
                      }
                    }
                    // Read lux from TEMT6000
                    float lightLevel = analogRead(LIGHT_SENSOR_ANALOG_PIN) * 9.765625;  // 1000/1024
                    if (int(lightLevel - lastLightLevel) > 40 || int(lastLightLevel - lightLevel) > 40) {
                        gw.send(msg.setSensor(CHILD_ID_LIGHT).set(int(lightLevel),1));
                        lastLightLevel = lightLevel;
                    }
                    //gw.sleep(SLEEP_TIME); //no sleep for relays!!!!
                  }
                  

                  Hope this helps, Pego

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    daulagari
                    Hero Member
                    wrote on last edited by
                    #29

                    As you can see i'm getting way more than 1 reading a second. I think this is happening because of the rounding up/down of the temperature readings.

                    Yes, clear, if you do not want this you need to change the if to something like:

                    if (abs(lastTemperature[i] - temperature) >= 0.5 && temperature != -127.00) {
                    
                    H 1 Reply Last reply
                    0
                    • D daulagari

                      As you can see i'm getting way more than 1 reading a second. I think this is happening because of the rounding up/down of the temperature readings.

                      Yes, clear, if you do not want this you need to change the if to something like:

                      if (abs(lastTemperature[i] - temperature) >= 0.5 && temperature != -127.00) {
                      
                      H Offline
                      H Offline
                      Hausner
                      wrote on last edited by
                      #30

                      @daulagari

                      Thank you. I'm gonna try with this

                      if (abs(lastTemperature[i] - temperature) >= 0.2 && temperature != -127.00) {
                      
                      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


                      18

                      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