@5iver Thanks for the tip on your updated post I may add add in an âunjammedâ notification to my setup. I also want to reorganise my notifications using Items to relay as it looks like you are doing so I may roll this feature into that larger update when/if I get some time!
As for the EVENT 6 issue you point out, I remember reading your post on this in the main thread.
I think the return at the end of my âBURGLARâ case statement will mean I am not relying on the silent exception to save me from being robbed, will it not?
1.Thanks so much for your help so far, do i put the lambada and rule in the
rules folder?
2.The undefined areas means i need to configure them in openhab2 and then
they will be associated in the lambada/rule?
3. How are you doing the sms and what does that mean â
presenceMessage.append(â Scottâs code") if (Scott.state == OFF) { "
Not sure which to use your example mcquerty or scotts, i am a newbie and was looking for a setup where i just have to copy in my lock name ect⌠which do u guys recommend.
Put the lambda and rules into the same rules file, and save it to the rules folder.
Not sure what you are asking or Iâd try to help!
Our phone service has an smtp to sms gateway. I have the mail Action installed and have a rule that triggers on a String item (SMS_Notification) change, and then sends an email to our phones with the state of the string. I do something similar with Kodi and audio notifications. The rest of that is a StringBuilder that I am building for use in a log or notification. The Scott.state == OFF is checking my presence, and then updating it since my lock code was used. Owntracks works well for us, but this adds some redundancy to prevent the alarms from going off.
As @5iver mentioned above, it is not clear what you are asking here. If you are referring to the areas in my rule where I define the state as UNDEF then -
UNDEF is a Type in the OpenHAB that, to my knowledge at least, is a valid state for any Item regardless of the Item type (Switch, Dimmer, String, etc.).
Because I am overly concerned with small details I didnât like to set the State of my lock to either ON (locked) or OFF (unlocked) if the lock reported âjammedâ because it is not possible to know for sure if it is actually âjammedâ locked or âjammedâ open. (Note: one could make a pretty decent guess based on the previous state and the fact that it is very likely still in the previous state if it got jammed, but) I decided to go with UNDEF to define this third âunknownâ state.
Long story short - if UNDEF confuses you, donât use it - itâs not essential
Hi thanks for clarification about the rule/lambada, can you guys write this up so that a newb can understand it please, I have items for lock and alarm raw, I also made a lock.map just like yours, but i get confused from post#27 the items and the transform or is the info from that post just a diff way to get status info for the lock than yours.
what does this error mean?
2017-11-05 19:49:52.089 [WARN ] [rm.AbstractFileTransformationService] - Could not transform â-â with the file âlock.mapâ : Target value not found in map for â-â
The state of an item is not always known by the system, especially during startup. So it is possible that the item you are trying to transform has an âundefinedâ value. OH shows this as a â-â character.
to avoid that error in the log, just add another line to your lock.map: -=unknown
As for your other question it is not clear to me what you are asking. Could you rephrase with a problem statement and what you were expecting vs what is happening and Iâm sure we can help you out.
for the lock to report its status no matter what way its been opened or closed.
to be able to tell what code/user unlocked the door( it seems like i can see this already in the event log after adding alarm_raw channel) but want to be able to see it on a site map or as an item that i cant link to imperihome service.
To be able to use the info of who opened the door so i can use it in some rules.
Know so far i have manually created the items
witch Lock_EntranceFront_Proxy "Front Door Lock Proxy [MAP(lock.map):%s]"
Switch Lock_EntranceFront "Front Door Lock [MAP(lock.map):%s]" <lock> (gUS_EntranceFront,gLock,gSleep_Security) {channel="zwave:device:zwave:node20:lock_door"}
String Lock_EntranceFront_Alarm_Raw "Front Door Lock: Alarm Raw [%s]" <shield> (gUS_EntranceFront) {channel="zwave:device:zwave:node20:alarm_raw"}
Number Lock_EntranceFront_Alarm "Front Door Lock Alarm [MAP(lock_alarm.map):%s]" <lock> (gLock_Status) {channel="zwave:device:zwave:node20:alarm_number"}
```php
sitemap lock
{
Text label="Lock Control" icon="lock" {
Frame label="Front Door Lock" {
Switch item=Lock_EntranceFront mappings=[ON=Lock, OFF=Unlocked]
Text item=Lock_EntranceFront_Proxy
Text item=Lock_EntranceFront_BatteryLevel
}
}
}
lock_alarm.map
1=Locked manually
2=Unlocked manually
3=Locked Remotely
4=Unlocked Remotely
5=Locked with keypad
6=Unlocked with keypad
9=Auto lock
11=Jammed
lock.map
ON=Closed
OFF=Opened
-=unknown`
and the rule you posted all i did was change instances of lock1 to the name of my lock.
the final results looks like the one posted by chris in post#27 but it stillnot reflecting a change in the site map, but i do see the change in the event logs.
I really appreciate the help as i trying to learn little by little.
Iâm not really an expert on this but if you are seeing what you expect in the events.log and it is only your sitemap that is not updating then there may be a different problem unrelated to the lock scenario.
I have found that the sitemap will sometimes stop updating even if the an event is shown in the events.log file. Usually refreshing the sitemap pages will show the new status.
Not sure if I have understood correctly, but as I say, if events.log is showing the events as you would expect it may be worth searching the forum for issues regarding the sitemap not updating. Unfortunately I donât have a answer for you on that one.
Last question lol.
so what is the difference between what you have done in terms of your rule and post# 27 as far as the part goes, site map and transform ect. and how are you receiving the info/report from whats happening with the lock
I added this line to my Rules now I get an error in the openhab log:
no viable alternative at input âââ
[578,50]: missing â)â at âJSONPATHâ
[578,71]: mismatched input â,â expecting âendâ
I figured that problem out by adding a needed space before $.event. Now I get:
Error executing the transformation âJSONPATHâ: Invalid path â$.eventâ in âzwave:device:8fe51373:node41:alarm_rawâ
Although, based on the version of the ALARM/NOTIFICATION CC your lock is using, this may need to be adapted. Can you provide an example value of alarm_raw?
Here is the string in the event log:
{ânotificationâ:âACCESS_CONTROL__MANUAL_UNLOCKâ,âtypeâ:âACCESS_CONTROLâ,âeventâ:â2â,âstatusâ:â255â}
Here is how Iâm trying to get the event numberin my rule:
var Number lockevent = new Integer(transform(âJSONPATHâ, â$.eventâ, âzwave:device:8fe51373:node41:alarm_rawâ))
And here is the error Iâm getting in the openhab log:
Error executing the transformation âJSONPATHâ: Invalid path â$.eventâ in âzwave:device:8fe51373:node41:alarm_rawâ
Iâm trying to get the event number from the string and set it to a var so I can update my lock status.
You canât access channels directly in rules like you are trying to do. You will need to create an item and link it to the alarm_raw channel. Then you can use that itemâs state in your rule, like thisâŚ
var Number lockevent = Integer::parseInt(transform("JSONPATH", "$.event", Lock_EntranceFront_Alarm_Raw.state.toString))
The error you are getting is because the string you are feeding the JSONPATH transform, âzwave:device:8fe51373:node41:alarm_rawâ, does not contain an âeventâ element. But itâs also not in JSON format .
Created Item: String Lock_MF_Dining_Alarm âFront Lock Alarmâ {channel=âzwave:device:8fe51373:node41:alarm_rawâ}
And Updated Rule:
var Number lockevent = Integer::parseInt(transform(âJSONPATHâ, â$.eventâ, âLock_MF_Dining_Alarm.state.toStringâ))
I still have errors in the log:
2018-02-03 21:19:17.403 [ERROR] [ore.transform.actions.Transformation] - Error executing the transformation âJSONPATHâ: Invalid path â$.eventâ in âLock_MF_Dining_Alarm.state.toStringâ
2018-02-03 21:19:17.404 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule âFront Lock Update lock states after alarm eventsâ: For input string: âLock_MF_Dining_Alarm.state.toStringâ