Code Monkey home page Code Monkey logo

Comments (9)

veista avatar veista commented on June 20, 2024

Great, could you give me your modbus version?

from nilan.

jamespreedy avatar jamespreedy commented on June 20, 2024

Sorry, forgot that bit - version 21. Thanks!

from nilan.

veista avatar veista commented on June 20, 2024

Seems like the issue is with modbus version 21 devices. The registers are there, but don't return any value. It is not the first time modbus version 21 is being a problem.

Since there is only one occurance of each error, can you check if you have any unavailable entities?

from nilan.

jamespreedy avatar jamespreedy commented on June 20, 2024

No unavailable entities, and no entities named something like the list I added above - it maybe seems that it tries to create them and couldn't, so errored?

Thanks for your help with this one - appreciate it!

from nilan.

jypma avatar jypma commented on June 20, 2024

I've encoutered the same issue (see #78). I've traced the uncreated entities to these register definitions:

CTS602HoldingRegisters.air_temp_heat_select      1209
CTS602HoldingRegisters.central_heat_heat_select  1801
CTS602HoldingRegisters.central_heat_heat_type    1807
CTS602HoldingRegisters.air_flow_inlet_min        4015
CTS602HoldingRegisters.air_flow_exhaust_min      4016
CTS602HoldingRegisters.air_flow_exhaust_max      4017
CTS602HoldingRegisters.air_temp_temp_min_cpr     1502
CTS602HoldingRegisters.air_temp_cpr_restart      1503
CTS602HoldingRegisters.central_heat_reg_time     1808

They all seem to be (newer?) registers that aren't present on our devices (or firmware versions). A quick fix could be of course to just in device.py change all of the if result is not None to sth like if result is not None and len(result.registers) > 0.

Alternatively, that check could pushed down into a small helper function that wraps self._modbus.async_pymodbus_call, so it need not be repeated all over.

from nilan.

veista avatar veista commented on June 20, 2024

The problem is either: 1. Your device model does not support these functions, which is an easy fix or 2. Your modbus version does not support these functions, which is more complicated since...

... I designed the software thinking register capabilities are compounding compared to modbus version. Modbus 20 and 21 seem to be outliers since it is where Nilan changed to HMI panel type. 19 is the newest for the old panels and 22 is the newest ive encountered for the touch panel. 19 and 22 have pretty much all functionality available.

This will take time to figure out since Im on a long business trip and dont have access to a developement environment.

from nilan.

veista avatar veista commented on June 20, 2024

Also modbus should not be able to return an empty register. This might be an issue with the newer pymodbus which also needs investigation.

It should give a register not found error.

from nilan.

jypma avatar jypma commented on June 20, 2024

Fair enough :)

I might be leaning towards your explanation (2), since a cursory glance at the options that are available in the (user) menu on my touch control panel don't really relate to the register names here. However, they might be locked under factory/installer settings though, which has some sort of "password" on it that I don't know... and the guys that installed it years ago of course no longer exist... 🙈

Either way, feel free to let it sit for a while, since the important part is working. The integration accepts changes fine, too (now automating Nilan to do extra cooling when our solar cells have excess power).

from nilan.

veista avatar veista commented on June 20, 2024

On cts602 no registers require a password. Only if you access them via the hmi panel. The password for service settings is 2.

I cannot remember the installer password but it was written in some forum. There is nothing you should change so better to not go there, device breaking stuff.

from nilan.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.