SphtKr / homebridge-zway

Homebridge plugin for (better) HomeKit support of RaZBerry and Z-Way Server
ISC License
85 stars 38 forks source link

Tags do have no effect #131

Open JimBeam1 opened 5 years ago

JimBeam1 commented 5 years ago

I am using the latest version of homebridge, the zway plugin and the z-way server. For fine-tuning-reasons I tried to set some tags using the z-way webinterface. But regardeless of which tag I set on the different devices, they all do have no effect on what the plugin tells homebridge the device should be recognized.

I did a clean installation of the whole pi OS, NodeJS/npm, homebridge, the zway plugin and the z-way server to make sure that there were no files left on my pi to get the old data from.

Does anyone know, how to make the plugin recognize the correct devices they are told to be in the tags?

dkattan commented 5 years ago

I appear to be having this problem also, specifically trying to get a multilevel switch to show up as a fan.

steve-williamsjr commented 4 years ago

I appear to be having this problem also, specifically trying to get a multilevel switch to show up as a fan.

Were you ever able to get this resolved? I setup my system specifically for use with GE fan switches, and I’ve been running that for over a year without issue. But, I recently wanted to try the Ring camera plugin, and basically started from scratch to get all set up with the latest versions of everything. Everything seems to be working except for the fan type, and I don’t know why. If I look at the device JSON from zway, the tag is there. But, homebridge sees it as a lightbulb.

I went so far as to modify index.js so that it should have set everything as a fan, yet it seemed to have no effect. That means either I don’t know how to properly rebuild/refresh the module (entirely possible - I’m a low level firmware guy), or the issue is the newer versions of homebridge not recognizing what the plugin is passing to it.

dkattan commented 4 years ago

Yes, just a few days ago I removed the version of the plugin that came from npm and installed it from the master branch using the git repo url and it worked as expected. So does everything else and I have ~60 Z-wave devices.

The issue now is that the latest version in master was never published to npm.

steve-williamsjr commented 4 years ago

Yes, just a few days ago I removed the version of the plugin that came from npm and installed it from the master branch using the git repo url and it worked as expected. So does everything else and I have ~60 Z-wave devices.

The issue now is that the latest version in master was never published to npm.

That’s great! I actually figured out how to get it to load the version of index.js I was debugging and was able to get something going, but I’d much rather install the working file than hack something.

What process did you use to install from Git? All the instructions I’ve found generate a bunch of permissions errors for me.

EDIT:Actually, I think I’m going to run with my locally modified index.js. I downloaded the one from the repo as a start and that fixed my issue. I started playing around with overriding the min step so the slider would jump between 3 speeds. If I did 33 it would progress ok from low to medium, but then when it went back down to 33 it would slow down. I guess it must be right on the edge and it needs to pass the thresholds in either direction. Anyway, I set it to 30 and it fixed the issue but the slider wasn’t filling all the way on high so I changed the max value to 90 from 100. I was shocked that not only does iOS show 90% as a full slider, it actually displays 100%. So, if I touch anywhere in a third of the slider it will jump to 33%, 67%, or 100% on the display, but will actually send 30%, 60%, or 90% to the switch. This seems to reliably change speed no matter which two you jump between. And, most surprisingly, I can actually ask Siri to set it to low, medium, or high. I don’t know if I could do that before but I didn’t think so and was always giving her percentages. This is darn near perfect now!

dkattan commented 4 years ago

npm install git+ https://github.com/SphtKr/homebridge-zway.git

Are you sure there isn’t a parameter you can pass to the switch itself to fix the ramping? I did that on my dimmers and it fixed homekit updating issues when changing the brightness. I’m curious to see exactly what changes you are making.

steve-williamsjr commented 4 years ago

npm install git+ https://github.com/SphtKr/homebridge-zway.git

Are you sure there isn’t a parameter you can pass to the switch itself to fix the ramping? I did that on my dimmers and it fixed homekit updating issues when changing the brightness. I’m curious to see exactly what changes you are making.

The switch itself seems to jump fine between steps if you use the physical button, and I couldn't find anything configurable. My problem was that without overriding it in the plugin (which doesn't happen anywhere currently), all fans will report to HomeKit that they have a 0-100 range with a step of 1. In this case you can set the slider to anywhere you want, it will command that value to the switch, and then it will go to 1 of 3 speeds depending on where your slider was.

Now when you move the slider it will snap to the nearest even third and you know exactly which speed it is. Before if it was at 33% it looked like it was low, but it could be either low or medium, and it depended on which direction you were going from (30% to 33% would transition low to medium but 36% to 33% would stay on medium). More importantly than the slider, though, is Siri. Before when I'd ask to turn up/speed up/increase or slow down/turn/down/decrease the fan it would go by a couple percent and not change the speed until it crossed a threshold. Now it jumps right over the threshold and definitively changes speed in one action.

I don't want to hijack this issue too much but I'm not sure the best place to discuss this topic (Reddit maybe?) since I'm not well versed on contributing to public projects. I think you should be able to see my changes here: https://github.com/b5rt/homebridge-zway/tree/GE_Fan_Switch

I'm at work so I can't test it at the moment (I just rewrote it from memory), but I think the syntax is OK. Once you add a tag to the device "Homebridge.Device.Special:GE_InWallSmartFan" it should change the settings.

JimBeam1 commented 4 years ago

I am not sure, which setting made it work, but the tags do work since a few weeks.

Today I discovered another issue, that could have an effect maybe also for the tag problem:

HomeKit worked fined for me switching zway-devices using homebridge and the zway-plugin. But I had not been able to receive push notifications. Looking in the log showed me a problem that I did not connect to the disability of receiving the push notifications, but I fixed it and now, push notifications do work!

The problem was, that I gave two devices the same name in the zway-Interface: Outlet in room 1 and outlet in room 2. The log showed that there was a problem adding outlet in room 2 because of a device already using this name. Since I only use these outlets for repeating the zway-signal I did not recognize that the outlet(s) did not appear in HomeKit. Now, renaming outlet in room2 to outlet Kitchen, HomeKit is showing both outlets and HomeKit now receives push notifications.

What I am trying to say is: Maybe there is a small problem in your configuration, that has nothing to do with the issue you try to solve...

immensenet commented 4 years ago

@b5rt I just installed your version of the code and it works as expected. You have to include both tags: Homebridge.Service.Type:Fan Homebridge.Device.Special:GE_InWallSmartFan

Go ahead and submit a Pull Request so @SphtKr can merge it into master.