veista / nilan

Nilan integration for Home Assistant
Apache License 2.0
46 stars 11 forks source link

Nilan EC9 Modbus - Incomplete message received #8

Closed MKBU2 closed 1 year ago

MKBU2 commented 1 year ago

As defined in https://github.com/veista/nilan/issues/7

the outcome in logger for pymodbus.transaction when trying to connect:

[pymodbus.client.sync] Connection to Modbus server established. Socket ('192.168.1.155', 60163) [pymodbus.transaction] Current transaction state - IDLE [pymodbus.transaction] Running transaction 1 [pymodbus.transaction] SEND: 0x0 0x1 0x0 0x0 0x0 0x6 0x1e 0x3 0x3 0xe8 0x0 0x1 [pymodbus.client.sync] New Transaction state 'SENDING' [pymodbus.transaction] Changing transaction state from 'SENDING' to 'WAITING FOR REPLY' [pymodbus.transaction] Incomplete message received, Expected 64008 bytes Recieved 14 bytes !!!! [pymodbus.transaction] Changing transaction state from 'WAITING FOR REPLY' to 'PROCESSING REPLY' [pymodbus.transaction] RECV: 0xfa 0x7 0x13 0x2 0xfa 0x2 0x28 0x5f 0x2a 0x72 0xa5 0xc1 0xfa 0xff [pymodbus.framer.socket_framer] Processing: 0xfa 0x7 0x13 0x2 0xfa 0x2 0x28 0x5f 0x2a 0x72 0xa5 0xc1 0xfa 0xff [pymodbus.framer.socket_framer] Frame check failed, ignoring!! [pymodbus.transaction] Getting transaction 1 [pymodbus.transaction] Changing transaction state from 'PROCESSING REPLY' to 'TRANSACTION_COMPLETE'

veista commented 1 year ago

You need to enable debugging for custom_components.nilan

https://www.home-assistant.io/integrations/logger/

MKBU2 commented 1 year ago

If I understood you correctly:

Logging setup is:

logger: default: debug logs: custom_components.nilan: debug

DEBUG (MainThread) [pymodbus.client.sync] Connection to Modbus server established. Socket ('192.168.1.155', 49515) DEBUG (MainThread) [pymodbus.transaction] Current transaction state - IDLE DEBUG (MainThread) [pymodbus.transaction] Running transaction 1 DEBUG (MainThread) [pymodbus.transaction] SEND: 0x0 0x1 0x0 0x0 0x0 0x6 0x1e 0x3 0x3 0xe8 0x0 0x1 DEBUG (MainThread) [pymodbus.client.sync] New Transaction state 'SENDING' DEBUG (MainThread) [pymodbus.transaction] Changing transaction state from 'SENDING' to 'WAITING FOR REPLY' DEBUG (MainThread) [pymodbus.transaction] Incomplete message received, Expected 64008 bytes Recieved 14 bytes !!!! DEBUG (MainThread) [pymodbus.transaction] Changing transaction state from 'WAITING FOR REPLY' to 'PROCESSING REPLY' DEBUG (MainThread) [pymodbus.transaction] RECV: 0xfa 0x7 0x13 0x2 0xfa 0x2 0x28 0x5f 0x2a 0x72 0xa5 0xc1 0xfa 0xff DEBUG (MainThread) [pymodbus.framer.socket_framer] Processing: 0xfa 0x7 0x13 0x2 0xfa 0x2 0x28 0x5f 0x2a 0x72 0xa5 0xc1 0xfa 0xff DEBUG (MainThread) [pymodbus.framer.socket_framer] Frame check failed, ignoring!! DEBUG (MainThread) [pymodbus.transaction] Getting transaction 1 DEBUG (MainThread) [pymodbus.transaction] Changing transaction state from 'PROCESSING REPLY' to 'TRANSACTION_COMPLETE'

veista commented 1 year ago

Yes. Then try setting up the integration.

MKBU2 commented 1 year ago

This was the result in the logs when I tried to put up the integration.

veista commented 1 year ago

For custom_components.nilan

veista commented 1 year ago

If you get the device not supported error when setting up and you have debug logging on, you should get a line in the logs where your device type number is stated.

MKBU2 commented 1 year ago

The error is "Invalid response From the device" with these logs.

veista commented 1 year ago

Oh, sorry, I didn't read the header. You should configure your bridge to a state where you got unsupported device, or am I understanding something wrong?

MKBU2 commented 1 year ago

I changed the Sharewave configuration and integration now tells : "Unsupported device"

and logs are:

(MainThread) [pymodbus.client.sync] Connection to Modbus server established. Socket ('192.168.1.155', 43239) (MainThread) [pymodbus.transaction] Current transaction state - IDLE (MainThread) [pymodbus.transaction] Running transaction 1 (MainThread) [pymodbus.transaction] SEND: 0x0 0x1 0x0 0x0 0x0 0x6 0x1e 0x3 0x3 0xe8 0x0 0x1 (MainThread) [pymodbus.client.sync] New Transaction state 'SENDING' (MainThread) [pymodbus.transaction] Changing transaction state from 'SENDING' to 'WAITING FOR REPLY' (MainThread) [pymodbus.transaction] Changing transaction state from 'WAITING FOR REPLY' to 'PROCESSING REPLY' (MainThread) [pymodbus.transaction] RECV: 0x0 0x2 0x0 0x0 0x0 0x5 0x1e 0x3 0x2 0x0 0x15 (MainThread) [pymodbus.framer.socket_framer] Processing: 0x0 0x2 0x0 0x0 0x0 0x5 0x1e 0x3 0x2 0x0 0x15 (MainThread) [pymodbus.factory] Factory Response[ReadHoldingRegistersResponse: 3] (MainThread) [pymodbus.transaction] Adding transaction 1 (MainThread) [pymodbus.transaction] Getting transaction 1 (MainThread) [pymodbus.transaction] Changing transaction state from 'PROCESSING REPLY' to 'TRANSACTION_COMPLETE' (MainThread) [custom_components.nilan.config_flow] Device Type 21 not found in supported devices list

veista commented 1 year ago

Nice. Now if you could provide the pictures.

MKBU2 commented 1 year ago

image

You can also edit the converted with Shareware vircom application: image

There's also more options under "Advanced" image

veista commented 1 year ago

I meant the pictures mentioned in the readme file. A picture of the device type plate and if you have a touch HMI a picture of the info page.

MKBU2 commented 1 year ago

No touch screen. Ordinary CTS602 panel controlled device.

image

veista commented 1 year ago

Thanks, I will add a beta release ASAP, so I can get more information and add all of the entities your device supports.

veista commented 1 year ago

Added a beta release. If you could take a screenshot of device firmware version and of sensor ModBus Version.

MKBU2 commented 1 year ago

Seems to work! Excellent!

Modbus version = 8 Device Software version =2.31.d

Couple of errors showing in the logs:

ERROR (SyncWorker_6) [homeassistant.components.modbus.modbus] Pymodbus: Nilan: Exception Response(132, 4, IllegalAddress)

ERROR (SyncWorker_7) [homeassistant.components.modbus.modbus] Pymodbus: Nilan: Exception Response(131, 3, IllegalAddress)

veista commented 1 year ago

Added a beta for trying to fix those errors. I'm adding the entities I can, but in the mean-while can you provide me a picture of your panel from:

image

veista commented 1 year ago

Added better support with 1.0.22B. I couldn't find documentation for ModBus Version 8, so if some entities don't work or you get Modbus errors, please do tell.

MKBU2 commented 1 year ago

Seems to be working until the x.25b -> x.25 stopped the connection. I'll look at the logs.

My usermanual seems to be only in finnish.

Magifi commented 1 year ago

Hi and thanks in advance for great integration. I'm quite noob with HA and now I'm building my home automation from scratch. At the moment I'm running Nilan with openHAB and USB-RS485 converter in my first raspberry pi. I assume that this has to be removed and buy i.e USR-TCP232-410S module to start configuring/building connection to your Nilan integration with my second raspberry pi (which will hopefully be the only device in future). I have old CTS602 (from 2015). Sorry for unrelated question.

veista commented 1 year ago

Seems to be working until the x.25b -> x.25 stopped the connection. I'll look at the logs.

My usermanual seems to be only in finnish.

Yes. I wont add your device to master until it works in a sufficient manner. Use only the beta releases until then.

You can download the english version from https://www.en.nilan.dk/downloads/archives

veista commented 1 year ago

Hi and thanks in advance for great integration. I'm quite noob with HA and now I'm building my home automation from scratch. At the moment I'm running Nilan with openHAB and USB-RS485 converter in my first raspberry pi. I assume that this has to be removed and buy i.e USR-TCP232-410S module to start configuring/building connection to your Nilan integration with my second raspberry pi (which will hopefully be the only device in future). I have old CTS602 (from 2015). Sorry for unrelated question.

Please open a new issue if you have furter questions. At this point USB adaptors are not supported unfortunately. It will hopefully be added at some point in the future. So yes you assume correctly.

MKBU2 commented 1 year ago

This is Nilan EC9 models equivalent model VP18 M2 EK

image

Btw. for some reason HACS always dowloads 1.25 although you choose 1.25b or 1.23b beta version.

veista commented 1 year ago

Yes, I know. I just want a picture from your physical HMI panel when you are at SHOW DATA -> TYPE for documentation purposes. I am working on a bigger update to the integration and wanted to release tested work on 1.0.25. The reason why HACS keeps wanting to update to this is because it is newer. There will be a 1.1.0B available in the near future, which should in theory support your device properly.

MKBU2 commented 1 year ago

image image image

veista commented 1 year ago

Did the invalid register errors go away with release 1.1.1?