[RELEASE] Abode Alarm system driver 2024

This is a updated Abode Alarm driver base on @endorphin_junkie
original code at [RELEASE] Abode Alarm system driver I believe he did indicate that he does not use this code any more. ( [RELEASE] Abode Alarm system driver - #33 by endorphin_junkie ) I have tried to reach out, but no response so I'm not sure if they may be following this thread or not.

I've made some significant updates to this.

I added 4 drivers (Contact sensor, and Motion sensor, Glass and Smoke) I've been testing this for quite a while now and so far things are working good. I've also added a MFA feature if you want to use the sreed/private key Abode gives you (it does store this on habitat plain text) it will use MFA to login as well to Abode. The private key is only visible when you setup MFA the first time.

What I was able to do was un-match in Package Manager, then import my version on the main Abode drivers to replace the one existing. Then also add the up to 4 Device drivers as well. This should I hope keep any existing rules in place for you. But also you can now have the ability to utilize Contact sensors and motion as well.

For now, the GLASS and Smoke are created, but do not do anything yet. I need debug output from the trigger of those and I have not been able to find a way to reliably trigger the glass or smoke sensors in order to check the status of those devices to make child devices.

This is now in HPM under the name "Abode Alarm 2024"

5 Likes

Thanks SO MUCH for doing this.

As one of the users that downloaded this last night from your Github, I had already updated the old driver with your code. However, I would prefer to pull updates via HPM, so I downloaded the HPM files. I noticed that when in the device, when I select drivers, both your driver and the original driver have the same name. Is there any way you could rename the driver to include 2024 in the driver name in the pulldown? This would be helpful to those who are switching.

Also, the original driver had a virtual switch child device. I'm unclear on what it's purpose was/is, but noticed your HPM driver does not include a child virtual switch. Does anyone know what it's purpose was and if it is needed?

It's still there. Pretty sure it's just used a indicator of armed/disarmed status, nothing more.

1 Like

Installed the "Abode Alarm Glass" driver, and noticed
a. It picks up both the Abode Glass Break sensors and the Abode Shock/Vibration sensors
b. It's status attribute for Shock returns Shock or None

I don't see any issue with this, but was surprised the driver picks up both device types. Perhaps that is by design. If the attribute name is from Abode, so be it. If the attribute name was assigned, and the driver is intended to pick up both device types, perhaps Triggered or another word would better describe the "active" state of both of these devices.

Right now the it see the device "type" from Abode as "GLASS", so the Shock/Vibration must be listed that way too.

I choose (right now) to use the ShockSensor from Hubitat for that GLASS device (I am open to other suggestions).

I would again need to see the debug/trace of an active/inactive event in order to start to capture that status.

Yes, it is a "isarmed" child device and still gets created and acted on. But no child driver code needed for that part, as it is just a simple switch. (That was original code I did not adjust/change). Anything in the older version of Abode Alarm should still be kept and working.

2 Likes

Name adjusted/changed in HPM as well as the code drive. The child devices I left alone names, as the Alarm main driver uses those names. Thanks for the suggestion.

1 Like

As a data point for other Abode & Hubitat users, I can confirm that @x86cpu Eric's Abode Alarm Contact driver works with the

  1. Abode mini contact sensors
  2. Abode slim strip contact sensors
  3. Abode recessed contact sensors
    I don't have one of the Abode original larger contact sensors to test with.

I can also confirm the response time in Hubitat using @x86cpu Eric's drivers is approx 2x as fast as it was when I was picking up contact sensor open and close activities from the timeline using only the original Abode parent driver.

THANK YOU ERIC!!!!!

Excellent! I have just finished redoing my RM apps to incorporate the abode sensors directly instead of using the timeline method. Happy!
If you have a use for the Abode Multi-sensor illumination vaules, the integration would be complete. The motion part of that sensor is working perfectly though.

1 Like

I'll gladly try to integrate any other Abode sensor. I just need the debug/trace output from saving prefs for that sensor as well as when it triggers a change. If you can get those for the illumination vaules I could try to get a child device .

1 Like

I would love to gather debug/trace output from the Abode multisensor. Thing is, I have looked through out the Abode UI but I am not seeing where that level of information is available. An nmap scan the Abode IOTA hub itself does not list any open ports either. So where or how might I gather the information you need?

Sorry for the confusion. You need to enable debug/trace in hubitat Abode Alarm driver. It'll then spew lots of output to logs. Only hubitat involved.

When you do and save prefs the driver will loop through all your devices to make children out of them IF it supports it. So there may be some that it does not. That's the info I'd need. Also when it triggers an event... So... Something from the multisensor (whatever it can do) the driver will attempt to catch and log that information.

dev:52024-09-05 14:48:36.986tracereply: [[actions:[[label:High Humidity Alarm, value:a=1&z=26&trigger=HMH;], [label:Low Humidity Alarm, value:a=1&z=26&trigger=HML;], [label:High Temperature Alarm, value:a=1&z=26&trigger=TSH;], [label:Low Temperature Alarm, value:a=1&z=26&trigger=TSL;]], area:1, bypass:0, control_url:, deep_link:null, default_group_id:1, faults:[jammed:0, low_battery:0, no_response:0, out_of_order:0, supervision:0, tempered:0, zwave_fault:0], group_id:1170489, group_name:Sensors and Controls, has_subscription:null, icon:assets/icons/occupancy-sensor.svg, id:RF:03b2d580, is_window:, name:Garage MultiSensor, onboard:0, origin:abode, s2_dsk:, s2_grnt_keys:, s2_keys_valid:, s2_propty:, schar_24hr:0, sort_id:3, sort_order:, sresp_24hr:0, sresp_entry_0:0, sresp_entry_1:0, sresp_entry_2:0, sresp_entry_3:0, sresp_entry_4:0, sresp_exit_0:0, sresp_exit_1:0, sresp_exit_2:0, sresp_exit_3:0, sresp_exit_4:0, sresp_mode_0:0, sresp_mode_1:0, sresp_mode_2:0, sresp_mode_3:0, sresp_mode_4:0, status:90 °F, statusEx:0, status_color:#5cb85c, status_display:Online, status_ex:, status_icons:, statuses:[humidity:20 %, lux:0 lx, temp:32.1, temperature:90 °F], type:LM, type_tag:device_type.lm, uuid:ea5ab2e7d0890f8fdcc3610ce483b2a9, version:, zone:26, zwave_secure_protocol:]]

dev:52024-09-05 14:48:36.978debugHTTPS GET /api/v1/devices/RF:03b2d580 results: 200
dev:52024-09-05 14:48:36.951trace[[actions:[[label:High Humidity Alarm, value:a=1&z=26&trigger=HMH;], [label:Low Humidity Alarm, value:a=1&z=26&trigger=HML;], [label:High Temperature Alarm, value:a=1&z=26&trigger=TSH;], [label:Low Temperature Alarm, value:a=1&z=26&trigger=TSL;]], area:1, bypass:0, control_url:, deep_link:null, default_group_id:1, faults:[jammed:0, low_battery:0, no_response:0, out_of_order:0, supervision:0, tempered:0, zwave_fault:0], group_id:1170489, group_name:Sensors and Controls, has_subscription:null, icon:assets/icons/occupancy-sensor.svg, id:RF:03b2d580, is_window:, name:Garage MultiSensor, onboard:0, origin:abode, s2_dsk:, s2_grnt_keys:, s2_keys_valid:, s2_propty:, schar_24hr:0, sort_id:3, sort_order:, sresp_24hr:0, sresp_entry_0:0, sresp_entry_1:0, sresp_entry_2:0, sresp_entry_3:0, sresp_entry_4:0, sresp_exit_0:0, sresp_exit_1:0, sresp_exit_2:0, sresp_exit_3:0, sresp_exit_4:0, sresp_mode_0:0, sresp_mode_1:0, sresp_mode_2:0, sresp_mode_3:0, sresp_mode_4:0, status:90 °F, statusEx:0, status_color:#5cb85c, status_display:Online, status_ex:, status_icons:, statuses:[humidity:20 %, lux:0 lx, temp:32.1, temperature:90 °F], type:LM, type_tag:device_type.lm, uuid:ea5ab2e7d0890f8fdcc3610ce483b2a9, version:, zone:26, zwave_secure_protocol:]]

dev:52024-09-05 14:43:38.025tracereply: [[actions:[[label:High Humidity Alarm, value:a=1&z=26&trigger=HMH;], [label:Low Humidity Alarm, value:a=1&z=26&trigger=HML;], [label:High Temperature Alarm, value:a=1&z=26&trigger=TSH;], [label:Low Temperature Alarm, value:a=1&z=26&trigger=TSL;]], area:1, bypass:0, control_url:, deep_link:null, default_group_id:1, faults:[jammed:0, low_battery:0, no_response:0, out_of_order:0, supervision:0, tempered:0, zwave_fault:0], group_id:1170489, group_name:Sensors and Controls, has_subscription:null, icon:assets/icons/occupancy-sensor.svg, id:RF:03b2d580, is_window:, name:Garage MultiSensor, onboard:0, origin:abode, s2_dsk:, s2_grnt_keys:, s2_keys_valid:, s2_propty:, schar_24hr:0, sort_id:3, sort_order:, sresp_24hr:0, sresp_entry_0:0, sresp_entry_1:0, sresp_entry_2:0, sresp_entry_3:0, sresp_entry_4:0, sresp_exit_0:0, sresp_exit_1:0, sresp_exit_2:0, sresp_exit_3:0, sresp_exit_4:0, sresp_mode_0:0, sresp_mode_1:0, sresp_mode_2:0, sresp_mode_3:0, sresp_mode_4:0, status:90 °F, statusEx:4, status_color:#5cb85c, status_display:Online, status_ex:, status_icons:, statuses:[humidity:20 %, lux:4 lx, temp:32.0, temperature:90 °F], type:LM, type_tag:device_type.lm, uuid:ea5ab2e7d0890f8fdcc3610ce483b2a9, version:, zone:26, zwave_secure_protocol:]]

dev:52024-09-05 14:43:38.018debugHTTPS GET /api/v1/devices/RF:03b2d580 results: 200
dev:52024-09-05 14:43:37.994trace[[actions:[[label:High Humidity Alarm, value:a=1&z=26&trigger=HMH;], [label:Low Humidity Alarm, value:a=1&z=26&trigger=HML;], [label:High Temperature Alarm, value:a=1&z=26&trigger=TSH;], [label:Low Temperature Alarm, value:a=1&z=26&trigger=TSL;]], area:1, bypass:0, control_url:, deep_link:null, default_group_id:1, faults:[jammed:0, low_battery:0, no_response:0, out_of_order:0, supervision:0, tempered:0, zwave_fault:0], group_id:1170489, group_name:Sensors and Controls, has_subscription:null, icon:assets/icons/occupancy-sensor.svg, id:RF:03b2d580, is_window:, name:Garage MultiSensor, onboard:0, origin:abode, s2_dsk:, s2_grnt_keys:, s2_keys_valid:, s2_propty:, schar_24hr:0, sort_id:3, sort_order:, sresp_24hr:0, sresp_entry_0:0, sresp_entry_1:0, sresp_entry_2:0, sresp_entry_3:0, sresp_entry_4:0, sresp_exit_0:0, sresp_exit_1:0, sresp_exit_2:0, sresp_exit_3:0, sresp_exit_4:0, sresp_mode_0:0, sresp_mode_1:0, sresp_mode_2:0, sresp_mode_3:0, sresp_mode_4:0, status:90 °F, statusEx:4, status_color:#5cb85c, status_display:Online, status_ex:, status_icons:, statuses:[humidity:20 %, lux:4 lx, temp:32.0, temperature:90 °F], type:LM, type_tag:device_type.lm, uuid:ea5ab2e7d0890f8fdcc3610ce483b2a9, version:, zone:26, zwave_secure_protocol:]]

dev:52024-09-05 14:23:53.287debug Need to add child!
dev:52024-09-05 14:23:53.287tracereply[19][status]: 88 °F
dev:52024-09-05 14:23:53.286tracereply[19][type]: LM
dev:52024-09-05 14:23:53.286tracereply[19][name]: Garage MultiSensor
dev:52024-09-05 14:23:53.286tracereply[19][id]: RF:03b2d580
dev:52024-09-05 14:23:53.274tracereply[19]: [actions:[[label:High Humidity Alarm, value:a=1&z=26&trigger=HMH;], [label:Low Humidity Alarm, value:a=1&z=26&trigger=HML;], [label:High Temperature Alarm, value:a=1&z=26&trigger=TSH;], [label:Low Temperature Alarm, value:a=1&z=26&trigger=TSL;]], area:1, bypass:0, control_url:, deep_link:null, default_group_id:1, faults:[jammed:0, low_battery:0, no_response:0, out_of_order:0, supervision:0, tempered:0, zwave_fault:0], group_id:1170489, group_name:Sensors and Controls, has_subscription:null, icon:assets/icons/occupancy-sensor.svg, id:RF:03b2d580, is_window:, name:Garage MultiSensor, onboard:0, origin:abode, s2_dsk:, s2_grnt_keys:, s2_keys_valid:, s2_propty:, schar_24hr:0, sort_id:3, sort_order:, sresp_24hr:0, sresp_entry_0:0, sresp_entry_1:0, sresp_entry_2:0, sresp_entry_3:0, sresp_entry_4:0, sresp_exit_0:0, sresp_exit_1:0, sresp_exit_2:0, sresp_exit_3:0, sresp_exit_4:0, sresp_mode_0:0, sresp_mode_1:0, sresp_mode_2:0, sresp_mode_3:0, sresp_mode_4:0, status:88 °F, statusEx:0, status_color:#5cb85c, status_display:Online, status_ex:, status_icons:, statuses:[humidity:21 %, lux:0 lx, temp:31.3, temperature:88 °F], type:LM, type_tag:device_type.lm, uuid:ea5ab2e7d0890f8fdcc3610ce483b2a9, version:, zone:26, zwave_secure_protocol:]

dev:52024-09-05 14:23:53.272debugsetting child state: Online
dev:52024-09-05 14:23:53.271debugFound child
dev:52024-09-05 14:23:53.270tracereply[18][status]: Online
dev:52024-09-05 14:23:53.270tracereply[18][type]: Occupancy
dev:52024-09-05 14:23:53.270tracereply[18][name]: Garage Motion Sensor
dev:52024-09-05 14:23:53.269tracereply[18][id]: RF:03b2d530
dev:52024-09-05 14:23:53.266tracereply[18]: [actions:, area:1, bypass:0, control_url:, deep_link:null, default_group_id:1, faults:[jammed:0, low_battery:0, no_response:0, out_of_order:0, supervision:0, tempered:0, zwave_fault:0], group_id:1175533, group_name:Motion, has_subscription:null, icon:assets/icons/occupancy-sensor.svg, id:RF:03b2d530, is_motion_sensor:false, is_window:, model:L1, name:Garage Motion Sensor, occupancy_timer:60, onboard:0, origin:abode, s2_dsk:, s2_grnt_keys:, s2_keys_valid:, s2_propty:, schar_24hr:0, sensitivity:5, sort_id:3, sort_order:, sresp_24hr:5, sresp_entry_0:0, sresp_entry_1:1, sresp_entry_2:4, sresp_entry_3:0, sresp_entry_4:0, sresp_exit_0:0, sresp_exit_1:0, sresp_exit_2:0, sresp_exit_3:0, sresp_exit_4:0, sresp_mode_0:0, sresp_mode_1:1, sresp_mode_2:5, sresp_mode_3:0, sresp_mode_4:0, sresp_restore:0, sresp_trigger:0, status:Online, status_color:#5cb85c, status_display:Online, status_ex:, status_icons:, statuses:[motion:0], type:Occupancy, type_tag:device_type.povs, uuid:b561406c91acf029e94eb447d4f17500, version:0001, zone:25, zwave_secure_protocol:]

//I triggered the motion part of the sensor but there is no LUX trigger I can see. I can see things like lux triggers for a //multifunction sensor connected to hubitat. But not the one connected to abode.

app:1342024-09-05 15:04:23.937infoTriggered: Abode: Garage Motion Sensor reported motion active
app:1342024-09-05 15:04:23.927infoEvent: Abode: Garage Motion Sensor motion active
dev:52024-09-05 15:04:23.906tracemotion: 1
dev:52024-09-05 15:04:23.902tracereply: [[actions:, area:1, bypass:0, control_url:, deep_link:null, default_group_id:1, faults:[jammed:0, low_battery:0, no_response:0, out_of_order:0, supervision:0, tempered:0, zwave_fault:0], group_id:1175533, group_name:Motion, has_subscription:null, icon:assets/icons/occupancy-sensor.svg, id:RF:03b2d530, is_motion_sensor:false, is_window:, model:L1, name:Garage Motion Sensor, occupancy_timer:60, onboard:0, origin:abode, s2_dsk:, s2_grnt_keys:, s2_keys_valid:, s2_propty:, schar_24hr:0, sensitivity:5, sort_id:3, sort_order:, sresp_24hr:5, sresp_entry_0:0, sresp_entry_1:1, sresp_entry_2:4, sresp_entry_3:0, sresp_entry_4:0, sresp_exit_0:0, sresp_exit_1:0, sresp_exit_2:0, sresp_exit_3:0, sresp_exit_4:0, sresp_mode_0:0, sresp_mode_1:1, sresp_mode_2:5, sresp_mode_3:0, sresp_mode_4:0, sresp_restore:0, sresp_trigger:0, status:Motion Detected!, status_color:#5cb85c, status_display:Motion Detected!, status_ex:, status_icons:, statuses:[motion:1], type:Occupancy, type_tag:device_type.povs, uuid:b561406c91acf029e94eb447d4f17500, version:0001, zone:25, zwave_secure_protocol:]]

Exactly what is needed. Looks like it may send periodic updates, and does look like it sends temperature, humidity and lux level. (Most were 0, but one was 4 in your output). Not sure if you could try a test while it is in debug/trace and shine a flashlight at it to see maybe was max level night be.

The motion part it seems should already looks like it should be working.

I should be able to add the multi sensor as a child device for sure though.

LUX 0 is with the door closed and the overhead lights off. When the overhead lights are on the LUX reading goes to 4. According to the abode hub, the highest value I can test for in a rule is 16. With a focused light beam it read 13. Placing the sensor in direct sunlight, the reading went to 16.

That's plenty of info to work with, thanks!

When I tried to update via HPM, I get an error.

So I went to HPM/Match Up to match up this installed driver to the app (which I thought I had already done, but maybe not), the only option it gives me is to match the parent to the child drivers, like this:

Seems like this would match the parent to the child drivers so I did not select.

Anyone know what I may have done wrong and how to correct it?

I do not have my Drivers matched at all (testing for me). I did try to Match Up and it found all 5 Drivers to match up, so not quite sure what is going on. Do you have the Glass/Smoke drivers already added? If not, I think you may need to go to Modify a package, then add in the new drivers recently added. (again, not 100% sure)

So the child drivers are supposed to match with the parent? If so sounds like I can update. I just did not want the child to overwrite the parent...

The child drivers should match with "Abode Alarm 2024", which is the package name. The package has 1 required drivers, then all the children as not optional drivers. To add new child drivers since I add, you would have to modify the package.