Energy metering with PRO380-Mod
After finishing the most basic home automation setup of my Neuron L203 driven by Evok & Node-red, I'm planning to add energy metering capabilities in order to synchronize the consumption of electric heaters around. To measure consuption I was considering to add a PRO380-Mode to my setup but not sure how could I add to my system. Is there any doc available how should it be done? On the product page, there is no information, the link points to a deal link. Thanks,
there are basically two ways of achieving that. Both of them require connecting the Inepro energy meter via RS485. The difference is in who will be responsible for polling the Modbus data from the device.
The Evok way
Evok can be configured in a way, that it will poll general Modbus devices. See https://github.com/UniPiTechnology/evok/blob/master/etc/hw_definitions/CUSTOM MODBUS DEVICE.yaml
The updated data are available via standard Evok API.
The Node-RED way
You can poll the Modbus device in Node-RED directly via node-red-contrib-modbus https://www.npmjs.com/package/node-red-contrib-modbus
Personally, I would suggest you the option 2, since configuration in Evok is not easy. For configuration you need a Modbus registers map for the given device, that can be found in the documentation from the vendor. Please note, that there are several HW and SW revisions for the device and you need to use the correct documentation. The latest one is here: https://ineprometering.com/wp-content/uploads/2019/04/PRO380-user-manual-V2.18v6.pdf and the Modbus registers map starts from page 27.
I am trying to read from PRO1-Mob and I have no Idea what I am doing wrong.
First question I havn't found for what is the on off switch at the RS485 Port on Neuron S103?
I have set over the EVOK the Serialport to the right 9600bps baud rate. I also found that the Neutron has an TCP Modbus Server and connected the node-red-contrib-modbus Modbus getter to the Local Server.
I set the PRO1 to ID 5 and tried to read but I get always the same error Error: Modbus exception 4: Slave device failure (device reports internal error)"
Can you tell me what I am doing wrong, I have tried to find the right solution over 3 Days but I can't find anything
- The DIP switch marked as RS485-END enables a 120ohm termination resistor between the RS485A and RS485B.
- The ModbusTCP server running on the PLC is for accessing local IOs, not for accessing anything else over RS485
- The RS485 are available as standard devices /dev/ttyNS0, /dev/ttyNS1 and /dev/ttyNS2. To access any serial device over this line, you need to use ModbusRTU getter in Node-RED. Alternatively, you could define ModbusRTU device in the Evok directly, but that's quite complicated. Try the Node-RED way first.