Simple RS485 monitoring of Magnum Energy Inverter/Charger

Started by cpfl, May 01, 2015, 04:15:04 PM

Previous topic - Next topic

cpfl

Paul,

Running your code on my system now.

MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

Decoding Packets Remote_Base, A3
Decoding Packets Remote_Base, Z0
Error: Failed to decode, please try again. Exiting

I will investigate where it is getting stuck and report back.

Chris.
Off-Grid in a 320 sqft tiny home (plus 320 sqft attached workshop) in Texas, USA: Midnite Solar Classic 150, Magnum Energy MS4448PAE, 9 x Kyocera KD240 (2160 watts) + 9 x Kyocera KU265 (2385 watts), 16 x GC2 (400AH 48V), Raspberry Pi (ethernet & RS485 monitoring).

paul alting

#16
Hi Chris,

Place the print statement at line 911, directly after the serial read, like this;

serial_byte = ord(mag_port.read(1))
print(hex(serial_byte)),


Also, enable the print at line 816.
This will print out the data bytes read and we should be able to find from that what is different.

I have yet to put in the debug levels  :-[

What components do you have in your system?

____
Paul
6 x 200W PV into home-brew 6 stage MOSFET charge controller : Microhydro 220Vac 3 phase IMAG
8 x 400Ah LiFeYPO4 Winston : Latronics LS2412 inverter
QuadlogSCADA control and monitoring system : Tasmania, Australia : http://paulalting.com

cpfl

Paul,

I have the MS4448PAE inverter, BMK and ARC.

Output produced:-

MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

1 0x40
0x0 2 0x0
0x2 3 0x2
0x1 4 0x1
0x0 5 0x0
0x4 6 0x4
0x78 7 0x78
0x0 8 0x0
0x1 9 0x1
0x0 10 0x0
0x33 11 0x33
0x20 12 0x20
0x32 13 0x32
0x29 14 0x29
0x73 15 0x73
0x0 16 0x0
0x0 17 0x0
0x1 18 0x1
0x2 19 0x2
0x58 20 0x58
0x0 21 0x0
0xff 22 0xff
0x0 23 0x0
0x5 24 0x5
0x3c 25 0x3c
0x93 26 0x93
0x32 27 0x32
0x14 28 0x14
0x17 29 0x17
0x46 30 0x46
0x0 31 0x0
0xeb 32 0xeb
0x9b 33 0x9b
0x86 34 0x86
0x7 35 0x7
0x14 36 0x14
0x50 37 0x50
0x28 38 0x28
0x0 39 0x0
0x20 40 0x20
0xa 41 0xa
0x0 42 0x0
0xa3 43 0xa3
Decoding Packets Remote_Base, A3
0xff 1 0xff
0x40 2 0x40
0x0 3 0x0
0x2 4 0x2
0x1 5 0x1
0x0 6 0x0
0x4 7 0x4
0x78 8 0x78
0x0 9 0x0
0x1 10 0x1
0x0 11 0x0
0x33 12 0x33
0x20 13 0x20
0x32 14 0x32
0x29 15 0x29
0x73 16 0x73
0x0 17 0x0
0x0 18 0x0
0x1 19 0x1
0x2 20 0x2
0x58 21 0x58
0x0 22 0x0
0xff 23 0xff
0x0 24 0x0
0x5 25 0x5
0x3c 26 0x3c
0x93 27 0x93
0x32 28 0x32
0x14 29 0x14
0x17 30 0x17
0x46 31 0x46
0x0 32 0x0
0xeb 33 0xeb
0x9b 34 0x9b
0x86 35 0x86
0x7 36 0x7
0x14 37 0x14
0x3c 38 0x3c
0x3c 39 0x3c
0x0 40 0x0
0x0 41 0x0
0x0 42 0x0
0x0 43 0x0
Decoding Packets Remote_Base, Z0
0xa4 1 0xa4
0xff 2 0xff
0x81 3 0x81
0x5d 4 0x5d
0x14 5 0x14
0x11 6 0x11
0x0 7 0x0
0x0 8 0x0
0x12 9 0x12
0x7d 10 0x7d
0x18 11 0x18
0x3c 12 0x3c
0xff 13 0xff
0xe4 14 0xe4
0xff 15 0xff
0xff 16 0xff
0x0 17 0x0
0x47 18 0x47
0xa 19 0xa
0x1 20 0x1
0x40 21 0x40
0x0 22 0x0
0x2 23 0x2
0x1 24 0x1
0x0 25 0x0
0x4 26 0x4
0x78 27 0x78
0x0 28 0x0
0x1 29 0x1
0x0 30 0x0
0x33 31 0x33
0x20 32 0x20
0x32 33 0x32
0x29 34 0x29
0x73 35 0x73
0x0 36 0x0
0x0 37 0x0
0x1 38 0x1
0x2 39 0x2
0x58 40 0x58
0x0 41 0x0
0xff 42 0xff
0x0 43 0x0
0x5 44 0x5
0x3c 45 0x3c
0x93 46 0x93
0x32 47 0x32
0x14 48 0x14
0x17 49 0x17
0x46 50 0x46
0x0 51 0x0
0xeb 52 0xeb
0x9b 53 0x9b
0x86 54 0x86
0x7 55 0x7
0x14 56 0x14
0x0 57 0x0
0x0 58 0x0
0x0 59 0x0
0x0 60 0x0
0x28 61 0x28
0x0 62 0x0
0x80 63 0x80
0xff 64 0xff
0x40 65 0x40
0x0 66 0x0
0x2 67 0x2
0x1 68 0x1
0x0 69 0x0
0x4 70 0x4
0x78 71 0x78
0x0 72 0x0
0x1 73 0x1
0x0 74 0x0
0x33 75 0x33
0x20 76 0x20
0x32 77 0x32
0x29 78 0x29
0x73 79 0x73
0x0 80 0x0
0x0 81 0x0
0x1 82 0x1
0x2 83 0x2
0x58 84 0x58
0x0 85 0x0
0xff 86 0xff
0x0 87 0x0
0x5 88 0x5
0x3c 89 0x3c
0x93 90 0x93
0x32 91 0x32
0x14 92 0x14
0x17 93 0x17
0x46 94 0x46
0x0 95 0x0
0xeb 96 0xeb
0x9b 97 0x9b
0x86 98 0x86
0x7 99 0x7
0x14 100 0x14
0x0 101 0x0
0x0 102 0x0
0x0 103 0x0
0x0 104 0x0
0x0 105 0x0
0x0 106 0x0
0x0 107 0x0
0xff 108 0xff
0x40 109 0x40
0x0 110 0x0
0x2 111 0x2
0x1 112 0x1
0x0 113 0x0
0x4 114 0x4
0x78 115 0x78
0x0 116 0x0
0x1 117 0x1
0x0 118 0x0
0x33 119 0x33
0x20 120 0x20
0x32 121 0x32
0x29 122 0x29
0x73 123 0x73
0x0 124 0x0
0x0 125 0x0
0x1 126 0x1
0x2 127 0x2
0x58 128 0x58
Error: Failed to decode, please try again. Exiting

Chris.

Off-Grid in a 320 sqft tiny home (plus 320 sqft attached workshop) in Texas, USA: Midnite Solar Classic 150, Magnum Energy MS4448PAE, 9 x Kyocera KD240 (2160 watts) + 9 x Kyocera KU265 (2385 watts), 16 x GC2 (400AH 48V), Raspberry Pi (ethernet & RS485 monitoring).

paul alting

#18
ok, I notice a few things in there.

First line, is both the inverter and A3 packet :
Inverter       0x40 0x0 0x2 0x4 0x0 0x4 0x77 0x0 0x1 0x0 0x33 0x20 0x32 0x29 0x73 0x0 0x0 0x1 0x2 0x58 0x0 0xff (0xff is end of frame marker)
Remote_A3  0x0 0x5 0x3c 0x93 0x32 0x14 0x17 0x46 0x0 0xeb 0x9b 0x86 0x7 0x14 0x50 0x28 0x0 0x20 0xa 0x0 0xa3 Decoding Packets Remote_Base, A3

Next line is, again inverter packet with a plain remote packet I call remote_Z0 (mostly zeros at end)
Inverter       0xff 0x40 0x0 0x2 0x3 0x0 0x4 0x76 0x0 0x1 0x0 0x33 0x20 0x32 0x29 0x73 0x0 0x0 0x1 0x2 0x58 0x0 0xff (again, 0xff end of frame marker)
Remote_Z0  0x0 0x5 0x3c 0x93 0x32 0x14 0x17 0x46 0x0 0xeb 0x9b 0x86 0x7 0x14 0x3c 0x3c 0x0 0x0 0x0 0x0 Decoding Packets Remote_Base, Z0

But notice the end of frame marker from the preceding frame is now at the start of the inverter frame, 0xff 0x40 0x0.

Section of the next line:
Unknown   0xa4 0xff 0x81 0x5d 0x14 0x17 0xff 0xec 0x12 0x7d 0x18 0x3c 0xff 0xe4 0xff 0xff 0x0 0x47 0xa 0x1 (unknown start marker, also I don't recognise any of this data)
Inverter     0x40 0x0 0x2 0x3 0x0 0x4 0x76 0x0 0x1 0x0 0x33 0x20 0x32 0x29 0x73 0x0 0x0 0x1 0x2 0x58 0x0 0xff

Following on from that data I see a Remote_BMK start frame;
0x0 0x5 0x3c 0x93 0x32 0x14 0x17 0x46 0x0 0xeb 0x9b 0x86 0x7 0x14 0x0 0x0 0x0 0x0 0x28 0x0 0x80 0xff (Remote_BMK ends with 0x80)
But no following on frame, which starts with 0x81.
Rather, it ends with a end of frame marker.
I have only ever seen end of frame markers at the end of the inverter packet, never on any other packet, and this might be a software change Magnum have applied to later units.

I should be able to modify the code so that those additional 0xff end of frame markers are catered for.
This might help decode a bit more, but that still leaves a packet that I do not see in the document I have.

How old is your system and what are the revision numbers?

The 'Error: Failed to decode, please try again. Exiting', is simply that the program has detected more bytes in the buffer than any of the packet size definitions are, meaning, it was not able to track the packets as per the Magnum protocol document.

Also, where in the network do you connect in with your EIA-485 from your RPi/Cubie ?

I will look at making further contact with Magnum Energy to try to get some additional understanding and whether what you have is a later revision of the firmware, together with the more recent protocol document.

I have been advised that there is additional data being generated buy the AGS module, maybe also by other modules.
____
Paul
6 x 200W PV into home-brew 6 stage MOSFET charge controller : Microhydro 220Vac 3 phase IMAG
8 x 400Ah LiFeYPO4 Winston : Latronics LS2412 inverter
QuadlogSCADA control and monitoring system : Tasmania, Australia : http://paulalting.com

cpfl

Paul,

The system was purchased new in 2011, if I remember correctly. Also from memory, the inverter is 5.1, the BMK is 1.0, and ARC is 2.3.

The Pi is connected to the green inverter port, together with the BMK.

Chris.
Off-Grid in a 320 sqft tiny home (plus 320 sqft attached workshop) in Texas, USA: Midnite Solar Classic 150, Magnum Energy MS4448PAE, 9 x Kyocera KD240 (2160 watts) + 9 x Kyocera KU265 (2385 watts), 16 x GC2 (400AH 48V), Raspberry Pi (ethernet & RS485 monitoring).

paul alting

I've just noticed that the remote_Z0 packet is not correct, it is in fact a remote_A4 packet, as can be seen with the 0xa4 at the start of the next unknown packet, followed by the EOF marker.
That then makes the next packet a tail section of the BMK packet, which should always follow the initial BMK packet, which ends in 0x80, linking the two together, 0x80 to 0x81.

I'll look over it some more later, hopefully tonight my time UTC+10
____
Paul
6 x 200W PV into home-brew 6 stage MOSFET charge controller : Microhydro 220Vac 3 phase IMAG
8 x 400Ah LiFeYPO4 Winston : Latronics LS2412 inverter
QuadlogSCADA control and monitoring system : Tasmania, Australia : http://paulalting.com

jamesmc

I am encountering a similar type of packet as well.  There must be changes to the protocol from the publicly available document?  Have you made any further changes or updates to this project Paul?

paul alting

Hi James,

Gosh, looking over this topic I needed a few moments to realise it was code I developed.
I don't think there were any further modifications to the code, but I would need to check my last version against what is here.
I'll try to take a look later.
6 x 200W PV into home-brew 6 stage MOSFET charge controller : Microhydro 220Vac 3 phase IMAG
8 x 400Ah LiFeYPO4 Winston : Latronics LS2412 inverter
QuadlogSCADA control and monitoring system : Tasmania, Australia : http://paulalting.com

WillEert

Hi Paul,

I am very interested in your work that you are doing regarding interfacing with the Magnum inverters and associated Magnum equipment. As you know I have a Magnum / Midnite system with the diversion control that you gave your time to develop code for. I  divert my excess electricity on the AC side of the system. The system has a dedicated ms4448 pae inverter  that is only used for diversion or battery charging.  I would like to turn my diversion inverter off when the Classic is resting or in bulk as it is just wasting watts as it waits for power to become available in absorb or float stage. I am pulling for you to be successful at this coding as I know that I could not do it!!!

Cheers

Will
(1)24 ET 185 mono, Classic 150,8x Surrette 6CS25p, 4x Magnum 4448, homecooked diversion system;(2)15 Heliene 330 mono,Classic 150;(3)2X6 Hansol345mono, 2 stand alone Hotspot ACDC12C Minisplit heat pumps.(4)15 Hanwha Q cell 400 1/2 cell, Classic 200: (5)1X6 HanwhaQcell 400 1 Hotspot minisplit ACDC18C

RDK45

I'm using a Raspberry Pi B+ configured as a bridge to spy on internet traffic which is coming from one of my weather stations and going to a server on the web. 

This is very similar hardware setup to what I also have with my Magnum Energy inverter and associated web interface box.  However, unlike the weather station application, when I use TCPDUMP to view the traffic coming from the Magnum Energy web interface I do not seem to be able to capture any readable/understandable traffic.

You folks seem to have figured out a process for capturing and decoding this traffic.  I'm very interested in UNDERSTANDING how you have your Raspberry Pi's configured and where and how are you getting access to the data which is being send to the Magnum Energy website.

I have downloaded code from some of the above links, but there are a couple which are no longer active.

Thanks for any help/direction you might provide....RDK

Watt_

Quote from: cpfl on June 20, 2015, 05:42:56 PM
Paul,

I have the MS4448PAE inverter, BMK and ARC.

Output produced:-

MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

1 0x40
0x0 2 0x0
0x2 3 0x2
0x1 4 0x1
0x0 5 0x0
0x4 6 0x4
0x78 7 0x78
0x0 8 0x0
0x1 9 0x1
0x0 10 0x0
0x33 11 0x33
0x20 12 0x20
0x32 13 0x32
0x29 14 0x29
0x73 15 0x73
0x0 16 0x0
0x0 17 0x0
0x1 18 0x1
0x2 19 0x2
0x58 20 0x58
0x0 21 0x0
0xff 22 0xff
0x0 23 0x0
0x5 24 0x5
0x3c 25 0x3c
0x93 26 0x93
0x32 27 0x32
0x14 28 0x14
0x17 29 0x17
0x46 30 0x46
0x0 31 0x0
0xeb 32 0xeb
0x9b 33 0x9b
0x86 34 0x86
0x7 35 0x7
0x14 36 0x14
0x50 37 0x50
0x28 38 0x28
0x0 39 0x0
0x20 40 0x20
0xa 41 0xa
0x0 42 0x0
0xa3 43 0xa3
Decoding Packets Remote_Base, A3
0xff 1 0xff
0x40 2 0x40
0x0 3 0x0
0x2 4 0x2
0x1 5 0x1
0x0 6 0x0
0x4 7 0x4
0x78 8 0x78
0x0 9 0x0
0x1 10 0x1
0x0 11 0x0
0x33 12 0x33
0x20 13 0x20
0x32 14 0x32
0x29 15 0x29
0x73 16 0x73
0x0 17 0x0
0x0 18 0x0
0x1 19 0x1
0x2 20 0x2
0x58 21 0x58
0x0 22 0x0
0xff 23 0xff
0x0 24 0x0
0x5 25 0x5
0x3c 26 0x3c
0x93 27 0x93
0x32 28 0x32
0x14 29 0x14
0x17 30 0x17
0x46 31 0x46
0x0 32 0x0
0xeb 33 0xeb
0x9b 34 0x9b
0x86 35 0x86
0x7 36 0x7
0x14 37 0x14
0x3c 38 0x3c
0x3c 39 0x3c
0x0 40 0x0
0x0 41 0x0
0x0 42 0x0
0x0 43 0x0
Decoding Packets Remote_Base, Z0
0xa4 1 0xa4
0xff 2 0xff
0x81 3 0x81
0x5d 4 0x5d
0x14 5 0x14
0x11 6 0x11
0x0 7 0x0
0x0 8 0x0
0x12 9 0x12
0x7d 10 0x7d
0x18 11 0x18
0x3c 12 0x3c
0xff 13 0xff
0xe4 14 0xe4
0xff 15 0xff
0xff 16 0xff
0x0 17 0x0
0x47 18 0x47
0xa 19 0xa
0x1 20 0x1
0x40 21 0x40
0x0 22 0x0
0x2 23 0x2
0x1 24 0x1
0x0 25 0x0
0x4 26 0x4
0x78 27 0x78
0x0 28 0x0
0x1 29 0x1
0x0 30 0x0
0x33 31 0x33
0x20 32 0x20
0x32 33 0x32
0x29 34 0x29
0x73 35 0x73
0x0 36 0x0
0x0 37 0x0
0x1 38 0x1
0x2 39 0x2
0x58 40 0x58
0x0 41 0x0
0xff 42 0xff
0x0 43 0x0
0x5 44 0x5
0x3c 45 0x3c
0x93 46 0x93
0x32 47 0x32
0x14 48 0x14
0x17 49 0x17
0x46 50 0x46
0x0 51 0x0
0xeb 52 0xeb
0x9b 53 0x9b
0x86 54 0x86
0x7 55 0x7
0x14 56 0x14
0x0 57 0x0
0x0 58 0x0
0x0 59 0x0
0x0 60 0x0
0x28 61 0x28
0x0 62 0x0
0x80 63 0x80
0xff 64 0xff
0x40 65 0x40
0x0 66 0x0
0x2 67 0x2
0x1 68 0x1
0x0 69 0x0
0x4 70 0x4
0x78 71 0x78
0x0 72 0x0
0x1 73 0x1
0x0 74 0x0
0x33 75 0x33
0x20 76 0x20
0x32 77 0x32
0x29 78 0x29
0x73 79 0x73
0x0 80 0x0
0x0 81 0x0
0x1 82 0x1
0x2 83 0x2
0x58 84 0x58
0x0 85 0x0
0xff 86 0xff
0x0 87 0x0
0x5 88 0x5
0x3c 89 0x3c
0x93 90 0x93
0x32 91 0x32
0x14 92 0x14
0x17 93 0x17
0x46 94 0x46
0x0 95 0x0
0xeb 96 0xeb
0x9b 97 0x9b
0x86 98 0x86
0x7 99 0x7
0x14 100 0x14
0x0 101 0x0
0x0 102 0x0
0x0 103 0x0
0x0 104 0x0
0x0 105 0x0
0x0 106 0x0
0x0 107 0x0
0xff 108 0xff
0x40 109 0x40
0x0 110 0x0
0x2 111 0x2
0x1 112 0x1
0x0 113 0x0
0x4 114 0x4
0x78 115 0x78
0x0 116 0x0
0x1 117 0x1
0x0 118 0x0
0x33 119 0x33
0x20 120 0x20
0x32 121 0x32
0x29 122 0x29
0x73 123 0x73
0x0 124 0x0
0x0 125 0x0
0x1 126 0x1
0x2 127 0x2
0x58 128 0x58
Error: Failed to decode, please try again. Exiting

Chris.

Chris, I did a little hacking to Paul's code to get it to spit out some data. I was having similar troubles to yours.

I have 2 MS4448pae inverters in parallel, a router and bmk. I have an ags-n, just not connected at the moment. I also hsve the msg-web so I may try another option.

Also, I have added 2 more MS4448pae inverters but I have not finished the wiring....

  pi@pi3bplus:~ $ python MagPy.py -p /dev/ttyUSB0
MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

1 made it through here.
Decoding Packets Remote_Base, BMK80, BMK81
Error: Failed to decode, please try again. Exiting

Live Data
        Clock                     0.0:0.0
        Inverter Mode:            Invert
        Fault:                    No Faults

        Inverter Input Volts:     49.2 Vdc
        Inverter Input Amps:      12 Amps DC

        Inverter Output AC Volts: 120 Vac
        Inverter Output AC Amps:  4 Amps
        External Input AC Volts:  187 Vac
        External Input AC Amps:   0 Amps
        Inverter Line Frequency   60.0 Hz

        Temperature Battery       18 C
        Temperature Transformer   44 C
        Temperature FETs          33 C

        Generator Run Time        0.0 Hrs
        Generator Last Run        0 Days

Remote - ver(3.2)
        Status:                   Remote Command Clear

Router - ver(0)

BMK - ver(1.0)
        Fault Status:             No Faults
        Battery Volts DC:         49.24 Vdc
        Amps DC:                  13.9 Amps
        Battery Max:              56.26 Vdc
        Battery Min:              47.26 Vdc
        Battery Amp Hour Net      588 AmpHr
        Battery Amp Hour Trip     6553 AmpHr
        Battery Amp Hour Total    38400 AmpHr

AGS - ver(0.0)
        Status:                   NA
        Gen Start Mode:           Off
        Quiet Hours:              NA
                Quiet Time Start  0.0 Hrs
                Quiet Time Stop   0.0 Hrs

        Auto Start                NA
                Start Time        0.0 Hrs
                Stop Time         0.0 Hrs

        Start Delay               0.0 Sec
        Stop Delay                0.0 Sec
        Warm Up Time              0 Sec
        Cool Down Time            0 Sec
        SOC Start                 0 %
        SOC Stop                  0 %
        Amps Start                0 Amps
        Amps Stop                 0 Amps
                Amps Start Delay  0 Sec
                Amps Stop Delay   0 Sec

        Maximum Run Time          0.0 Hrs
        Top Off Time              0 Min
        Exercise Day Period       0 Days
        Exercise Start Time       0.0 Hrs
        Exercise Run Time         0 Hrs
        Start Temperature         0.0 F
        Start Volts               0.0 Vdc
        Stop Volts                0.0 Vdc

Inverter - ver(5.1)
        Inverter Model ID:        0x73
        System Buss Voltage:      48 Vdc
        Inverter Stack Mode:      Master in Parallel Stack
        Search Watts:             0 Watts
        Charger Amps:             100 %
        Shore AC Amps:            60 Amps
        Parallel Threshold:       60 %
        AC Volts Trip:            255 Vac

Battery Settings
        Battery Size, remote:     2180 AmpHr
        Battery Size, BMK:        1810 AmpHr
        Battery Type:             Custom
        Battery Efficiency:       0 %
        Float Volts:              54.4 Vdc
        Absorb Volts:             55.2 Vdc
        Equalise Volts:           55.2 Vdc
        Battery Low Trip:         42.0 Vdc
Error: Failed to read communications Port, exiting

Watt_

Quote from: cpfl on June 06, 2015, 10:09:59 PM
Hi Paul,

Attached is my code. It needs cleaning up, but is functional and can be modified to suit your needs.

I am currently using a secondary Pi dedicated to communicating with the inverter, which sends the data back to my primary Pi using HTML. The primary Pi opens the URL to the secondary Pi which executes the python code to collect the data on demand.

A problem that I had when first connecting the RS485 wires to the inverter was that the wires were the wrong way round. As soon as I swapped A and B, the data looked better. It definately sounds like your wires are crossed.

I put a two-way RJ11 splitter on the GREEN inverter port where the BMK is normally connected. Both the BMK and the Pi connectors are plugged into it.

Chris

Here is some data of in the works progress using some varied code of yours.

BMK,byte[0]0x81, byte[1]soc 67, byte[2,3]volts 49.2667, byte[4,5]amps -11.2, byte[6,7]minVolts 47.26, byte[8,9]maxVolts 56.26, Ah[10,11] -600, byte[12,13]ampHr 6553.5, byte[14,15]ampHc 38.4Kah, bmkVersion 1.0, fault 1

INV,64,0,49.4,9,121,180,1,0,5.1,64.4,111.2,89.6,115,1,0,3,60.0,0,

Watt_


Chris.


Chris, I added the AGS-N today and ran Paul's code that I hacked a little. I have a Magnum RC and I have an Magnum A-R, I thought about hooking up one of them to the
Router to see if I could get any extra data...  May do it just to see if Paul's code finds it....  Anyway, data from the AGS-N addition.


python MagPy.py -p /dev/ttyUSB0
MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

1 made it through here.
Decoding Packets Remote_Base, Z0
Decoding Packets Remote_Base, BMK80, BMK81
Decoding Packets Remote_Base, A0, A1
Decoding Packets Remote_Base, A1, A2
Error: Failed to decode, please try again. Exiting

Live Data
   Clock                     00:24
   Inverter Mode:            Invert
   Fault:                    No Faults

   Inverter Input Volts:     50.6 Vdc
   Inverter Input Amps:      16 Amps DC

   Inverter Output AC Volts: 119 Vac
   Inverter Output AC Amps:  6 Amps
   External Input AC Volts:  187 Vac
   External Input AC Amps:   0 Amps
   Inverter Line Frequency   60.0 Hz

   Temperature Battery       23 C
   Temperature Transformer   53 C
   Temperature FETs          36 C

   Generator Run Time        0.0 Hrs
   Generator Last Run        0 Days

Remote - ver(3.2)
   Status:                   Remote Command Clear

Router - ver(0)

BMK - ver(1.0)
   Fault Status:             No Faults
   Battery Volts DC:         50.47 Vdc
   Amps DC:                  16.9 Amps
   Battery Max:              56.4 Vdc
   Battery Min:              47.26 Vdc
   Battery Amp Hour Net      138 AmpHr
   Battery Amp Hour Trip     6553 AmpHr
   Battery Amp Hour Total    38800 AmpHr

AGS - ver(5.3)
   Status:                   Off
   Gen Start Mode:           Off
   Quiet Hours:              Off
      Quiet Time Start  0.0 Hrs
      Quiet Time Stop   0.0 Hrs

   Auto Start                Enabled
      Start Time        24.0 Hrs
      Stop Time         0.0 Hrs

   Start Delay               120 Sec
   Stop Delay                120 Sec
   Warm Up Time              0 Sec
   Cool Down Time            0 Sec
   SOC Start                 0 %
   SOC Stop                  0 %
   Amps Start                0 Amps
   Amps Stop                 0 Amps
      Amps Start Delay  0 Sec
      Amps Stop Delay   0 Sec

   Maximum Run Time          12.0 Hrs
   Top Off Time              0 Min
   Exercise Day Period       0 Days
   Exercise Start Time       0.0 Hrs
   Exercise Run Time         0 Hrs
   Start Temperature         0 F
   Start Volts               46.0 Vdc
   Stop Volts                57.6 Vdc

Inverter - ver(5.1)
   Inverter Model ID:        0x73
   System Buss Voltage:      48 Vdc
   Inverter Stack Mode:      Master in Parallel Stack
   Search Watts:             0 Watts
   Charger Amps:             100 %
   Shore AC Amps:            60 Amps
   Parallel Threshold:       60 %
   AC Volts Trip:            255 Vac

Battery Settings
   Battery Size, remote:     2180 AmpHr
   Battery Size, BMK:        1810 AmpHr
   Battery Type:             Custom
   Battery Efficiency:       0 %
   Float Volts:              54.4 Vdc
   Absorb Volts:             55.2 Vdc
   Equalise Volts:           55.2 Vdc
   Battery Low Trip:         42.0 Vdc
Error: Failed to read communications Port, exiting

Watt_

Quote from: cpfl on June 20, 2015, 05:42:56 PM
Paul,

I have the MS4448PAE inverter, BMK and ARC.

Output produced:-

MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

1 0x40
0x0 2 0x0
0x2 3 0x2
0x1 4 0x1
0x0 5 0x0
0x4 6 0x4
0x78 7 0x78
0x0 8 0x0
0x1 9 0x1
0x0 10 0x0
0x33 11 0x33
0x20 12 0x20
0x32 13 0x32
0x29 14 0x29
0x73 15 0x73
0x0 16 0x0
0x0 17 0x0
0x1 18 0x1
0x2 19 0x2
0x58 20 0x58
0x0 21 0x0
0xff 22 0xff
0x0 23 0x0
0x5 24 0x5
0x3c 25 0x3c
0x93 26 0x93
0x32 27 0x32
0x14 28 0x14
0x17 29 0x17
0x46 30 0x46
0x0 31 0x0
0xeb 32 0xeb
0x9b 33 0x9b
0x86 34 0x86
0x7 35 0x7
0x14 36 0x14
0x50 37 0x50
0x28 38 0x28
0x0 39 0x0
0x20 40 0x20
0xa 41 0xa
0x0 42 0x0
0xa3 43 0xa3
Decoding Packets Remote_Base, A3
0xff 1 0xff
0x40 2 0x40
0x0 3 0x0
0x2 4 0x2
0x1 5 0x1
0x0 6 0x0
0x4 7 0x4
0x78 8 0x78
0x0 9 0x0
0x1 10 0x1
0x0 11 0x0
0x33 12 0x33
0x20 13 0x20
0x32 14 0x32
0x29 15 0x29
0x73 16 0x73
0x0 17 0x0
0x0 18 0x0
0x1 19 0x1
0x2 20 0x2
0x58 21 0x58
0x0 22 0x0
0xff 23 0xff
0x0 24 0x0
0x5 25 0x5
0x3c 26 0x3c
0x93 27 0x93
0x32 28 0x32
0x14 29 0x14
0x17 30 0x17
0x46 31 0x46
0x0 32 0x0
0xeb 33 0xeb
0x9b 34 0x9b
0x86 35 0x86
0x7 36 0x7
0x14 37 0x14
0x3c 38 0x3c
0x3c 39 0x3c
0x0 40 0x0
0x0 41 0x0
0x0 42 0x0
0x0 43 0x0
Decoding Packets Remote_Base, Z0
0xa4 1 0xa4
0xff 2 0xff
0x81 3 0x81
0x5d 4 0x5d
0x14 5 0x14
0x11 6 0x11
0x0 7 0x0
0x0 8 0x0
0x12 9 0x12
0x7d 10 0x7d
0x18 11 0x18
0x3c 12 0x3c
0xff 13 0xff
0xe4 14 0xe4
0xff 15 0xff
0xff 16 0xff
0x0 17 0x0
0x47 18 0x47
0xa 19 0xa
0x1 20 0x1
0x40 21 0x40
0x0 22 0x0
0x2 23 0x2
0x1 24 0x1
0x0 25 0x0
0x4 26 0x4
0x78 27 0x78
0x0 28 0x0
0x1 29 0x1
0x0 30 0x0
0x33 31 0x33
0x20 32 0x20
0x32 33 0x32
0x29 34 0x29
0x73 35 0x73
0x0 36 0x0
0x0 37 0x0
0x1 38 0x1
0x2 39 0x2
0x58 40 0x58
0x0 41 0x0
0xff 42 0xff
0x0 43 0x0
0x5 44 0x5
0x3c 45 0x3c
0x93 46 0x93
0x32 47 0x32
0x14 48 0x14
0x17 49 0x17
0x46 50 0x46
0x0 51 0x0
0xeb 52 0xeb
0x9b 53 0x9b
0x86 54 0x86
0x7 55 0x7
0x14 56 0x14
0x0 57 0x0
0x0 58 0x0
0x0 59 0x0
0x0 60 0x0
0x28 61 0x28
0x0 62 0x0
0x80 63 0x80
0xff 64 0xff
0x40 65 0x40
0x0 66 0x0
0x2 67 0x2
0x1 68 0x1
0x0 69 0x0
0x4 70 0x4
0x78 71 0x78
0x0 72 0x0
0x1 73 0x1
0x0 74 0x0
0x33 75 0x33
0x20 76 0x20
0x32 77 0x32
0x29 78 0x29
0x73 79 0x73
0x0 80 0x0
0x0 81 0x0
0x1 82 0x1
0x2 83 0x2
0x58 84 0x58
0x0 85 0x0
0xff 86 0xff
0x0 87 0x0
0x5 88 0x5
0x3c 89 0x3c
0x93 90 0x93
0x32 91 0x32
0x14 92 0x14
0x17 93 0x17
0x46 94 0x46
0x0 95 0x0
0xeb 96 0xeb
0x9b 97 0x9b
0x86 98 0x86
0x7 99 0x7
0x14 100 0x14
0x0 101 0x0
0x0 102 0x0
0x0 103 0x0
0x0 104 0x0
0x0 105 0x0
0x0 106 0x0
0x0 107 0x0
0xff 108 0xff
0x40 109 0x40
0x0 110 0x0
0x2 111 0x2
0x1 112 0x1
0x0 113 0x0
0x4 114 0x4
0x78 115 0x78
0x0 116 0x0
0x1 117 0x1
0x0 118 0x0
0x33 119 0x33
0x20 120 0x20
0x32 121 0x32
0x29 122 0x29
0x73 123 0x73
0x0 124 0x0
0x0 125 0x0
0x1 126 0x1
0x2 127 0x2
0x58 128 0x58
Error: Failed to decode, please try again. Exiting

Chris.

Chris, I am working on a C program to read my systems devices and I'm trying to figure out what you and Paul may already know. Hope I am not bugging you.

python MagPy.py -p /dev/ttyUSB0
MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

(1, '0x40')
(2, '0x0')
(3, '0x1')
(4, '0xf8')
(5, '0x0')
(6, '0x13')
(7, '0x79')
(8, '0xb4')
(9, '0x1')
(10, '0x0')
(11, '0x33')
(12, '0x17')
(13, '0x35')
(14, '0x24')
(15, '0x73')
(16, '0x1')
(17, '0x0')
(18, '0x7')
(19, '0x2')
(20, '0x58')
(21, '0x0')
(22, '0xff')
(23, '0x0')
(24, '0x0')
(25, '0xda')
(26, '0x8a')
(27, '0x64')
(28, '0x3c')
(29, '0x20')
(30, '0x6')
(31, '0x0')
(32, '0xd2')
(33, '0xff')
(34, '0x88')
(35, '0x0')
(36, '0x14')
(37, '0x0')
(38, '0x31')
(39, '0x0')
(40, '0x0')
(41, '0xb5')
(42, '0x0')
(43, '0x80')
(44, '0x81')
(45, '0x5c')
(46, '0x13')
(47, '0xaa')
(48, '0xff')
(49, '0x22')
(50, '0x12')
(51, '0x76')
(52, '0x16')
(53, '0x8')
(54, '0xff')
(55, '0x6d')
(56, '0xff')
(57, '0xff')
(58, '0x1')
(59, '0x84')
(60, '0xa')
(61, '0x1')
Decoding Packets Remote_Base, BMK80, BMK81
(1, '0x40')
(2, '0x0')
(3, '0x1')
(4, '0xf8')
(5, '0x0')
(6, '0x13')
(7, '0x79')
(8, '0xb4')
(9, '0x1')
(10, '0x0')
(11, '0x33')
(12, '0x17')
(13, '0x35')
(14, '0x24')
(15, '0x73')
(16, '0x1')
(17, '0x0')
(18, '0x7')
(19, '0x2')
(20, '0x58')
(21, '0x0')
(22, '0xff')
(23, '0x0')
(24, '0x0')
(25, '0xda')
(26, '0x8a')
(27, '0x64')
(28, '0x3c')
(29, '0x20')
(30, '0x6')
(31, '0x0')
(32, '0xd2')
(33, '0xff')
(34, '0x88')
(35, '0x0')
(36, '0x14')
(37, '0x0')
(38, '0x31')
(39, '0x14')
(40, '0x0')
(41, '0x73')
(42, '0x0')
(43, '0xa0')
(44, '0xa1')
(45, '0x1')
(46, '0x35')
(47, '0x4b')
(48, '0x0')
(49, '0x7d')
Decoding Packets Remote_Base, A0, A1
(1, '0x40')
(2, '0x0')
(3, '0x1')
(4, '0xf8')
(5, '0x0')
(6, '0x12')
(7, '0x78')
(8, '0xae')
(9, '0x1')
(10, '0x0')
(11, '0x33')
(12, '0x17')
(13, '0x35')
(14, '0x24')
(15, '0x73')
(16, '0x1')
(17, '0x0')
(18, '0x7')
(19, '0x2')
(20, '0x58')
(21, '0x0')
(22, '0xff')
(23, '0x0')
(24, '0x0')
(25, '0xda')
(26, '0x8a')
(27, '0x64')
(28, '0x3c')
(29, '0x20')
(30, '0x6')
(31, '0x0')
(32, '0xd2')
(33, '0xff')
(34, '0x88')
(35, '0x0')
(36, '0x14')
(37, '0x60')
(38, '0x0')
(39, '0x90')
(40, '0x78')
(41, '0x78')
(42, '0x78')
(43, '0xa1')
(44, '0xa2')
(45, '0x0')
(46, '0x0')
(47, '0x0')
(48, '0x0')
(49, '0x0')
Decoding Packets Remote_Base, A1, A2
(1, '0x40')
(2, '0x0')
(3, '0x1')
(4, '0xf8')
(5, '0x0')
(6, '0x12')
(7, '0x78')
(8, '0xae')
(9, '0x1')
(10, '0x0')
(11, '0x33')
(12, '0x17')
(13, '0x35')
(14, '0x24')
(15, '0x73')
(16, '0x1')
(17, '0x0')
(18, '0x7')
(19, '0x2')
(20, '0x58')
(21, '0x0')
(22, '0xff')
(23, '0x0')
(24, '0x0')
(25, '0xda')
(26, '0x8a')
(27, '0x64')
(28, '0x3c')
(29, '0x20')
(30, '0x6')
(31, '0x0')
(32, '0xd2')
(33, '0xff')
(34, '0x88')
(35, '0x0')
(36, '0x14')
(37, '0x0')
(38, '0x5a')
(39, '0x0')
(40, '0x78')
(41, '0x4')
(42, '0x78')
(43, '0xa2')
(44, '0xa1')
(45, '0x1')
(46, '0x35')
(47, '0x4b')
(48, '0x0')
(49, '0x7d')
(50, '0x40')
(51, '0x0')
(52, '0x1')
(53, '0xf8')
(54, '0x0')
(55, '0x13')
(56, '0x78')
(57, '0xae')
(58, '0x1')
(59, '0x0')
(60, '0x33')
(61, '0x17')
(62, '0x35')
(63, '0x24')
(64, '0x73')
(65, '0x1')
(66, '0x0')
(67, '0x7')
(68, '0x2')
(69, '0x58')
(70, '0x0')
(71, '0xff')
(72, '0x0')
(73, '0x0')
(74, '0xda')
(75, '0x8a')
(76, '0x64')
(77, '0x3c')
(78, '0x20')
(79, '0x6')
(80, '0x0')
(81, '0xd2')
(82, '0xff')
(83, '0x88')
(84, '0x0')
(85, '0x14')
(86, '0x60')
(87, '0x28')
(88, '0x0')
(89, '0x20')
(90, '0xa')
(91, '0x0')
(92, '0xa3')
(93, '0x91')
(94, '0x20')
(95, '0x40')
(96, '0x0')
(97, '0x1')
(98, '0xf8')
(99, '0x0')
(100, '0x12')
(101, '0x78')
(102, '0xae')
(103, '0x1')
(104, '0x0')
(105, '0x33')
(106, '0x17')
(107, '0x35')
(108, '0x24')
(109, '0x73')
(110, '0x1')
(111, '0x0')
(112, '0x7')
(113, '0x2')
(114, '0x58')
(115, '0x0')
(116, '0xff')
(117, '0x0')
(118, '0x0')
(119, '0xda')
(120, '0x8a')
(121, '0x64')
(122, '0x3c')
(123, '0x20')
(124, '0x6')
(125, '0x0')
(126, '0xd2')
(127, '0xff')
(128, '0x88')
Error: Failed to decode, please try again. Exiting

Watt_

Chris or Paul

Did a little more work and was able to read all the packets on the network. I haven't decoded all of them or completely confirmed the packets are individual but, the code reads very reliably and reports data very quickly now without fail, so far.

I have these devices connected
2 inverters
1 Router
1 AGS-N
1 BMK
1 Mag-WEB

Here is what it looks like now.

python MagPy.py -p /dev/ttyUSB0
MagPy Magnum Energy MagnaSine Data Protocol Decoder

Debug level : 0
serial port : /dev/ttyUSB0

(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x79')
(0.031391143798828125, 8, '0xbb')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x14')
(0.031391143798828125, 38, '0x87')
(0.031391143798828125, 39, '0x0')
(0.031391143798828125, 40, '0x0')
(0.031391143798828125, 41, '0x0')
(0.031391143798828125, 42, '0x0')
(0.031391143798828125, 43, '0x11')
Decoding Packets Remote_Base, Z0
(0.031391143798828125, 1, '0x91')
(0.031391143798828125, 2, '0x20')
Possibly Router
(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x77')
(0.031391143798828125, 8, '0xbc')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x0')
(0.031391143798828125, 38, '0x0')
(0.031391143798828125, 39, '0x0')
(0.031391143798828125, 40, '0x0')
(0.031391143798828125, 41, '0x0')
(0.031391143798828125, 42, '0x0')
(0.031391143798828125, 43, '0x0')
Decoding Packets Remote_Base, Z0
(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x77')
(0.031391143798828125, 8, '0xbc')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x4')
(0.031391143798828125, 38, '0x1e')
(0.031391143798828125, 39, '0x0')
(0.031391143798828125, 40, '0x0')
(0.031391143798828125, 41, '0xb5')
(0.031391143798828125, 42, '0x0')
(0.031391143798828125, 43, '0x80')
(0.031391143798828125, 44, '0x81')
(0.031391143798828125, 45, '0x57')
(0.031391143798828125, 46, '0x13')
(0.031391143798828125, 47, '0x9a')
(0.031391143798828125, 48, '0xff')
(0.031391143798828125, 49, '0x7e')
(0.031391143798828125, 50, '0x12')
(0.031391143798828125, 51, '0x76')
(0.031391143798828125, 52, '0x16')
(0.031391143798828125, 53, '0x8')
(0.031391143798828125, 54, '0xff')
(0.031391143798828125, 55, '0x16')
(0.031391143798828125, 56, '0xff')
(0.031391143798828125, 57, '0xff')
(0.031391143798828125, 58, '0x1')
(0.031391143798828125, 59, '0x85')
(0.031391143798828125, 60, '0xa')
(0.031391143798828125, 61, '0x1')
Decoding Packets Remote_Base, BMK80, BMK81
(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x77')
(0.031391143798828125, 8, '0xbc')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x4')
(0.031391143798828125, 38, '0x1e')
(0.031391143798828125, 39, '0x14')
(0.031391143798828125, 40, '0x0')
(0.031391143798828125, 41, '0x73')
(0.031391143798828125, 42, '0x0')
(0.031391143798828125, 43, '0xa0')
(0.031391143798828125, 44, '0xa1')
(0.031391143798828125, 45, '0x1')
(0.031391143798828125, 46, '0x35')
(0.031391143798828125, 47, '0x4b')
(0.031391143798828125, 48, '0x0')
(0.031391143798828125, 49, '0x7c')
Decoding Packets Remote_Base, A0, A1
(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x77')
(0.031391143798828125, 8, '0xbc')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x60')
(0.031391143798828125, 38, '0x0')
(0.031391143798828125, 39, '0x90')
(0.031391143798828125, 40, '0x78')
(0.031391143798828125, 41, '0x78')
(0.031391143798828125, 42, '0x78')
(0.031391143798828125, 43, '0xa1')
(0.031391143798828125, 44, '0xa2')
(0.031391143798828125, 45, '0x0')
(0.031391143798828125, 46, '0x0')
(0.031391143798828125, 47, '0x0')
(0.031391143798828125, 48, '0x0')
(0.031391143798828125, 49, '0x0')
Decoding Packets Remote_Base, A1, A2
(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x77')
(0.031391143798828125, 8, '0xbc')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x0')
(0.031391143798828125, 38, '0x5a')
(0.031391143798828125, 39, '0x0')
(0.031391143798828125, 40, '0x78')
(0.031391143798828125, 41, '0x4')
(0.031391143798828125, 42, '0x78')
(0.031391143798828125, 43, '0xa2')
(0.031391143798828125, 44, '0xa1')
(0.031391143798828125, 45, '0x1')
(0.031391143798828125, 46, '0x35')
(0.031391143798828125, 47, '0x4b')
(0.031391143798828125, 48, '0x0')
(0.031391143798828125, 49, '0x7c')
Not sure what this packet is
(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x77')
(0.031391143798828125, 8, '0xbc')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x60')
(0.031391143798828125, 38, '0x28')
(0.031391143798828125, 39, '0x0')
(0.031391143798828125, 40, '0x20')
(0.031391143798828125, 41, '0xa')
(0.031391143798828125, 42, '0x0')
(0.031391143798828125, 43, '0xa3')
Decoding Packets Remote_Base, A3
(0.031391143798828125, 1, '0x91')
(0.031391143798828125, 2, '0x20')
Possibly Router
(0.031391143798828125, 1, '0x40')
(0.031391143798828125, 2, '0x0')
(0.031391143798828125, 3, '0x1')
(0.031391143798828125, 4, '0xf8')
(0.031391143798828125, 5, '0x0')
(0.031391143798828125, 6, '0xc')
(0.031391143798828125, 7, '0x77')
(0.031391143798828125, 8, '0xbc')
(0.031391143798828125, 9, '0x1')
(0.031391143798828125, 10, '0x0')
(0.031391143798828125, 11, '0x33')
(0.031391143798828125, 12, '0x17')
(0.031391143798828125, 13, '0x39')
(0.031391143798828125, 14, '0x26')
(0.031391143798828125, 15, '0x73')
(0.031391143798828125, 16, '0x1')
(0.031391143798828125, 17, '0x0')
(0.031391143798828125, 18, '0x4')
(0.031391143798828125, 19, '0x2')
(0.031391143798828125, 20, '0x58')
(0.031391143798828125, 21, '0x0')
(0.031391143798828125, 22, '0xff')
(0.031391143798828125, 23, '0x0')
(0.031391143798828125, 24, '0x0')
(0.031391143798828125, 25, '0xda')
(0.031391143798828125, 26, '0x8a')
(0.031391143798828125, 27, '0x64')
(0.031391143798828125, 28, '0x3c')
(0.031391143798828125, 29, '0x20')
(0.031391143798828125, 30, '0x6')
(0.031391143798828125, 31, '0x0')
(0.031391143798828125, 32, '0xd2')
(0.031391143798828125, 33, '0xff')
(0.031391143798828125, 34, '0x88')
(0.031391143798828125, 35, '0x0')
(0.031391143798828125, 36, '0x14')
(0.031391143798828125, 37, '0x3c')
(0.031391143798828125, 38, '0x3c')
(0.031391143798828125, 39, '0x0')
(0.031391143798828125, 40, '0x20')
(0.031391143798828125, 41, '0x0')
(0.031391143798828125, 42, '0x0')
(0.031391143798828125, 43, '0xa4')
Decoding Packets Remote_Base, A4

Live Data
   Clock                     04:30
   Inverter Mode:            Invert
   Fault:                    No Faults

   Inverter Input Volts:     50.4 Vdc
   Inverter Input Amps:      12 Amps DC

   Inverter Output AC Volts: 119 Vac
   Inverter Output AC Amps:  4 Amps
   External Input AC Volts:  188 Vac
   External Input AC Amps:   0 Amps
   Inverter Line Frequency   60.0 Hz

   Temperature Battery       23 C
   Temperature Transformer   57 C
   Temperature FETs          38 C

   Generator Run Time        0.0 Hrs
   Generator Last Run        1 Days

Remote - ver(3.2)
   Status:                   Remote Command Clear

Router - ver(0)

BMK - ver(1.0)
   Fault Status:             No Faults
   Battery Volts DC:         50.18 Vdc
   Amps DC:                  12.9 Amps
   Battery Max:              56.4 Vdc
   Battery Min:              47.26 Vdc
   Battery Amp Hour Net      233 AmpHr
   Battery Amp Hour Trip     6553 AmpHr
   Battery Amp Hour Total    38900 AmpHr

AGS - ver(5.3)
   Status:                   Off
   Gen Start Mode:           Off
   Quiet Hours:              Off
      Quiet Time Start  24.0 Hrs
      Quiet Time Stop   10.0 Hrs

   Auto Start                Enabled
      Start Time        0.0 Hrs
      Stop Time         22.5 Hrs

   Start Delay               120 Sec
   Stop Delay                4 Sec
   Warm Up Time              60 Sec
   Cool Down Time            60 Sec
   SOC Start                 0 %
   SOC Stop                  0 %
   Amps Start                0 Amps
   Amps Stop                 0 Amps
      Amps Start Delay  0 Sec
      Amps Stop Delay   0 Sec

   Maximum Run Time          12.0 Hrs
   Top Off Time              0 Min
   Exercise Day Period       0 Days
   Exercise Start Time       8.0 Hrs
   Exercise Run Time         1 Hrs
   Start Temperature         0 F
   Start Volts               46.0 Vdc
   Stop Volts                0.0 Vdc

Inverter - ver(5.1)
   Inverter Model ID:        0x73
   System Buss Voltage:      48 Vdc
   Inverter Stack Mode:      Master in Parallel Stack
   Search Watts:             0 Watts
   Charger Amps:             100 %
   Shore AC Amps:            60 Amps
   Parallel Threshold:       60 %
   AC Volts Trip:            255 Vac

Battery Settings
   Battery Size, remote:     2180 AmpHr
   Battery Size, BMK:        1810 AmpHr
   Battery Type:             Custom
   Battery Efficiency:       0 %
   Float Volts:              54.4 Vdc
   Absorb Volts:             55.2 Vdc
   Equalise Volts:           55.2 Vdc
   Battery Low Trip:         42.0 Vdc