IotaWatt being monitored by PLC via Modbus TCP over WiFi?

How hard would it be to add Modbus TCP communications over the WiFi so that a remote PLC (AutomationDirect Productivity 3000 in this case) can request amperage values?

I looked into getting the PLC to request values via web ( [http://iotawatt.local/query?select=[time.iso,Input_1.amps,Input_2.amps,...,Input_10.amps]&begin=s-5s&end=s&group=5s&format=csv&header=yes] ) like a web browser would do but the PLC does not have this type of functionality.

The communications options of the PLC are fairly limited and Modbus TCP is the only viable path forward that I could find.

I have played around with Arduino IDE a little, but PlatformIO is completely new to me. I am still trying to wrap my mind around it.

I think you would need an intermediary device to bridge the technological divide.

Having worked with plenty of PLC integration, straight forward.
Setup a modbus server on a Pi or some other piece of hardware and define which registers are going to be what values. Remember you can use multiple registers if you need more than 16bits to store values.
Have a thread on a timer poll the iotawatt for whatever values you need and then update the registers inside the modbus server. Do this as minimally as possible for what you need; You don’t want to bog down the iotawatt with requests while its trying to sample data. Then just have your PLC poll your setup modbus server.

Don’t forget to sanitize, sanity check and otherwise make sure your PLC and whatever depends on it isn’t going to self destruct, kill anyone or otherwise cause a liability when a user misconfiguration on the iotawatt suddenly starts reporting unexpected values or either the iotawatt or the modbus server stops functioning.

Thanks for the input. I will work on that.

Any success with this, @tasrock? I’m an Ignition developer and am running an Ignition Maker gateway for home use. I’d love to get this connected to Ignition for historization and integration with my home HMI.

This is a very late reply to this thread, but I am interested as well. I have found that pymodbus is out there and fully supports the protocol. I am just digging in and it doesn’t seem quite as straightforward as I would like. If I make progress, I’ll be happy to share. Getting info out of the iotawatt doesn’t seem to hard at least.