HomeSeer HS-FLS100+ Z-Wave Plus Outdoor Floodlight Sensor

take a look at logs. easy way is to go to http://vera_ip/cgi-bin/cmh/log.sh?Device=LuaUPnP

Logs - MiCasaVerde

Logs should be easier to undestand.

Thank you for responding so quickly. I didn’t know how to find that log - very helpful. I’ll try to debug but here’s what looks like the relevant part:

01 10/15/20 5:57:32.026 LuaInterface::LoadCode: [string “devices = {…”]:11: ‘)’ expected (to close ‘(’ at line 9) near ‘local’ <0x778f2320>
01 10/15/20 5:57:32.028 JobHandler_LuaUPnP::Run cannot start lua with code:
devices = {
[61] = {sensorID = 89},
[65] = {sensorID = 94},
[63] = {sensorID = 95}
}

function copyVariable(dev_id, service, variable, oldValue, newValue)
if tonumber(oldValue) ~= tonumber(newValue) then
luup.log(string.format(“Setting %s - %s for #%s to %s”, service, variable, tostring(deviceID), tostring(newValue))

	local deviceID = devices[dev_id].sensorID
	luup.variable_set(service, variable, newValue, deviceID)
end

end

for deviceID, _ in next, devices do
luup.variable_watch(“copyVariable”, “urn:micasaverde-com:serviceId:SecuritySensor1”, “Tripped”, deviceID)
end <0x778f2320>

Any quick finds there?

UPDATE:

I tried adding a close parentheses to the end of Line 9 as follows:

luup.log(string.format(“Setting %s - %s for #%s to %s”, service, variable, tostring(deviceID), tostring(newValue)))

That maybe fixed part of the problem - it isn’t erroring in the same way. But now it seems to not be fully implementing (please see below). Any thoughts on how to fix?

10/15/20 10:46:31.150	LuImplementation::Parse can't parse xml /etc/cmh-lu//D_MotionSensor1.json <0x77a70320>

01 10/15/20 10:46:31.150 JobHandler_LuaUPnP::ParseAllImplementations failed to parse D_MotionSensor1.json <0x77a70320>

01 10/15/20 10:46:40.241 LuImplementation::StartLua skipping device 89 implementation valid 1 <0x76fbe520>
01 10/15/20 10:46:40.242 LuImplementation::StartLua skipping device 95 implementation valid 1 <0x76fbe520>

Ok - I think I’ve got it working just about right on! I compared the advanced settings for the two devices that were being skipped to the one that wasn’t and I noticed in the two that were being skipped I’d included the .json file also in the implementation file. So I removed that in both and now all three seem to be working! Huge kudos @therealdb - thank you!

I did notice that when I try to arm the motions it fails to do so and I get in the logs:

08 10/15/20 11:15:35.479 JobHandler_LuaUPnP::HandleActionRequest device: 89 service: urn:micasaverde-com:serviceId:SecuritySensor1 action: SetArmed <0x73af8520>
08 10/15/20 11:15:35.479 JobHandler_LuaUPnP::HandleActionRequest argument DeviceNum=89 <0x73af8520>
08 10/15/20 11:15:35.479 JobHandler_LuaUPnP::HandleActionRequest argument serviceId=urn:micasaverde-com:serviceId:SecuritySensor1 <0x73af8520>
08 10/15/20 11:15:35.480 JobHandler_LuaUPnP::HandleActionRequest argument action=SetArmed <0x73af8520>
08 10/15/20 11:15:35.480 JobHandler_LuaUPnP::HandleActionRequest argument newArmedValue=1 <0x73af8520>
08 10/15/20 11:15:35.480 JobHandler_LuaUPnP::HandleActionRequest argument rand=0.8235879829902095 <0x73af8520>
02 10/15/20 11:15:35.480 Device_LuaUPnP::HandleActionRequest 89 none of the 0 implementations handled it <0x73af8520>
02 10/15/20 11:15:35.480 JobHandler_LuaUPnP::RunAction device 89 action urn:micasaverde-com:serviceId:SecuritySensor1/SetArmed failed with 501/No implementation <0x73af8520>

I suspect I may not have perfectly implemented the virtual devices as you directed. Here’s what they look like:

Did I do anything wrong there?

Sorry about the parenthesis, cut&paste error.

You’ll need a virtual device to support arming the sensor. It’s not that trivial. Try one of my virtual devices here: dbochicchio/vera-VirtualDevices: Virtual HTTP Devices plug-in for Vera and openLuup (github.com)

this should work regardless of the HTTP endpoints, but I’ve never tested it.

No problem at all - thank you again for all the help - you just made these devices functional for me - I really appreciate it!

1 Like

@cw-kid
Dont suppose you ever managed to get Param 1 to control the light on duration? Setting Param 5 to 1 and Param 6 to 0, the manual would lead one to believe that Param 1 would control how long the light stays on, once PIR detected and below the configured LUX setting. No matter what I tried, didnt work… I was only able to control this with the dial on the back of the sensors. Have 2 of the Homeseer versions to tinker with. I did create one virtual motion sensor and trying to figure out the best way to copy over the trigger value from the main device - trying to investigate a way to do this with reactor. Figured out how to monitor, but figure I would need the action to perform a lua call of sorts, since there is no native Reactor support to tinker with virtual device setting values.

That’s what I said previously. So yes looks like I set parameter 1 to 60 seconds.

Parameters 5 & 6 what are those?

Never used Reactor for Vera plugin.

I do use Multi System Reactor however.

Easy to set a Vera device variable in an Action, like setting the virtual motion sensors tripped variable to 0 or 1.

Or you can just use some LUA code to set its tripped variable.

Change the ID number 101 to whatever ID number your virtual motion sensor device is.

LUA code to trip the virtual motion sensor:

luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 1,101)

LUA code to un-trip the virtual motion sensor:

luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 0,101)

In the manual we have the following:

These are defaults, and it should work as you suggested. I have Param 1 set to 300 as 2 byte dec. On the back of the unit, I had the PIR turned all the way counter clockwise, so 8 seconds I believe. Well, it would only light up for 8 seconds when triggered. Almost like BOTH devices were not using the Param 1 value. Of course, I do see the binary light turn on when the light turns on, so both devices are properly included into the Zwave network, and I am getting respective temp and lux readings. I have even tried to tweak the Param 1 value a few times and nothing. Supposedly 8 to 720 is a valid value for this. Strange.

When you say set a Vera device variable in an Action, I only see a limited number of options on the Virtual motion sensor. Take a look at the following:

I suspect that the only way to perform this with Reactor is run lua commands as you suggest.

Parameters 5 & 6 are in the user manual for the Everspring light?

Or a HomeSeer PIR unit?

There is no temp on the Everspring light.

Unless you have a new model or something

In my experience with this Everspring light the Z-Wave parameters for Time and LUX override anything the physical dials might be set as.

There was no parameters 5 & 6 in the user manual I used. Or I would or posted screen shots of them from the manual.

In the top left of your Reactor screen shot what other options do you have in that drop down menu?

The one that is currently using Device Action.

The user manual you are using here is for the HomeSeer HS-FLS100+ PIR.

The parameter settings are different to that of the Everspring unit and there is more of them, 8 parameters in total.

There are only 4 parameter settings in the Everspring user manual.

So either you are using the wrong user manual or you are causing confusion by not stating you have a HomeSeer unit.

These params are in the Homeseer HS-FLS100 Gen2 unit, which appears to be heavily based on the Everspring light (probably the same electronics). Here is the manual: https://homeseer.com/wp-content/uploads/2020/12/HS-FLS100-G2-Manual.pdf. It explicitly states that the LUX setting is overridden but not the PIR setting. Strange, right?

Here are the other reactor options:

Definitely mentioned in my post that I have 2 of the Homeseer units. It is very similar to the Everspring unit but adds the temp sensor and all of the info you posted for the Everspring unit was relevant. I only had to apply the Motion Sensor attributes to the Generic created object so that I could get the sensor related variables to show up… I just had to manually add the Armed variable. Apologies for any confusion.

Try the “Set Variable” option in that drop down menu then.

There are a few threads about the HomeSeer HS-FLS100 device, this is one of them here.

Please ask your questions about its parameter settings on that thread not here. And I will answer them if I can.

And if you have any further Reactor questions please ask them on that other Reactor thread you started.

@polskikrol

I’ve move our conversation to this HomeSeer HS-FLS100 thread. If you still have any questions about the Params just ask here now.

Thanks

@polskikrol


Parameter setting number 2 is for the LUX threshold. So if the LUX light level falls below this value then the light will be turned on if motion is detected.

“This setting overwrites the LUX level set by the LUX knob”.

Parameter number 1 “PIR Trigger of Period”.

This looks like the amount of time the Light will stay on for, so if you set 300 seconds it should stay on for 5 minutes.

And yes it is strange it also does not state that this parameter setting will overwrite the Time knob also.

On the Everspring flood light unit parameter number 1 definitely overwrites what ever the Time knob is set as.

Parameter number 5 I belive is OK at the default of value 1.

Parameter number 6 you currently have set with a value of 0 which is default. Which also seems to be correct to me.

Can you post a screen shot of your current parameter settings under “Device Options”.

On my Everspring Flood light I changed the Generic IO device (Parent device) with the On/Off buttons on it, to a Binary Light device not a motion sensor device.

I created myself an additional virtual motion sensor device and linked the tripped variable of the parent device to the tripped variable of the virtual motion sensor device, via some Lua code in the Lua startup.

Or as you said if you don’t want to use that code in LUA startup you can probably do it in Reactor rules instead.

Your trigger would be that the tripped variable on the parent device has changed to a value of 1 and your action would be to set the tripped variable on the virtual motion sensor to 1.

And you would need to do the reverse also, so when the parent device tripped variable changes back to 0 then you’d need an action to set the tripped variable on the virtual motion sensor device to 0 also.

Here is how I setup my device options:

Ended up finishing my testing last night early as it was raining here. Will have to try setting the dial back to 8 seconds and seeing if param 1 is honored. Of course, the LUX is now at 900, so need to tweak the param 2 to 900 to force it to turn on in the daytime for the testing.

1 Like