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:
1234567891011121314151617181920212223
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:
12
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:
1234567891011121314151617181920212223242526
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: