Page 2 of 21

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Sunday 14 January 2018 20:44
by winnie
I tried to run the script from the command line. (/modbus_read/plugin.py)

Traceback (most recent call last):
File "plugin.py", line 75, in <module>
import Domoticz
ImportError: No module named Domoticz

Is this an indication of the problem?

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Sunday 14 January 2018 22:47
by Domoticx
Well....i don't know the local paths, includes or workfolder that domoticz is using to load libraries, but you can comment this line out with # and try again :roll:

Ps, domoticz is using python3, when i run this command:

Code: Select all

sudo python3 /home/pi/domoticz/plugins/modbus-read/plugin.py
i got no errors....

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Monday 15 January 2018 6:23
by winnie
@Domoticx,

Thanks for all your help.
Apparently this is not a general problem.
Today I am leaving on vacation for a week.
When I am back I will try with a fresh installation.

Kind Regards,
Erwin.

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Monday 15 January 2018 23:19
by papoo
nice projet, thanks
i can't setup modbus-read in TCP mode, may be you can help me?
The modbus counter work's fine, it have count 232,46 m3 of water (can we adjust the comma decimal in your plugin?)
i can read the input 1010 in 32uint type data with a modbus sofware, ip adress 192.168.1.21 port 502
but don't works with those parameters in python plugin
2018-01-15 23_05_00-Domoticz.jpg
2018-01-15 23_05_00-Domoticz.jpg (278.33 KiB) Viewed 5160 times

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 20:46
by Domoticx
Hi papoo,

Thanks for trying it out. :D

I have updated the plugins! (grab new version from github)
* I have found a uint32 bug in the plugin code (decoded as uint16)
* Added DEBUG option, so you can check stuff in the LOG

Next for you...

Your TCP config seems OK!

1) Have you installed Pymodbus correctly for python3?
2) Are you using the right modbus function (4) to read the data out of the device?
3) To read a 32uint you need 4 bytes, thus you need to read out 2 registers (not 1) :geek:

Ps. You can now check stuff in the LOG if DEBUG is True

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 22:21
by papoo
thanks for your job
the 1.0.1 version don't work

Code: Select all

Error: (Modbus) start up failed, Domoticz module not found in interpreter.
i added ligne81

Code: Select all

import Domoticz
then plugin log

Code: Select all

2018-01-16 22:20:31.143 (compteur_edv) onHeartbeat called
2018-01-16 22:20:31.143 (compteur_edv) MODBUS DEBUG TCP CMD - Method=tcp Address=192.168.1.21 Port=502 Registers to read=4 Data type=32int
2018-01-16 22:20:31.144 (compteur_edv) Modbus error communicating!, check your settings!
Data is empty

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 22:47
by Domoticx
Uploaded v1.0.2 READ !!

1) Bugfix uint32 typo (again) hahahaha :shock: :shock:
2) added import Domoticz
3) Also added the register address in de LOG

Please set register to 2 (=4 bytes) for uint32 (not 1 or 4)

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 23:00
by papoo
same problem

Code: Select all

2018-01-16 22:57:54.822 (compteur_edv) Started.
2018-01-16 22:57:55.287 (compteur_edv) Entering work loop.
2018-01-16 22:57:55.289 (compteur_edv) Initialized version 1.0.1, author 'S. Ebeltjes / domoticx.nl'
2018-01-16 22:57:55.344 (compteur_edv) Modbus RS485 RTU/ASCII/TCP - Universal READ loaded.
2018-01-16 22:58:04.816 (compteur_edv) onHeartbeat called
2018-01-16 22:58:04.816 (compteur_edv) MODBUS DEBUG TCP CMD - Method=tcp Address=192.168.1.21 Port=502 Register=1009 Registers to read=2 Data type=32int
2018-01-16 22:58:04.818 (compteur_edv) Modbus error communicating!, check your settings!
2018-01-16 22:58:14.801 (compteur_edv) onHeartbeat called
2018-01-16 22:58:14.802 (compteur_edv) MODBUS DEBUG TCP CMD - Method=tcp Address=192.168.1.21 Port=502 Register=1009 Registers to read=2 Data type=32int
2018-01-16 22:58:14.804 (compteur_edv) Modbus error communicating!, check your settings!
my modbus register table
2018-01-16 22_59_35-HWg-PWR.png
2018-01-16 22_59_35-HWg-PWR.png (9.43 KiB) Viewed 5123 times

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 23:19
by Domoticx
In the log above you still using v1.0.1 wich has the bug "Data type=32int" (in v1.0.2 it is corrected to: Data type=32uint) :shock:

please after download and overwrite plugin files, restart domoticz:

Code: Select all

sudo service domoticz.sh restart
And i see in your register table it should be 32bit INT (not UINT) so i will add more decoding options in v1.0.3 to try out! :D

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 23:36
by Domoticx
Hi papoo,

I have updated the READ to v1.0.3, added more decoding options :geek:

Also in your "Modbus example window" you are reading 1010 (and the program adds offset +1?) so you are actually reading register 1011 16Bit INT? (that explains the number of registers=1)

Ps. what kind of Modbus TCP unit do you have? (i only have RTU stuff here)
domoticz read v1.0.3 decode options.png
domoticz read v1.0.3 decode options.png (104.4 KiB) Viewed 5117 times

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 23:52
by papoo
TCP mode with 1.0.2
I test uint mode with the same result (register 9 and 10)
I try 1.0.3 tomorow
Thank’s for tour job

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Tuesday 16 January 2018 23:58
by Domoticx
papoo wrote: Tuesday 16 January 2018 23:52 TCP mode with 1.0.2
I test uint mode with the same result (register 9 and 10)
I try 1.0.3 tomorow
Thank’s for tour job
No problem, the thing is i don't have any Modbus TCP stuff to test on...i only have SERIAL RTU stuff here :D

Ps. what kind of TCP unit do you have?

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Wednesday 17 January 2018 0:09
by papoo
Hwg-PWR 3 gateway Mbus->modbus tcp-ip
https://hw-group.us//device/hwg-pwr31225

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Wednesday 17 January 2018 21:23
by papoo
with register 10 /32b UINT

Code: Select all

2018-01-17 21:19:38.721 (compteur_edv) Started.
2018-01-17 21:19:39.207 (compteur_edv) Entering work loop.
2018-01-17 21:19:39.208 (compteur_edv) Initialized version 1.0.4, author 'S. Ebeltjes / domoticx.nl'
2018-01-17 21:19:39.263 (compteur_edv) Debug log level set to: 'true'.
2018-01-17 21:19:39.263 (compteur_edv) 'Mode3':'S1B8PN'
2018-01-17 21:19:39.263 (compteur_edv) 'Mode5':'2'
2018-01-17 21:19:39.263 (compteur_edv) 'Author':'S. Ebeltjes / domoticx.nl'
2018-01-17 21:19:39.263 (compteur_edv) 'DomoticzBuildTime':'2018-01-15 13:01:28'
2018-01-17 21:19:39.263 (compteur_edv) 'Mode2':'9600'
2018-01-17 21:19:39.263 (compteur_edv) 'DomoticzHash':'4ec5e160'
2018-01-17 21:19:39.263 (compteur_edv) 'Mode4':'debug'
2018-01-17 21:19:39.263 (compteur_edv) 'HardwareID':'13'
2018-01-17 21:19:39.263 (compteur_edv) 'DomoticzVersion':'3.8809'
2018-01-17 21:19:39.263 (compteur_edv) 'Username':'4'
2018-01-17 21:19:39.263 (compteur_edv) 'HomeFolder':'/home/pi/domoticz/plugins/modbus-read/'
2018-01-17 21:19:39.264 (compteur_edv) 'Address':'192.168.1.21'
2018-01-17 21:19:39.264 (compteur_edv) 'Password':'10'
2018-01-17 21:19:39.264 (compteur_edv) 'SerialPort':'/dev/serial0'
2018-01-17 21:19:39.264 (compteur_edv) 'Version':'1.0.4'
2018-01-17 21:19:39.264 (compteur_edv) 'Port':'502'
2018-01-17 21:19:39.264 (compteur_edv) 'Mode1':'tcp'
2018-01-17 21:19:39.264 (compteur_edv) 'Name':'compteur_edv'
2018-01-17 21:19:39.264 (compteur_edv) 'Mode6':'32uint'
2018-01-17 21:19:39.264 (compteur_edv) 'Key':'Modbus'
2018-01-17 21:19:39.264 (compteur_edv) Device count: 1
2018-01-17 21:19:39.264 (compteur_edv) Device: 1 - ID: 173, Name: 'compteur_edv - ModbusDEV-READ', nValue: 0, sValue: '0'
2018-01-17 21:19:39.264 (compteur_edv) Device ID: '173'
2018-01-17 21:19:39.264 (compteur_edv) Device Name: 'compteur_edv - ModbusDEV-READ'
2018-01-17 21:19:39.264 (compteur_edv) Device nValue: 0
2018-01-17 21:19:39.264 (compteur_edv) Device sValue: '0'
2018-01-17 21:19:39.264 (compteur_edv) Device LastLevel: 0
2018-01-17 21:19:39.265 (compteur_edv) Modbus RS485 RTU/ASCII/TCP - Universal READ loaded.
2018-01-17 21:19:41.485 Incoming connection from: 127.0.0.1
2018-01-17 21:19:48.737 (compteur_edv) Calling message handler 'onHeartbeat'.
2018-01-17 21:19:48.737 (compteur_edv) MODBUS DEBUG TCP CMD - Method=tcp Address=192.168.1.21 Port=502 Register=10 Registers to read=2 Data type=32uint
2018-01-17 21:19:48.738 (compteur_edv) Modbus error communicating!, check your settings!
2018-01-17 21:19:48.738 (compteur_edv - ModbusDEV-READ) Updating device from 0:'0' to have values 0:'0'.
2018-01-17 21:19:48.749 (compteur_edv) Modbus error decoding (or recieved no data)!, check your settings!
2018-01-17 21:19:48.749 (compteur_edv - ModbusDEV-READ) Updating device from 0:'0' to have values 0:'0'.
2018-01-17 21:19:58.743 (compteur_edv) Calling message handler 'onHeartbeat'.
with register 1009 /32b INT

Code: Select all

2018-01-17 21:22:25.742 (compteur_edv) Started.
2018-01-17 21:22:26.248 (compteur_edv) Entering work loop.
2018-01-17 21:22:26.249 (compteur_edv) Initialized version 1.0.4, author 'S. Ebeltjes / domoticx.nl'
2018-01-17 21:22:26.304 (compteur_edv) Debug log level set to: 'true'.
2018-01-17 21:22:26.304 (compteur_edv) 'Mode3':'S1B8PN'
2018-01-17 21:22:26.304 (compteur_edv) 'Mode5':'2'
2018-01-17 21:22:26.304 (compteur_edv) 'Author':'S. Ebeltjes / domoticx.nl'
2018-01-17 21:22:26.304 (compteur_edv) 'DomoticzBuildTime':'2018-01-15 13:01:28'
2018-01-17 21:22:26.304 (compteur_edv) 'Mode2':'9600'
2018-01-17 21:22:26.304 (compteur_edv) 'DomoticzHash':'4ec5e160'
2018-01-17 21:22:26.304 (compteur_edv) 'Mode4':'debug'
2018-01-17 21:22:26.304 (compteur_edv) 'HardwareID':'13'
2018-01-17 21:22:26.304 (compteur_edv) 'DomoticzVersion':'3.8809'
2018-01-17 21:22:26.304 (compteur_edv) 'Username':'4'
2018-01-17 21:22:26.304 (compteur_edv) 'HomeFolder':'/home/pi/domoticz/plugins/modbus-read/'
2018-01-17 21:22:26.304 (compteur_edv) 'Address':'192.168.1.21'
2018-01-17 21:22:26.304 (compteur_edv) 'Password':'1009'
2018-01-17 21:22:26.304 (compteur_edv) 'SerialPort':'/dev/serial0'
2018-01-17 21:22:26.305 (compteur_edv) 'Version':'1.0.4'
2018-01-17 21:22:26.305 (compteur_edv) 'Port':'502'
2018-01-17 21:22:26.305 (compteur_edv) 'Mode1':'tcp'
2018-01-17 21:22:26.305 (compteur_edv) 'Name':'compteur_edv'
2018-01-17 21:22:26.305 (compteur_edv) 'Mode6':'32int'
2018-01-17 21:22:26.305 (compteur_edv) 'Key':'Modbus'
2018-01-17 21:22:26.305 (compteur_edv) Device count: 1
2018-01-17 21:22:26.305 (compteur_edv) Device: 1 - ID: 173, Name: 'compteur_edv - ModbusDEV-READ', nValue: 0, sValue: '0'
2018-01-17 21:22:26.305 (compteur_edv) Device ID: '173'
2018-01-17 21:22:26.305 (compteur_edv) Device Name: 'compteur_edv - ModbusDEV-READ'
2018-01-17 21:22:26.305 (compteur_edv) Device nValue: 0
2018-01-17 21:22:26.305 (compteur_edv) Device sValue: '0'
2018-01-17 21:22:26.305 (compteur_edv) Device LastLevel: 0
2018-01-17 21:22:26.305 (compteur_edv) Modbus RS485 RTU/ASCII/TCP - Universal READ loaded.
2018-01-17 21:22:35.778 (compteur_edv) Calling message handler 'onHeartbeat'.
2018-01-17 21:22:35.778 (compteur_edv) MODBUS DEBUG TCP CMD - Method=tcp Address=192.168.1.21 Port=502 Register=1009 Registers to read=2 Data type=32int
2018-01-17 21:22:35.779 (compteur_edv) Modbus error communicating!, check your settings!
2018-01-17 21:22:35.779 (compteur_edv - ModbusDEV-READ) Updating device from 0:'0' to have values 0:'0'.
2018-01-17 21:22:35.789 (compteur_edv) Modbus error decoding (or recieved no data)!, check your settings!
2018-01-17 21:22:35.789 (compteur_edv - ModbusDEV-READ) Updating device from 0:'0' to have values 0:'0'.
2018-01-17 21:22:45.774 (compteur_edv) Calling message handler 'onHeartbeat'.

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Thursday 18 January 2018 22:01
by Domoticx
Hi papoo,

Strange...but i will write you a example python code soon, to communicate with the device you can test in python(2), i have to know if the code is build up good for TCP 8-)

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Thursday 18 January 2018 22:56
by papoo
ok

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Friday 19 January 2018 20:56
by McMelloW
Hallo Domoticx,

thanks for the great job you did on Domoticz-Modbus. This looks very interesting.

My Solarpanels are connected to a SolarEdge Inverter. SolarEdge says that you can read the data from this inverter via LAN/TCP and Modbus. The modus is according the SunSpec open protocol. See this document from SolarEdge for detailed information.
And here you can find a synspec python library

Does this plugins support the SunSpec open protocol and do you think I can use this plugin to read the dat from my SolarEdge, instead of via an API at https://monitoringapi.solaredge.com/...

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Friday 19 January 2018 21:50
by Arek84
Is it possible to run this plug-in via esp8266?

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Saturday 20 January 2018 22:48
by Domoticx
McMelloW wrote: Friday 19 January 2018 20:56 Does this plugins support the SunSpec open protocol and do you think I can use this plugin to read the dat from my SolarEdge, instead of via an API at https://monitoringapi.solaredge.com/...
Hi, it is an universal plugin, good chance it will read out the data! ;)

Re: [Released] Python plugin: Modbus RS485 RTU/ASCII/TCP

Posted: Saturday 20 January 2018 22:49
by Domoticx
Arek84 wrote: Friday 19 January 2018 21:50 Is it possible to run this plug-in via esp8266?
You're pointing using an ESP8266 as modbus slave?, any example script to turn one into a slave?