Monitor Fronius Primo 5

Hi, Gret that now is working.
One question, I also have a smart meter and I’m trying to obtain total consumption but from smart meter I only receive + o -, depending if consumption is from solar or from grid, do you know here to obtain total consumption?

Thanks

Missatge de Anthony Vassallo [email protected] del dia dl., 31 de des. 2018 a les 9:58:

If you are asking how to access the Fronius smart meter you have to use its unit ID which is 240. This is used by pyModbusTCP.client import ModbusClient in a different script.
Then you poll the register(s) you want. There are at least 2 - total imported and total exported.
I have used this in the past but need to go back and find my script if you need it.

Hi,

Thanks with ID240 and nUnit=240 I can obtian smart meter values, my problema is that I need to obtain total consumption grid + solar but I can’t find any value from modbus… any suggestion how to obtain this value from modbus?

Thanks

Missatge de Anthony Vassallo [email protected] del dia dl., 31 de des. 2018 a les 10:55:

Wouldn’t it just be import + generation - export?

How can I configure this to be calculated and showed as graph?

Thanks

El dl., 31 de des. 2018, 11:22, Anthony Vassallo [email protected] va escriure:

If you have these values as inputs, then I think it should be easy to use the process list. This isn’t something I have done, but looking at this post might give you a start: heatpump

I have tried from postprocess but only I can make +, I can’t find where I can use - in postprocess. You screenshot is from inputs and I don’t know how to integrate postprocess and inputs in this siutations…
Sorry but I’m new with this situation

Thanks

Missatge de Anthony Vassallo [email protected] del dia dl., 31 de des. 2018 a les 12:13:

Hi,

I think I have calculated as you suggested but result is not consumption, what is wrong?

Thanks

Missatge de klxout [email protected] del dia dl., 31 de des. 2018 a les 12:31:

The values you are using are already in kWh - why are you adding Power to kWh?

I think that this values are wh no kwh.

I removed but results are the same, any suggestion?

Missatge de klxout [email protected] del dia dl., 31 de des. 2018 a les 13:01:

@icenov : It seems you are using an old version of the interfacer, not working with recent version of pymodbus…you should update with the last version of EmonHub
The configuration of the interfacer is simplified - cf klxout link

Moreover you are having 11 units and 10 datacodes

AFAIK it is the latest version - pulled from github following @TrystanLea Emonbase started hanging randomly - #7 by icenov
this from my emonhub a few minutes ago:

fc60e98180cf14e36203ae68c54e296114638fc2
pi@emonpi:~/emonhub $ git status
On branch emon-pi
Your branch is up-to-date with 'origin/emon-pi'.
nothing to commit, working tree clean
pi@emonpi:~/emonhub $ git pull origin emon-pi
From https://github.com/openenergymonitor/emonhub
 * branch            emon-pi    -> FETCH_HEAD
Already up-to-date.
pi@emonpi:~/emonhub $ 

Thanks for pointing out excess units - I’ve removed one.

Ok fine
Have you simplified the interfacer section in emonhub.conf ? You dont need anymore nReg, rType,rName in the interfacer section…

[[ModbusTCP]]
Type = EmonModbusTcpInterfacer
[[[init_settings]]]
    modbus_IP = 10.0.0.9   # ip address of client to retrieve data from
    modbus_port = 502          # Portclient listens on
[[[runtimesettings]]]
    # List of starting registers for items listed above
          register = 40070,40071,40072,40092,40094,40096,40098,40100,40102,40108
    # nodeid used to match with node definition in nodes section below. Can be set to any integer value not previously used.
          nodeId = 30
    # Channel to publish data to should leave as ToEmonCMS
          pubchannels = ToEmonCMS,
    # time in seconds between checks, This is in addition to emonhub_interfacer.run() sleep time of .01
    # use this value to set the frequency of data retrieval from modbus client
          interval = 10

by the way, you have to give the registers values +1 when yu declare them in the interfacer section of emonhub.conf, but maybe it is not needed with the Fronius (This I dont know)

what do yu have in the emonhub log ?

please note that if you want to access to different slave id, you have to declare this in the interfacer section…if your device id is 1, it is OK yu dont have to do anything but if your device id is different, you have to specifiy it…for example :

nUnit = 1,1,1,1,1,1,1,1,1,2

in this version if yu want to access to id 2 with ten registers your have to do

nUnit = 2,2,2,2,2,2,2,2,2,2

Alex

Thanks @alexandrecuer - OK, some things being logged now! I went to check the logs but found it stopped logging yesterday as it was full. Cleared that out then checked new log to find message that no pymodbus installed (I used pip install without sudo first time) Now it is sending through data.

For others that might come across this topic later, I didn’t have to add a +1 to each register. In my python scripts I normally have to subtract a 1, which I think is because python starts arrays at 0. But I just used the actual register values in the interfacer (eg register 40070 is the inverter ID, which is 111 for my model (2xMPPT).

Some of the values need division by 100, but I should be able to sort that out easily.
Many thanks!
BTW I have a python script to probe the Fronius Primo inverter if anyone needs it.

Now to work on the Fronius smart meter which logs consumption etc. But its ID is 240, so will have to try your nUnit like 240,240,240,240…

Hi All, has anyone had any success with the Fronius smart meter and emonhub? I have my inverter (fronius primo 5) reading correctly but it would be great to read the smart meter also.
Thanks!

What is yout problem?

Missatge de Mike Christiansen via Community [email protected] del dia dl., 4 de març 2019 a les 21:34:

I just wondered if anyone was doing this and if they were wanting to share their configuration files. Reading this Allow reading Modbus TCP holding registers from multiple units by btm · Pull Request #44 · openenergymonitor/emonhub · GitHub looks to be doable adding something like “nUnit = 1,1,2,2” referencing the device id and register the data sits in.

Hi All,

Im still working on finding the correct registers for my fronius primo 5kw and single phase smart meter (rs485)

My interfaces config is below

Any one have any idea on which registers to use to access the production (Watts) of MPPT1 and MPPT2 ? I can get voltage but not current or watts. Also it would be nice to monitor the inverter temperature but the entry I have below gives a not changing value.

[[ModbusTCP]]
#this interfacer retrieves register information from modbusTCP clients
#retrieve register information from modbus TCP documentation for your inverter.
      Type = EmonModbusTcpInterfacer
     #Type = EmonFroniusModbusTcpInterfacer
    [[[init_settings]]]
	    modbus_IP = 192.168.80.107   # ip address of client to retrieve data from
	    modbus_port = 502          # Portclient listens on
    [[[runtimesettings]]]
        #List of starting registers for items listed above
	      register = 40118,40092,40102,502,40114,40305,40284,40304,40138,40130,40098
              nUnit = 1,1,1,1,1,1,1,1,240,240,240
       #names=Inverter_status,AC_power_watts,AC_LifetimekWh,DayWh,Temp,mppt2,Vmppt1,Vmppt2,MeterTotWhImp,MeterTotWhExp,MeterWats
        #nodeid used to match with node definition in nodes section below. Can be set to any integer value not previously used.
	      nodeId = 12
        #Channel to publish data to should leave as ToEmonCMS
             pubchannels = ToEmonCMS,
        #time in seconds between checks, This is in addition to emonhub_interfacer.run() sleep time of .01
        #use this value to set the frequency of data retrieval from modbus client
        interval = 15

Hi,

An example that is wokring with 9.9.5

[hub]

### loglevel must be one of DEBUG, INFO, WARNING, ERROR, and CRITICAL

#loglevel = DEBUG

loglevel = WARNING

### Uncomment this to also send to syslog

# use_syslog = yes

[interfacers]

### This interfacer manages the RFM12Pi/RFM69Pi/emonPi module

[[ModbusTCP]]

# this interfacer retrieves register information from modbusTCP clients

# retrieve register information from modbus TCP documentation for your inverter.

Type = EmonModbusTcpInterfacer

[[[init_settings]]]

modbus_IP = 192.169.11.1   # ip address of client to retrieve data from

modbus_port = 502          # Portclient listens on

[[[runtimesettings]]]

# List of starting registers for items listed above

register = 40118,40092,40102,502,506,510,40098,40130,40138,40080,40100,40102

# nodeid used to match with node definition in nodes section below. Can be set to any integer value not previously used.

nodeId = 12

#1 inverter 240 smart meter

nUnit = 1,1,1,1,1,1,240,240,240,240,240,240

# Channel to publish data to should leave as ToEmonCMS

pubchannels = ToEmonCMS,

# time in seconds between checks, This is in addition to emonhub_interfacer.run() sleep time of .01

# use this value to set the frequency of data retrieval from modbus client

interval = 10

Missatge de klxout [email protected] del dia dg., 10 de març 2019 a les 21:09: