I will give it a try whe I get home, thanks. Is distace an issue?
Only with some older devices.
I have successfully included the the lock through habmin as described, but it still shows that “Using security” with the red x
What am I missing?
I got it, I don’t think I was excluding it properly because it continued to add the same node5 value each time I included it. Now it reads node6 and has the Using security with the green check. Now to see if I can get my code, or do is it called script here, correct.
I have gotten some of this to work. I can lock and unlock through both HABmin and Control under PaperUI.
I created these items:
Switch Z_Wave_Front_Door_Lock “Front Door Lock” [“Switchable”] { channel=“zwave:device:Zstick:node6:lock_door” }
Number Z_Wave_Front_Door_Lock “Battery [%.0f%%]” { channel=“zwave:device:Zstick:node6:battery-level” }
And a Sitmap:
Switch item=Z_Wave_Front_Door_Lock
It gives a basic ui that looks like this;
I can not control the lock from basicUI and the locked unlocked does not seam to change. I have read some posts about map transformation. Is this something I need to do to control the lock or am I missing something else. Please elaborate with the response as I am not understanding what the next steps are.
Sorry for the way the code pasted, I am not sure how others are doing it so nicely.
Switch Z_Wave_Front_Door_Lock “Front Door Lock” [“Switchable”] { channel=“zwave:device:Zstick:node6:lock_door” }
Number Z_Wave_Front_Door_Lock “Battery [%.0f%%]” { channel=“zwave:device:Zstick:node6:battery-level” }
Your items need to have different names.
Switch Z_Wave_Front_Door_Lock “Front Door Lock” [“Switchable”] { channel=“zwave:device:Zstick:node6:lock_door” }
Number Z_Wave_Front_Door_Lock_Battery “Battery [%.0f%%]” { channel=“zwave:device:Zstick:node6:battery-level” }
With Chrome there is some white space in the reply header which is where many of the “fences” are hiding. The “item fences” is visible just to left of that white space, but all of the others are not visible (rules, sitemap, javascript, code). You can hover your mouse in that area to find them and to use them. Just click on them even though they are not visible.
Thank you for all the responses, I have door lock that I can control for BasicUI but something strange has happened. I seam to have a duplicate lock and not sure how it got there or how to fix it. Both seem to operate the lock but only one updates at a time.
Here are my items
Switch Z_Wave_Front_Door_Lock "Front Door Lock" ["Switchable"] { channel="zwave$
Number Z_Wave_Front_Door_Lock_Battery "Battery [%.0f%%]" <battery> { channel="z$
And here is my sitemap
Switch item=Z_Wave_Front_Door_Lock
Text item=Z_Wave_Front_Door_Lock_Battery label="Front Door"
And my BasicUI
Does it matter that this duplication of the lock and battery show up in HABmin? If so what caused it and how do I fix it?
Do you have Simple Mode enabled? Check in Paper UI under System->Configuration on the Item Linking panel.
Simple mode is enabled, yes.
Simple mode will create items automatically. That explains where those other items are coming from. If you don’t want those items created automatically, you can disable simple mode.
Will having both items in HABmin and only one physical item cause problems? It seams to function fine for now. Is it possible to remove the item that was automatcly populated?
No, it won’t cause a problem.
I don’t know. I’ve never used this feature.
Thank you evrryone for the help. The lock is working as I had hoped!
So… The lock works almost as expected. It does not update openhab when manually locked or unlocked. Looking into it shows that I need to some coding with the Alarm_raw. This also means that I need to use a transform.
I have been following the wright up, but do not fully under stand:
I have used PaperUI to install JSONPATH and MAP Transformation. I am confused by what the: MAP (lock.map) is and what I need to do to create it.
I have create an Item that looks like this
Group:Switch:OR(OFF,ON) gLock "Locks [MAP(lock.map):%s]" <lock>
Group gLockRaw "Locks (raw) [%s]" <lock>
Switch Z_Wave_Front_Door_Lock "Lock (Front Entrance) [MAP(lock.map):%s]" <lock> (gLock) {channel="zwave:device:Zstick:node6:lock_door"}
String Z_Wave_Front_Door_Lock_Alarm_Raw "Lock (Front Entrance): Alarm Raw [%s]" <shield> (gLockRaw) {channel="zwave:device:Zstick:node6:alarm_raw"}
The wright up also talks about an import org.eclipse.smarthome.model.script.ScriptServiceUtil being at the top the rules. Does this mean the to of all the rules or the top of my lock rules? What is this import, why do I need it and how do I get it?
Also I have a list of alrarm_raw events, but I do not know where to place them.
And always, any help or advise is appreciated.
Create a file in your ${OPENHAB_CONF} (depends on how you installed OH) named lock.map and put in the contents from my post.
You don’t need to get it… just import it at the top of the rule file (above all rules).
Those are just for reference. You lock may report something different, so you’ll need to change the lambda.
I typed quick… hopefully this is what you need!
I think I understand. I have copied your rule and added my values to it. It looks like this:
import org.eclipse.smarthome.model.script.ScriptServiceUtil
rule "Lock: Update lock states after alarm_raw event"
when
Member of gLockRaw received update
then
val actionItem = ScriptServiceUtil.getItemRegistry.getItem(triggeringItem.name.toString.replace("_Alarm_Raw",""))
logInfo("Rules", "Lock: Alarm events: {}=[{}]",actionItem.name,triggeringItem.state.toString)
val StringBuilder message = new StringBuilder(actionItem.name)
switch (transform("JSONPATH","$.type",triggeringItem.state.toString)) {
case "ACCESS_CONTROL" : {
switch (transform("JSONPATH", "$.event", triggeringItem.state.toString)) {
case "21", case "18", case "24" : {
actionItem.postUpdate(ON)
message.append(" updated to ON (locked)")
}
case "22", case "19" : {
actionItem.postUpdate(OFF)
message.append(" updated to OFF (unlocked)")
}
// case "6" : {
// actionItem.postUpdate(OFF)
// message.append(" was unlocked with")
// switch (transform("JSONPATH", "$.code", triggeringItem.state.toString)) {
// case "1" : {
// message.append(" Scott's code")
// }
// case "2" : {
// message.append(" Lisa's code")
// }
// }
// }
case "26", case "17", case "23" : {
actionItem.postUpdate(OFF)// jammed could mean unlocked, so I do this for safety... you may want to send an alert here too
message.append(" is jammed, so setting lock to OFF (unlocked)")
}
// case "26", case "17", case "23" : {
// message.append(" keypad is disabled due to too many failed codes")
// }
default : {
message.append(" unknown door lock Event, ").append(triggeringItem.state.toString)
}
}
if (transform("JSONPATH", "$.event", triggeringItem.previousState(true).state.toString) == "26" && transform("JSONPATH", "$.event", triggeringItem.state.toString) != "26") {
message.append(" and is no longer jammed")
}
}
// case "BURGLAR" : {
// //gSiren.sendCommand(ON)
// message.append(" has detected an intruder")
// }
case "POWER_MANAGEMENT" : {
message.append(" received a Power Management alarm, ").append(triggeringItem.state.toString)
}
default : {
message.append(" received and unknown Type in alarmRawParser, ").append(triggeringItem.state.toString)
}
}
logInfo("Rules", "Lock: Alarm events: {}", message.toString)
end
I turned the code I feel I don’t need into text.
I then created a lock.map under /etc/openhab2/transform, and copied
OFF=Unlocked
ON=Locked
undefined=Unknown
-=Unknown
NULL=Unknown
into it. The lock still ill does not update with manual activation. Any thoughts?
Put the binding into debug mode so we can see what the lock is sending (if anything) when manually operated. Enable debug logging as described in the post below, then operate the lock. If the lock is reporting its status when manually operated, you will see activity in the log file. Report back what you see in the log.
The 914TRL reports different events than the BE469, so you’ll need to adjust the switch/case statements. Here is an example…
Thank you, all of you, for help and patience. I am really trying to understand all of this. I am more of a nuts and bolts kind of guy and this stuff, though very cool, has me feeling over my head.
I looked at doc about turning on the debug. It says to enter the console, which I am guessing is the process of SSH into openhabian. I paste
log:set DEBUG org.openhab.binding.zwave
But get an error -bash: log:set: command not found
So I am guessing I am not something correctly.
I did see that activity seems to be captured in the log viewer anyway. This is what it shows.
2019-06-29 20:57:17.211 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3520 to 3521
2019-06-29 20:57:17.244 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_ack changed from 1273 to 1274
2019-06-29 20:57:17.251 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3521 to 3522
2019-06-29 20:57:17.271 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3522 to 3523
2019-06-29 20:57:17.291 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3523 to 3524
2019-06-29 20:57:17.321 [vent.ItemStateChangedEvent] - zwave_device_Zstick_node6_alarm_number changed from 0 to 21
2019-06-29 20:57:17.326 [vent.ItemStateChangedEvent] - zwave_device_Zstick_node6_alarm_raw changed from {"type":"0","value":"0"} to {"type":"21","value":"1"}
2019-06-29 20:57:31.720 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3524 to 3525
2019-06-29 20:57:31.758 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_ack changed from 1274 to 1275
2019-06-29 20:57:31.762 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3525 to 3526
2019-06-29 20:57:31.784 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3526 to 3527
2019-06-29 20:57:31.794 [vent.ItemStateChangedEvent] - zwave_serial_zstick_Zstick_serial_sof changed from 3527 to 3528
2019-06-29 20:57:31.831 [vent.ItemStateChangedEvent] - zwave_device_Zstick_node6_alarm_number changed from 21 to 22
2019-06-29 20:57:31.834 [vent.ItemStateChangedEvent] - zwave_device_Zstick_node6_alarm_raw changed from {"type":"21","value":"1"} to {"type":"22","value":"1"}
I am pretty sure I changed the case values correctly for my lock.
switch (transform("JSONPATH","$.type",triggeringItem.state.toString)) {
case "ACCESS_CONTROL" : {
switch (transform("JSONPATH", "$.event", triggeringItem.state.toString)) {
case "18", case "21", case "24" : {
actionItem.postUpdate(ON)
message.append(" updated to ON (locked)")
}
case "19", case "21" : {
actionItem.postUpdate(OFF)
message.append(" updated to OFF (unlocked)")
}
Thank you again, and let me know what to do to help