https://github.com/linuxkidd/magnum2mqtt
Monitor Magnum Energy inverters and publish data to MQTT
https://github.com/linuxkidd/magnum2mqtt
Last synced: about 1 month ago
JSON representation
Monitor Magnum Energy inverters and publish data to MQTT
- Host: GitHub
- URL: https://github.com/linuxkidd/magnum2mqtt
- Owner: linuxkidd
- License: gpl-3.0
- Created: 2021-04-29T22:28:12.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-25T03:24:45.000Z (over 3 years ago)
- Last Synced: 2025-03-29T11:11:21.647Z (about 2 months ago)
- Language: Python
- Size: 40 KB
- Stars: 6
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Magnum 2 MQTT
A tool for monitoring a Magnum inverter using Python3 and a RS-485 to serial converter, then publishing that data to an MQTT broker.### Credits
Prior work in this arena from:
* Chris (aka user cpfl) Midnightsolar forum.
* Paul Alting van Geusau
* [Liam O'Brien](https://github.com/finderman2/MagnasineMagPy)### Backstory
Code from earlier versions of the repostiory based heavily on work by Liam O'Brien and others noted above.This version is a complete rewrite:
* Now uses a protocol definition file and interpreter model.
* Changed the Serial data collection to provide better synchronization to the on-the-wire protocol
* Moved the Serial collection a separate thread.
* Added better 'junk' packet rejection.### Known issues
* For the PT-100, the documented `mode` and `regulation` ( Accessory segment `0xC1`, byte 2 ) does not follow observed data.
* ACLD Remote packet ( remote `0xD0` ) is not documented in the spec PDF file I have, thus not provided for in the spec file.### Usage
* Copy files from `/etc` and `/usr` to system with an RS-485 serial converter.
* Reload the systemd daemon:
~~~
# systemctl daemon-reload
~~~
* Modify options in `/etc/default/magpi` for MQTT broker and rentention based on command line options:
~~~
# ./magpi.v3.py --help
usage: magpi.v3.py [-h] [-b BROKER] [-d {0,1,2}] [-i INTERVAL] [-p PORT] [-r]
[-s SPECFILE] [-t TOPIC]
optional arguments:
-h, --help show this help message and exit
-b BROKER, --broker BROKER
MQTT Broker to publish to
-d {0,1,2}, --debug {0,1,2}
debug data
-i INTERVAL, --interval INTERVAL
MQTT update interval ( default 1 second )
-p PORT, --port PORT commuications port descriptor, e.g /dev/ttyUSB0 or
COM1
-r, --retain MQTT Retain?
-s SPECFILE, --specfile SPECFILE
Magnum Protocol Spec File
-t TOPIC, --topic TOPIC
MQTT topic prefix
~~~
* Enable & Start the service, specifying the proper RS-485 serial device ( e.g. `ttyUSB0` )
~~~
# systemctl enable --now magpi@ttyUSB0
~~~### Inverter Remote / Network port pinout:
Holding a 6 Pin RJ-11 connector with the tab facing away from you, cable dropping out of that connector toward you, here is the pin-out from left to right:
* 1 = NC
* 2 = (A+ 0-5V)
* 3 = (GND)
* 4 = NC
* 5 = (B- 7-12V)
* 6 = (14V w/respect to 3 as GND)NOTE: Magnum cautions that Pin 6 voltage should NOT be used to power any accessories.