rodtoll / homebridge-isy-js

Homebridge platform plugin for the ISY series of home controllers from Universal Devices.
MIT License
22 stars 27 forks source link

Insteon Micro Open/Close Device Not Added / Scenes won't trigger without Buttons #46

Closed VeniceNerd closed 7 years ago

VeniceNerd commented 7 years ago

So far all the devices I have added to my ISY994i automatically show up in my Homebridge. However, I just added 4 "Insteon Micro Open/Close Modules" to my ISY994i and they will not show up in Homebridge.

The only way to get them into Homebridge, currently, is to add a scene, add the device to the scene, and then add that scene in the config.json.

I wouldn't even mind this workaround but there seems to be a further complication with this: if I do not also add a "Keypad" button to the scene the device status will be updated in HomeKit when triggered on the ISY but the commands triggered in HomeKit will not be sent back to the ISY.

If I add a physical Keypad button to the scene the communication works both ways.

Here is my example set up:

Three of my shutters are in the master bedroom. I have one scene that will close/open all three. That scene also has a button assigned so that I can open/close them from my Insteon Keypad. This scene works great. Then I have a scene for just the two window shutters and one more scene for just the door shutter. Neither of those two scenes have a button assigned since I only want to control them with HomeKit. However, these do not execute.

So I am finding two bugs at the moment:

  1. Open/Close Module Devices do not get added into Homebridge
  2. Scenes without a button can't be executed from HomeKit

Would love to get those issues resolved if possible. Let me know if I can do anything to help!

Thanks,

Philipp

PaulWieland commented 7 years ago

This is just a device type that isn't yet mapped in the base ISY library. See here

You can modify that file and add it to your own installation. You can also open an issue over at the ISY page to have that device type permanently added.

VeniceNerd commented 7 years ago

Ah I see. Now when you say "ISY library" do you mean the ISY Homebridge plugin one or are you actually talking about the Universal Devices ISY library? Because the ISY994 actually recognizes the device. I can control it from my ISY. It just doesn't show up in Homebridge.

And when you say "open an issue" over at the ISY page, didn't I already do that here? Or are you talking about the Universal Devices website?

Thanks!

macjeff commented 7 years ago

You have to add your devices to the JSON file. The max limit is 100.

Jeff

Sent from my iPhone

On Feb 3, 2017, at 8:04 PM, VeniceNerd notifications@github.com wrote:

Ah I see. Now when you say "ISY library" do you mean the ISY Homebridge plugin one or are you actually talking about the Universal Devices ISY library? Because the ISY994 actually recognizes the device. I can control it from my ISY. It just doesn't show up in Homebridge.

And when you say "open an issue" over at the ISY page, didn't I already do that here? Or are you talking about the Universal Devices website?

Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

VeniceNerd commented 7 years ago

@fahrvergnuugen looked into this a bit more. Couple of questions:

PaulWieland commented 7 years ago

@VeniceNerd

VeniceNerd commented 7 years ago

@fahrvergnuugen

Oh that's very helpful! Found the json and was also able to spit out the XML file. Here is the readout for one of the devices:

<node flag="128">
<address>3B 48 B3 1</address>
<name>Window Shutter Right</name>
<parent type="3">27213</parent>
<type>14.1.72.0</type>
<enabled>true</enabled>
<deviceClass>0</deviceClass>
<wattage>0</wattage>
<dcPeriod>0</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>3B 48 B3 1</pnode>
<ELK_ID>K07</ELK_ID>
<property id="ST" value="255" formatted="On" uom="on/off"/>
</node>

And here is how it shows up on my ISY: screen shot 2017-02-04 at 6 54 36 pm

From those I'd guess I'd need to make the following entry to the isydevicetypes.json:

{ "type": "14.1.72.0", "address": "", "name": "(2444-22) Micro Module Open/Close v.48", "deviceType": "Outlet", "connectionType": "Insteon Wired", "batteryOperated": false }

Is that correct? Not sure if I'd need to add anything in the "address" part, though? I see some entries have a "1" there?

PaulWieland commented 7 years ago

Some insteon devices have more than one circuit in them (like the i/o link and fan controllers) and therefore it publishes more than one device address. The Address field in isydevicetypes.json file is there to filter them and set those up as separate homekit device types if necessary.

In your case you should just leave it blank.

The "Name" should be the type of insteon device it is, e.g. (2444-222) Insteon Micro Open/Close Module, not the user defined name you gave it in your ISY.

VeniceNerd commented 7 years ago

It worked! I'll also report the correct string over at the other forum for inclusion. :)

VeniceNerd commented 6 years ago

@fahrvergnuugen do you know how complicated it would be to add support for the “public.hap.service.window-covering” HomeKit Service to the base ISY library? I have been running my Micro Open/Close Module as a outlet for the past year and that works fine but I’d really love for my shutter to be identified as windows coverings in HomeKit. It would make using them with Siri so much easier.

bca5aeff-097a-4e08-ae0f-3506981312e5

Would love to hear your thoughts on how complicated you think this would be...

PaulWieland commented 6 years ago

I'll look into it when I get some free time. Are you using node-red by any chance? If so, you could solve this problem with the mqtt homebridge plugin + node-red...

VeniceNerd commented 6 years ago

@fahrvergnuugen awesome! I assume it shouldn’t be “too” difficult. I already added the Micro Open/Close module in isydevicetypes.json but currently have the “deviceType” set to “outlet”.

So really all we would need to figure out is where the plugin translates it’s internal “outlet” deviceType to the HomeKit “public.hap.service.outlet”.

Then we could duplicate that entry and create a new internal device “window-covering” and map it to “public.hap.service.window-covering”.

I assume the “public.hap.service.outlet” is close enough to “public.hap.service.window-covering” to make this fairly straight forward?

a512bb3d-ed5f-4bda-8552-3e23b71e46ba 2253386e-882d-4fb1-8ed9-8fe03ab3ec33

Would probably be even simpler if the ISY plugin already has garage door openers defined and we could just take that device and duplicate it to a window covering since they have the same characteristics:

30eadebc-7db2-48e0-9abb-27da67b2f562

You mentioned the plugin already has support for garage doors but I didn’t see it in the json file.

VeniceNerd commented 6 years ago

Oh and I don’t know what mqtt homebridge plugin or node-red are. What do they do?