Trying to monitor and get Arrival Sensor RSSI & LQI change notifications


#1

1) Give a description of the problem
Try as i might, I’m unable to get notified when the Arrival Sensor RSSI or LQI changes. I have the Arrival Sensor in the car, and i would like to be notified if the signal drops/changes. If i load the dashboard i’m able to see the current levels, i have a timer to check them every hour, but i would prefer it to be smart and not have to open a web browser to check the levels.

2) What is the expected behavior?
That webcore notifies me of a change, I’ve tried “if changes”, “if drops”, “if is outside range”, “if rises”, everything it seems.

3) What is happening/not happening?
Not getting any push notifications at all!!


#2

See if you get any logged data out of this. I tried it on one of my multi sensors but couldn’t extract any lqi, rssi, not event temperature from it.


#3

Hey @eibyer I used your piston, but I still didn’t get any notifications from the Arrival Sensor. Maybe you can check what I have to be sure. Waited for a change, the RSSI rose from 35 to 44 just now and I didn’t get a push notification.
I think it’s VERY strange, I think webCoRE can read the data of the Arrival Sensor, but is unable to send it for some strange reason.
If I click the execute piston button on my original piston, I will get a notification, but webCoRE can’t seem to automate them itself.


#4

I tried it on a few of my devices with rssi/lqi values, webcore is not seeing anything at all even though I see activity on ide live logging.

I have the piston example running since 10:08AM with no logged values. :confused:


#5

So is this a bug in webCoRE?
Maybe @ipaterson can shed some light? Any reason webCoRE can’t notify me of Arrival Sensor signal strength/quality changes?


#6

I’ll throw a new battery in my old arrival sensor and see what I can come up with. Hmm now where could it be? I don’t have any other devices that report these values and the arrival sensor hasn’t been used in at least a year.


#7

If you have any of the ST smart sense multis, they have those values also (zigbee only?).


#8

I can sense the irony of losing a tracking device… it’s probably in my wife’s car so I’ll follow up later. In the meantime, any evidence of events being ignored in the full logs?


#9

There’s nothing in the logs… even full :slight_smile:

1/16/2018, 10:08:05 AM +441ms
+6ms ╔Starting piston… (v0.2.101.20171227)
+357ms ║╔Subscribing to devices…
+394ms ║║Subscribing to Micheal Motion.lqi…
+409ms ║║Subscribing to Mood Cube Sensor.lqi…
+425ms ║║Subscribing to Micheal Motion.rssi…
+439ms ║║Subscribing to Mood Cube Sensor.rssi…
+601ms ║╚Finished subscribing (264ms)
+636ms ╚Piston successfully started (636ms)

Current live log from Mood Cube:
8147b223-318c-4ea7-a042-19e8cd76f3de 7:58:23 AM: debug Parse returned [Mood Cube Sensor was opened, Mood Cube Sensor was opened, Mood Cube Sensor was inactive, Mood Cube Sensor was 68°F, Mood Cube Sensor Battery was 38%, Mood Cube Sensor was -59 dBm, Mood Cube Sensor Signal (LQI) was: 100%]


#10

I guess let’s try a shot in the dark then… RSSI can be expressed in a number of ways for different vendors: a percentage from 0 to 100, a positive integer from 0 to 60, or a negative dBm value possibly among others. The rssi value shown is negative but webCoRE is expecting a percentage in the range 0 to 100. Try editing line ~2498 of the webCoRE smart app to remove the expectation of a certain range and unit to support your dBm values:

rssi						: [ n: "signal strength", t: "integer" ],

#11

Sorry I didn’t understand the editing part, was that for me?
So i can be clear, in the piston above i have 8 various requests for push notifications if the signal or quality changes/rises/drops etc but nothing ever happens.

IF however i click the piston “test” button i automatically get 3 push notifications.
Here are the logs.

17/01/2018, 16:06:05 +836ms
+1ms ╔Received event [Home].test = 1516201565836 with a delay of 0ms
+236ms ║RunTime Analysis CS > 39ms > PS > 67ms > PE > 129ms > CE
+239ms ║Runtime (47793 bytes) successfully initialized in 67ms (v0.2.102.20180116) (237ms)
+239ms ║╔Execution stage started
+259ms ║║Comparison (time) 57966079 is_between (time) 25200000 … (time) 79200000 = true (14ms)
+260ms ║║Time restriction check passed
+262ms ║║Condition #1 evaluated true (18ms)
+271ms ║║Comparison (string) :60ef4331ff31c8b193f1d7bb4b240dfc: is_any_of (string) :27085407d3e40aa7a81152ad95540c10:,:60ef4331ff31c8b193f1d7bb4b240dfc:,:c08210ad25ef3566c167cae8abad10cb: = true (5ms)
+273ms ║║Condition #35 evaluated true (11ms)
+274ms ║║Condition group #null evaluated true (state did not change) (31ms)
+286ms ║║Condition #5 evaluated false (5ms)
+291ms ║║Condition #31 evaluated false (4ms)
+295ms ║║Condition #32 evaluated false (4ms)
+302ms ║║Comparison (integer) 100 is_less_than (integer) 100 = false (1ms)
+306ms ║║Cancelling condition #33’s schedules…
+307ms ║║Condition #33 evaluated false (10ms)
+313ms ║║Comparison (integer) -39 is_less_than (integer) 100 = true (2ms)
+315ms ║║Condition #34 evaluated true (8ms)
+316ms ║║Condition group #2 evaluated true (state did not change) (37ms)
+320ms ║║Cancelling statement #3’s schedules…
+330ms ║║Calculating (string) 1The signal quality is + (string) 100 >> (string) 1The signal quality is 100
+333ms ║║Calculating (string) 1The signal quality is 100 + (string) >> (string) 1The signal quality is 100
+338ms ║║Calculating (string) 1The signal quality is 100 + (string) and the signal strength is >> (string) 1The signal quality is 100 and the signal strength is
+341ms ║║Calculating (string) 1The signal quality is 100 and the signal strength is + (string) -39 >> (string) 1The signal quality is 100 and the signal strength is -39
+343ms ║║Calculating (string) 1The signal quality is 100 and the signal strength is -39 + (string) >> (string) 1The signal quality is 100 and the signal strength is -39
+386ms ║║Executed virtual command sendPushNotification (37ms)
+405ms ║║Comparison (integer) -39 changes = true (7ms)
+407ms ║║Condition #22 evaluated true (9ms)
+407ms ║║Condition group #19 evaluated true (state did not change) (10ms)
+409ms ║║Cancelling statement #20’s schedules…
+414ms ║║Calculating (string) 2The signal quality is + (string) 100 >> (string) 2The signal quality is 100
+416ms ║║Calculating (string) 2The signal quality is 100 + (string) >> (string) 2The signal quality is 100
+421ms ║║Calculating (string) 2The signal quality is 100 + (string) and the signal strength is >> (string) 2The signal quality is 100 and the signal strength is
+424ms ║║Calculating (string) 2The signal quality is 100 and the signal strength is + (string) -39 >> (string) 2The signal quality is 100 and the signal strength is -39
+427ms ║║Calculating (string) 2The signal quality is 100 and the signal strength is -39 + (string) >> (string) 2The signal quality is 100 and the signal strength is -39
+448ms ║║Executed virtual command sendPushNotification (17ms)
+452ms ║║Comparison (integer) 100 changes = true (1ms)
+453ms ║║Condition #26 evaluated true (3ms)
+454ms ║║Condition group #23 evaluated true (state did not change) (4ms)
+456ms ║║Cancelling statement #24’s schedules…
+461ms ║║Calculating (string) 3The signal quality is + (string) 100 >> (string) 3The signal quality is 100
+464ms ║║Calculating (string) 3The signal quality is 100 + (string) >> (string) 3The signal quality is 100
+468ms ║║Calculating (string) 3The signal quality is 100 + (string) and the signal strength is >> (string) 3The signal quality is 100 and the signal strength is
+471ms ║║Calculating (string) 3The signal quality is 100 and the signal strength is + (string) -39 >> (string) 3The signal quality is 100 and the signal strength is -39
+473ms ║║Calculating (string) 3The signal quality is 100 and the signal strength is -39 + (string) >> (string) 3The signal quality is 100 and the signal strength is -39
+491ms ║║Executed virtual command sendPushNotification (15ms)
+498ms ║║Condition #30 evaluated false (4ms)
+499ms ║║Condition group #27 evaluated false (state did not change) (5ms)
+518ms ║╚Execution stage complete. (279ms)
+521ms ║Setting up scheduled job for Wed, Jan 17 2018 @ 4:07:00 PM CET (in 53.643s)
+533ms ╚Event processed successfully (533ms)
17/01/2018, 15:06:59 +197ms
+0ms ╔Received event [Home].time = 1516198020000 with a delay of -803ms
+240ms ║Runtime (47713 bytes) successfully initialized in 70ms (v0.2.102.20180116) (238ms)
+241ms ║╔Execution stage started
+269ms ║║Executed virtual command setVariable (3ms)
+287ms ║║Executed virtual command setVariable (2ms)
+295ms ║║Executed virtual command setVariable (3ms)
+300ms ║║Executed virtual command wait (0ms)
+301ms ║║Requesting a wake up for Wed, Jan 17 2018 @ 3:07:00 PM CET (in 1.0s)
+1344ms ║║Executed virtual command setState (0ms)
+1351ms ║╚Execution stage complete. (1111ms)
+1353ms ║Setting up scheduled job for Wed, Jan 17 2018 @ 4:07:00 PM CET (in 3599.451s)
+1359ms ╚Event processed successfully (1359ms)
17/01/2018, 14:06:59 +156ms


#12

And if i don’t click test, i just get these small logs every hour, even if signal/strength changes, no notifications.

17/01/2018, 15:06:59 +197ms
+0ms ╔Received event [Home].time = 1516198020000 with a delay of -803ms
+240ms ║Runtime (47713 bytes) successfully initialized in 70ms (v0.2.102.20180116) (238ms)
+241ms ║╔Execution stage started
+269ms ║║Executed virtual command setVariable (3ms)
+287ms ║║Executed virtual command setVariable (2ms)
+295ms ║║Executed virtual command setVariable (3ms)
+300ms ║║Executed virtual command wait (0ms)
+301ms ║║Requesting a wake up for Wed, Jan 17 2018 @ 3:07:00 PM CET (in 1.0s)
+1344ms ║║Executed virtual command setState (0ms)
+1351ms ║╚Execution stage complete. (1111ms)
+1353ms ║Setting up scheduled job for Wed, Jan 17 2018 @ 4:07:00 PM CET (in 3599.451s)
+1359ms ╚Event processed successfully (1359ms)


#13

If either you or @eibyer want to give it a try, open up ide.smartthings.com then go to Smart Apps and click webCoRE. Find the rssi line which should be around line 2498 and paste the line from my earlier reply to replace the existing line that specifies a range of 0-100. Then save and publish webCoRE to see if it affects handling of those events.

I think the events might be filtered out due to not falling in the 0-100 range so we’re trying to lift that restriction.


#14

Oops, sorry got sidetracked. I did the edit as you suggested but still no output on the wc log.

		rssi						: [ n: "signal strength",		t: "integer" ],
//		rssi						: [ n: "signal strength",		t: "integer",	r: [0, 100],		u: "%",																			],

Latest live log output:

8147b223-318c-4ea7-a042-19e8cd76f3de 8:31:56 AM: debug Parse returned [Mood Cube Sensor was opened, Mood Cube Sensor was opened, Mood Cube Sensor was inactive, Mood Cube Sensor was 68°F, Mood Cube Sensor Battery was 38%, Mood Cube Sensor was -57 dBm, Mood Cube Sensor Signal (LQI) was: 76%]


#15

ooo I’m scared to edit the code, webCoRE means too much to me, and i’m not 100% sure of how to do it, it’s too much like an Episode of Black Mirror to me. I’m hoping Mr @eibyer is able to supply sufficient help…


#16

No luck here either, do either of you still have CoRE installed to see if it works there? From what I’m seeing this looks like an issue on the SmartThings side - the subscription is being made just like any other but it’s not triggering.

I set up a virtual device to test and indeed rssi and lqi events do not make it to the piston. A sanity check showed that the exact same code with a custom myrssi attribute worked fine. @ST_Staff, are there any known issues or security measures in place that would cause the rssi and lqi signal strength events to not trigger event handlers?


#17

Personally i just deleted CoRe last week, literally! It always seems to be me that unearths these strange peculiarities! lol But ST Staff will fix it, fingers crossed.


#18

Ok, I still think there’s a workaround to getting notified, even if direct notification from the Arrival Sensor to changes doesn’t seem possible. Maybe I didn’t explain myself properly.
I am able to get the RSSI and LQI levels into the (above) piston, as you can see from my screenshots. What I need is a REALLY clever minion that knows about valuables, logging statistics, integers etc to get a change FROM the piston. Somehow saving the variable to another static variable, and if the primary variable level changes, THEN send a push notification. I’m sure it’s possible, because the data is arriving into the piston. I just can’t get notified.