[Deprecated] Xiaomi / Aqara / Opple Drivers with Presence!

Well this morning I've tried what @Evilborg suggested and it actually worked. There was this warning, but other than that it seems to log the correct presses.

To answer the other questions, currently the pairing proccess was happening in the same room, 2 meteres between the 2 devices. I currently have paired only the sensors and the HE somehow discovered my 2 Yeelights, that are still paired to the Xiaomi Hub 3rd gen, so I'm not sure what should I do about those. Today I will be probably fighting the Sonoff Basic ZBR3 and one of the "new" ([New Arrival] Xiaomi Mijia Smart Switch Wall Switch Single/Doubl/Three Open Dual - US$10.49) Xiaomi switches that I have. I'm having high expectations towards the ZBR3s, as those would probably be the baseline for my mesh. For the Xiaomi switches I'm not so optimistic about, because even if I get them to work, they are without neutral wire and they have a square box, so I wouldn't be able to use them most likely, but I still want to try and connect them. As far as the Sonoff Basic goes, I've never flashed devices like these, but I'll see what happens.

Either way, thanks for your help guys, much appreciated!

2 Likes

Those warnings are fine, it is part of a precautionary change I did to the drivers for 2.2.3. This may change when the true issue is fully known.

These are good in terms of HOW they repeat, but in terms of transmitting power they are very/rather weak. Depending on your RF environment they may or may not work well for you. There are threads about this device discussing this in more detail.

These should work, any issue please report them and I'll see about updating the drivers. I don't have the fingerprints for all three of them, so please report the fingerprints using my Zigbee Toolbox Driver and the GetInfo command in that driver.

If you're talking about the Zigbee version, ZBR3, there is no flashing needed, that would be for the Wifi version you would flash with Tasmota.

2 Likes

Thanks for that, I was confused exactly by this.

Surely, no problems. I will post the results.

I live in a house with medium/thick walls/floors but I'll see what happens. I'm planning to move my routed and my hub in a more central place, since they are on the top floor currently, which limits the range.

I forget where I learnt that trick from but the flashes I learnt from trial and error after pairing so many Xiaomi devices. They all pair the same way with the blinking blue light. If you press the reset button once you should see 1 of 2 replies... 3 quick flashes means its paired and talking and a single long blue light means it lost pairing.

3 Likes

@markus

One of my sensor has a strange behavior.
Every time i reconnect it, it sends some multstate event, but never come back with the hourly checkin.

dev:712020-08-16 10:09:25.314 am infoSending Absolute Humidity event (Absolute Humidity: 16.5g/m³)
dev:712020-08-16 10:09:25.306 am infoSending humidity event (Humidity: 63.4%, old humidity: 57.40%, change: 6.00%)
dev:712020-08-16 10:09:20.070 am infoRestoring bind settings
dev:712020-08-16 10:09:20.065 am warnOne or several EXPECTED checkin events have been missed! Something MIGHT be wrong with the mesh for this device. Minutes since last checkin: 709 (maximum expected 90)
dev:712020-08-16 10:09:20.060 am infoMULTISTATE CLUSTER EVENT - description:catchall: 0000 0013 00 00 0040 00 B17B 00 00 0000 00 00 7C7BB106D75402008D150080 | parseMap:[raw:catchall: 0000 0013 00 00 0040 00 B17B 00 00 0000 00 00 7C7BB106D75402008D150080, profileId:0000, clusterId:0013, clusterInt:19, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:B17B, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[7C, 7B, B1, 06, D7, 54, 02, 00, 8D, 15, 00, 80]]

My shipment of potential disappointment arrived today! :wink:

Only hooked up one of these new Aqara D1 wired wall switches (no neutral) so far, this is from the QBKG22LM, which is the two-button version.

Shows like this in the device details:

  • endpointId: 01
  • buttonCombos: 1
  • application: 1C
  • driver: v0.8.1.0814
  • model: lumi.switch.b2lacn02
  • physicalButtons: 2
  • manufacturer: LUMI
dev:332020-08-17 15:47:44.325 infoSending temperature event (Temperature: 22.0 °C)
dev:332020-08-17 15:47:44.318 debugKNOWN event (Xiaomi/Aqara specific data structure) - description:read attr - raw: 80E50100005A01FF42296410006510006E20006F20000121D40C0328160521060008211C360A2109DA9923000000009B210000, dni: 80E5, endpoint: 01, cluster: 0000, size: 5A, attrId: FF01, encoding: 42, command: 0A, value: 296410006510006E20006F20000121D40C0328160521060008211C360A2109DA9923000000009B210000 | parseMap:[raw:80E50100005A01FF42296410006510006E20006F20000121D40C0328160521060008211C360A2109DA9923000000009B210000, dni:80E5, endpoint:01, cluster:0000, size:5A, attrId:FF01, encoding:41, command:0A, value:[raw:[openClose:00, switch2:00, unknown10:00, unknown11:00, battery:0CD4, deviceTemperature:16, RSSI_dB:0006, unknown3:361C, routerid:DA09, gestureCounter3:00000000, unknown9:0000], openClose:false, switch2:false, unknown10:0, unknown11:0, battery:3284, deviceTemperature:22, RSSI_dB:6, unknown3:13852, routerid:55817, gestureCounter3:0, unknown9:0], clusterInt:0, attrInt:65281]
dev:332020-08-17 15:47:03.393 errorjava.lang.NullPointerException: Cannot invoke method parse() on null object on line 643 (parse)
dev:332020-08-17 15:47:03.375 infoOn/Off Button press - description:read attr - raw: 80E5050006100000100000001001, dni: 80E5, endpoint: 05, cluster: 0006, size: 10, attrId: 0000, encoding: 10, command: 0A, value: 0000001001 | parseMap:[raw:80E5050006100000100000001001, dni:80E5, endpoint:05, cluster:0006, size:10, attrId:0000, encoding:10, command:0A, value:00, clusterInt:6, attrInt:0, additionalAttrs:[[value:01, encoding:10, attrId:0000, consumedBytes:4, attrInt:0]], valueParsed:false]
dev:332020-08-17 15:47:03.060 errorjava.lang.NullPointerException: Cannot invoke method parse() on null object on line 643 (parse)
dev:332020-08-17 15:47:03.041 infoOn/Off Button press - description:read attr - raw: 80E5030006160000100000F02300E58003, dni: 80E5, endpoint: 03, cluster: 0006, size: 16, attrId: 0000, encoding: 10, command: 0A, value: 0000F02300E58003 | parseMap:[raw:80E5030006160000100000F02300E58003, dni:80E5, endpoint:03, cluster:0006, size:16, attrId:0000, encoding:10, command:0A, value:00, clusterInt:6, attrInt:0, additionalAttrs:[[value:0380E500, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]], valueParsed:false]
dev:332020-08-17 15:46:59.458 errorjava.lang.NullPointerException: Cannot invoke method parse() on null object on line 643 (parse)
dev:332020-08-17 15:46:59.442 infoOn/Off Button press - description:read attr - raw: 80E5050006100000100000001001, dni: 80E5, endpoint: 05, cluster: 0006, size: 10, attrId: 0000, encoding: 10, command: 0A, value: 0000001001 | parseMap:[raw:80E5050006100000100000001001, dni:80E5, endpoint:05, cluster:0006, size:10, attrId:0000, encoding:10, command:0A, value:00, clusterInt:6, attrInt:0, additionalAttrs:[[value:01, encoding:10, attrId:0000, consumedBytes:4, attrInt:0]], valueParsed:false]
dev:332020-08-17 15:46:59.150 errorjava.lang.NullPointerException: Cannot invoke method parse() on null object on line 641 (parse)
dev:332020-08-17 15:46:59.134 infoOn/Off Button press - description:read attr - raw: 80E5030006160000100100F02300E58003, dni: 80E5, endpoint: 03, cluster: 0006, size: 16, attrId: 0000, encoding: 10, command: 0A, value: 0100F02300E58003 | parseMap:[raw:80E5030006160000100100F02300E58003, dni:80E5, endpoint:03, cluster:0006, size:16, attrId:0000, encoding:10, command:0A, value:01, clusterInt:6, attrInt:0, additionalAttrs:[[value:0380E500, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]], valueParsed:true]
dev:332020-08-17 15:46:55.387 errorjava.lang.NullPointerException: Cannot invoke method parse() on null object on line 643 (parse)
dev:332020-08-17 15:46:55.370 infoOn/Off Button press - description:read attr - raw: 80E5040006100000100000001001, dni: 80E5, endpoint: 04, cluster: 0006, size: 10, attrId: 0000, encoding: 10, command: 0A, value: 0000001001 | parseMap:[raw:80E5040006100000100000001001, dni:80E5, endpoint:04, cluster:0006, size:10, attrId:0000, encoding:10, command:0A, value:00, clusterInt:6, attrInt:0, additionalAttrs:[[value:01, encoding:10, attrId:0000, consumedBytes:4, attrInt:0]], valueParsed:false]
dev:342020-08-17 15:46:55.061 infoSwitch turned OFF
dev:332020-08-17 15:46:55.047 infoOn/Off Button press - description:read attr - raw: 80E5020006160000100000F02336E58003, dni: 80E5, endpoint: 02, cluster: 0006, size: 16, attrId: 0000, encoding: 10, command: 0A, value: 0000F02336E58003 | parseMap:[raw:80E5020006160000100000F02336E58003, dni:80E5, endpoint:02, cluster:0006, size:16, attrId:0000, encoding:10, command:0A, value:00, clusterInt:6, attrInt:0, additionalAttrs:[[value:0380E536, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]], valueParsed:false]
dev:332020-08-17 15:46:49.675 errorjava.lang.NullPointerException: Cannot invoke method parse() on null object on line 643 (parse)
dev:332020-08-17 15:46:49.659 infoOn/Off Button press - description:read attr - raw: 80E5040006100000100000001001, dni: 80E5, endpoint: 04, cluster: 0006, size: 10, attrId: 0000, encoding: 10, command: 0A, value: 0000001001 | parseMap:[raw:80E5040006100000100000001001, dni:80E5, endpoint:04, cluster:0006, size:10, attrId:0000, encoding:10, command:0A, value:00, clusterInt:6, attrInt:0, additionalAttrs:[[value:01, encoding:10, attrId:0000, consumedBytes:4, attrInt:0]], valueParsed:false]
dev:342020-08-17 15:46:49.335 infoSwitch turned ON
dev:332020-08-17 15:46:49.326 infoOn/Off Button press - description:read attr - raw: 80E5020006160000100100F02336E58003, dni: 80E5, endpoint: 02, cluster: 0006, size: 16, attrId: 0000, encoding: 10, command: 0A, value: 0100F02336E58003 | parseMap:[raw:80E5020006160000100100F02336E58003, dni:80E5, endpoint:02, cluster:0006, size:16, attrId:0000, encoding:10, command:0A, value:01, clusterInt:6, attrInt:0, additionalAttrs:[[value:0380E536, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]], valueParsed:true]
--- Live Log Started, waiting for events ---

That's a single press on and off for the left and then the right paddle.

I can remote control what I would consider to be the 'left' relay already, but the 'right' one doesn't work remotely. I'll ignore for the moment that I wired the load into L1 and it seems that the RIGHT paddle is controlling it... :rofl:

The relay which is remote controllable is very fast, more responsive than the older model.

Sounds like the sensor isn't properly paired, try factory resetting it (hold the reset button for > 10s). Then pair it without first deleting the device from HE.

I see where these go wrong, it's the endpoints which needs to be remapped for these models, apart from that they will probably just work. I will try to find time later in the week, but no promises :stuck_out_tongue:

No problem, thank you! Let me know if you need more logs with double-press, hold and anything else. I also have a triple button version, but I've not installed that yet. The ones I have now are:

QBKG22LM (Wired, 2 Button, No Neutral)
QBKG25LM (Wired, 3 Button, No Neutral)
WXKG07LM (Wireless, 2 Button)

Because I have a WXKG07LM next to me:

dev:422020-08-18 09:06:50.817 debugbuttonDown(button=1) UNUSED EVENT
dev:422020-08-18 09:06:50.814 debugparseButtonEvent() (btn: 0, btnModified: 1, endpoint: 2, physicalButtons: 1, attrId: 0055, msgMap: [raw:24E10200120A5500210000, dni:24E1, endpoint:02, cluster:0012, size:0A, attrId:0055, encoding:21, command:0A, value:0000, clusterInt:18, attrInt:85, valueParsed:0])
dev:422020-08-18 09:06:50.806 debugDescription: read attr - raw: 24E10200120A5500210000, dni: 24E1, endpoint: 02, cluster: 0012, size: 0A, attrId: 0055, encoding: 21, command: 0A, value: 0000
dev:422020-08-18 09:06:43.252 debuggetChildDeviceConfig()
dev:422020-08-18 09:06:43.248 infobuttonDoubleTapped(button=2)
dev:422020-08-18 09:06:43.245 infoButton 2 was double tapped
dev:422020-08-18 09:06:43.242 infoButton 3 was pushed (t1)
dev:422020-08-18 09:06:43.238 debugparseButtonEvent() (btn: 2, btnModified: 3, endpoint: 2, physicalButtons: 1, attrId: 0055, msgMap: [raw:24E10200120A5500210200, dni:24E1, endpoint:02, cluster:0012, size:0A, attrId:0055, encoding:21, command:0A, value:0002, clusterInt:18, attrInt:85, valueParsed:2])
dev:422020-08-18 09:06:43.231 debugDescription: read attr - raw: 24E10200120A5500210200, dni: 24E1, endpoint: 02, cluster: 0012, size: 0A, attrId: 0055, encoding: 21, command: 0A, value: 0200
dev:422020-08-18 09:06:40.564 infoButton 2 was pushed (t1)
dev:422020-08-18 09:06:40.561 debugparseButtonEvent() (btn: 1, btnModified: 2, endpoint: 2, physicalButtons: 1, attrId: 0055, msgMap: [raw:24E10200120A5500210100, dni:24E1, endpoint:02, cluster:0012, size:0A, attrId:0055, encoding:21, command:0A, value:0001, clusterInt:18, attrInt:85, valueParsed:1])
dev:422020-08-18 09:06:40.553 debugDescription: read attr - raw: 24E10200120A5500210100, dni: 24E1, endpoint: 02, cluster: 0012, size: 0A, attrId: 0055, encoding: 21, command: 0A, value: 0100
dev:422020-08-18 09:06:27.765 debugbuttonDown(button=1) UNUSED EVENT
dev:422020-08-18 09:06:27.757 debugparseButtonEvent() (btn: 0, btnModified: 0, endpoint: 1, physicalButtons: 1, attrId: 0055, msgMap: [raw:24E10100120A5500210000, dni:24E1, endpoint:01, cluster:0012, size:0A, attrId:0055, encoding:21, command:0A, value:0000, clusterInt:18, attrInt:85, valueParsed:0])
dev:422020-08-18 09:06:27.749 debugDescription: read attr - raw: 24E10100120A5500210000, dni: 24E1, endpoint: 01, cluster: 0012, size: 0A, attrId: 0055, encoding: 21, command: 0A, value: 0000
dev:422020-08-18 09:06:18.495 debuggetChildDeviceConfig()
dev:422020-08-18 09:06:18.492 infobuttonDoubleTapped(button=1)
dev:422020-08-18 09:06:18.489 infoButton 1 was double tapped
dev:422020-08-18 09:06:18.485 infoButton 2 was pushed (t1)
dev:422020-08-18 09:06:18.482 debugparseButtonEvent() (btn: 2, btnModified: 2, endpoint: 1, physicalButtons: 1, attrId: 0055, msgMap: [raw:24E10100120A5500210200, dni:24E1, endpoint:01, cluster:0012, size:0A, attrId:0055, encoding:21, command:0A, value:0002, clusterInt:18, attrInt:85, valueParsed:2])
dev:422020-08-18 09:06:18.472 debugDescription: read attr - raw: 24E10100120A5500210200, dni: 24E1, endpoint: 01, cluster: 0012, size: 0A, attrId: 0055, encoding: 21, command: 0A, value: 0200
dev:422020-08-18 09:06:09.788 debuggetChildDeviceConfig()
dev:422020-08-18 09:06:09.785 infobuttonPushed(button=1)
dev:422020-08-18 09:06:09.781 infoButton 1 was pushed (t1)
dev:422020-08-18 09:06:09.778 debugparseButtonEvent() (btn: 1, btnModified: 1, endpoint: 1, physicalButtons: 1, attrId: 0055, msgMap: [raw:24E10100120A5500210100, dni:24E1, endpoint:01, cluster:0012, size:0A, attrId:0055, encoding:21, command:0A, value:0001, clusterInt:18, attrInt:85, valueParsed:1])
dev:422020-08-18 09:06:09.766 debugDescription: read attr - raw: 24E10100120A5500210100, dni: 24E1, endpoint: 01, cluster: 0012, size: 0A, attrId: 0055, encoding: 21, command: 0A, value: 0100
--- Live Log Started, waiting for events ---

That's left button press, double press, triple press (no response) and hold, then the same again for the right button. Looks like it's identified as a 1 button device by default, so I'm able to use both paddles but because the driver is expecting button 2 to be the double press of the left.

It's shown as:

  • endpointId: 01
  • application: 09
  • driver: v0.8.1.0814
  • model: lumi.remote.b286acn02
  • manufacturer: LUMI

Yesterday afternoon I added two QBKG22LM and two WXKG07LM to their own mesh on a C-5 (v2.2.2.129) with one Trådfri repeater, three Trådfri lamps and one Salus SP600 outlet.

They're all still working this morning...

1 Like

Probably, when I sit down to look at it I will find out.

They should, these are all supposedly ZB3.0 and should graciously downgrade to standard HA1.2. But should and Aqara... The one QBKG24LM (2 button with neutral) I have work really well. It sits in my test-setup on my desk so not much of a test though.

1 Like

:joy:

1 Like

I'm trying to figure out why they have the L1 and L2 switched live relays backwards on these. On the old ones the left button controls L1 and the right controls L2, as you would expect. On these the left button (as seen once mounted on the wall) controls L2 and the right controls L1. Weird. I wonder if it's a local configuration option?

I thought I was going mad, had to take one back off the wall to check!

There might be a configuration option for that. Do you have an Aqara hub with ZB3.0 support? If it is an option it would be different from the one I have with neutral, because with that one I can't set that.

No, I've never owned one of their hubs. It's entirely possible the older models have firmware updates waiting for them that may have improved their behaviour.

I have both old and new ones just to sniff traffic :slight_smile: Not sure if there are firmware updates for any of their devices, I've not seen any of my devices ever update. The devices do send a check to the controller asking for a device update though.

Heck, I was just browsing GitHub (as you do) and noticed there's also a button press for both buttons together, mentioned in this pull request for zigpy. I'll add that to my presses!

dev:422020-08-18 11:24:33.455 infoButton 3 was pushed (t1)
dev:422020-08-18 11:24:33.449 debugparseButtonEvent() (btn: 1, btnModified: 3, endpoint: 3, physicalButtons: 1, attrId: 0055, msgMap: [raw:24E10300120A5500210100, dni:24E1, endpoint:03, cluster:0012, size:0A, attrId:0055, encoding:21, command:0A, value:0001, clusterInt:18, attrInt:85, valueParsed:1])
dev:422020-08-18 11:24:33.438 debugDescription: read attr - raw: 24E10300120A5500210100, dni: 24E1, endpoint: 03, cluster: 0012, size: 0A, attrId: 0055, encoding: 21, command: 0A, value: 0100

Ah, sees it as button 3.

:slight_smile:

Yes, same goes for many other of these, where I know of it, I've added it in the driver. :slight_smile:

I didn't get any single button devices this time around because I'm not a fan of the double-tap action (just seems a bit hammery on the buttons). I save that for when I'm desperate. Looks like I just gained an unexpected extra button! :smiley:

Yes, and I think the 3 button one may have even more :slight_smile:

Hi @markus
Just wondering if you have got to the bottom of what has caused the issue?

1 Like

Xiaomi Sensor, Rule or Hub issue. What do you think?

I have a Xiaomi sensor on my garage door. There is a rule alerting me when the garage door is open for +10min
Sometimes the garage door is closed but I get an "open door" alerting.
The sensor shows the correct status. (closed)
Could it be a Xiaomi sensor issue, a rule issue or is it a hub issue (ex, too much messages to handel on a short time?

Extra info
in the log from the sensor I see 2 times open/closed (this log is saved using IFTTT)
In the logs from the hub I see 3 times open/closed, the middle open and close is missing in the sensor log's, it looks the problem starts there

What do you think?

Rule I use

Log sensor - This log is saved using IFTTT (save data on google drive when open/close)

|August 20, 2020 at 11:33PM|Garage Door|contact|open|
|August 20, 2020 at 11:33PM|Garage Door|contact|closes|
|August 21, 2020 at 10:17AM|Garage Door|contact|open|
|August 21, 2020 at 10:19AM|Garage Door|contact|closes|
|August 21, 2020 at 10:29AM|Garage Door|contact|open|
|August 21, 2020 at 10:29AM|Garage Door|contact|closes|
|August 21, 2020 at 11:20AM|Garage Door|contact|open|
|August 21, 2020 at 11:21AM|Garage Door|contact|closes|

Log Hubitat rule + sensor

|dev:257|21/08/2020|10:17:52.279|infosendOpenCloseEvent(openClose=true) invertContact=false|
|dev:257|21/08/2020|10:17:52.286|infobuttonPushed(button=1)|
|app:854|21/08/2020|10:17:52.520|infoGarage Door OPEN for +10min: Garage Door contact open|
|app:854|21/08/2020|10:17:52.529|infoGarage Door OPEN for +10min Triggered|
|app:854|21/08/2020|10:17:52.659|infoAction: IF (Garage Door open(T) [TRUE]) THEN|
|app:854|21/08/2020|10:17:52.670|infoAction: Delay 0:10:00 (cancelable)|
|dev:257|21/08/2020|10:19:28.170|infosendOpenCloseEvent(openClose=false) invertContact=false|
|dev:257|21/08/2020|10:19:28.176|infobuttonDown(button=1)|
|app:854|21/08/2020|10:19:28.358|infoGarage Door OPEN for +10min: Garage Door contact closed|
|app:854|21/08/2020|10:19:28.367|infoGarage Door OPEN for +10min Triggered|
|app:854|21/08/2020|10:19:28.418|infoAction: IF (Garage Door open(T) [TRUE]) THEN|
|app:854|21/08/2020|10:19:28.422|infoAction: Delay 0:10:00 (cancelable)|
|dev:257|21/08/2020|10:19:29.028|infosendOpenCloseEvent(openClose=true) invertContact=false|
|dev:257|21/08/2020|10:19:29.033|infobuttonPushed(button=1)|
|dev:257|21/08/2020|10:19:30.460|infosendOpenCloseEvent(openClose=false) invertContact=false|
|dev:257|21/08/2020|10:19:30.465|infobuttonDown(button=1)|
|app:854|21/08/2020|10:27:52.920|infoDelay Over: Delay 0:10:00 (cancelable)|
|app:854|21/08/2020|10:27:53.035|infoAction: Set Private Boolean True|
|app:854|21/08/2020|10:27:53.068|infoGarage Door OPEN for +10min: Repeating Actions|
|app:854|21/08/2020|10:27:53.096|infoAction: Set Volume on Kitchen Google Home Mini to 80|
|app:854|21/08/2020|10:27:53.265|infoAction: Notify Mobile Bruno and Speak on Kitchen Google Home Mini: 'The Garage Door is open'|
|app:854|21/08/2020|10:27:54.053|infoAction: END-REP (waiting for next)|
|app:854|21/08/2020|10:28:53.284|infoGarage Door OPEN for +10min: Repeating Actions|
|app:854|21/08/2020|10:28:53.305|infoAction: Set Volume on Kitchen Google Home Mini to 80|
|app:854|21/08/2020|10:28:53.643|infoAction: Notify Mobile Bruno and Speak on Kitchen Google Home Mini: 'The Garage Door is open'|
|app:854|21/08/2020|10:28:53.695|infoAction: END-REP (waiting for next)|
|dev:257|21/08/2020|10:29:15.324|infosendOpenCloseEvent(openClose=true) invertContact=false|
|dev:257|21/08/2020|10:29:15.330|infobuttonPushed(button=1)|
|app:854|21/08/2020|10:29:15.526|infoGarage Door OPEN for +10min: Garage Door contact open|
|app:854|21/08/2020|10:29:15.535|infoGarage Door OPEN for +10min Triggered|
|app:854|21/08/2020|10:29:15.603|infoAction: IF (Garage Door open(T) [TRUE]) THEN|
|app:854|21/08/2020|10:29:15.609|infoAction: Delay 0:10:00 (cancelable)|
|dev:257|21/08/2020|10:29:15.941|infosendOpenCloseEvent(openClose=false) invertContact=false|
|dev:257|21/08/2020|10:29:15.946|infobuttonDown(button=1)|
|app:854|21/08/2020|10:29:16.152|infoGarage Door OPEN for +10min: Garage Door contact closed|
|app:854|21/08/2020|10:29:16.161|infoGarage Door OPEN for +10min Triggered|
|app:854|21/08/2020|10:29:16.214|infoAction: IF (Garage Door open(F) [FALSE]) THEN (skipping)|
|app:854|21/08/2020|10:29:16.221|infoAction: Delay 0:10:00 (cancelable) (skipped)|
|app:854|21/08/2020|10:29:16.253|infoAction: Set Private Boolean True (skipped)|
|app:854|21/08/2020|10:29:16.256|infoAction: Repeat every 0:01:00 (stopable) (skipped)|
|app:854|21/08/2020|10:29:16.267|infoAction: Set Volume on Kitchen Google Home Mini to 80 (skipped)|
|app:854|21/08/2020|10:29:16.276|infoAction: Notify Mobile Bruno and Speak on Kitchen Google Home Mini: 'The Garage Door is open' (skipped)|
|app:854|21/08/2020|10:29:16.280|infoAction: END-REP (skipped)|
|app:854|21/08/2020|10:29:16.283|infoAction: ELSE (do actions)|
|app:854|21/08/2020|10:29:16.287|infoAction: Cancel Delayed Actions|
|app:854|21/08/2020|10:29:16.351|infoAction: Stop Repeating Actions|
|app:854|21/08/2020|10:29:16.358|infoGarage Door OPEN for +10min: Action Repition stopped|
|app:854|21/08/2020|10:29:16.410|infoAction: IF (Private Boolean is true TRUE) Notify Mobile Bruno and Speak on Kitchen Google Home Mini: 'Ok, The Garage Door is closed'|
|app:854|21/08/2020|10:29:16.488|infoAction: Set Private Boolean False|
|app:854|21/08/2020|10:29:16.493|infoAction: END-IF|