Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: ensure the normal Basic CC values are only exposed if they should be, even with the compat event enabled #6485

Merged
merged 2 commits into from
Oct 31, 2023

Conversation

AlCalzone
Copy link
Member

fixes: #5784

@AlCalzone
Copy link
Member Author

@zwave-js-bot automerge

@zwave-js-bot zwave-js-bot enabled auto-merge (squash) October 31, 2023 14:50
@zwave-js-bot zwave-js-bot merged commit 997d607 into master Oct 31, 2023
14 checks passed
@zwave-js-bot zwave-js-bot deleted the basic-cc-event branch October 31, 2023 14:59
AlCalzone added a commit that referenced this pull request Oct 31, 2023
### Features
* Allow disabling the unresponsive controller recovery feature (#6480)

### Bugfixes
* Do not abort timed out `Send Data` commands twice (#6484)
* Ensure the default Basic CC values are only exposed if they should be, even with the compat `event` enabled (#6485)
* Auto-remove failed SmartStart nodes when bootstrapping times out (#6483)
* Do not attempt to poll values from nodes that are considered dead (#6470)
* Fixed an issue where the send queue was blocked when recovering controller from missed Send Data callback failed (#6473)
* Instead of restarting the driver, the serial port is now reopened if controller is still missing ACKs after soft-reset (#6477)
* Do not attempt to recover an unresponsive controller before fully initializing (#6480)

### Config file changes
* Tweak Heatit Z-TRM6 options (#6464)
* Add Ring Alarm Panic Button Gen2 (#6453)
* Update fingerprints for Vesternet devices (#6460)

### Changes under the hood
* Added a `mock-server` hook to run code after initializing mocks (#6478)
* Changed the headline in the logs from "ZWAVE-JS" to "Z-WAVE JS" (#6462)
* Lint device config files as part of CI (#6471)
* The `enableSoftReset` driver option is now deprecated in favor of `features.softReset` (#6480)
@kjetilsn
Copy link

Hello,
I have devices ( Heatit TF016 / TF021) where I need basic CC for automation. In the past I used the basic number entity and later the light entity, now there are no basic entity. How could I change this?

@nesheimt
Copy link
Contributor

nesheimt commented Nov 13, 2024

Hello, I have devices ( Heatit TF016 / TF021) where I need basic CC for automation. In the past I used the basic number entity and later the light entity, now there are no basic entity. How could I change this?

Did you get to the bottom of this @kjetilsn ? I also have the TF021 (v1.92) with no relay status to the controller. There is a issue #4688 that also handles this issue if still interested?

@kjetilsn
Copy link

Yes,
@AlCalzone solved it by making changes to the code, I now have sensors for each device which reports if the relay is on or off through basic commands. You need to add on/off group between each thermostat and the gateway in zwave-js.
image

@nesheimt
Copy link
Contributor

nesheimt commented Nov 13, 2024

The highlighted association seems to be between the thermostat itself and an external device(eg wallplug for Panelovn (Stue))?
Do you have v1.92 installed on your devices(TF021 or 016)?

@kjetilsn
Copy link

My bad,

Below is a better example. No, I tried v1.92, but reverted to 1.8 for som reason I cannot remember why.
image

@nesheimt
Copy link
Contributor

nesheimt commented Nov 13, 2024

Tried those group settings now (and several times before), no luck. Could it be that the changes applies to the TF016 only(019b 0001 0001 is the one you have), it just that v1.92 behaves different to v1.8. The advantage with v1.92 is the capability to control update rate.

@nesheimt
Copy link
Contributor

Here are the "device functionality":
image
I would expect to read the value in one if the highlighted lines.
image
The "Binary Switch v1" can control the relay, but not report it.
The "Basic V2" looks just like a mess...seems to be somethng wrong.

@kjetilsn
Copy link

Hmm,
Perhaps this functionality is "broken" in v1.92 and not sending "basic command" you can check in the zwave-js logs
There is some info in this thread, don’t pay attention to the start as the discussion as some of the info is outdated. You can always try do downgrade to 1.8 and check if that solves it.

https://community.home-assistant.io/t/z-wave-thermostat-heatit-mutireg-status-feedback-energy/35840/29

@nesheimt
Copy link
Contributor

nesheimt commented Nov 13, 2024

I have identified both using Zniffer and the log that v1.92 sendt the "relay information" but it doesn't reach the driver UI.
image
I think that if the current "Basic V2" had been "Basic v1 or v0"(sometimes the node interview fails and sets this to v1 or v0, and then it's ok). I the get the values 0=off and 99=on. I think it should be possible in the config file to somehow "link" this "Basic v1/v0 class" to endpoint 0...but here it stops for me in respect to actually how to do that.

@AlCalzone
Copy link
Member Author

AlCalzone commented Nov 13, 2024

Your screenshot shows Basic CC support on the other endpoints, which means endpoint 0 is hidden automatically.
Do you know if they have any useful functionality on those?

@nesheimt
Copy link
Contributor

This might be what you ask for:
image

@nesheimt
Copy link
Contributor

On this screen shot:
image
the message comes from these settings:
image

@nesheimt
Copy link
Contributor

You could possibly "take" group 2 (denoted as Endpoint1 in Zwave JS UI) if you need an endpoint for a fix?

@nesheimt
Copy link
Contributor

Pleae note that what was fixed in this issue was for the Thermostat TF016, but the I have is TF021(with fw v1.92). Interview logs etc for TF021 v1.92 can be found here #4688

@nesheimt
Copy link
Contributor

@AlCalzone I have established communicaton of sorts with Heatit support, and asked them for details on how they have implemented the "relay reporting". Do you have any spesific questions you say would help making the v1.92 work if answered by Heatit?

@nesheimt
Copy link
Contributor

nesheimt commented Nov 15, 2024

Hi
By changing the COMPAT-section to:

"compat": {
		// The device reports its relay state via the Basic CC
		//"mapBasicReport": false,
		"mapBasicSet":"report",
		"preserveRootApplicationCCValueIDs": true,
		"commandClasses": {
		
	"add": {
				"Multilevel Sensor": {
					"endpoints": {
						"0": {
							"isSupported": true
						}
					}
				}
			},
	
		
		
		
		
		
	"remove": {
				"Supervision": {
					"endpoints": "*"
				}
			}
		}
	}

I now get "relay updates" and "temparature updated" when setting the appropriate associations in end point 1 an 4. For the "relay status" it looks kind of messy, lots of strange stuff in the "box"(but works):
image

I have the feeling that this looks more like awork around than a proper solution. Even so, I will use it in my system unless a "better" config shows up in a future release.

@AlCalzone
Copy link
Member Author

This goes in the direction I would probably have taken, too.
Maybe the Basic values for endpoints 1-4 can be hidden, but I'll have to look at that next week. Too much other stuff that has priority right now.

@nesheimt
Copy link
Contributor

Ah, exactable, this one: "removeEndpoints": "*" instantly looking better.

@kjetilsn
Copy link

kjetilsn commented Dec 3, 2024

@nesheimt
Did you manage do get feeback on the relay state? and if so would you recommend upgrading from FW1.8 to 1.92?

@nesheimt
Copy link
Contributor

nesheimt commented Dec 3, 2024

I made a config-file tailored to my use that works for the 1.92 using floor sensor, and it seems to work fine. Drop the file inside the zip into the config-folder in zwave js iu, and restart the z-wave controller and do a re-interview. This config file will "over-rank" the original config file as long as it's present in the config folder.

You will be able to control the temperature report rate, and get temperature and relay-state reports. The relay state in Homeseer doesn't quite work(no child device is made, and their support don't seem to respond to such issues), but fine as I'm going over to ioBroker at some point anyway.

zwave-js-ui-store (6).zip

@nesheimt
Copy link
Contributor

nesheimt commented Dec 3, 2024

Remember to set the associations to this(for floor sensor):
image

My config file might also work for air-sensors, but havn't tried. Change the associations accordingly.

@kjetilsn
Copy link

kjetilsn commented Dec 3, 2024

Thank you for sharing!
This sounds good. The reason I want to try to upgrade again is that when configured to use i.e.: ext sensor air sesnsor, maximum and minimum floor temperature setting is not respected. I know this works fine with later generation heatit thermostat, hence I'm hoping this will work with 1.92. I will give it a try on one of my devices, if I can remember where I put the cable for flashing the firmware.

@nesheimt
Copy link
Contributor

nesheimt commented Dec 3, 2024

Bwt...you might want to change this:

from: "removeEndpoints": [2,3,4],
to: "removeEndpoints": "*",

If you enncounter problems using air-sensor...remove the whole "removeEndpoints"-statement. You also might have to re-interview several times. If there is an interrupt (messing up the interview) the system will assume some settings instead if using the right ones. An interview that is successful using my settings/configs should end up in this:
image

In Basic V2 0=relay off and 99=relay on. The switch is for controlling/overrriding the relay.

@nesheimt
Copy link
Contributor

nesheimt commented Dec 12, 2024

This goes in the direction I would probably have taken, too. Maybe the Basic values for endpoints 1-4 can be hidden, but I'll have to look at that next week. Too much other stuff that has priority right now.

Seems like the Heatit thermostate device "works fine" in the Zwave JS UI as this, 0=relay off and 99=relay on (which previlously was the missing functionality)
image

But for some reason this "Basic V2 device" is not recognized as a Homeseer child device and thereby showing up in the Homeseer GUI. Can this be related to "Basic V2" or is it likely that Homeseer has a bug/flaw?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants