Node is not using repeater to talk to gateway
-
Hi, this is all about the 2.0.0 master stable release. All systems use this code.
I have 1 gateway, 1 repeater and 1 sensor node. The sensor node is a bit far from the gateway, so I put a repeater node in the middle with an amplified nrf24 version and the real antenna.
Now what I see from the serial monitor is that gateway and repeater are up and running and the sensor node too.
My problem is, that I cannot get the sensor node to use the repeater.
If I bring the sensor close to the gateway they talk directly to each other. If I bring it further away, it does not switch over to use the repeater, but communication just remains dead (for days).
I did try the MY_PARENT_NODE_ ID but it does not do anything. Even if I bring all 3 devices close together, the repeater is not being used.
Can anyone confirm this behaviour? I am using the example sketches for gateway and repeater, and a very simple sketch for the sensor.
Thanks for any ideas!
-
@karl261 Please post the full debug log of all nodes.
-
Yes, I can do that, but only in about 4 weeks, because I am away.
For my understanding: MY_PARENT_NODE_ ID is the correct approach for forcing traffic through a certain repeater, isn't it?
-
@tekka I am still struggling with my repeater node. Below the output of the gateway (via pimatic-mysensors).
So, when I switch on the repeater, why do I get these two "fail" messages? I can see in the log of the repeater that they are received well.
Also, I noticed that the repeater is sending from time to time something to the gateway:
mysensors]: <- I_LOG_MESSAGE 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 13:32:51debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:PINGED (ID=99, hops=1) 13:32:51debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:1
Seems to be some sort of check that the routing table is still ok? When is it supposed to send that? Because sometimes it is not sending this for half an hour, then it is sending this every 20 seconds or so...
debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=ok:1 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=26,pt=1,l=1,sg=0:2 13:31:11debug [pimatic-mysensors]: <- I_SKETCH_VERSION 99;255;3;0;12;1.0 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0 13:31:11debug [pimatic-mysensors]: <- I_SKETCH_NAME 99;255;3;0;11;Repeater Node 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=11,pt=0,l=13,sg=0:Repeater Node 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;!TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=fail:M 13:31:11debug [pimatic-mysensors]: -> Sending 99;255;3;0;6;M 13:31:11debug [pimatic-mysensors]: <- I_CONFIG 99;255;3;0;6;0 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0 13:31:11debug [pimatic-mysensors]: <- Presented Node [ '99', '255', '0', '0', '18', '2.0.0' ] 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=0,t=18,pt=0,l=5,sg=0:2.0.0 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=ok:0100 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:1 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:PINGED (ID=99, hops=1) 13:31:11debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:1 13:31:09debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=ok:0 13:31:09debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:GWL OK 13:31:09debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:CHKUPL:OK 13:31:09debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:FPAR REQ (sender=99) 13:31:09debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:BC 13:31:09debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 99-99-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
-
Also, I can't really figure out what is failing here. This was when I was switching a node on. Later I see that it is transmitting data from time to time. I also can't figure out why the repeater is transmitting the data five times.
14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:M 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:M 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:M 14:23:24debug [pimatic-mysensors]: -> Sending 30;255;3;0;6;M 14:23:24debug [pimatic-mysensors]: <- I_CONFIG 30;255;3;0;6;99 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0:99 14:23:24debug [pimatic-mysensors]: -> Sending 30;255;3;0;6;M 14:23:24debug [pimatic-mysensors]: <- I_CONFIG 30;255;3;0;6;99 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0:99 14:23:24debug [pimatic-mysensors]: -> Sending 30;255;3;0;6;M 14:23:24debug [pimatic-mysensors]: <- I_CONFIG 30;255;3;0;6;99 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0:99 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '1', '0', '0', '7', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '1', '0', '0', '7', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '1', '0', '0', '7', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '1', '0', '0', '7', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '1', '0', '0', '7', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '1', '0', '0', '7', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=0,t=7,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '0', '0', '0', '6', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=0,t=6,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '0', '0', '0', '6', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=0,t=6,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '0', '0', '0', '6', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=0,t=6,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '0', '0', '0', '6', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=0,t=6,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '0', '0', '0', '6', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=0,t=6,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- Presented Node [ '30', '0', '0', '0', '6', '' ] 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=0,c=0,t=6,pt=0,l=0,sg=0: 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_VERSION 30;255;3;0;12;1.0 151106 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_VERSION 30;255;3;0;12;1.0 151106 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_VERSION 30;255;3;0;12;1.0 151106 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_VERSION 30;255;3;0;12;1.0 151106 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_VERSION 30;255;3;0;12;1.0 151106 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_VERSION 30;255;3;0;12;1.0 151106 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_NAME 30;255;3;0;11;EgTmpHumBat5min 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=11,pt=0,l=15,sg=0:EgTmpHumBat5min 14:23:24debug [pimatic-mysensors]: <- I_SKETCH_NAME 30;255;3;0;11;EgTmpHumBat5min 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=11,pt=0,l=15,sg=0:EgTmpHumBat5min 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:1 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:PINGED (ID=30, hops=2) 14:23:24debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2 14:23:23debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:1 14:23:23debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:PINGED (ID=30, hops=2) 14:23:23debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2
14:33:46debug [pimatic-mysensors]: <- MySensorDHT { sender: 30, sensor: 1, type: 1, value: '57' } 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:57 14:33:46debug [pimatic-mysensors]: <- MySensorDHT { sender: 30, sensor: 1, type: 1, value: '57' } 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:57 14:33:46debug [pimatic-mysensors]: <- MySensorDHT { sender: 30, sensor: 1, type: 1, value: '57' } 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:57 14:33:46debug [pimatic-mysensors]: <- MySensorDHT { sender: 30, sensor: 1, type: 1, value: '57' } 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:57 14:33:46debug [pimatic-mysensors]: <- MySensorDHT { sender: 30, sensor: 1, type: 1, value: '57' } 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:57 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:1 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:PINGED (ID=30, hops=2) 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 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=fail:1 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:PINGED (ID=30, hops=2) 14:33:46debug [pimatic-mysensors]: <- I_LOG_MESSAGE 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2
-
Something is wrong. In case somebody cares about a bit more debug output.
99 Repeater
4 Some outside node BME280
30 Outside node SI7021Somewhere towards the end I toggled the power of the repeater node.
I go and get some log from the repeater.
0;255;3;0;9;Starting gateway (RNNGA-, 2.0.0) 0;255;3;0;9;TSM:INIT 0;255;3;0;9;TSM:RADIO:OK 0;255;3;0;9;TSM:GW MODE 0;255;3;0;9;TSM:READY 0;255;3;0;14;Gateway startup complete. 0;255;0;0;18;2.0.0 0;255;3;0;9;No registration required 0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.0 2;1;1;0;0;20.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.9 2;0;1;0;1;73.9 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.0 2;1;1;0;0;21.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.4 2;0;1;0;1;74.4 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:19.5 2;1;1;0;0;19.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.6 2;0;1;0;1;73.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:19.0 2;1;1;0;0;19.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.2 2;0;1;0;1;73.2 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:61 30;1;1;0;1;61 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:61 30;1;1;0;1;61 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:61 30;1;1;0;1;61 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:61 30;1;1;0;1;61 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.9 2;0;1;0;1;73.9 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:19.5 2;1;1;0;0;19.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.7 2;0;1;0;1;73.7 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.4 2;0;1;0;1;73.4 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.1 2;0;1;0;1;73.1 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:19.5 2;1;1;0;0;19.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.5 2;0;1;0;1;73.5 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.0 2;0;1;0;1;74.0 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.0 3;0;1;0;1;61.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:18.9 2;1;1;0;0;18.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:72.9 2;0;1;0;1;72.9 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.6 4;1;1;0;0;26.6 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.6 4;1;1;0;0;26.6 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.6 4;1;1;0;0;26.6 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.6 4;1;1;0;0;26.6 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.6 4;1;1;0;0;26.6 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.6 4;1;1;0;0;26.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:18.8 2;1;1;0;0;18.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:72.7 2;0;1;0;1;72.7 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:19.5 2;1;1;0;0;19.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.3 2;0;1;0;1;73.3 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.9 2;0;1;0;1;73.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:19.6 2;1;1;0;0;19.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.8 2;0;1;0;1;73.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.4 2;0;1;0;1;74.4 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.2 2;1;1;0;0;20.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.3 2;0;1;0;1;74.3 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.5 2;0;1;0;1;74.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.6 2;0;1;0;1;74.6 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.0 2;1;1;0;0;21.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9 2;1;1;0;0;20.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.0 2;1;1;0;0;21.0 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.6 2;0;1;0;1;74.6 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.0 4;1;1;0;0;26.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9 2;1;1;0;0;20.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:45 4;0;1;0;1;45 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:45 4;0;1;0;1;45 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:45 4;0;1;0;1;45 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:45 4;0;1;0;1;45 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:45 4;0;1;0;1;45 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.6 2;0;1;0;1;74.6 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.5 4;1;1;0;0;26.5 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.5 4;1;1;0;0;26.5 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.5 4;1;1;0;0;26.5 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.5 4;1;1;0;0;26.5 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.5 4;1;1;0;0;26.5 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.5 4;1;1;0;0;26.5 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.0 2;1;1;0;0;21.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.0 2;0;1;0;1;75.0 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.1 2;1;1;0;0;21.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.1 2;0;1;0;1;75.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.0 2;0;1;0;1;75.0 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.1 2;1;1;0;0;21.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.1 2;0;1;0;1;75.1 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:41 4;0;1;0;1;41 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.6 2;0;1;0;1;73.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9 2;1;1;0;0;20.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.1 2;0;1;0;1;75.1 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:60 30;1;1;0;1;60 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:60 30;1;1;0;1;60 0;255;3;0;9;TSP:MSG:READ 30-99-0 s=1,c=1,t=1,pt=2,l=2,sg=0:60 30;1;1;0;1;60 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.0 2;1;1;0;0;21.0 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.1 2;0;1;0;1;75.1 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.1 2;1;1;0;0;21.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.2 2;0;1;0;1;75.2 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=2,c=1,t=4,pt=7,l=5,sg=0:1020.2 4;2;1;0;4;1020.2 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=2,c=1,t=4,pt=7,l=5,sg=0:1020.2 4;2;1;0;4;1020.2 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=2,c=1,t=4,pt=7,l=5,sg=0:1020.2 4;2;1;0;4;1020.2 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=2,c=1,t=4,pt=7,l=5,sg=0:1020.2 4;2;1;0;4;1020.2 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=2,c=1,t=4,pt=7,l=5,sg=0:1020.2 4;2;1;0;4;1020.2 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=2,c=1,t=4,pt=7,l=5,sg=0:1020.2 4;2;1;0;4;1020.2 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=2,c=1,t=4,pt=7,l=5,sg=0:1020.2 4;2;1;0;4;1020.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9 2;1;1;0;0;20.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.1 2;0;1;0;1;75.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9 2;1;1;0;0;20.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.1 2;0;1;0;1;75.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.0 2;0;1;0;1;75.0 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.0 2;0;1;0;1;75.0 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.1 4;1;1;0;0;26.1 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.1 4;1;1;0;0;26.1 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.1 4;1;1;0;0;26.1 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.1 4;1;1;0;0;26.1 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.1 4;1;1;0;0;26.1 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.1 4;1;1;0;0;26.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.7 2;1;1;0;0;20.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.7 2;0;1;0;1;74.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.2 2;1;1;0;0;20.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.5 2;0;1;0;1;74.5 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9 2;1;1;0;0;20.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:73.8 2;0;1;0;1;73.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=1,c=1,t=0,pt=7,l=5,sg=0:26.7 4;1;1;0;0;26.7 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.1 3;0;1;0;1;61.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.2 2;1;1;0;0;20.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.6 2;0;1;0;1;74.6 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:40 4;0;1;0;1;40 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.9 2;1;1;0;0;20.9 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.1 2;0;1;0;1;75.1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.8 2;1;1;0;0;20.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.0 2;0;1;0;1;75.0 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 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=ok:0 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:1 0;255;3;0;9;TSP:MSG:PINGED (ID=99, hops=1) 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=fail:1 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=0,t=18,pt=0,l=5,sg=0:2.0.0 99;255;0;0;18;2.0.0 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0 99;255;3;0;6;0 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=11,pt=0,l=13,sg=0:Repeater Node 99;255;3;0;11;Repeater Node 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0 99;255;3;0;12;1.0 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=26,pt=1,l=1,sg=0:2 0;255;3;0;9;TSP:MSG:SEND 0-0-99-99 s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=ok:1 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.3 3;0;1;0;1;61.3 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.4 2;1;1;0;0;20.4 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:75.0 2;0;1;0;1;75.0 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.4 3;0;1;0;1;61.4 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=0,c=1,t=1,pt=2,l=2,sg=0:44 4;0;1;0;1;44 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 3;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.2 3;0;1;0;1;61.2 0;255;3;0;9;TSP:MSG:READ 99-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:1 0;255;3;0;9;TSP:MSG:PINGED (ID=99, hops=1) 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 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2 0;255;3;0;9;TSP:MSG:PINGED (ID=4, hops=2) 0;255;3;0;9;!TSP:MSG:SEND 0-0-99-4 s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=fail:1 0;255;3;0;9;TSP:MSG:READ 4-99-0 s=255,c=3,t=24,pt=1,l=1,sg=0:2 0;255;3;0;9;TSP:MSG:PINGED (ID=4, hops=2) 0;255;3;0;9;!TSP:MSG:SEND 0-0-99-4 s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=fail:1 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 2;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.6 2;1;1;0;0;20.6 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.9 2;0;1;0;1;74.9 0;255;3;0;9;TSP:SANCHK:OK 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0:20.5 3;1;1;0;0;20.5 0;255;3;0;9;TSP:MSG:READ 2-2-0 s=0,c=1,t=1,pt=7,l=5,sg=0:74.8 2;0;1;0;1;74.8 0;255;3;0;9;TSP:MSG:READ 3-3-0 s=0,c=1,t=1,pt=7,l=5,sg=0:61.3 3;0;1;0;1;61.3 0;255;3;0;9;TSP:SANCHK:OK
-
Hm, somehow I have the impression it depends a bit if I have #define MY_DEBUG in my repeater sketch or not. I had to put it back in, because I want to take some logs, and it is behaving a bit better now. At least single messages. And less fails.
-
Hi @karl261,
It's a long shot but can you double check your power sources? I had some weird issues like those in the past because of bad quality power sources.
I recommend adding a 47uF electrolytic capacitor as close as possible to the NRF24 GND and VCC pins, as a 470uF between the GND and the Vin pins of the arduino.
And keep the external power source on even when connecting the USB cable to read the debug messages.
Hope you solve this issue soon
-
@karl261 Ok, I need to see the sketches first: can you post the sketch of all nodes, i.e. GW, node 99, node 3, node 4? Also, do you have MYSController installed for a few tests?
-
Oki doki, thanks for looking at this:
Sketch GW:
/** * The MySensors Arduino library handles the wireless radio link and protocol * between your home built sensors/actuators and HA controller of choice. * The sensors forms a self healing radio network with optional repeaters. Each * repeater and gateway builds a routing tables in EEPROM which keeps track of the * network topology allowing messages to be routed to nodes. * * Created by Henrik Ekblad <henrik.ekblad@mysensors.org> * Copyright (C) 2013-2015 Sensnology AB * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors * * Documentation: http://www.mysensors.org * Support Forum: http://forum.mysensors.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * ******************************* * * DESCRIPTION * The ArduinoGateway prints data received from sensors on the serial link. * The gateway accepts input on seral which will be sent out on radio network. * * The GW code is designed for Arduino Nano 328p / 16MHz * * Wire connections (OPTIONAL): * - Inclusion button should be connected between digital pin 3 and GND * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series * * LEDs (OPTIONAL): * - To use the feature, uncomment MY_LEDS_BLINKING_FEATURE in MyConfig.h * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly * - ERR (red) - fast blink on error during transmission error or recieve crc error * */ // Enable debug prints to serial monitor #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_RADIO_RFM69 // Set LOW transmit power level as default, if you have an amplified NRF-module and // power your radio separately with a good regulator you can turn up PA level. //#define MY_RF24_PA_LEVEL RF24_PA_LOW // Enable serial gateway #define MY_GATEWAY_SERIAL // Define a lower baud rate for Arduino's running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender) #if F_CPU == 8000000L #define MY_BAUD_RATE 38400 #endif // Flash leds on rx/tx/err #define MY_LEDS_BLINKING_FEATURE // Set blinking period #define MY_DEFAULT_LED_BLINK_PERIOD 300 // Inverses the behavior of leds //#define MY_WITH_LEDS_BLINKING_INVERSE // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway #define MY_INCLUSION_BUTTON_FEATURE // Inverses behavior of inclusion button (if using external pullup) //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP // Set inclusion mode duration (in seconds) #define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button #define MY_INCLUSION_MODE_BUTTON_PIN 3 // Uncomment to override default HW configurations //#define MY_DEFAULT_ERR_LED_PIN 4 // Error led pin //#define MY_DEFAULT_RX_LED_PIN 6 // Receive led pin //#define MY_DEFAULT_TX_LED_PIN 5 // the PCB, on board LED #include <SPI.h> #include <MySensor.h> void setup() { // Setup locally attached sensors } void presentation() { // Present locally attached sensors } void loop() { // Send locally attached sensor data here }
Sketch 99:
/** * The MySensors Arduino library handles the wireless radio link and protocol * between your home built sensors/actuators and HA controller of choice. * The sensors forms a self healing radio network with optional repeaters. Each * repeater and gateway builds a routing tables in EEPROM which keeps track of the * network topology allowing messages to be routed to nodes. * * Created by Henrik Ekblad <henrik.ekblad@mysensors.org> * Copyright (C) 2013-2015 Sensnology AB * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors * * Documentation: http://www.mysensors.org * Support Forum: http://forum.mysensors.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * ******************************* * * REVISION HISTORY * Version 1.0 - Henrik Ekblad * * DESCRIPTION * Example sketch showing how to create a node thay repeates messages * from nodes far from gateway back to gateway. * It is important that nodes that has enabled repeater mode calls * process() frequently. Repeaters should never sleep. */ // Enable debug prints to serial monitor #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_RADIO_RFM69 // Enabled repeater feature for this node #define MY_REPEATER_FEATURE #define MY_NODE_ID 99 #include <SPI.h> #include <MySensors.h> void setup() { } void presentation() { //Send the sensor node sketch version information to the gateway sendSketchInfo("Repeater Node", "1.0"); } void loop() { }
Sketch 4:
/* Sketch with Si7021 and battery monitoring. by m26872, 20151109 */ // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_PARENT_NODE_ID 31 #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!"); } }
Sketch Node 30:
/* Sketch with Si7021 and battery monitoring. by m26872, 20151109 */ // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_DEBUG //#define MY_PARENT_NODE_ID 31 //#define MY_NODE_ID 30 #define MY_BAUD_RATE 9600 #include <MySensors.h> #include <Wire.h> //This library allows you to communicate with I2C / TWI devices. #include <SI7021.h> #include <SPI.h> #include <RunningAverage.h> #define 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_TEMP 0 #define CHILD_ID_HUM 1 // #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 AVERAGES 2 int batteryReportCounter = BATTERY_REPORT_CYCLE - 1; // to make it report the first time. int measureCount = 0; float lastTemperature = -100; int lastHumidity = -100; RunningAverage raHum(AVERAGES); SI7021 humiditySensor; MyMessage msgTemp(CHILD_ID_TEMP,V_TEMP); // Initialize temperature message MyMessage msgHum(CHILD_ID_HUM,V_HUM); void presentation() { sendSketchInfo("EgTmpHumBat5min", "1.0 151106"); present(CHILD_ID_TEMP, S_TEMP); // Present sensor to controller present(CHILD_ID_HUM, S_HUM); DEBUG_PRINT("Node and "); DEBUG_PRINTLN("2 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"); */ delay(500); // Allow time for radio if power useed as reset raHum.clear(); } void loop() { measureCount ++; batteryReportCounter ++; bool forceTransmit = false; if (measureCount > FORCE_TRANSMIT_CYCLE) { forceTransmit = true; } 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); } // 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; si7021_env data = humiditySensor.getHumidityAndTemperature(); float temperature = data.celsiusHundredths / 100.0; 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 = data.humidityPercent; 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!"); } }
-
@Daniel-Oliveira Yeah, I know about these power things. I am pretty sure the power is ok. I use the caps on all my nodes. For the repeater (99) I picked a very stable 5V source and the NRF24+PA+LNA sits behind its own 3.3V regulator that has a high current output. The NRF24+PA+LNA is shielded after @Oitzu's method, so it should not interfere with itself. Actually I tried to implement all the tricks.
Btw, all is on 2.0.0.
GW: Nano
99: Pro mini
30 + 4: 1Mhz battery nodes after @m26872's "My Slim 2AA Battery Node".It all sounds too nice to be true...
-
@tekka MYSController? No, but if you point me to a link or so I could install of course.
Edit: Ok, I downloaded your software. It seems it is running well on my PC. I am ready to test.
Edit2: The 1.0.0beta.
-
@karl261 What version is it saying?
-
@tekka 1.0.0beta built 3314
-
@karl261 Ok, then send a C_INTERNAL | I_DEBUG | R message to the GW and node 99 and upload the output.
-
@tekka So you mean I connect to my serial gateway and then issue the commands? Yes, let's see.
-
Here we go:
10 22.08.2016 21:49:41 TX 0 - Gateway N/A C_INTERNAL NO I_DEBUG R 12 22.08.2016 21:49:41 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 0202 14 22.08.2016 21:49:41 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 0303 16 22.08.2016 21:49:41 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 0463 18 22.08.2016 21:49:41 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 1E1E 20 22.08.2016 21:49:42 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 1F1F 22 22.08.2016 21:49:42 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 6363 24 22.08.2016 21:49:42 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 8B03 25 22.08.2016 21:50:06 TX 99 - Repeater Node N/A C_INTERNAL NO I_DEBUG R 28 22.08.2016 21:50:06 RX 99 - Repeater Node INTERNAL C_INTERNAL NO I_DEBUG 0000 30 22.08.2016 21:50:06 RX 99 - Repeater Node INTERNAL C_INTERNAL NO I_DEBUG 0303 32 22.08.2016 21:50:07 RX 99 - Repeater Node INTERNAL C_INTERNAL NO I_DEBUG 0404 34 22.08.2016 21:50:07 RX 99 - Repeater Node INTERNAL C_INTERNAL NO I_DEBUG 1E1E 37 22.08.2016 21:50:23 RX 2 1 C_SET NO V_TEMP 20.8 39 22.08.2016 21:50:23 RX 2 0 C_SET NO V_HUM 76.1
-
@karl261 Ok, and now send C_INTERNAL | I_DEBUG | E - first to node 99, then to the GW and finally, press Discover in MYSController. This should re-establish the routing table.
-
@tekka I received ok twice back. Now the nano (GW) is blinking like crazy. And so is the pro mini (repeater). I do a power cycle?
-
@karl261 yup
-
@tekka Still weird:
99 says 0203 so 02 is going via 03?? Why?
0 says 0263 so 02 is going via 99?247 22.08.2016 22:15:24 TX 99 - Repeater Node N/A C_INTERNAL NO I_DEBUG R 250 22.08.2016 22:15:24 RX 99 - Repeater Node INTERNAL C_INTERNAL NO I_DEBUG 0000 252 22.08.2016 22:15:24 RX 99 - Repeater Node INTERNAL C_INTERNAL NO I_DEBUG 0203 254 22.08.2016 22:15:24 RX 99 - Repeater Node INTERNAL C_INTERNAL NO I_DEBUG 0404 255 22.08.2016 22:15:50 TX 0 - Gateway N/A C_INTERNAL NO I_DEBUG R 257 22.08.2016 22:15:50 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 0263 259 22.08.2016 22:15:50 RX 0 - Gateway INTERNAL C_INTERNAL NO I_DEBUG 6363
-
@karl261 hmm...indeed, that's weird. Do you have the debug log of node 3?
-
@tekka Which log exactly? Node 3 is Mysensors 1.5... It is sitting somewhere hidden...
-
@karl261 But you wrote:
Btw, all is on 2.0.0.
mixed setups are not advisable (and not supported). Please update if possible.
-
@tekka Yes, with "all" I meant those being involved in the repeater stuff.
-
@karl261 Can you add this to node 4 (this is the relayed one?):
#define MY_PARENT_NODE_ID 99 #define MY_PARENT_NODE_IS_STATIC
-
@tekka I can add it to node 30 right now. It is also supposed to be relayed. In fact this is why I did start this thread in the first place, I had no luck with these two lines. Will try again.
Oooohhh, there is a mistake further up: I am talking about node 30, and wrote node 3. That is incorrect. Let's see if I can edit. That is why you were asking about the 1.5...
-
@tekka Node 30 does still not care about the two lines. It is sending direct.
It also does not send back any routing table. Maybe because it is sleeping most of the time?
-
@karl261 If it's not defined as repeater, it won't have a routing table. And yes, sleeping nodes do not listen for incoming traffic. But still, if GW and node 99 are up, it should prefer 99 - can you show me the log of node 30 during booting?
-
@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
-
@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)?
-
@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.
-
@karl261 Yes, that would be good - node 30 is running@1Mhz?
-
@tekka Yes, @1 MHz.
-
@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
-
@karl261 Does it fail regularly?
-
@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?
-
@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
-
@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?
-
@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!"); } }
-
Total madness: I uploaded the same sketch again, and now it is using 99.
Questions:
- Can I see in the log whether it "found" the parent or if it is using the parent I put into the sketch?
- 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?
-
@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.
Suggested Topics
-
Day 1 - Status report
Announcements • 23 Mar 2014, 22:45 • hek 24 Mar 2014, 20:12 -
Arduino nano and Uno in same My sensors network with NRF24L01+
Troubleshooting • 26 Jul 2024, 10:30 • DIY89 27 Aug 2024, 09:59 -
Raspberry Pi 5: invalid GPIO 9
Troubleshooting • 27 Aug 2024, 13:20 • igo 27 Aug 2024, 13:20 -
Suddenly a Sensor is Missing, not the whole Node. (RPI Eth Gateway, HA)
Troubleshooting • 3 Jul 2024, 07:20 • se-O-matic 15 Jul 2024, 08:45 -
Can not compile MySensors on esp8266
Troubleshooting • 24 Aug 2024, 15:35 • TheoL 29 Aug 2024, 20:47