Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Notifications
Login / Register
Community
Community
Notifications
close
  • Forums
  • Knowledge Center
  • Events & Webinars
  • Ideas
  • Blogs
Help
Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Login / Register
Sustainability
Sustainability

We Value Your Feedback!
Could you please spare a few minutes to share your thoughts on Cloud Connected vs On-Premise Services. Your feedback can help us shape the future of services.
Learn more about the survey or Click here to Launch the survey
Schneider Electric Services Innovation Team!

homeLYnk integration with Xenta 701 on ModBus RTU or TCP/IP

SpaceLogic KNX Forum

Schneider Electric SpaceLogic KNX forum to get support and share knowledge including selection, installation and troubleshooting for spaceLYnk, Wiser for KNX, eConfigure KNX, SpaceLogic KNX Hybrid module and other topics.

cancel
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Home
  • Schneider Electric Community
  • EcoStruxure Building
  • Light and Room Control
  • SpaceLogic KNX Forum
  • homeLYnk integration with Xenta 701 on ModBus RTU or TCP/IP
Options
  • Mark Topic as New
  • Mark Topic as Read
  • Float this Topic for Current User
  • Bookmark
  • Subscribe
  • Mute
  • Printer Friendly Page
Invite a Co-worker
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send Invite Cancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
Send New Invite Close
Top Experts
User Count
Thomas_Rohde
Sisko Thomas_Rohde Sisko
121
Erwin-vd-Zwart
Sisko Erwin-vd-Zwart Sisko
54
Heribert_Dölger
Lt. Commander Heribert_Dölger Lt. Commander
30
FZetina
Lt. Commander FZetina Lt. Commander
27
View All
Related Products
product field
SpaceLogic KNX - 4ʺ Touch Unit
product field
KNX Push Button Dynamic Labeling, universal
product field
Wiser for KNX : logic controller

Invite a Colleague

Found this content useful? Share it with a Colleague!

Invite a Colleague Invite
Back to SpaceLogic KNX Forum
sesa93260
sesa93260
Cadet

Posted: ‎2014-10-14 12:37 AM . Last Modified: ‎2024-07-15 12:04 AM

0 Likes
9
810
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-10-14 12:37 AM

homeLYnk integration with Xenta 701 on ModBus RTU or TCP/IP

Hello,

Does anybody integrate homeLYnk with a an Xenta 701?

There is an existing KNX instalation with homeLYnk and a central heating system/boiller managed by an Xenta 701.

Have a nice day,

Rafael Marculescu

  • Thumbnail of SpaceLogic KNX - 4ʺ Touch Unit
    SpaceLogic KNX - 4ʺ Touch Unit
  • Thumbnail of KNX Push Button Dynamic Labeling, universal
    KNX Push Button Dynamic Labeling, universal
  • Thumbnail of Wiser for KNX : logic controller
    Wiser for KNX : logic controller
View products (3)
Tags (1)
  • Tags:
  • homelynk
Reply
  • All forum topics
  • Previous Topic
  • Next Topic
Replies 9
sesa70584_bridg
Ensign sesa70584_bridg
Ensign

Posted: ‎2014-10-22 07:58 AM

0 Likes
0
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-10-22 07:58 AM

Hi Rafael, could you please creat a Bfo technical case and ask team to test the integration.

This can be probably interesting for other members of SEC.

best regards,

Karina.

Reply
olemotor
Commander olemotor Commander
Commander

Posted: ‎2014-10-23 02:26 AM

0 Likes
1
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-10-23 02:26 AM

Hi Rafael,

Yes, we are using the spaceLynk as a Modbus TCP server and a Xenta 701 as its client.

Have a look at this discussion, it may help you getting started:

Ole Morten
Reply
lfiat
Ensign lfiat
Ensign

Posted: ‎2014-10-23 07:16 AM

0 Likes
0
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-10-23 07:16 AM

Hi Rafael and Ole Morten,

In thread you pointed Ole ([DEAD LINK /message/13220#13220]Re: spaceLynk/homeLynk logic controller as a KNX to Modbus gateway): I added a proposal for Modbus TCP server in spaceLYnk/homeLYnk.

Regards,

Lionel

Reply
sesa189443
sesa189443 Schneider Alumni (Retired)
Schneider Alumni (Retired)

Posted: ‎2014-10-29 01:56 AM

3 Likes
4
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-10-29 01:56 AM

 

Hi

If someone wont to dig down how everything works in HL/SL here an example how to read and write via modbus slave.

TIP. Writing many points are generating high processing load. It is good practice to do it only with change of value.

-------------------------------------------------------------------------------
Add to common functions
-------------------------------------------------------------------------------

-- modbus proxy
mbproxy = {
  -- supported function list
  functions = {
    'readdo',
    'readcoils',
    'readdi',
    'readdiscreteinputs',
    'readao',
    'readregisters',
    'readai',
    'readinputregisters',
    'writebits',
    'writemultiplebits',
    'writeregisters',
    'writemultipleregisters',
    'reportslaveid',
    'getcoils',
    'getdiscreteinputs',
    'getinputregisters',
    'getregisters',
    'setcoils',
    'setdiscreteinputs',
    'setinputregisters',
    'setregisters',
  },
  -- new connecton init
  new = function()
    require('rpc')
    local mb = setmetatable({}, { __index = mbproxy })

    mb.slaveid = 0
    mb.rpc = rpc.client('127.0.0.1', 28002, 'mbproxy')

    for _, fn in ipairs(mbproxy.functions) do
      mb[ fn ] = function(self, ...)
        return mb:request(fn, ...)
      end
    end

    return mb
  end
}

-- set local slave id
function mbproxy:setslave(slaveid)
  self.slaveid = slaveid
end

-- send rpc request for a spefic function
function mbproxy:request(fn, ...)
  local res, err = self.rpc:request({
    fn = fn,
    params = { ... },
    slaveid = self.slaveid or 0,
  })

  -- request error
  if err then
    return nil, err
  -- request ok
  else
    -- reply with an error
    if res[ 1 ] == nil then
      return nil, res[ 2 ]
    -- normal reply
    else
      return unpack(res)
    end
  end
end

-------------------------------------------------------------------------------
Handler (resident script with 0 delay) configuration
-------------------------------------------------------------------------------

1. mb:open('/dev/RS485', 38400, 'E', 8, 1, 'H')
   set baudrate and other serial port parameters

2. mb:setslave(10)
   set slave device id

3. mb:setmapping(10, 10, 10, 10)
   set number coils, discrete inputs, holding registers and input registers

4. mb:setwritecoilcb(function(coil, value)...
   callback function which is executed for each coil write

5. mb:setwriteregistercb(function(coil, value)...
   callback function which is executed for each register write

-------------------------------------------------------------------------------
Handler script example
-------------------------------------------------------------------------------

-- modbus init
if not mb then
  require('luamodbus')
  mb = luamodbus.rtu()
  mb:open('/dev/RS485', 38400, 'E', 8, 1, 'H')
  mb:connect()

  -- slave id
  mb:setslave(10)

  -- init slave storage for coils, discrete inputs, holding registers and input registers
  mb:setmapping(10, 10, 10, 10)

  -- coil write callback
  mb:setwritecoilcb(function(coil, value)
    if coil == 0 then
      grp.write('1/1/1', value, dt.bool)
    else
      alert('coil: %d = %s', coil, tostring(value))
    end
  end)

  -- register write callback
  mb:setwriteregistercb(function(register, value)
    if register == 0 then
      -- send value limited to 0..100
      grp.write('4/1/5', math.min(100, value), dt.scale)
    else
      alert('register: %d = %d', register, value)
    end
  end)
end

-- server part init
if not server then
  require('rpc')

  -- incoming data handler
  local handler = function(request)
    local fn, res

    fn = tostring(request.fn)

    if not mb[ fn ] then
      return { nil, 'unknown function ' .. fn }
    end

    if type(request.params) == 'table' then
      table.insert(request.params, 1, mb)
      res = { mb[ fn ](unpack(request.params)) }
    else
      res = { mb[ fn ](mb) }
    end

    return res
  end

  server = rpc.server('127.0.0.1', 28002, 'mbproxy', handler, 0.01)
end

mb:handleslave()
server:step()

-------------------------------------------------------------------------------
Example event script which changes modbus slave coil (address 0)
Must be mapped to a group address with binary value
-------------------------------------------------------------------------------

value = event.getvalue()
mb = mbproxy.new()
mb:setcoils(0, value)

-------------------------------------------------------------------------------
Example event script which changes modbus slave register (address 5)
Must be mapped to a group address with scaling (0..100) value
-------------------------------------------------------------------------------

value = event.getvalue()
mb = mbproxy.new()
mb:setregisters(5, value)

Reply
sesa299442
sesa299442 Schneider Alumni (Retired)
Schneider Alumni (Retired)

Posted: ‎2014-11-05 05:42 AM

0 Likes
3
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-11-05 05:42 AM

Daniel,

what is the reason to use this modbus proxy?

Reply
sesa189443
sesa189443 Schneider Alumni (Retired)
Schneider Alumni (Retired)

Posted: ‎2014-11-05 05:55 AM

0 Likes
2
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-11-05 05:55 AM

You need it when you use event based script to drop data to registry. If you make all in one resident script then you are fine.

Reply
sesa299442
sesa299442 Schneider Alumni (Retired)
Schneider Alumni (Retired)

Posted: ‎2014-11-05 05:59 AM

0 Likes
1
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-11-05 05:59 AM

I see, great!!

Reply
sesa70584_bridg
Ensign sesa70584_bridg
Ensign

Posted: ‎2014-11-05 08:20 AM

0 Likes
0
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-11-05 08:20 AM

Tomas and Daniel, thank for your help, Ole also gave a practical example

hope Rafael got the answer to his question.

Thanks,

best regards,

Karina.

Reply
esteve_budia
Lieutenant esteve_budia Lieutenant
Lieutenant

Posted: ‎2014-11-05 08:45 AM

0 Likes
0
691
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2014-11-05 08:45 AM

I've seen than commenting "alert" instruction comunication is much better.

Workig fine with magelis TCP client..


Reply
To The Top!

Forums

  • APC UPS Data Center Backup Solutions
  • EcoStruxure IT
  • EcoStruxure Geo SCADA Expert
  • Metering & Power Quality
  • Schneider Electric Wiser

Knowledge Center

Events & webinars

Ideas

Blogs

Get Started

  • Ask the Community
  • Community Guidelines
  • Community User Guide
  • How-To & Best Practice
  • Experts Leaderboard
  • Contact Support
Brand-Logo
Subscribing is a smart move!
You can subscribe to this board after you log in or create your free account.
Forum-Icon

Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.

Register today for FREE

Register Now

Already have an account? Login

Terms & Conditions Privacy Notice Change your Cookie Settings © 2025 Schneider Electric

This is a heading

With achievable small steps, users progress and continually feel satisfaction in task accomplishment.

Usetiful Onboarding Checklist remembers the progress of every user, allowing them to take bite-sized journeys and continue where they left.

of