Logic Machine Forum
Modbus profile modification - Printable Version

+- Logic Machine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Gateway (https://forum.logicmachine.net/forumdisplay.php?fid=10)
+--- Thread: Modbus profile modification (/showthread.php?tid=69)



Modbus profile modification - raunz - 27.08.2015

Could someone help me forward with Modbus profiles.
I am trying to achieve perfect Modbus communication with Systemair ventilation unit and I've created a large JSON profile file - approx 90 registers.
When I load the JSON file for the first time, everything is perfect (new profile is created, I can a add device with that profile).

Question is, how can I change the JSON data after import?
For example, I want to change 1 registers data type or multiplier. How do i do it?

Can I just upload again the same JSON file ? When I do it, how I verify that did the changes take effect? (how the daemon accepts the changes: (lua /lib/genohm-scada/plugins/modbus/daemon.lua))
or
do I have to delete the profile and upload the modified JSON? This way I lose all the mappings to knx (30..40 mappings). Adding them back one-by-one isn't fun.

Please share me some instructions...


RE: Modbus profile modification - admin - 27.08.2015

JSON profile is used only when new device is created. After that changing/deleting the profile will not affect existing devices, you have to create new device from scratch in order to use updated profile.

You can try setting bus_address field in your profile for each coil/register that requires object mapping. Just make sure to use numeric id, not group address. You can convert from group address to id like this:
Code:
id = knxlib.encodega('1/1/1') -- result is 2305



RE: Modbus profile modification - raunz - 27.08.2015

(27.08.2015, 10:22)admin Wrote: JSON profile is used only when new device is created. After that changing/deleting the profile will not affect existing devices, you have to create new device from scratch in order to use updated profile.

You can try setting bus_address field in your profile for each coil/register that requires object mapping. Just make sure to use numeric id, not group address. You can convert from group address to id like this:
Code:
id = knxlib.encodega('1/1/1') -- result is 2305

Thanks!

Works like a charm.

PS. add the bus_address to documentation on the webpage too:
http://openrb.com/modbus-master-visual-mapper-to-knx-group-addresses/
I didn't know, that it even exists...


RE: Modbus profile modification - PassivPluss - 27.08.2015

Thanks for this knowledge, i didnt either know about this and earlier made questions about thisSmile


RE: Modbus profile modification - admin - 28.08.2015

This is not really a feature, more like a side effect that can be used Smile
I'll add it to the documentation and new versions will allow using group address instead of numeric id for direct mapping.


RE: Modbus profile modification - PassivPluss - 28.08.2015

Great. Everything that can be automated is great since it can save us work when programmingSmile