Garage Door Left Open At Night


#1

1) Give a description of the problem
I’ve tried to create a piston that would send my wife and me a text message whenever it is dark outside and one of our garage doors has remained open for 30 minutes. However, what is happening is if the garage is opened and closed quickly after sunset, 30 minutes later, we receive text messages alerting us that the door is still open even though it not.

2) What is the expected behaviour?
I’m wanting the text messages to only go out if the door is left open for 30 minutes. If someone opens and closes the garage door after sunset, we do not wish to be texted.

3) What is happening/not happening?
We are receiving false text notifications about the garage door being left open when it is not.

**4) Post a Green Snapshot of the piston!

5) Attach logs after turning logging level to Full
7/11/2020, 9:21:50 PM +137ms
+1ms ╔Received event [Home].time = 1594520511263 with a delay of -1126ms
+84ms ║RunTime Analysis CS > 30ms > PS > 6ms > PE > 48ms > CE
+86ms ║Runtime (41037 bytes) successfully initialized in 6ms (v0.3.110.20191009) (84ms)
+87ms ║╔Execution stage started
+93ms ║║Cancelling condition #3’s schedules…
+94ms ║║Condition #3 evaluated true (2ms)
+159ms ║║Comparison (time) 76910232 is_between (datetime) 1594517040000 … (datetime) 1594463280000 = true (6ms)
+160ms ║║Time restriction check passed
+162ms ║║Cancelling condition #2’s schedules…
+163ms ║║Condition #2 evaluated true (68ms)
+164ms ║║Cancelling condition #1’s schedules…
+165ms ║║Condition group #1 evaluated true (state changed) (72ms)
+167ms ║║Cancelling statement #4’s schedules…
+210ms ║║Executed virtual command sendSMSNotification (37ms)
+216ms ║║Executed virtual command sendSMSNotification (1ms)
+229ms ║║Comparison (enum) right side up stays (string) rear side up = false (2ms)
+231ms ║║Cancelling any timed trigger schedules for condition 9
+232ms ║║Cancelling statement #9’s schedules…
+233ms ║║Condition #9 evaluated false (13ms)
+233ms ║║Condition group #7 evaluated false (state did not change) (14ms)
+235ms ║╚Execution stage complete. (148ms)
+237ms ╚Event processed successfully (236ms)
7/11/2020, 8:51:41 PM +158ms
+1ms ╔Received event [Garage Single Door].threeAxis = 1050,-24,-156 with a delay of 61ms
+10090ms ║RunTime Analysis CS > 16ms > PS > 10020ms > PE > 53ms > CE
+10091ms ║Piston waited at a semaphore for 10016ms
+10093ms ║Runtime (41137 bytes) successfully initialized in 10020ms (v0.3.110.20191009) (10091ms)
+10094ms ║╔Execution stage started
+10102ms ║║Comparison (enum) rear side up stays (string) rear side up = true (1ms)
+10104ms ║║Adding a timed trigger schedule for condition 3
+10106ms ║║Condition #3 evaluated false (8ms)
+10107ms ║║Condition group #1 evaluated false (state did not change) (9ms)
+10117ms ║║Comparison (enum) right side up stays (string) rear side up = false (1ms)
+10118ms ║║Cancelling any timed trigger schedules for condition 9
+10119ms ║║Cancelling statement #9’s schedules…
+10120ms ║║Condition #9 evaluated false (11ms)
+10121ms ║║Condition group #7 evaluated false (state did not change) (12ms)
+10122ms ║╚Execution stage complete. (28ms)
+10124ms ║Setting up scheduled job for Sat, Jul 11 2020 @ 9:21:51 PM CDT (in 1799.982s)
+10135ms ╚Event processed successfully (10135ms)
7/11/2020, 8:51:50 PM +837ms
+0ms ╔Received event [Garage Single Door].threeAxis = 46,-21,-1028 with a delay of 54ms
+64ms ║RunTime Analysis CS > 17ms > PS > 4ms > PE > 43ms > CE
+66ms ║Runtime (41053 bytes) successfully initialized in 4ms (v0.3.110.20191009) (65ms)
+67ms ║╔Execution stage started
+75ms ║║Comparison (enum) right side up stays (string) rear side up = false (2ms)
+77ms ║║Cancelling any timed trigger schedules for condition 3
+77ms ║║Cancelling statement #3’s schedules…
+78ms ║║Condition #3 evaluated false (7ms)
+79ms ║║Condition group #1 evaluated false (state did not change) (9ms)
+89ms ║║Comparison (enum) right side up stays (string) rear side up = false (2ms)
+90ms ║║Cancelling any timed trigger schedules for condition 9
+91ms ║║Cancelling statement #9’s schedules…
+92ms ║║Condition #9 evaluated false (11ms)
+93ms ║║Condition group #7 evaluated false (state did not change) (12ms)
+95ms ║╚Execution stage complete. (28ms)
+96ms ╚Event processed successfully (96ms

For example, you can see above that at 8:51 p.m., my wife opened the single garage door, put the car away and then closed the garage door. Then at 9:21 p.m., we both received a text message alerting us that it was after dark and the single garage door was still open. However, the door was not open.


#2

There are many ways to do this and several examples in the forum of various options. I have two suggestions.

  1. Change your time restriction to…
    Time is NOT between sunrise and sunset
    Bridging across midnight can cause problems for sunrise/sunset.

  2. Depending on where you are, SMS are restricted to 50 a day. You can combine your SMS commands by separating your phone numbers with a semicolon.
    Send SMS “Garage door is open” to 123456789;123456789


#4

The logs suggest that the piston was fired by a ‘three axis’ event at ~ 8:51:41 PM but the piston must have been already running. This caused it to back off for ten seconds in a semaphore wait.

In the meantime another ‘three axis’ event was received at ~ 8:51:50 PM and the piston wasn’t already running so it was able to run. The orientation comparison was false because the door was closed and so there was nothing to do.

The held piston then resumed execution at ~8:51:51 PM, and this time the orientation comparison was true as it was the delayed door ‘open’ event. So it scheduled a task to run in thirty minutes time, that being how the ‘stays’ comparison works.

As the ‘closed’ event had already been processed, the piston didn’t fire again in the next thirty minutes and cancel the scheduled task. So it ran on schedule. It returned true to the ‘stays … for 30 minutes’ comparison, and the time check was passed. So the messages were sent.

So the question is, what was going on in the period before your logs start to bung up the works? It might simply be that there are one or more other ‘three axis’ events being received as the door is being opened. That seems reasonable.

I’ve not worked with garage doors, but it seems to me that the three axis capability isn’t the best capability to be working with to trigger events. You want whatever device you use to tell you if the door is open or closed.


#5

Are you positive on this, @Pantheon??
Logic would tell me that two numbers counts as two SMS, but I have not tested the maximum yet.


#6

You are absolutely right. Some sensors (like SmartThings multi-sensors) have the 3 axis as well as a Mode to use specifically on a garage door. Using the “Garage-door-mode” reduces the extra triggers, so the end results are much cleaner.


#7

Indeed, I may be spreading false information. I have heard several times from others that we are limited to 50 SMS per day. But @WCmore may be right. SMS to two numbers in the same command may actually be counted as two SMS. I will do some research.


#8

Thanks for all the helpful suggestions. @Pantheon, I made the two changes you suggested to improve the efficiency.

As a Samsung multisensor, it is correct that it can be used several different ways. I have the garage setting enabled so that the sensor can detected X,Y,Z direction as a mechanism of determining when the door is open rather than the open/closed contact method.

I’ll keep an eye out for future problems.


#9

I could not find reliable information on the number of SMS messages generated by combining your SMS commands as I suggested above. One method that I considered was to spam my phone with SMS messages and track the count. I decided against that. So I corrected my post above to simply combining the SMS commands with delimited phone numbers.


#10

Webcore%20Green%20Check%20II


#11

This has been on my “To-Do” list for awhile… Although it would take 2 days of spam to properly identify.
(an added benefit is, if we are smart with our programming, we will be able to tell at which hour our SMS count resets) I think that this would be very handy to know!

Of course, the bad part is the tester would be giving up real messages for those two days…

*sighs*


#12

Yep. Maybe the next time I want to go on a vacation, and take a break from life (and my phone), I will spam my phone and see what I get.


#13

In my head, here is how I envision it:

  • Spam double SMS until no more go thru
  • A piston tries to send SMS every 30 minutes (failing)
  • Eventually one SMS goes thru (SMS must have reset, notice time)
  • Spam more double SMS to verify count
  • Wait 24 hours to return to normal usage

#14

In checking the logs more carefully, I feel that you are exactly correct. As the door is opening, the three axis are changing enough to fire the piston multiple times in a very short period of time. Same as it goes down it again. It throws off a lot of scheduled tasks that are then later conflicting.

I’m not exactly certain how I would fix that to allow the piston to only run once in a 1 minute period or something.


#15

I’m not familiar with that sensor. Can you just limit it to open or closed as @orangebucket suggested? You are triggering off of “rear side”. So is that just one trigger? I’m not sure how the other axes are triggering your piston.


#16

If you set that device to “Garage-Door-Mode”, it essentially uses the X-axis, but will only send a single command to the hub once the door is fully open or closed.

Well, I say fully, but it may happen in the last 6 inches, depending on where you place the sensor. For the most accurate closing data, install the sensor on the highest panel. It will be the last panel to go vertical when closing.


#17

Exactly what I did.


#18

Well, the brand he went with (SmartThings Multi-Sensor) requires installing perpendicular to the Earth.
(IE: Secured flat to the panel)

This is likely because it uses the X-Axis to determine when the door is open or closed.
(Note: There are some sensors that allow for calibration after installation)


#19

I double checked, and my sensor is indeed set to Garage-Door-Mode, so I was also expecting a single command to the hub, but my logs really show a flurry of activity and many commands back to back to back each time the door is opened or closed.

7/16/2020, 5:54:35 PM +646ms
+1ms ╔Received event [Garage Double Door].threeAxis = 44,31,-1035 with a delay of 53ms
+68ms ║RunTime Analysis CS > 17ms > PS > 4ms > PE > 47ms > CE
+70ms ║Runtime (38595 bytes) successfully initialized in 4ms (v0.3.110.20191009) (68ms)
+71ms ║╔Execution stage started
+78ms ║║Comparison (enum) right side up changes_to (string) rear side up = false (0ms)
+80ms ║║Condition #13 evaluated false (4ms)
+81ms ║║Condition group #12 evaluated false (state did not change) (5ms)
+83ms ║╚Execution stage complete. (11ms)
+84ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1606.867s)
+94ms ╚Event processed successfully (94ms)
7/16/2020, 5:54:34 PM +633ms
+1ms ╔Received event [Garage Double Door].threeAxis = 45,36,-1034 with a delay of 58ms
+67ms ║RunTime Analysis CS > 17ms > PS > 4ms > PE > 45ms > CE
+69ms ║Runtime (38595 bytes) successfully initialized in 4ms (v0.3.110.20191009) (68ms)
+70ms ║╔Execution stage started
+77ms ║║Comparison (enum) right side up changes_to (string) rear side up = false (0ms)
+79ms ║║Condition #13 evaluated false (5ms)
+80ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+82ms ║╚Execution stage complete. (12ms)
+83ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1607.88s)
+94ms ╚Event processed successfully (94ms)
7/16/2020, 5:54:33 PM +695ms
+2ms ╔Received event [Garage Double Door].threeAxis = 38,34,-1032 with a delay of 122ms
+74ms ║RunTime Analysis CS > 18ms > PS > 5ms > PE > 51ms > CE
+76ms ║Runtime (38596 bytes) successfully initialized in 5ms (v0.3.110.20191009) (74ms)
+77ms ║╔Execution stage started
+85ms ║║Comparison (enum) right side up changes_to (string) rear side up = false (0ms)
+86ms ║║Condition #13 evaluated false (5ms)
+87ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+89ms ║╚Execution stage complete. (12ms)
+91ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1608.811s)
+102ms ╚Event processed successfully (102ms)
7/16/2020, 5:54:32 PM +606ms
+2ms ╔Received event [Garage Double Door].threeAxis = 37,32,-1031 with a delay of 72ms
+75ms ║RunTime Analysis CS > 20ms > PS > 5ms > PE > 50ms > CE
+78ms ║Runtime (38595 bytes) successfully initialized in 5ms (v0.3.110.20191009) (76ms)
+79ms ║╔Execution stage started
+86ms ║║Comparison (enum) right side up changes_to (string) rear side up = false (1ms)
+87ms ║║Condition #13 evaluated false (4ms)
+88ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+90ms ║╚Execution stage complete. (12ms)
+92ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1609.899s)
+104ms ╚Event processed successfully (104ms)
7/16/2020, 5:54:31 PM +596ms
+2ms ╔Received event [Garage Double Door].threeAxis = -188,81,-1349 with a delay of 74ms
+80ms ║RunTime Analysis CS > 23ms > PS > 5ms > PE > 52ms > CE
+82ms ║Runtime (38597 bytes) successfully initialized in 5ms (v0.3.110.20191009) (79ms)
+83ms ║╔Execution stage started
+90ms ║║Comparison (enum) right side up changes_to (string) rear side up = false (1ms)
+91ms ║║Condition #13 evaluated false (4ms)
+92ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+94ms ║╚Execution stage complete. (11ms)
+95ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1610.905s)
+106ms ╚Event processed successfully (106ms)
7/16/2020, 5:54:30 PM +597ms
+2ms ╔Received event [Garage Double Door].threeAxis = 232,6,-1088 with a delay of 84ms
+85ms ║RunTime Analysis CS > 23ms > PS > 6ms > PE > 56ms > CE
+87ms ║Runtime (38595 bytes) successfully initialized in 6ms (v0.3.110.20191009) (84ms)
+88ms ║╔Execution stage started
+96ms ║║Comparison (enum) right side up changes_to (string) rear side up = false (1ms)
+97ms ║║Condition #13 evaluated false (4ms)
+98ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+101ms ║╚Execution stage complete. (12ms)
+102ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1611.898s)
+114ms ╚Event processed successfully (114ms)
7/16/2020, 5:54:29 PM +560ms
+1ms ╔Received event [Garage Double Door].threeAxis = 497,33,-846 with a delay of 64ms
+67ms ║RunTime Analysis CS > 17ms > PS > 4ms > PE > 46ms > CE
+70ms ║Runtime (38594 bytes) successfully initialized in 4ms (v0.3.110.20191009) (67ms)
+70ms ║╔Execution stage started
+77ms ║║Comparison (enum) right side up changes_to (string) rear side up = false (0ms)
+79ms ║║Condition #13 evaluated false (5ms)
+80ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+82ms ║╚Execution stage complete. (12ms)
+83ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1612.953s)
+93ms ╚Event processed successfully (93ms)
7/16/2020, 5:54:28 PM +534ms
+2ms ╔Received event [Garage Double Door].threeAxis = 1006,27,-357 with a delay of 80ms
+81ms ║RunTime Analysis CS > 25ms > PS > 6ms > PE > 50ms > CE
+83ms ║Runtime (38595 bytes) successfully initialized in 6ms (v0.3.110.20191009) (81ms)
+84ms ║╔Execution stage started
+91ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (1ms)
+93ms ║║Condition #13 evaluated false (4ms)
+93ms ║║Condition group #12 evaluated false (state did not change) (5ms)
+96ms ║╚Execution stage complete. (11ms)
+97ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1613.966s)
+119ms ╚Event processed successfully (119ms)
7/16/2020, 5:54:27 PM +533ms
+0ms ╔Received event [Garage Double Door].threeAxis = 876,26,-74 with a delay of 61ms
+72ms ║RunTime Analysis CS > 18ms > PS > 3ms > PE > 52ms > CE
+74ms ║Runtime (38593 bytes) successfully initialized in 3ms (v0.3.110.20191009) (73ms)
+75ms ║╔Execution stage started
+83ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (1ms)
+84ms ║║Condition #13 evaluated false (4ms)
+85ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+87ms ║╚Execution stage complete. (12ms)
+89ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1614.975s)
+101ms ╚Event processed successfully (101ms)
7/16/2020, 5:54:26 PM +550ms
+2ms ╔Received event [Garage Double Door].threeAxis = 1068,15,-159 with a delay of 126ms
+80ms ║RunTime Analysis CS > 23ms > PS > 6ms > PE > 50ms > CE
+82ms ║Runtime (38596 bytes) successfully initialized in 6ms (v0.3.110.20191009) (79ms)
+83ms ║╔Execution stage started
+90ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (0ms)
+92ms ║║Condition #13 evaluated false (4ms)
+93ms ║║Condition group #12 evaluated false (state did not change) (5ms)
+95ms ║╚Execution stage complete. (11ms)
+96ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1615.951s)
+106ms ╚Event processed successfully (106ms)
7/16/2020, 5:54:25 PM +539ms
+2ms ╔Received event [Garage Double Door].threeAxis = 978,21,4 with a delay of 78ms
+83ms ║RunTime Analysis CS > 24ms > PS > 6ms > PE > 53ms > CE
+86ms ║Runtime (38591 bytes) successfully initialized in 6ms (v0.3.110.20191009) (83ms)
+87ms ║╔Execution stage started
+94ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (0ms)
+95ms ║║Condition #13 evaluated false (4ms)
+96ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+98ms ║╚Execution stage complete. (12ms)
+99ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1616.958s)
+112ms ╚Event processed successfully (111ms)
7/16/2020, 5:54:25 PM +64ms
+1ms ╔Received event [Garage Double Door].threeAxis = 1069,24,-102 with a delay of 76ms
+84ms ║RunTime Analysis CS > 24ms > PS > 6ms > PE > 54ms > CE
+86ms ║Runtime (38595 bytes) successfully initialized in 6ms (v0.3.110.20191009) (84ms)
+88ms ║╔Execution stage started
+95ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (1ms)
+97ms ║║Condition #13 evaluated false (4ms)
+98ms ║║Condition group #12 evaluated false (state did not change) (5ms)
+100ms ║╚Execution stage complete. (13ms)
+101ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1617.431s)
+116ms ╚Event processed successfully (117ms)
7/16/2020, 5:54:23 PM +470ms
+1ms ╔Received event [Garage Double Door].threeAxis = 1129,41,-91 with a delay of 56ms
+65ms ║RunTime Analysis CS > 16ms > PS > 4ms > PE > 44ms > CE
+67ms ║Runtime (38594 bytes) successfully initialized in 4ms (v0.3.110.20191009) (66ms)
+68ms ║╔Execution stage started
+75ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (1ms)
+76ms ║║Condition #13 evaluated false (4ms)
+77ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+79ms ║╚Execution stage complete. (12ms)
+81ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1619.046s)
+92ms ╚Event processed successfully (92ms)
7/16/2020, 5:54:22 PM +458ms
+0ms ╔Received event [Garage Double Door].threeAxis = 1109,35,-24 with a delay of 55ms
+62ms ║RunTime Analysis CS > 14ms > PS > 5ms > PE > 44ms > CE
+64ms ║Runtime (38594 bytes) successfully initialized in 5ms (v0.3.110.20191009) (63ms)
+65ms ║╔Execution stage started
+72ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (1ms)
+73ms ║║Condition #13 evaluated false (4ms)
+74ms ║║Condition group #12 evaluated false (state did not change) (5ms)
+77ms ║╚Execution stage complete. (12ms)
+78ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1620.061s)
+161ms ╚Event processed successfully (160ms)
7/16/2020, 5:54:21 PM +444ms
+2ms ╔Received event [Garage Double Door].threeAxis = 1188,-1,-166 with a delay of 76ms
+74ms ║RunTime Analysis CS > 21ms > PS > 5ms > PE > 48ms > CE
+77ms ║Runtime (38595 bytes) successfully initialized in 5ms (v0.3.110.20191009) (74ms)
+77ms ║╔Execution stage started
+84ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (0ms)
+86ms ║║Condition #13 evaluated false (4ms)
+87ms ║║Condition group #12 evaluated false (state did not change) (5ms)
+89ms ║╚Execution stage complete. (11ms)
+90ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1621.063s)
+103ms ╚Event processed successfully (103ms)
7/16/2020, 5:54:20 PM +497ms
+2ms ╔Received event [Garage Double Door].threeAxis = 1146,-49,34 with a delay of 69ms
+77ms ║RunTime Analysis CS > 20ms > PS > 5ms > PE > 51ms > CE
+79ms ║Runtime (38594 bytes) successfully initialized in 5ms (v0.3.110.20191009) (77ms)
+80ms ║╔Execution stage started
+87ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (1ms)
+88ms ║║Condition #13 evaluated false (4ms)
+89ms ║║Condition group #12 evaluated false (state did not change) (6ms)
+91ms ║╚Execution stage complete. (12ms)
+93ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1622.007s)
+104ms ╚Event processed successfully (104ms)
7/16/2020, 5:54:19 PM +584ms
+2ms ╔Received event [Garage Double Door].threeAxis = 1212,8,-37 with a delay of 68ms
+71ms ║RunTime Analysis CS > 21ms > PS > 5ms > PE > 45ms > CE
+73ms ║Runtime (38593 bytes) successfully initialized in 5ms (v0.3.110.20191009) (71ms)
+74ms ║╔Execution stage started
+81ms ║║Comparison (enum) rear side up changes_to (string) rear side up = false (0ms)
+82ms ║║Condition #13 evaluated false (4ms)
+83ms ║║Condition group #12 evaluated false (state did not change) (5ms)
+85ms ║╚Execution stage complete. (11ms)
+87ms ║Setting up scheduled job for Thu, Jul 16 2020 @ 6:21:22 PM CDT (in 1622.926s)
+98ms ╚Event processed successfully (98ms)Preformatted text


#20

If your trigger is threeAxis, you will get spammed.
If your trigger is orientation, you should only get one when opening, and a different one when closing.


Here are the six orientations:

  • down side up
  • up side up
  • front side up
  • rear side up
  • left side up
  • right side up

(depending on how you installed the device, one of these represents open, and one represents closed)


All that being said, it is worth checking if Garage Door’s contact shows open or closed.
(if memory serves me right, this may be the best method)


#21

Thanks so much. I just checked my trigger, and it is definitely orientation. However, the logs are still showing axis numbers. I see that I can also switch my trigger to “contact” which I didn’t originally consider because I’m in garage mode and my sensor is only a “half” sensor with no true contact to be had. However, I just switched my sensor to contact, and indeed shows open/closed as you indicated. I think you may have fixed my problem! Thank you so much!