This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

troubleshooting modbus script to control fornius inverter
#1
Hello,

due to dynamic energy prices I wan't to enable / disable throttle of the inverter. This is possbile via modbus. Unfortunatelly it's not working and I have nothing in the log of LM. 


Code:
require('luamodbus')
mb = luamodbus.tcp()
mb:open('192.168.1.111', 502)
mb:connect()
res, err = mb:connect()

if res then

    if (value <35) then
    r0 = mb:writeregisters(40236, 0)
        log(r0, '<')
        
    else
    r1 = mb:writeregisters(40236, 0)
      r2 = mb:writeregisters(40232, 10000)
      r3 = mb:writeregisters(40236, 1) 
      log(r1, r2, r3 '>')
      mb:close()
    end

else
  log('failed', err)
end

Log if value <35
* arg: 1
  * nil
* arg: 2
  * string: <

=> This seems to work

Log if value >35
Nothing in the log and I don't know why. 

Any idea what could be wrong?
Reply
#2
You have two connect calls, remove one of them. Then log the error returned by the write call:

Code:
r0, err = mb:writeregisters(40236, 0)
log(r0, err)

Same for all other registers.
Reply
#3
Thanks, that was an error as well. If someone what's to set the softlimit from a fronius inverter depending on the enery prices, this is the clean code: 
Code:
t = os.date ("*t")
value = grp.getvalue('34/1/' .. t.hour)

require('luamodbus')
mb = luamodbus.tcp()
mb:open('192.168.1.111', 502)
res, err = mb:connect()
mb:setslave(1)

if res then
    if (value <35) then
        mb:writeregisters(40236, 0)
        log('PV softlimit')
   
    else
    mb:writeregisters(40236, 0)
      mb:writeregisters(40232, 10000)
      mb:writeregisters(40236, 1) 
      log('PV unlimited')
      
    end
    mb:close()
 
else
  log('failed', err)
end
Reply


Forum Jump: