InvisOutlet - advice on how to proceed with creating a driver

I have 2 InvisOutlets from Kickstarter. They seem well-built and have both MQTT and web socket (undocumented) API's. MQTT works well with Mosquitto.

Has anyone started working on a driver? I'd prefer web socket to avoid an additional device for an MQTT broker on the network.

The outlet has Temp, RH, AIQ, CO2, and occupancy sensors. Does it make sense to make the sensors sub-devices?

Any advice on how to proceed would be appreciated.

I don't think I've seen anything recently, though the manufacturer was active in this topic, and perhaps if you requested an update (or that they send staff an engineering sample with the WS or TCP API docs), they might be receptive:

If you wanted to write a driver on your own, the websocket API sounds like the easiest path for direct integration. You're going to need to know at least the basics of the Hubitat development environment (and hub features like events/attributes), how to write a driver in general, and how to use Hubitat's documented websocket interface for communication. This document, plus the suggested prior reading linked to from it, might be a good starting point: Building a LAN or Cloud Driver | Hubitat Documentation

2 Likes

Rather than a LAN driver, and/or WebSockets, given that this device supports Matter out of the box, and in the two years since, matter has been added to HE - Wouldn't Matter over Wifi be the path of least resistance?

1 Like

Yes, but for that I didn't see Matter mentioned in their marketing, probably because it was too early at that time. :slight_smile:

If that is the case, I'd expect at least basic functionality to be available via Generic Matter Multi-Endpoint Switch or perhaps Generic Matter Outlet for control of the whole thing, though the specialized features would require a more specific driver that knows about them (and presupposed that they are exposed over Matter at all, which as we know from many existing devices, can be a distinction between manufacturer-specific APIs and Matter or even other standards).

1 Like

I forgot to mention that adding the device via Matter gives one a single switch and no sensors. I don't see evidence of multiple endpoints. The concept of multiple endpoints is what I was searching for in the OP and allows me to understand how to use the sensors in dashboards.

I still have not found any web socket interface description. It can probably be figured out via the http interface, but I hate to spend my time that way though.

Dave

If you change the driver to Generic Matter Multi-Endpoint Switch, assuming that's not what it paired as, and run "Configure," does anything change?

1 Like

I've tried to change the type to Generic Matter Multi-Endpoint Switch, but the hub becomes unstable - either a loop or memory leak, and I have to reboot and remove the device. I don't know how to debug this any further.

Have you approached them for documentation on their WS API? There are lots of WS drivers available in the community; so it would be relatively easy to use those as a model and create a driver for this device - if the WS API is documented.

Try using [RELEASE] Matter Advanced Bridge (limited device support) to bring the device into Hubitat via Matter. It can create child devices for each endpoint and might be able to get more functionality out of it.

2 Likes

I've installed the Matter Advanced, but now what? Installing the InvisiOutlet as a matter device gives me no method to change the driver.

I've requested documentation. Have received no response so far.

Did you go read the directions (Matter Advanced Bridge ‐ Installation · kkossev/Hubitat---Matter-Advanced-Bridge Wiki · GitHub) on what to do after installing via HPM? Basically, you need to do the following after adding the device via Matter to Hubitat:

  1. Manually change the driver to 'Matter Advanced Bridge'
  2. Click on the 'Save Preferences' button
  3. Click on the 'Initialize' button, then hit F5 to refresh the web page
  4. Discovery - Discovering the Matter Bridge capabilities and all the bridged devices' capabilities are automated. All you need to do is click on the "_Discover All" button and wait for the discovery process to finish

Once completed, it should create child devices of attributes (see Matter Advanced Bridge ‐ use with Matter devices · kkossev/Hubitat---Matter-Advanced-Bridge Wiki · GitHub).

2 Likes

Do we know that the device is exposed as a Matter Bridge and not just a single device (with all the appropriate clusters)?

1 Like

I'm going to tag @kkossev as he can explain it better than I can. His driver has a "fun" side effect in that it works with both Matter bridges and single, Matter devices. Based on what I can find at the InvisOutlet website (InvisOutlet Pro) and the Matter Advance Bridge Device Type Supported (Matter Advanced Bridge ‐ Device Types support · kkossev/Hubitat---Matter-Advanced-Bridge Wiki · GitHub) webpages, I think @user1203 will be able to get child devices for:

Switches (on/off control of outlet)
Illuminance
Temperature
Humidity
Motion (occupancy)
Dimmer (for the night light)

Granted, this does assume that the device has the appropriate clusters and did not do something custom. All bets are off if it is the latter. With that said, if the OP has either Apple or Google Home and connects the device via Matter to one of their platforms, we might get a better idea of what is possible.

2 Likes

Hi, I read the documentation, but as stated, I do not see where the driver is exposed for a change. Based on the notes, I expected to see it on the Preferences page.

What am I missing?

Thanks,
Dave

The Device Driver Type is not listed under the device's Preferences tab. It can be found on the Device Info tab for the particular device.

3 Likes

Oh, I was looking for a Driver Type, and missing the Type field.

Thanks, I now get 8 endpoints! This is a lot better than writing a new driver.

4 Likes