LZW45 (light strip) drivers for home assistant?

It solves the issue of setting a color via turn_on, but not using the color wheel.

Gotcha. Thanks for clarification

Thanks for the clarifications @petro. As I understand it, there are currently no solutions for using the color wheels? I tried setting a default transition for the light entity with light_profiles.csv and that didn’t do anything either.

Is there currently a process for successfully including the LZW45 to OZW 1.6?

I would like to avoid the hassle of what @nappyjim endured

I checked the device database for 1.6 and it’s not there still. So I until it gets added there, I think manually adding it the way I did is only way.

Wasn’t that bad once it was all done and figured out, lol.

the new z-wave-js is here. I am going to try it out and hopefully avoid all these problems.

1 Like

I don’t know about you, but I’m having limited support with z-wave JS. All I can do is toggle power state and brightness. Color commands are non-responsive

I assume this is due to the lack of a proper config, but I’m not sure of a path forward given the changes to how configs are handled with z-wave JS. Love to know of a workaround until the config gets officially added!

Oh wow! I knew about ZWave JS but I thought it was a ways off before going official integration status. This great news!

I guess on my weekend I’ll work on migrating my devices over.

Hmmm…I was just reading the integration page for Z-wave JS:

  • Configuration of Z-Wave nodes and/or configuration with the Home Assistant UI is currently not yet implemented. You will need to use another tool, such as zwavejs2mqtt, to manage device configuration.
  • Polling is currently not supported but may be added in a later release.
  • Support for setting configuration parameters through service calls is currently not supported but may be added in a later release.

Doesn’t sound like it will work exactly as well as OZW 1.4/1.6 work right off the bat, but its certainly promising that after 1 month of work its an official integration.

Yah I would hold off. No way to set config parameters through a service call (for now). And for me, thats a deal breaker.

1 Like

I use the service calls to change parameters daily.

I’ll keep my eye on the updates.

1 Like

Hey Eric, what’s the most up to date version of the OpenZwave mfg file? I’m using Zwave JS and I’ll try to make a config file for that platform. I want to make sure I have all the correct information.

Hi @petro

I started working on an initial config file if you want to use it as a baseline. I created it completely by hand, and have not entered all the sub-parameters, but it might give you a place to start. I have been unable to test it so far due to issues getting zwaveJS to complete the node interview on the LZW45.

{
	"manufacturer": "Inovelli",
	"manufacturerId": "0x031e",
	"label": "LZW45",
	"description": "LED Light Strip",
	"devices": [
		{
			"productType": "0x000a",
			"productId": "0x0001"
		}
	],
	"firmwareVersion": {
		"min": "0.0",
		"max": "255.255"
	},
	"supportsZWavePlus": true,
	"paramInformation": {
		"1": {
			"label": "Number of Pixels",
            "description": "When individually addressable LEDs are used, this parameter tells the controller the number of pixels that are attached. 0: Automatic recognition of pixels. Range 1 - 130: Set the fixed value of the pixel bit. Default: 0",
			"unit": "pixels",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 130,
			"defaultValue": 0,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"2": {
			"label": "Dimming Speed",
            "description": "This changes the speed in which the light strip dims up or down. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed.",
			"unit": "seconds",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 98,
			"defaultValue": 4,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"3": {
			"label": "Ramp Rate",
            "description": "This changes the speed in which the light strip turns on or off. For example, when a user sends the switch a basicSet(value: 0xFF) or basicSet(value: 0x00), this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 99 should keep this in sync with parameter 2. Default: 99",
			"unit": "seconds",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 99,
			"defaultValue": 99,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"4": {
			"label": "Minimum Level",
            "description": "The minimum level that the strip can be dimmed to. Useful when the user has an LED strip that does not turn on or flickers at a lower level.",
			"unit": "%",
			"valueSize": 1,
			"minValue": 1,
			"maxValue": 45,
			"defaultValue": 1,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"5": {
			"label": "Maximum Level",
            "description": "The maximum level that the strip can be dimmed to. Useful when the user has an LED strip that reaches its maximum level before the dimmer value of 99.",
			"unit": "%",
			"valueSize": 1,
			"minValue": 55,
			"maxValue": 99,
			"defaultValue": 99,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"6": {
			"label": "Auto Off Timer",
            "description": "Automatically turns the strip off after this many seconds. When the strip is turned on a timer is started that is the duration of this setting. When the timer expires, the strip is turned off. 0 - Auto off is disabled",
			"unit": "seconds",
			"valueSize": 2,
			"minValue": 0,
			"maxValue": 32767,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"7": {
			"label": "Default Level (Local)",
            "description": "Default level for the strip when it is powered on from the local switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 99,
			"defaultValue": 0,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"8": {
			"label": "Default Level (ZWave)",
            "description": "Default level for the dimmer when it is powered on from a Z-Wave command (i.e. BasicSet(0xFF)). A setting of 0 means that the switch will return to the level that it was on before it was turned off.",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 99,
			"defaultValue": 0,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"9": {
			"label": "Default Color",
            "description": "Values between 2700-6500 represent a color temperature. Values between 0-360, represent the color on the Hue color wheel. The value of 361 represents a random color. Formula = [Color Temperature] * 256 + [Color Hue]",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 2147483647,
            "unsigned": true,
			"defaultValue": 2700,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"9[0xff]": {
			"label": "Default Color - Hue",
            "description": "Values between 0-360, represent the color on the Hue color wheel. The value of 361 represents a random color",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 361,
            "unsigned": true,
			"defaultValue": 0,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"9[0xffffff00]": {
			"label": "Default Color - White Temperature",
            "description": "Values between 2700-6500 represent a color temperature. The value of 0 means the white LEDS will remain off",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 6500,
            "unsigned": true,
			"defaultValue": 0,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"10": {
			"label": "State after power Restored",
			"description": "The state the switch should return to once power is restored after power failure.",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 2,
			"defaultValue": 2,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": false,
            "options": [
              {
                "label": "Off",
                "value": 0
              },
              {
                "label": "On",
                "value": 1
              },
              {
                "label": "Previous",
                "value": 2
              }
            ]
		},
		"17": {
			"label": "Active Power Reports",
            "description": "The power level change that will result in a new power report being sent. The value is a percentage of the previous report. 0 = disabled.",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 100,
            "unsigned": true,
			"defaultValue": 10,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},      
		"18": {
			"label": "Periodic Power and Energy Reports",
            "description": "Time period between consecutive power and energy reports being sent (in seconds). The timer is reset after each report is sent. 0 = disabled, 30-32767 = seconds",
            "unit": "seconds",
			"valueSize": 2,
			"minValue": 0,
			"maxValue": 32767,
            "unsigned": true,
			"defaultValue": 3600,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},  
		"19": {
			"label": "Energy Reports",
            "description": "The energy level change that will result in a new energy report being sent (in kWh). 0 = 0.01kWh, 10=0.1kWh, 100=1kWh",
            "unit": "kWh",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 127,
            "unsigned": true,
			"defaultValue": 10,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		}, 
		"21": {
			"label": "Quick Strip Effect",
            "description": "See website for details",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 2147483647,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
        "21[0xff]": {
            "label": "Quick Strip Effect - Color Value",
            "description": "If Color Type = Hue, this represents a color hue with values 0-255.  If Color Type = Temperature, this represents a White color Temperature between 0-255, with 0 being Warm White and 255 being Cold White.",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 255,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
        },
        "21[0x40000000]": {
            "label": "Quick Strip Effect - Color Type",
            "description": "Identifies if the Color value represents a color Hue or White Temperature",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 1,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": false,
            "options": [
              {
                "label": "Color Hue",
                "value": 0
              },
              {
                "label": "White Temperature",
                "value": 1
              }
            ]
        },
        "21[0xF000000]": {
            "label": "Quick Strip Effect - Color Effect",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 6,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": false,
            "options": [
              {
                "label": "Off",
                "value": 0
              },
              {
                "label": "Solid",
                "value": 1
              },
              {
                "label": "Chase",
                "value": 2
              },
              {
                "label": "Fast Blink",
                "value": 3
              },
              {
                "label": "Slow Blink",
                "value": 4
              },
              {
                "label": "Pulse",
                "value": 5
              },
              {
                "label": "Slow Fade",
                "value": 6
              }
            ]
        },
        "21[0x3ff00]": {
            "label": "Quick Strip Effect - Level Scale",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 1,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": false,
            "options": [
              {
                "label": "10% Increments",
                "value": 0
              },
              {
                "label": "ZWave Level Scale",
                "value": 1
              }
            ]
        },
        "21[0x40000000]": {
            "label": "Quick Strip Effect - Brightness Level",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 99,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
        },
        "21[0x40000000]": {
            "label": "Quick Strip Effect - Effect Duration",
            "description": "1-60 is seconds, 61-120 is minutes, 121-254 is hours, 255 is forever",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 255,
			"defaultValue": 0,
            "unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
        },
		"22": {
			"label": "Custom Strip Effect Parameter 1",
            "description": "see website",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 2147483647,
			"defaultValue": 0,
			"unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},        
		"23": {
			"label": "Custom Strip Effect Parameter 2",
            "description": "see website",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 2147483647,
			"defaultValue": 0,
			"unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"24": {
			"label": "Custom Strip Effect Parameter 3",
            "description": "see website",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 2147483647,
			"defaultValue": 0,
			"unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},
		"30": {
			"label": "Custom Strip Effect Parameter 4",
            "description": "see website",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 2147483647,
			"defaultValue": 0,
			"unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},        
		"31": {
			"label": "Pixel Effect",
            "description": "see website",
			"valueSize": 2,
			"minValue": 0,
			"maxValue": 32767,
			"defaultValue": 0,
			"unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": true
		},         
		"51": {
			"label": "Disable Physical On/Off Delay",
            "description": "The 700ms delay that occurs after pressing the physical button to turn the switch on/off is removed. Consequently this also removes the following scenes: 2x, 3x, 4x, 5x tap. Still working are the 1x tap, held, released, and the level up/down scenes. (firmware 1.36+)",
			"valueSize": 1,
			"minValue": 0,
			"maxValue": 1,
			"defaultValue": 0,
			"unsigned": true,
			"readOnly": false,
			"writeOnly": false,
			"allowManualEntry": false,
            "options": [
              {
                "label": "No Delay (some scenes disabled)",
                "value": 0
              },
              {
                "label": "700ms Delay (all scenes enabled)",
                "value": 1
              }
            ]
		}
	}
}
1 Like

What issues are you running into on the interview process? I was going to go through that this weekend

The hub is querying all the parameters on the LZW45, over and over forever (once it attempts to query each parameter, it starts over from the first parameter). The only way I could get it to stop was to exclude the device. My log file was growing by a meg every couple minutes.

I have other deives that do not have a config file, and they included just fine, but the LZW45 is the only 700 series device I own. I believe with the 700 series, the config parameter values and names can actually be queried from the device itself. I suspect a bug in ZWavejs realted to 700 series devices, but have been unable to confirm anything.

My log file is too big to post the whole thing, but this is what it is filled with:

22:23:15.840 CNTRLR » [Node 041] querying parameter #6 value...
22:23:15.876 CNTRLR » [Node 041] querying parameter #7 information...
22:23:15.989 CNTRLR « [Node 041] received information for parameter #7:
                      parameter name:      Default Level(Local)
                      value format:        UnsignedInteger
                      value size:          1 bytes
                      min value:           0
                      max value:           99
                      default value:       0
                      is read-only:        false
                      is advanced (UI):    false
                      has bulk support:    false
                      alters capabilities: false
22:23:15.989 CNTRLR » [Node 041] querying parameter #7 value...
22:23:16.024 CNTRLR » [Node 041] querying parameter #8 information...
22:23:16.137 CNTRLR « [Node 041] received information for parameter #8:
                      parameter name:      Default Level(Z-Wave)
                      value format:        UnsignedInteger
                      value size:          1 bytes
                      min value:           0
                      max value:           99
                      default value:       0
                      is read-only:        false
                      is advanced (UI):    false
                      has bulk support:    false
                      alters capabilities: false
22:23:16.137 CNTRLR » [Node 041] querying parameter #8 value...
22:23:16.173 CNTRLR » [Node 041] querying parameter #9 information...
22:23:16.290 CNTRLR « [Node 041] received information for parameter #9:
                      parameter name:      Default Color&Temp
                      value format:        UnsignedInteger
                      value size:          4 bytes
                      min value:           0
                      max value:           425984361
                      default value:       262144000
                      is read-only:        false
                      is advanced (UI):    false
                      has bulk support:    false
                      alters capabilities: false

It stops after a while. I noticed that it did that as well.

Same exact thing is happening with my LZW36’s. Just for reference. They are also 700 series.

From what I understand, these devices don’t follow the standard and exceptions have to be made. I’m wondering if a configuration file will fix that.

I forgot that the LZW36 is also 700 series. I did not experience the same issue with the Fan switch.

I ended up excluding the LZW45 after 15 minutes. Did it take longer than that for you?

Thats what the devs were saying during the release party yesterday too, I’m frankly guessing that Inovelli had to work AROUND the limitations of the z-wave spec because there isn’t a fan/light/dimmer/rgb combo. I have started a separate thread and tagged EricM for response, but I can be patient.