Getting weird replies from serial gw, trying to send acks through random non-existing nodes.



  • Hello.
    I currently have a serial gw connected to an rpi2, then using a custom controller. Recently, I've been getting some weird stuff from it.. For example:

    I have a router node at id 251, that sends "Hi!" every 30 minutes or so - just to show that it's alive..
    0;0;3;0;9;read: 251-251-0 s=251,c=1,t=25,pt=0,l=3:Hi!
    0;0;3;0;9;send: 0-0-225-251 s=251,c=1,t=25,pt=0,l=3,st=fail:Hi!

    If I'm interpreting this right, I got a message from 251, originating from 251, final destination 0 (the gw) with "Hi!", and then it wanted to send the ack from 0, via 225 to final destination 251. This failed, since I don't have and have never had a node 225.

    Just today, I've had these failed replies (tuple, count):
    '0-0-1-4' => 1215,
    '0-0-1-7' => 1168,
    '0-0-117-251' => 1,
    '0-0-225-251' => 248,
    '0-0-30-30' => 51,
    '0-0-39-20' => 233,
    '0-0-40-20' => 53,
    '0-0-41-20' => 127,
    '0-0-64-251' => 22,
    '0-0-66-251' => 1,
    '0-0-96-251' => 2,
    '0-0-97-251' => 2

    Unfortunately, the nodes I have up and running is 4, 7, 8, 20, 21, 30 and the router at 251. I have not received any message from any rougue/neighbor nodes (like 41, 66, 96 etc), out of the more than half a million messages I have statistics for.

    Corrupted routing table? Thinking about writing something to dump the routing table to the controller..

    /Tomas


  • Admin

    Could it be a failing eeprom?



  • Maybe..

    Replaced it at 00:00 with same code, let's see what new statistics say after a good nights sleep 😉

    I haven't looked at the code around there, but it wouldn't be that hard to dump out the routing table - right?


  • Admin

    Nope. You could just read it out. Look here for the start address:
    https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/MySensor.h#L51



  • 0 weird replies since replacement of gateway, 8.5 hours in.



  • 20150607 isn't over yet, but statistics from the last couple of days and so-far of today (20150607, arduino got replaced at 00:00 today):

    20150603
    sendfail
    $VAR1 = {
              '0-0-1-4' => 57,
              '0-0-225-251' => 13,
              '0-0-251-20' => 271,
              '0-0-251-251' => 188,
              '0-0-251-7' => 487,
              '0-0-30-30' => 5,
              '0-0-4-4' => 1205,
              '0-0-7-7' => 537
            };
    20150604
    sendfail
    $VAR1 = {
              '0-0-1-4' => 1267,
              '0-0-1-7' => 598,
              '0-0-160-251' => 1,
              '0-0-160-255' => 6,
              '0-0-2-255' => 1,
              '0-0-225-251' => 268,
              '0-0-255-255' => 2,
              '0-0-30-30' => 4,
              '0-0-39-20' => 102,
              '0-0-40-20' => 79,
              '0-0-41-20' => 91,
              '0-0-50-20' => 2,
              '0-0-53-255' => 1,
              '0-0-55-20' => 1,
              '0-0-64-251' => 16,
              '0-0-66-251' => 2,
              '0-0-96-251' => 4
            };
    20150605
    sendfail
    $VAR1 = {
              '0-0-1-4' => 1247,
              '0-0-1-7' => 879,
              '0-0-117-251' => 2,
              '0-0-160-251' => 1,
              '0-0-225-251' => 268,
              '0-0-251-20' => 1,
              '0-0-251-251' => 33,
              '0-0-30-30' => 129,
              '0-0-39-20' => 112,
              '0-0-4-4' => 11,
              '0-0-40-20' => 77,
              '0-0-41-20' => 95,
              '0-0-64-251' => 12,
              '0-0-66-251' => 1,
              '0-0-7-7' => 14,
              '0-0-96-251' => 2
            };
    20150606
    sendfail
    $VAR1 = {
              '0-0-1-4' => 1267,
              '0-0-1-7' => 1206,
              '0-0-117-251' => 1,
              '0-0-225-251' => 291,
              '0-0-30-30' => 51,
              '0-0-39-20' => 245,
              '0-0-40-20' => 53,
              '0-0-41-20' => 133,
              '0-0-64-251' => 23,
              '0-0-66-251' => 1,
              '0-0-96-251' => 2,
              '0-0-97-251' => 2
            };
    20150607
    sendfail
    $VAR1 = {
              '0-0-251-7' => 1,
              '0-0-4-4' => 20,
              '0-0-7-7' => 477
            };
    
    

    0, 4, 7, 8, 20, 21, 30, 251 are valid node id's around here during this time period.
    Either it was eeprom/arduino replacement that fixed this, or just that it got rebooted (as well as replaced).. If it shows up again, I'll just try rebooting the gw and see what happens.



  • Still no crap results, probably eeprom gone bad. Shouldn't have gone bad this fast, unless something is rewriting the eeprom all the time..?


  • Contest Winner

    @Stric

    why not test the EEPROM, writing and reading to every location and find out for sure?

    It's unlikely that the registry for nodes exceeded your EEPROM life, unless you altered gateway code... else so goes the rest of us, I'm guessing.



  • Yup. I could do that.. memtest86+, arduino edition..


  • Contest Winner

    @Stric said:

    Yup. I could do that.. memtest86+, arduino edition..

    yeah, remove all doubt.


 

328
Online

8.2k
Users

9.1k
Topics

96.7k
Posts