[Release] Insteon HTTP switch/dimmer

Oh and one last question (for now :wink:): are scenes/groups supported yet?

Sure. Will post something official later, but for now they're right here
Everything but the Hubitat-Insteondirect.groovy, that is the old direct driver.

There should be support via the Keypad driver if we get them working, but honestly it won't make as much sense to build them on the Insteon hub anymore. Hubitat scenes and groups is very good, and the response of Insteon devices is fast. Do you have multiple lights on a few switches in a large room? That hasn't been tested in a real world setup, but I've simulated it and there was no popcorn effect. Scenes are supported by the Insteonlocal driver, and it shares home-controller with the Insteon-server node.js app. Home-Controller is the listener and where the magic happens. We have been able to see the group numbers in the server terminal, so we're trying to get that addressable by button, then using RM you should be able to just use keypad press. Just not sure at this point if that can work without an actual keypad being joined to the Insteon hub.

Yes. This is really the only reason I use groups. I have over-cabinet rope lighting in the kitchen that utilizes 4 dimmable outlets. I use these as a sort of night light in the evening. When a motion sensor is triggered, I slowly ramp up all 4 outlets to a given percentage. I want for these to all ramp up in unison.

1 Like

We can't control ramp rate in the driver like you can with other devices attached to HE. You have to set it in the hardware. So if you want that rate to vary, then you will need to address Insteon scenes. I think it should be doable, but Chris is the one able to make that call better than I. However, if you just need to control specific dimmers in a specific order, that can be done with HE via scenes and many other different ways. I only use the ramp rates set into the hardware or I use fast-on/off. Probably you can simulate the same thing with a RM rule. Just never tried.

I’ll just have to play around with the rules and see how everything works then. Thanks again.

1 Like

@SmartHomePrimer, I'm struggling with how to properly list the devices in the config.json file. Do you have a working example? When I do what I think I'm supposed to do, and click Initiailize on the Insteon Parent, nothing happens.

All the child device code is there? You need a different child device driver for each device type (i.e. Insteon Leak Child, Insteon Contact Child, Insteon Dimmer Child, and Insteon Motion Child).

Yes, I added all of the child device drivers as well as the parent.

After you click Initialize, click Save Device

I don't think it's finding any child devices. To be honest, I'm not sure I configured them correctly in the config file. I haven't found any instructions on how to configure the devices so I hijacked some code from here.

Here's an example. PM me yours if you want and I'll have a look.

"platforms": [
        {
        "platform": "InsteonLocal",
        "name": "Insteon Local Platform",
        "user": "Your Insteon Hub Username",
        "pass": "Your Insteon Hub Password",
        "host": "Your Insteon Node.js server IP address",
        "port": "25105",
        "model": "2245",
        "use_express": "true",
        "server_port": "3500",
        "devices": [
          {
            "name": "Kitchen Light",
            "deviceID": "35F809",
            "dimmable": "no",
            "deviceType": "lightbulb"
          },
          {
            "name": "Floor Lamp",
            "deviceID": "4F8D94",
            "dimmable": "no",
            "deviceType": "lightbulb"
          },
          {
            "name": "Deck Light",
            "deviceID": "55770C",
            "dimmable": "yes",
            "deviceType": "lightbulb"
          },
          {
            "name": "Overhead Light",
            "deviceID": "3D74DD",
            "dimmable": "yes",
            "deviceType": "lightbulb"
          },
          {
            "name": "Porch Light",
            "deviceID": "2B4G24",
            "dimmable": "yes",
            "deviceType": "lightbulb"
          },
          {
            "name": "Table Lamp",
            "deviceID": "3392CC",
            "dimmable": "yes",
            "deviceType": "lightbulb"
          },
          {
            "name": "Toilet",
            "deviceID": "477G99",
            "deviceType": "leaksensor"
          },
          {
            "name": "Contact Sensor",
            "deviceID": "2DDD53",
            "deviceType": "contactsensor"
          },
          {
            "name": "Bathroom Exhaust Fan",
            "deviceID": "5DC3D4",
            "dimmable": "no",
            "deviceType": "lightbulb"
          }

I think "use_express": "true", is leftover from the old Insteonlocal Homebridge plugin. You can probably leave it out.

The device types in the config.json file have to be valid with what is in the Parent driver code. If it doesn't match, then no child device with be created.

Valid values are contactsensor, dimmer, lightbulb, leaksensor

There should be motionsensor too, but I see that it's not in there. @cwwilson08, can you update the parent to add motionsensor when you get a chance please?

1 Like

Lol I thought you were using a contact sensor?

I'll fix it. Soon...

Oh yeah. Haha. I see the child code has contactsensor

OK @peter_aquino, if you have any Insteon motion sensors, just define them as contactsensor in your config.json file. It's the same thing as far as the driver is concerned.

I must be running old insteonserver.js or something. When I format my config.json file like yours, it complains about "platforms" when I try to start the insteonserver. I can remove that, and the server will start, but then it doesn't find any child devices. So far I've just tried to add a single dimmable lightbulb.

I think I'm gonna give up for the night. I've spent 3 hours trying to get this working and it's driving me crazy.

Make sure you are using this version of the insteon server.

All the inputs in the parent driver should be populated. I think the default ws port is 8080. Turn on the debug log switch. Open the logs in another tab. Push the initialize button. See if there is some logging there.

Yeah get some sleep. Things will be clearer and less frustrating. The config.json file from Insteonlocal to Insteonserver didn't have to change. So platforms is perfectly fine to be in there.

It's probably a formatting issue. Some comma missing or close bracket missing. We also need the ws client running or we cannot retrieve the devices and won't get status. So make sure you open a second terminal and start that with node client.js

I used NPM install initially. Does that install a different version?