Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

Nibe Fighter 1130 with RCU 11


  • Hi!

    I have just baught myself a ground heater with an attached RCU 11. I'm a total novice on modbus TCP to make that clear.

    What I am looking for is a simple way to pick up values from the heater. In my knowledge they should be in holding registers. (Accordning to http://www.nibe.se/Pages/42625/RCU_Parameterlista_F1135_1235.pdf (In swedish, but in tables)

    I have tried to configured mango, but when i enable the modbus IP in databases I get the following errors..

    ERROR 2010-03-29 21:36:33,593 (org.quartz.core.JobRunShell.run:211) - Job com.serotonin.mango.rt.dataSource.PollingDataSource.PollingDataSource-1 threw an unhan
    dled Exception:
    java.lang.AbstractMethodError: com.serotonin.modbus4j.ip.IpMessageRequest.expectsResponse()Z
    at com.serotonin.io.messaging.SenderConnection.send(SenderConnection.jav
    a:76)
    at com.serotonin.io.messaging.SenderConnection.send(SenderConnection.jav
    a:106)
    at com.serotonin.modbus4j.ip.tcp.TcpMaster.send(TcpMaster.java:76)
    at com.serotonin.modbus4j.ModbusMaster.sendFunctionGroup(ModbusMaster.ja
    va:329)
    at com.serotonin.modbus4j.ModbusMaster.send(ModbusMaster.java:272)
    at com.serotonin.mango.rt.dataSource.modbus.ModbusDataSource.doPoll(Modb
    usDataSource.java:83)
    at com.serotonin.mango.rt.dataSource.PollingDataSource.scheduleTimeout(P
    ollingDataSource.java:79)
    at com.serotonin.mango.util.TimeoutJob.execute(TimeoutJob.java:48)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.j
    ava:525)

    My configuration is
    Transport type: TCP
    Host: (Entered the IP adress)
    Port: 502

    I added one point.
    Slave ID: 1
    Register range: Holdning register
    Modbus data type: 2 byte signed integer
    Offset: 2 (Wich should be "Produktkod" or "Varmvattentemperatur (mantelgivare)" accourdning to Nibe
    Settable: unchecked
    Additive: 0

    I guess it is something very obvious.
    I have tried to make contact with another application that is using modbus and I get some results, so there is no network problem.

    Regards: Jon - Sweden


  • That error doesn't in fact have anything to do with Modbus, at least regarding connectivity. There appears to be a problem with the Modbus implementation version that you have. Try replacing WEB-INF/lib/modbus4j.jar with the attached version, restart, and see if that helps.

    Attachment: download link


  • Thank yo very much for a quick response.

    However, after updating the file and trying to enable the the config, I got the following error...

    ERROR 2010-03-29 22:45:14,000 (com.serotonin.mango.web.filter.ExceptionDetection
    Filter.doFilter:38) - DWR invocation exception
    java.lang.NoClassDefFoundError: com/serotonin/messaging/MessagingExceptionHandle
    r
    at com.serotonin.modbus4j.ModbusFactory.createTcpMaster(ModbusFactory.ja
    va:29)
    at com.serotonin.mango.rt.dataSource.modbus.ModbusIpDataSource.initializ
    e(ModbusIpDataSource.java:50)
    at com.serotonin.mango.rt.RuntimeManager.initializeDataSource(RuntimeMan
    ager.java:257)
    at com.serotonin.mango.rt.RuntimeManager.saveDataSource(RuntimeManager.j
    ava:242)
    at com.serotonin.mango.web.dwr.DataSourceListDwr.toggleDataSource(DataSo
    urceListDwr.java:66)
    at com.serotonin.mango.web.dwr.DataSourceEditDwr.toggleEditDataSource(Da
    taSourceEditDwr.java:244)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilt
    er.java:34)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.dwr.util.LoggedInAjaxFilter.doFilter(LoggedIn
    AjaxFilter.java:39)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.web.dwr.LocalizationFilter.doFilter(LocalizationFilter.
    java:54)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.filter.ExceptionDetectionFilter.doFilter(Exce
    ptionDetectionFilter.java:26)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :431)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :283)
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandle
    r.java:52)
    at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:1
    01)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:45
    4)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.ClassNotFoundException: com.serotonin.messaging.MessagingEx
    ceptionHandler
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
    der.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
    der.java:1233)
    ... 37 more
    WARN 2010-03-29 22:45:14,015 (org.directwebremoting.util.CommonsLoggingOutput.w
    arn:67) - Method execution failed:
    java.lang.NoClassDefFoundError: com/serotonin/messaging/MessagingExceptionHandle
    r
    at com.serotonin.modbus4j.ModbusFactory.createTcpMaster(ModbusFactory.ja
    va:29)
    at com.serotonin.mango.rt.dataSource.modbus.ModbusIpDataSource.initializ
    e(ModbusIpDataSource.java:50)
    at com.serotonin.mango.rt.RuntimeManager.initializeDataSource(RuntimeMan
    ager.java:257)
    at com.serotonin.mango.rt.RuntimeManager.saveDataSource(RuntimeManager.j
    ava:242)
    at com.serotonin.mango.web.dwr.DataSourceListDwr.toggleDataSource(DataSo
    urceListDwr.java:66)
    at com.serotonin.mango.web.dwr.DataSourceEditDwr.toggleEditDataSource(Da
    taSourceEditDwr.java:244)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilt
    er.java:34)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.dwr.util.LoggedInAjaxFilter.doFilter(LoggedIn
    AjaxFilter.java:39)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.web.dwr.LocalizationFilter.doFilter(LocalizationFilter.
    java:54)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.filter.ExceptionDetectionFilter.doFilter(Exce
    ptionDetectionFilter.java:26)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :431)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :283)
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandle
    r.java:52)
    at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:1
    01)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:45
    4)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.ClassNotFoundException: com.serotonin.messaging.MessagingEx
    ceptionHandler
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
    der.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
    der.java:1233)
    ... 37 more
    WARN 2010-03-29 22:45:14,031 (org.directwebremoting.util.CommonsLoggingOutput.w
    arn:59) - --Erroring: batchId[6] message[java.lang.NoClassDefFoundError: com/ser
    otonin/messaging/MessagingExceptionHandler]

    Regards /Jon


  • K, try updating this too...

    Attachment: download link


  • Nope.. Got the following error when I try to enable it...(Restarted tomcat after updating the file)

    ERROR 2010-03-29 22:55:02,625 (com.serotonin.mango.web.filter.ExceptionDetection
    Filter.doFilter:38) - DWR invocation exception
    java.lang.NoSuchMethodError: com.serotonin.modbus4j.ModbusMaster.setExceptionLis
    tener(Lcom/serotonin/io/messaging/MessagingConnectionListener;)V
    at com.serotonin.mango.rt.dataSource.modbus.ModbusDataSource.initialize(
    ModbusDataSource.java:134)
    at com.serotonin.mango.rt.dataSource.modbus.ModbusIpDataSource.initializ
    e(ModbusIpDataSource.java:53)
    at com.serotonin.mango.rt.RuntimeManager.initializeDataSource(RuntimeMan
    ager.java:257)
    at com.serotonin.mango.rt.RuntimeManager.saveDataSource(RuntimeManager.j
    ava:242)
    at com.serotonin.mango.web.dwr.DataSourceListDwr.toggleDataSource(DataSo
    urceListDwr.java:66)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilt
    er.java:34)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.dwr.util.LoggedInAjaxFilter.doFilter(LoggedIn
    AjaxFilter.java:39)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.web.dwr.LocalizationFilter.doFilter(LocalizationFilter.
    java:54)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.filter.ExceptionDetectionFilter.doFilter(Exce
    ptionDetectionFilter.java:26)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :431)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :283)
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandle
    r.java:52)
    at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:1
    01)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:45
    4)
    at java.lang.Thread.run(Thread.java:619)
    WARN 2010-03-29 22:55:02,656 (org.directwebremoting.util.CommonsLoggingOutput.w
    arn:67) - Method execution failed:
    java.lang.NoSuchMethodError: com.serotonin.modbus4j.ModbusMaster.setExceptionLis
    tener(Lcom/serotonin/io/messaging/MessagingConnectionListener;)V
    at com.serotonin.mango.rt.dataSource.modbus.ModbusDataSource.initialize(
    ModbusDataSource.java:134)
    at com.serotonin.mango.rt.dataSource.modbus.ModbusIpDataSource.initializ
    e(ModbusIpDataSource.java:53)
    at com.serotonin.mango.rt.RuntimeManager.initializeDataSource(RuntimeMan
    ager.java:257)
    at com.serotonin.mango.rt.RuntimeManager.saveDataSource(RuntimeManager.j
    ava:242)
    at com.serotonin.mango.web.dwr.DataSourceListDwr.toggleDataSource(DataSo
    urceListDwr.java:66)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilt
    er.java:34)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.dwr.util.LoggedInAjaxFilter.doFilter(LoggedIn
    AjaxFilter.java:39)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.web.dwr.LocalizationFilter.doFilter(LocalizationFilter.
    java:54)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at com.serotonin.mango.web.filter.ExceptionDetectionFilter.doFilter(Exce
    ptionDetectionFilter.java:26)
    at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j
    ava:428)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :431)
    at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java
    :283)
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandle
    r.java:52)
    at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:1
    01)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:45
    4)
    at java.lang.Thread.run(Thread.java:619)
    WARN 2010-03-29 22:55:02,671 (org.directwebremoting.util.CommonsLoggingOutput.w
    arn:59) - --Erroring: batchId[3] message[java.lang.NoSuchMethodError: com.seroto
    nin.modbus4j.ModbusMaster.setExceptionListener(Lcom/serotonin/io/messaging/Messa
    gingConnectionListener;)V]

    Regards /Jon


  • Hmm, what version of Mango do you have?


  • You left the updated modbus4J.jar in there, right? The old one got overwritten?


  • According to system information. 1.8.1


  • about modbus4j, yes, the old one is overwritten.
    Placed it in C:\tomcat\webapps\ROOT\WEB-INF\lib


  • Hmm. Did you use 1.8.1 out of the box, so to speak, or did you update anything about it? The thing is, i can't reproduce the problem with the version that is on the download page right now.


  • I recently downloaded it, installed java and apache tomcat accordning to the installation instruction.
    OS: Windows SR 2003 STD 32bit


  • Can you try removing your installation (just delete the mango web app dir) and try reinstalling?


  • Just tried a complete reinstallation.
    Deleted the whole tomcat directory (First copying the files that where posted here)
    Extracted tomcat to c:
    Extracted mango to C:\tomcat\webapps\ROOT
    Started tomcat with c:\tomcat\bin\startup
    logged in with admin
    added a datasource (Modbus IP)
    Added a point (Holding register)
    Enabled the datasource and did got the error as explained earlier...


  • However, I can scan for nodes. When I do a scan I get a result from 1 to 240...


  • I don't know what to say. I've tried the 1.8.1 download on Windows and Mac using the available download and install instructions, and accessing a Modbus TCP slave, and it works perfectly. If this continues to be a problem for you i can only suggest you wait for the 1.8.2 release, forthcoming once some details with a collaborator are worked out, hopefully in a matter of weeks.