Monitor Fronius Primo 5

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:

Thanks Klxout,

Looks great. Can you include your node12 config for the names of the register values. Specifically I am unsure on the values 506 and 510.

Thanks a lot for your help! Ive spent hours trawling through data sheets and can’t find registers that work anywhere!

[[12]]

nodename = fronius

[[[rx]]]

# list of names of items being retrieved

# This example retrieves the Inverter status, AC power in watts being produced, AC Lifetime KWh produced,

# KWh produced for current day,....

names = Inverter_status,AC_power_watts,AC_LifetimekWh,DayWh,YearWh,TotalWh,sm_Power_watts,sm_TotWhExp,sm_TotWhImp,sm_PhV,sm_WphA,consum

datacodes = H,f,f,Q,Q,Q,f,f,f,f,f,f

scales = 1,0.1,0.1,1,1,1,0.1,0.1,0.1,0.1,0.1,0.1

units = V,W,kWh,Wh,Wh,Wh,W,Wh,Wh,V,W,W

Missatge de Mike Christiansen via Community [email protected] del dia dl., 11 de març 2019 a les 8:39:

[Formated by pb66 - Please wrap code clips inbetween three backticks (```) in the line before and the line after for better readability)

Thanks Klxout,

I am still looking for the data locations of MPPT1 and MPPT2 production. I have 2 seperate arrays (split 45 degrees from north) and would find it interesting to see over a year which array makes more power.
Thanks.

@MikeC
Mike
I also have 2 arrays on my Primo 8, and have accessed both MPPTs through the inverter not the smart meter. I use registers 40285 and 40305, with scale factor from 40268. I’m not doing this through emonbase, but through a dedicated python script. I’ve not had a chance to include these into my emonbase yet (but have done Watts (DC & AC) and frequency). I’ll see if I can add them to the modbus TCP script.
I have noticed that there are frequent spurious readings, as you can see in the image below, not due to cloud cover. I am also export limited, so the inverter needs to cut output when total export exceeds 3kW. This may be why one string has a much greater variation in output than the other.

@MikeC
Mike
I just added the 2 MPPT registers to my emonhub config file and it seems to be working as expected. The 2 extra registers are: 40285,40305
2 extra nUnit = 1,1,1,1,1,1,1,1,1,1,1,1

and in node 30 (my fronius node value) an extra 2 fields at the end:
names = ID,L,A,W,Hz,VA,VAr,PF,WH,DCW,MPT1,MPT2
datacodes = H,H,f,f,f,f,f,f,f,f,H,H
scales = 1,1,0.1,0.1,0.1,0.1,0.1,0.1,1,0.1,0.1,0.1
units = V,W,kWh,Wh,W,W,V,V,V,V,W,W

Thanks Anthony,

They look good! Values total to be a little more than the AC output so I assume these are DC input values and are there subject to the efficiency of the inverter. I have them working, will test it out then post my entire config so anyone can use my example to read both the inverter and the meter values.

Thanks again!
MikeC