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. Node is not using repeater to talk to gateway

Node is not using repeater to talk to gateway

Scheduled Pinned Locked Moved Troubleshooting
42 Posts 3 Posters 8.0k 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.
  • karl261K karl261

    @tekka Now it seems to work.

    But I recompiled, because I had MY_DEBUG commented out. Somehow there is something wrong with debug...

    Starting sensor (RNNNA-, 2.0.0)
    TSM:INIT
    TSM:RADIO:OK
    TSP:ASSIGNID:OK (ID=30)
    TSM:FPAR
    TSP:MSG:SEND 30-30-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
    TSP:MSG:READ 3-3-30 s=255,c=3,t=8,pt=1,l=1,sg=0:1
    TSP:MSG:FPAR RES (ID=3, dist=1)
    TSP:MSG:PAR OK (ID=3, dist=2)
    TSP:MSG:READ 99-99-30 s=255,c=3,t=8,pt=1,l=1,sg=0:1
    TSP:MSG:FPAR RES (ID=99, dist=1)
    TSP:MSG:FPAR (PPAR FOUND)
    TSP:MSG:PAR OK (ID=99, dist=2)
    TSM:FPAR:OK
    TSM:ID
    TSM:CHKID:OK (ID=30)
    TSM:UPL
    TSP:PING:SEND (dest=0)
    TSP:MSG:SEND 30-30-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=ok:1
    TSP:MSG:READ 0-0-30 s=255,c=3,t=8,pt=1,l=1,sg=0:0
    TSP:MSG:FPAR RES (ID=0, dist=0)
    TSP:MSG:READ 0-99-30 s=255,c=3,t=25,pt=1,l=1,sg=0:2
    TSP:MSG:PONG RECV (hops=2)
    TSP:CHKUPL:OK
    TSM:UPL:OK
    TSM:READY
    Serial started
    Voltage: 3289 mV
    TSP:MSG:SEND 30-30-99-0 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=ok:0100
    TSP:MSG:SEND 30-30-99-0 s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=ok:2.0.0
    TSP:MSG:SEND 30-30-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=ok:99
    TSP:MSG:READ 0-99-30 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
    TSP:MSG:SEND 30-30-99-0 s=255,c=3,t=11,pt=0,l=15,sg=0,ft=0,st=ok:EgTmpHumBat5min
    TSP:MSG:SEND 30-30-99-0 s=255,c=3,t=12,pt=0,l=10,sg=0,ft=0,st=ok:1.0 151106
    TSP:MSG:SEND 30-30-99-0 s=0,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=ok:
    TSP:MSG:SEND 30-30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0,ft=0,st=ok:
    Node and 2 children presented.
    Request registration...
    TSP:MSG:SEND 30-30-99-0 s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=ok:2
    TSP:MSG:READ 0-99-30 s=255,c=3,t=27,pt=1,l=1,sg=0:1
    Node registration=1
    Init complete, id=30, parent=99, distance=2, registration=1
    T: 21.59
    TempDiff :121.59
    TSP:MSG:SEND 30-30-99-0 s=0,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=ok:21.6
    T sent!
    H: 81
    HumDiff  :181.00
    TSP:MSG:SEND 30-30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0,ft=0,st=ok:81
    H sent!
    Battery voltage: 3279 mV
    Battery percent: 98 %
    TSP:MSG:SEND 30-30-99-0 s=255,c=3,t=0,pt=1,l=1,sg=0,ft=0,st=ok:98
    T: 21.61
    TempDiff :0.02
    H: 81
    HumDiff  :0.00
    
    tekkaT Offline
    tekkaT Offline
    tekka
    Admin
    wrote on last edited by
    #31

    @karl261 said:

    @tekka Now it seems to work.

    But I recompiled, because I had MY_DEBUG commented out. Somehow there is something wrong with debug...

    You mean, if MY_DEBUG is commented out, the node does not communicate over the repeater (99)?

    karl261K 1 Reply Last reply
    0
    • tekkaT tekka

      @karl261 said:

      @tekka Now it seems to work.

      But I recompiled, because I had MY_DEBUG commented out. Somehow there is something wrong with debug...

      You mean, if MY_DEBUG is commented out, the node does not communicate over the repeater (99)?

      karl261K Offline
      karl261K Offline
      karl261
      wrote on last edited by
      #32

      @tekka Well, yes, I added the two lines you suggested, re-compiled, and then it was not using the 99. And also some posts above, I had these weird messages transmitted 6-7 times, see logs. This happend while MY_DEBUG was commented out.

      Hm, I can re-upload the sketch and see if this is reproducible.

      tekkaT 1 Reply Last reply
      0
      • karl261K karl261

        @tekka Well, yes, I added the two lines you suggested, re-compiled, and then it was not using the 99. And also some posts above, I had these weird messages transmitted 6-7 times, see logs. This happend while MY_DEBUG was commented out.

        Hm, I can re-upload the sketch and see if this is reproducible.

        tekkaT Offline
        tekkaT Offline
        tekka
        Admin
        wrote on last edited by
        #33

        @karl261 Yes, that would be good - node 30 is running@1Mhz?

        karl261K 3 Replies Last reply
        0
        • tekkaT tekka

          @karl261 Yes, that would be good - node 30 is running@1Mhz?

          karl261K Offline
          karl261K Offline
          karl261
          wrote on last edited by
          #34

          @tekka Yes, @1 MHz.

          1 Reply Last reply
          0
          • tekkaT tekka

            @karl261 Yes, that would be good - node 30 is running@1Mhz?

            karl261K Offline
            karl261K Offline
            karl261
            wrote on last edited by
            #35

            @tekka No, it seems to work as expected. Any idea why I am getting this "fail" line?

            23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:READ 30-30-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
            23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:BC
            23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:FPAR REQ (sender=30)
            23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:CHKUPL:OK
            23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:GWL OK
            23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-30-30 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=ok:0
            23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:1
            23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:PINGED (ID=99, hops=1)
            23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=ok:1
            23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2
            23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:PINGED (ID=30, hops=2)
            23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=ok:1
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
            23.08.2016 00:30:35	RX	0;255;3;0;9;!TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=fail:0100
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0:99
            23.08.2016 00:30:35	RX	30;255;3;0;6;99
            23.08.2016 00:30:35	TX	30;255;3;0;6;M
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=ok:M
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=12,pt=0,l=10,sg=0:1.0 151106
            23.08.2016 00:30:35	RX	30;255;3;0;12;1.0 151106
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0:
            23.08.2016 00:30:35	RX	30;1;0;0;7;
            23.08.2016 00:30:35	DEBUG	Update child id=1, type=S_HUM
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=26,pt=1,l=1,sg=0:2
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=ok:1
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=1,t=0,pt=7,l=5,sg=0:24.3
            23.08.2016 00:30:35	RX	30;0;1;0;0;24.3
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:73
            23.08.2016 00:30:35	RX	30;1;1;0;1;73
            23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=0,pt=1,l=1,sg=0:91
            23.08.2016 00:30:35	RX	30;255;3;0;0;91
            
            tekkaT 1 Reply Last reply
            0
            • karl261K karl261

              @tekka No, it seems to work as expected. Any idea why I am getting this "fail" line?

              23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:READ 30-30-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
              23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:BC
              23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:FPAR REQ (sender=30)
              23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:CHKUPL:OK
              23.08.2016 00:30:33	RX	0;255;3;0;9;TSP:MSG:GWL OK
              23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-30-30 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=ok:0
              23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:1
              23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:PINGED (ID=99, hops=1)
              23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=ok:1
              23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2
              23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:PINGED (ID=30, hops=2)
              23.08.2016 00:30:34	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=ok:1
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
              23.08.2016 00:30:35	RX	0;255;3;0;9;!TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=fail:0100
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0:99
              23.08.2016 00:30:35	RX	30;255;3;0;6;99
              23.08.2016 00:30:35	TX	30;255;3;0;6;M
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=ok:M
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=12,pt=0,l=10,sg=0:1.0 151106
              23.08.2016 00:30:35	RX	30;255;3;0;12;1.0 151106
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0:
              23.08.2016 00:30:35	RX	30;1;0;0;7;
              23.08.2016 00:30:35	DEBUG	Update child id=1, type=S_HUM
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=26,pt=1,l=1,sg=0:2
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:SEND 0-0-99-30 s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=ok:1
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=1,t=0,pt=7,l=5,sg=0:24.3
              23.08.2016 00:30:35	RX	30;0;1;0;0;24.3
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:73
              23.08.2016 00:30:35	RX	30;1;1;0;1;73
              23.08.2016 00:30:35	RX	0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=0,pt=1,l=1,sg=0:91
              23.08.2016 00:30:35	RX	30;255;3;0;0;91
              
              tekkaT Offline
              tekkaT Offline
              tekka
              Admin
              wrote on last edited by tekka
              #36

              @karl261 Does it fail regularly?

              karl261K 1 Reply Last reply
              0
              • tekkaT tekka

                @karl261 Does it fail regularly?

                karl261K Offline
                karl261K Offline
                karl261
                wrote on last edited by karl261
                #37

                @tekka yes, these fails come and go, I see them all the time, but not at the same place necessarily. The logs posted above show plenty of them.

                I don't understand this radio trouble.,the distances between the nodes are not long. The radios are all connected using all tricks, the relay is a nrf24+pa+lna which is located in a good location... Maybe all radios are crap? There is only one wifi network and it is not very busy... It's my own. Maybe I should change the channel? 110 or so sounds good. I am using default now. Power is set to max for all nodes, the nrf24+pa+lna is shielded from itself, I put small antenna extensions on the normal ones after @petewill, they all have nice caps, gw and repeater have excellent power sources, ...

                I found a script how to test nrf radios... Maybe I should try that?

                If I was going to buy new radios, just to try, which ones are the best???

                Edit: Hm, I think if I use antennas, it really helps if they all point into the same direction. Like all horizontal or all vertical. Which would make sens, wouldn't it?

                1 Reply Last reply
                0
                • tekkaT tekka

                  @karl261 Yes, that would be good - node 30 is running@1Mhz?

                  karl261K Offline
                  karl261K Offline
                  karl261
                  wrote on last edited by
                  #38

                  @tekka But now I found something: the repeater sketch does not work, if MY_DEBUG is commented out. I tried several times forth and back. On the gw I get the output below.

                  0;255;3;0;9;TSP:MSG:READ 99-99-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
                  0;255;3;0;9;TSP:MSG:BC
                  0;255;3;0;9;TSP:MSG:FPAR REQ (sender=99)
                  0;255;3;0;9;TSP:CHKUPL:OK
                  0;255;3;0;9;TSP:MSG:GWL OK
                  0;255;3;0;9;!TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
                  0;255;3;0;9;TSP:MSG:READ 99-99-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
                  0;255;3;0;9;TSP:MSG:BC
                  0;255;3;0;9;TSP:MSG:FPAR REQ (sender=99)
                  0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
                  0;255;3;0;9;TSP:MSG:GWL OK
                  0;255;3;0;9;!TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
                  
                  tekkaT karl261K 2 Replies Last reply
                  0
                  • karl261K karl261

                    @tekka But now I found something: the repeater sketch does not work, if MY_DEBUG is commented out. I tried several times forth and back. On the gw I get the output below.

                    0;255;3;0;9;TSP:MSG:READ 99-99-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
                    0;255;3;0;9;TSP:MSG:BC
                    0;255;3;0;9;TSP:MSG:FPAR REQ (sender=99)
                    0;255;3;0;9;TSP:CHKUPL:OK
                    0;255;3;0;9;TSP:MSG:GWL OK
                    0;255;3;0;9;!TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
                    0;255;3;0;9;TSP:MSG:READ 99-99-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
                    0;255;3;0;9;TSP:MSG:BC
                    0;255;3;0;9;TSP:MSG:FPAR REQ (sender=99)
                    0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
                    0;255;3;0;9;TSP:MSG:GWL OK
                    0;255;3;0;9;!TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
                    
                    tekkaT Offline
                    tekkaT Offline
                    tekka
                    Admin
                    wrote on last edited by tekka
                    #39

                    @karl261 That's weird - I've just tested that scenario and everything is fine here.
                    Can you add an indicator in loop() to make sure the repeater sketch is running? Also, what board are you using as repeater and how do you power it?

                    karl261K 1 Reply Last reply
                    0
                    • tekkaT tekka

                      @karl261 That's weird - I've just tested that scenario and everything is fine here.
                      Can you add an indicator in loop() to make sure the repeater sketch is running? Also, what board are you using as repeater and how do you power it?

                      karl261K Offline
                      karl261K Offline
                      karl261
                      wrote on last edited by
                      #40

                      @tekka I will try this a bit later, thanks.
                      Right now I am going crazy, the node is again not using the defined parent. Did I overlook something in the sketch?

                      Starting sensor (RNNNA-, 2.0.0)
                      TSM:INIT
                      TSM:RADIO:OK
                      TSP:ASSIGNID:OK (ID=4)
                      TSM:FPAR
                      TSP:MSG:SEND 4-4-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                      TSP:MSG:READ 0-0-4 s=255,c=3,t=8,pt=1,l=1,sg=0:0
                      TSP:MSG:FPAR RES (ID=0, dist=0)
                      TSP:MSG:PAR OK (ID=0, dist=1)
                      TSM:FPAR:OK
                      TSM:ID
                      TSM:CHKID:OK (ID=4)
                      TSM:UPL
                      TSP:PING:SEND (dest=0)
                      TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=ok:1
                      TSP:MSG:READ 0-0-4 s=255,c=3,t=25,pt=1,l=1,sg=0:1
                      TSP:MSG:PONG RECV (hops=1)
                      TSP:CHKUPL:OK
                      TSM:UPL:OK
                      TSM:READY
                      BME init success!
                      TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=ok:0100
                      TSP:MSG:SEND 4-4-0-0 s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=ok:2.0.0
                      TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=ok:0
                      TSP:MSG:READ 0-0-4 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
                      TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=11,pt=0,l=13,sg=0,ft=0,st=ok:OUTSIDE P&T&H
                      TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=ok:1.2
                      TSP:MSG:SEND 4-4-0-0 s=1,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=ok:
                      TSP:MSG:SEND 4-4-0-0 s=2,c=0,t=8,pt=0,l=0,sg=0,ft=0,st=ok:
                      TSP:MSG:SEND 4-4-0-0 s=0,c=0,t=7,pt=0,l=0,sg=0,ft=0,st=ok:
                      Request registration...
                      TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=ok:2
                      TSP:MSG:READ 0-0-4 s=255,c=3,t=27,pt=1,l=1,sg=0:1
                      Node registration=1
                      Init complete, id=4, parent=0, distance=1, registration=1
                      TSP:MSG:SEND 4-4-0-0 s=1,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=ok:24.7
                      TSP:MSG:SEND 4-4-0-0 s=0,c=1,t=1,pt=2,l=2,sg=0,ft=0,st=ok:57
                      TSP:MSG:SEND 4-4-0-0 s=2,c=1,t=4,pt=7,l=5,sg=0,ft=0,st=ok:1012.9
                      TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=0,pt=1,l=1,sg=0,ft=0,st=ok:115
                      
                      /* Sketch with Si7021 and battery monitoring.
                      by m26872, 20151109 
                      */
                      
                      // Enable and select radio type attached
                      #define MY_RADIO_NRF24
                      #define MY_PARENT_NODE_ID 99
                      #define MY_PARENT_NODE_IS_STATIC
                      #define MY_NODE_ID 4
                      #define MY_DEBUG
                      
                      #define MY_BAUD_RATE 9600
                      
                      
                      #include <MySensors.h>  
                      #include <Wire.h>  //This library allows you to communicate with I2C / TWI devices. 
                      #include <SPI.h>
                      #include <RunningAverage.h>
                      
                      #include <SparkFunBME280.h>
                      
                      
                      
                      //#define DEBUG   // local debug
                      
                      #ifdef DEBUG
                      #define DEBUG_SERIAL(x) Serial.begin(x)
                      #define DEBUG_PRINT(x) Serial.print(x)
                      #define DEBUG_PRINTLN(x) Serial.println(x)
                      #else
                      #define DEBUG_SERIAL(x)
                      #define DEBUG_PRINT(x) 
                      #define DEBUG_PRINTLN(x) 
                      #endif
                      
                      // #define NODE_ID 132             // <<<<<<<<<<<<<<<<<<<<<<<<<<<   Enter Node_ID
                      #define CHILD_ID_HUM 0
                      #define CHILD_ID_TEMP 1
                      #define CHILD_ID_PRES 2
                       #define SLEEP_TIME 15000 // 15s for DEBUG
                      //#define SLEEP_TIME 300000   // 5 min
                      #define FORCE_TRANSMIT_CYCLE 36  // 5min*12=1/hour, 5min*36=1/3hour 
                      #define BATTERY_REPORT_CYCLE 2880   // Once per 5min   =>   12*24*7 = 2016 (one report/week)
                      #define VMIN 1900
                      #define VMAX 3300
                      #define HUMI_TRANSMIT_THRESHOLD 3.0  // THRESHOLD tells how much the value should have changed since last time it was transmitted.
                      #define TEMP_TRANSMIT_THRESHOLD 0.5
                      #define PRES_TRANSMIT_THRESHOLD 1.0
                      #define AVERAGES 2
                      
                      int batteryReportCounter = BATTERY_REPORT_CYCLE - 1;  // to make it report the first time.
                      int measureCount = 0;
                      float lastTemperature = -100;
                      float lastPressure = -100;
                      int lastHumidity = -100;
                      
                      RunningAverage raHum(AVERAGES);
                      //SI7021 humiditySensor;
                      BME280 mySensor;
                      
                      
                      // MyMessage to controler
                      MyMessage msgTemp(CHILD_ID_TEMP,V_TEMP); // Initialize temperature message
                      MyMessage msgHum(CHILD_ID_HUM,V_HUM);
                      MyMessage msgPres(CHILD_ID_PRES,V_PRESSURE);
                      
                      void presentation()
                      {
                        // Send the sketch version information to the gateway and Controller
                        sendSketchInfo("OUTSIDE P&T&H", "1.2");
                        present(CHILD_ID_TEMP, S_TEMP);
                        present(CHILD_ID_PRES, S_BARO);
                        present(CHILD_ID_HUM, S_HUM);  
                        DEBUG_PRINT("Node and "); DEBUG_PRINTLN("3 children presented.");
                      }
                      
                      void setup() {
                        DEBUG_SERIAL(9600);    // <<<<<<<<<<<<<<<<<<<<<<<<<< Note BAUD_RATE in MySensors.h
                        DEBUG_PRINTLN("Serial started");
                        
                        DEBUG_PRINT("Voltage: ");
                        DEBUG_PRINT(readVcc()); 
                        DEBUG_PRINTLN(" mV");
                      /*
                        delay(500);
                        DEBUG_PRINT("Internal temp: ");
                        DEBUG_PRINT(GetInternalTemp()); // Probably not calibrated. Just to print something.
                        DEBUG_PRINTLN(" *C");
                      */  
                      
                        mySensor.settings.commInterface = I2C_MODE;
                        mySensor.settings.I2CAddress = 0x77;
                      
                        //runMode can be:
                        //  0, Sleep mode
                        //  1 or 2, Forced mode
                        //  3, Normal mode
                        mySensor.settings.runMode = 1;
                        mySensor.settings.filter = 0;
                        mySensor.settings.tempOverSample = 1;
                        mySensor.settings.pressOverSample = 1;
                        mySensor.settings.humidOverSample = 1;
                        
                        delay(500); // Allow time for radio if power used as reset
                      
                        if (!mySensor.begin())
                         {
                          Serial.println("BME init failed!");
                          while (1);
                         }
                        else Serial.println("BME init success!");
                        
                        raHum.clear();
                        
                      }
                      
                      void loop() { 
                      
                        measureCount ++;
                        batteryReportCounter ++;
                        bool forceTransmit = false;
                        
                        if (measureCount > FORCE_TRANSMIT_CYCLE) {
                          forceTransmit = true; 
                        }
                        mySensor.begin();
                        sendTempHumidityMeasurements(forceTransmit);
                      /*
                        // Read and print internal temp
                        float temperature0 = static_cast<float>(static_cast<int>((GetInternalTemp()+0.5) * 10.)) / 10.;
                        DEBUG_PRINT("Internal Temp: "); DEBUG_PRINT(temperature0); DEBUG_PRINTLN(" *C");        
                      */
                        // Check battery
                        if (batteryReportCounter >= BATTERY_REPORT_CYCLE) {
                          long batteryVolt = readVcc();
                          DEBUG_PRINT("Battery voltage: "); DEBUG_PRINT(batteryVolt); DEBUG_PRINTLN(" mV");
                          uint8_t batteryPcnt = constrain(map(batteryVolt,VMIN,VMAX,0,100),0,255);   
                          DEBUG_PRINT("Battery percent: "); DEBUG_PRINT(batteryPcnt); DEBUG_PRINTLN(" %");
                          sendBatteryLevel(batteryPcnt);
                          batteryReportCounter = 0;
                        }
                        
                        sleep(SLEEP_TIME);
                      //if(isTransportOK()){
                      //    sleep(SLEEP_TIME);  // transport is OK, node can sleep
                      //  } 
                      //  else {
                      //    wait(5000); // transport is not operational, allow the transport layer to fix this
                      //  }
                      }
                      
                      // function for reading Vcc by reading 1.1V reference against AVcc. Based from http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/
                      // To calibrate reading replace 1125300L with scale_constant = internal1.1Ref * 1023 * 1000, where internal1.1Ref = 1.1 * Vcc1 (per voltmeter) / Vcc2 (per readVcc() function) 
                      long readVcc() {
                        // set the reference to Vcc and the measurement to the internal 1.1V reference
                        ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
                        delay(2); // Wait for Vref to settle
                        ADCSRA |= _BV(ADSC); // Start conversion
                        while (bit_is_set(ADCSRA,ADSC)); // measuring
                        uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
                        uint8_t high = ADCH; // unlocks both
                        long result = (high<<8) | low;
                        result = 1134738L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
                        return result; // Vcc in millivolts
                      }
                      // function for reading internal temp. From http://playground.arduino.cc/Main/InternalTemperatureSensor 
                      double GetInternalTemp(void) {  // (Both double and float are 4 byte in most arduino implementation)
                        unsigned int wADC;
                        double t;
                        // The internal temperature has to be used with the internal reference of 1.1V. Channel 8 can not be selected with the analogRead function yet.
                        ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));   // Set the internal reference and mux.
                        ADCSRA |= _BV(ADEN);  // enable the ADC
                        delay(20);            // wait for voltages to become stable.
                        ADCSRA |= _BV(ADSC);  // Start the ADC
                        while (bit_is_set(ADCSRA,ADSC));   // Detect end-of-conversion
                        wADC = ADCW;   // Reading register "ADCW" takes care of how to read ADCL and ADCH.
                        t = (wADC - 88.0 ) / 1.0;   // The default offset is 324.31.
                        return (t);   // The returned temperature in degrees Celcius.
                      }
                      
                      /*********************************************
                       * * Sends temperature and humidity from Si7021 sensor
                       * Parameters
                       * - force : Forces transmission of a value (even if it's the same as previous measurement)
                       *********************************************/
                      void sendTempHumidityMeasurements(bool force) {
                        bool tx = force;
                      
                        float temperature = mySensor.readTempC();
                        DEBUG_PRINT("T: ");DEBUG_PRINTLN(temperature);
                        float diffTemp = abs(lastTemperature - temperature);
                        DEBUG_PRINT(F("TempDiff :"));DEBUG_PRINTLN(diffTemp);
                        if (diffTemp > TEMP_TRANSMIT_THRESHOLD || tx) {
                          send(msgTemp.set(temperature,1));
                          lastTemperature = temperature;
                          measureCount = 0;
                          DEBUG_PRINTLN("T sent!");
                        }
                        
                        int humidity = mySensor.readFloatHumidity();
                        DEBUG_PRINT("H: ");DEBUG_PRINTLN(humidity);
                        raHum.addValue(humidity);
                        humidity = raHum.getAverage();  // MA sample imply reasonable fast sample frequency
                        float diffHum = abs(lastHumidity - humidity);  
                        DEBUG_PRINT(F("HumDiff  :"));DEBUG_PRINTLN(diffHum); 
                        if (diffHum > HUMI_TRANSMIT_THRESHOLD || tx) {
                          send(msgHum.set(humidity));
                          lastHumidity = humidity;
                          measureCount = 0;
                          DEBUG_PRINTLN("H sent!");
                        }
                      
                        float pressure = mySensor.readFloatPressure()/100.0;
                        DEBUG_PRINT("P: ");DEBUG_PRINTLN(pressure);
                        float diffPress = abs(lastPressure - pressure);
                        DEBUG_PRINT(F("PressDiff :"));DEBUG_PRINTLN(diffPress);
                        if (diffPress > PRES_TRANSMIT_THRESHOLD || tx) {
                          send(msgPres.set(pressure,1));
                          lastPressure = pressure;
                          measureCount = 0;
                          DEBUG_PRINTLN("P sent!");
                        }
                      
                      }
                      
                      1 Reply Last reply
                      0
                      • karl261K Offline
                        karl261K Offline
                        karl261
                        wrote on last edited by
                        #41

                        Total madness: I uploaded the same sketch again, and now it is using 99.

                        Questions:

                        1. Can I see in the log whether it "found" the parent or if it is using the parent I put into the sketch?
                        2. Is it possible to avoid this transport failure counter? Like, when I put
                          #define MY_PARENT_NODE_ID 99
                          #define MY_PARENT_NODE_IS_STATIC
                          into my sketch I just want the node to send, whether it reaches the parent or not. Is that possible?
                        1 Reply Last reply
                        0
                        • karl261K karl261

                          @tekka But now I found something: the repeater sketch does not work, if MY_DEBUG is commented out. I tried several times forth and back. On the gw I get the output below.

                          0;255;3;0;9;TSP:MSG:READ 99-99-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
                          0;255;3;0;9;TSP:MSG:BC
                          0;255;3;0;9;TSP:MSG:FPAR REQ (sender=99)
                          0;255;3;0;9;TSP:CHKUPL:OK
                          0;255;3;0;9;TSP:MSG:GWL OK
                          0;255;3;0;9;!TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
                          0;255;3;0;9;TSP:MSG:READ 99-99-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
                          0;255;3;0;9;TSP:MSG:BC
                          0;255;3;0;9;TSP:MSG:FPAR REQ (sender=99)
                          0;255;3;0;9;TSP:CHKUPL:OK (FLDCTRL)
                          0;255;3;0;9;TSP:MSG:GWL OK
                          0;255;3;0;9;!TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=fail:0
                          
                          karl261K Offline
                          karl261K Offline
                          karl261
                          wrote on last edited by
                          #42

                          @karl261 said:

                          @tekka But now I found something: the repeater sketch does not work, if MY_DEBUG is commented out. I tried several times forth and back. On the gw I get the output below.

                          I checked and re-programmed the repeater. It seems that it has gone away. I can use my repeater without MY_DEBUG. I don't know what caused this, but the repeater is working now.

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


                          19

                          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