Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Outstanding Devices #10

Open
MisterWil opened this issue Aug 23, 2017 · 22 comments
Open

Outstanding Devices #10

MisterWil opened this issue Aug 23, 2017 · 22 comments

Comments

@MisterWil
Copy link
Owner

MisterWil commented Aug 23, 2017

Below is an incomplete and possibly duplicated list of devices that are supported by Abode but that are not currently supported by this library because I do not have the device json responses of.

If these devices are to be added to this library then I need the json values of the devices. This can be done by inspecting the network activity on the Abode webapp and pulling the data from the devices request.

Getting Devices through Web App

  1. Go to https://my.goabode.com/#/login
  2. Press Ctrl+Shift+I or Menu -> More Tools -> Developer Tools
  3. Click on "Network" to record network activity
  4. Login
  5. Find "devices" under the Name column
  6. Right click on the row and Copy -> Copy Response
  7. Remove identifying info (if applicable) and create an issue with the data OR DM the response to @MisterWil or email

Getting Devices through AbodePy

  1. Follow the install directions
  2. Run abodepy -u USERNAME -p PASSWORD --devices to get a list of devices
  3. Run abodepy -u USERNAME -p PASSWORD --json DEVICE_ID with the device ID of the device you'd like to share
  4. Copy JSON data from command prompt
  5. Remove identifying info (if applicable) and create an issue with the data OR DM the response to @MisterWil or email

Devices and Open Issues

  • Indoor and/or Outdoor Siren - Indoor Siren #15
  • Streaming Camera
  • Shock/Vibration Sensor
  • Indoor Motion Sensor - Indoor Motion Sensor #13
  • Occupancy Sensor
  • Abode Multi Sensor
  • Temp/Humidity/Light Sensor
  • ZigBee Light
  • ZigBee Smart Plug
  • ZigBee Outlet
  • Z-Wave Light
  • Z-Wave Outlets
  • Z-Wave Flood Sensor - Might already be implemented as water sensor?
  • Z-Wave Dimmers
  • Z-Wave Switches - Add Power Switch Meter Device #9
@MisterWil
Copy link
Owner Author

MisterWil commented Aug 29, 2017

device_type.door_contact
device_type.door_lock
device_type.power_switch_meter
device_type.power_switch_sensor
device_type.siren
device_type.bx
device_type.switch
device_type.dimmer <-- Light
device_type.hue <-- Hue Light
device_type.night_switch <-- Night Switch?
device_type.dimmer_meter <-- Dimmer Meter?
device_type.secure_barrier
device_type.thermostat
device_type.room_sensor
device_type.temperature_sensor
device_type.lm - Light, Motion, Temp, Humdity
device_type.nest_thermostat
device_type.ipcam
device_type.ir_camera
device_type.ir_camcoder
device_type.nest_cam
device_type.out_view - Outdoor Motion Camera
device_type.glass
device_type.povs - Occupancy Sensor
device_type.pir - this.label = this.version.startsWith('MINIPIR') == true ? 'Occupancy Sensor' : 'Motion Sensor';
device_type.ecobee_thermostat
device_type.keypad

case 'device_type.room_sensor':
case 'device_type.temperature_sensor':
case 'device_type.lm':
	if(this.typeTag == 'device_type.lm') {
	  this.label = 'Occupancy Sensor';
	  this.imageSrc = 'assets/images/edit-occupancy-sensor.svg';
	}

	if (!this.hasFault()){
		if(this.tempStatus) this.hasTemp = true;
		if(this.luxStatus) this.hasLux = true;
		if(this.humiStatus) this.hasHumidity = true;
	}

Dimmer level stored in statusEx. Only dimmer and hue change dim level.

@netmanchris
Copy link

@MisterWil

For Temp/Humidity/Light Sensor - Let me know if this is the right data or if you need additional info.

{
"actions": [],
"area": "1",
"bypass": "0",
"control_url": "",
"deep_link": null,
"default_group_id": "1",
"faults": {
"low_battery": 0,
"no_response": 0,
"out_of_order": 0,
"supervision": 0,
"tempered": 0
},
"generic_type": "sensor",
"group_id": "1",
"group_name": "Ungrouped",
"has_subscription": null,
"icon": "assets/icons/occupancy-sensor.svg",
"id": "ZB:a7be01",
"is_window": "",
"name": "Abode Temp Sensor",
"onboard": "0",
"origin": "abode",
"schar_24hr": "0",
"sort_id": "10000",
"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": "Online",
"statusEx": "8",
"status_color": "#5cb85c",
"status_ex": "",
"status_icons": [],
"statuses": {
"lux": "8 lx",
"temp": "N/A"
},
"type": "LM",
"type_tag": "device_type.lm",
"uuid": "3763f673c8bc63f85d01368ff2cc1eed",
"version": "LMHT-LM_00.00.03.07TC",
"zone": "5"
}

@netmanchris
Copy link

netmanchris commented Nov 16, 2018

@MisterWil I've also got mini door/window sensors as well as the thin strip door/window sensor if that helps.

@medic459
Copy link

medic459 commented Jan 6, 2019

@MisterWil as per @shred86's advice, i'm posting this here. I'd love to be able to get my Smoke/CO zwave devices into Home Assistant and/or abodepy. Here is a JSON of the device

[
{
"id": "ZW:00000001",
"type_tag": "device_type.co_detector",
"type": "Smoke-CO",
"name": "BedRoom",
"area": "1",
"zone": "12",
"sort_order": "",
"is_window": "",
"bypass": "0",
"schar_24hr": "1",
"sresp_24hr": "13",
"sresp_mode_0": "0",
"sresp_entry_0": "0",
"sresp_exit_0": "0",
"group_name": "Smoke/CO Alarms",
"group_id": "xxxxxx",
"default_group_id": "1",
"sort_id": "2",
"sresp_mode_1": "0",
"sresp_entry_1": "0",
"sresp_exit_1": "0",
"sresp_mode_2": "0",
"sresp_entry_2": "0",
"sresp_exit_2": "0",
"sresp_mode_3": "0",
"uuid": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
"sresp_entry_3": "0",
"sresp_exit_3": "0",
"sresp_mode_4": "0",
"sresp_entry_4": "0",
"sresp_exit_4": "0",
"version": "013800010002",
"origin": "abode",
"has_subscription": null,
"onboard": "0",
"s2_grnt_keys": "",
"s2_dsk": "",
"s2_propty": "",
"s2_keys_valid": "",
"zwave_secure_protocol": "",
"zwave_has_faults": "0",
"control_url": "",
"deep_link": null,
"status_color": "#5cb85c",
"faults": {
"low_battery": 0,
"tempered": 0,
"supervision": 0,
"out_of_order": 0,
"no_response": 0,
"jammed": 0
},
"status": "Online",
"statuses": [],
"status_ex": "",
"actions": [],
"status_icons": [],
"icon": "assets/icons/smoke-detector.svg"
}
]

@chipriley
Copy link

@MisterWil as per @shred86's advice, i'm posting this here. I'd love to be able to get my Smoke/CO zwave devices into Home Assistant and/or abodepy. Here is a JSON of the device

[
{
"id": "ZW:00000001",
"type_tag": "device_type.co_detector",
"type": "Smoke-CO",
"name": "BedRoom",
"area": "1",
"zone": "12",
"sort_order": "",
"is_window": "",
"bypass": "0",
"schar_24hr": "1",
"sresp_24hr": "13",
"sresp_mode_0": "0",
"sresp_entry_0": "0",
"sresp_exit_0": "0",
"group_name": "Smoke/CO Alarms",
"group_id": "xxxxxx",
"default_group_id": "1",
"sort_id": "2",
"sresp_mode_1": "0",
"sresp_entry_1": "0",
"sresp_exit_1": "0",
"sresp_mode_2": "0",
"sresp_entry_2": "0",
"sresp_exit_2": "0",
"sresp_mode_3": "0",
"uuid": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
"sresp_entry_3": "0",
"sresp_exit_3": "0",
"sresp_mode_4": "0",
"sresp_entry_4": "0",
"sresp_exit_4": "0",
"version": "013800010002",
"origin": "abode",
"has_subscription": null,
"onboard": "0",
"s2_grnt_keys": "",
"s2_dsk": "",
"s2_propty": "",
"s2_keys_valid": "",
"zwave_secure_protocol": "",
"zwave_has_faults": "0",
"control_url": "",
"deep_link": null,
"status_color": "#5cb85c",
"faults": {
"low_battery": 0,
"tempered": 0,
"supervision": 0,
"out_of_order": 0,
"no_response": 0,
"jammed": 0
},
"status": "Online",
"statuses": [],
"status_ex": "",
"actions": [],
"status_icons": [],
"icon": "assets/icons/smoke-detector.svg"
}
]

This. Would love this.

@medic459
Copy link

Dome Water Main Shut-Off (DMWV1)

https://help.goabode.com/hc/en-us/articles/360027630432-Dome-Water-Main-Shut-Off-DMWV1-how-to-install

{
"actions": [
{
"label": "Close",
"value": "a=1&z=18&sw=off;"
},
{
"label": "Open",
"value": "a=1&z=18&sw=on;"
}
],
"area": "1",
"bypass": "0",
"control_url": "api/v1/control/power_switch/ZW:00000006",
"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
},
"generic_type": "valve",
"group_id": "xxxxx",
"group_name": "Water leak",
"has_subscription": null,
"icon": "assets/icons/water-value-shutoff.svg",
"id": "ZW:00000006",
"is_window": "",
"name": "Water shut-off valve",
"onboard": "0",
"origin": "abode",
"s2_dsk": "",
"s2_grnt_keys": "",
"s2_keys_valid": "",
"s2_propty": "",
"schar_24hr": "0",
"sort_id": "6",
"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": "Open",
"status_color": "#5cb85c",
"status_display": "Open",
"status_ex": "",
"status_icons": [],
"statuses": {
"switch": "1"
},
"type": "Shutoff Valve",
"type_tag": "device_type.valve",
"uuid": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"version": "021f00030002",
"zone": "18",
"zwave_secure_protocol": ""
}

@medic459
Copy link

@MisterWil Since you're doing updates and whatnot...
I left the json/data for 2 new devices above: zwave smoke/co detector and the newly fully abode supported Dome Water Main Shut-Off (DMWV1).

If there's any chance you can add them to abode.py so that we can tie them into HA and other apps, we'd be very grateful (we're all very grateful for this project and the work you've already done).

Thank you!

@MisterWil
Copy link
Owner Author

  1. For the smoke/co detector, I don't see anything in the JSON that identifies its current state, i.e. detecting smoke/co or not. This device might be useless to us much like how the glass break sensor is useless (only reports online, doesn't pass through actual detection events).

  2. I'm pretty sure its obvious for the shut off valve what the states are, but for my sake could you close the valve and post the JSON for when its in that closed state?

@shred86
Copy link
Contributor

shred86 commented Oct 13, 2019

I just tested my Abode smoke listener and it doesn't report anything from the device JSON. However, Abode's socketio server does push out an event that the event_controller is currently processing:

2019-10-13 14:57:23 DEBUG (SocketIOThread) [abodepy.event_controller] Timeline event received: Smoke Alarm Monitor Smoke Alarm - Smoke Alarm (1111)

2019-10-13 14:57:35 DEBUG (SocketIOThread) [abodepy.event_controller] Timeline event received: Gateway Disarmed - Standby - Disarmed - Standby (1401)

2019-10-13 15:00:47 DEBUG (SocketIOThread) [abodepy.event_controller] Timeline event received: Smoke Alarm Monitor Smoke Cleared - Smoke Cleared (3111)

At least for Home Assistant, I wonder if there is a way to update the entity state based on these event reports.

@MisterWil
Copy link
Owner Author

I would probably need to see more information about the event because from what I can see here its just a timeline event and I'm not sure if timeline events identify what device caused the fault. Unfortunately I don't seem to be outputting a debug-level log for the full event data. If you feel like it, adding the line: _LOGGER.debug(event) around this line and then running abodepy --debug --listen -u USERNAME -p PASSWORD you should see the full event details get output which would give us more information, namely: Does it identify WHAT device caused the alarm?

@MisterWil
Copy link
Owner Author

@medic459 I'm pretty sure valves are already supported by AbodePy after running some tests today.

@shred86
Copy link
Contributor

shred86 commented Dec 8, 2019

Posting this just for future reference in case the current integration breaks. I just received the new Abode Occupancy sensor. It pairs as two separate devices, one motion sensor and one temp/humidity/lux sensor:

The motion/occupancy sensor:

{
    "id": "RF:<redacted>",
    "type_tag": "device_type.povs",
    "type": "Occupancy",
    "name": "Entryway Motion",
    "area": "1",
    "zone": "23",
    "sort_order": "",
    "is_window": "",
    "bypass": "0",
    "schar_24hr": "0",
    "sresp_24hr": "0",
    "sresp_mode_0": "0",
    "sresp_entry_0": "0",
    "sresp_exit_0": "0",
    "group_name": "Motion",
    "group_id": "397892",
    "default_group_id": "1",
    "sort_id": "3",
    "sresp_mode_1": "5",
    "sresp_entry_1": "4",
    "sresp_exit_1": "0",
    "sresp_mode_2": "0",
    "sresp_entry_2": "0",
    "sresp_exit_2": "0",
    "sresp_mode_3": "0",
    "uuid": "<redacted>",
    "sresp_entry_3": "0",
    "sresp_exit_3": "0",
    "sresp_mode_4": "0",
    "sresp_entry_4": "0",
    "sresp_exit_4": "0",
    "version": "0001",
    "origin": "abode",
    "has_subscription": null,
    "onboard": "0",
    "s2_grnt_keys": "",
    "s2_dsk": "",
    "s2_propty": "",
    "s2_keys_valid": "",
    "zwave_secure_protocol": "",
    "control_url": "",
    "deep_link": null,
    "status_color": "#5cb85c",
    "faults": {
        "low_battery": 0,
        "tempered": 0,
        "supervision": 0,
        "out_of_order": 0,
        "no_response": 0,
        "jammed": 0,
        "zwave_fault": 0
    },
    "status": "Motion Detected!",
    "status_display": "Motion Detected!",
    "statuses": {
        "motion": "1"
    },
    "status_ex": "",
    "actions": [],
    "status_icons": [],
    "sresp_trigger": "0",
    "sresp_restore": "0",
    "occupancy_timer": "30",
    "sensitivity": "4",
    "model": "L1",
    "is_motion_sensor": true,
    "icon": "assets\/icons\/occupancy-sensor.svg"
}

The temp/humidity/lux sensor:

{
    "id": "RF:<redacted>",
    "type_tag": "device_type.lm",
    "type": "LM",
    "name": "Office Occupancy Sensor",
    "area": "1",
    "zone": "24",
    "sort_order": "",
    "is_window": "",
    "bypass": "0",
    "schar_24hr": "0",
    "sresp_24hr": "0",
    "sresp_mode_0": "0",
    "sresp_entry_0": "0",
    "sresp_exit_0": "0",
    "group_name": "Motion",
    "group_id": "397892",
    "default_group_id": "1",
    "sort_id": "4",
    "sresp_mode_1": "0",
    "sresp_entry_1": "0",
    "sresp_exit_1": "0",
    "sresp_mode_2": "0",
    "sresp_entry_2": "0",
    "sresp_exit_2": "0",
    "sresp_mode_3": "0",
    "uuid": "<redacted>",
    "sresp_entry_3": "0",
    "sresp_exit_3": "0",
    "sresp_mode_4": "0",
    "sresp_entry_4": "0",
    "sresp_exit_4": "0",
    "version": "",
    "origin": "abode",
    "has_subscription": null,
    "onboard": "0",
    "s2_grnt_keys": "",
    "s2_dsk": "",
    "s2_propty": "",
    "s2_keys_valid": "",
    "zwave_secure_protocol": "",
    "control_url": "",
    "deep_link": null,
    "status_color": "#5cb85c",
    "faults": {
        "low_battery": 0,
        "tempered": 0,
        "supervision": 0,
        "out_of_order": 0,
        "no_response": 0,
        "jammed": 0,
        "zwave_fault": 0
    },
    "status": "74 \u00b0F",
    "status_display": "Online",
    "statuses": {
        "temperature": "74 \u00b0F",
        "temp": "23.3",
        "lux": "1 lx",
        "humidity": "40 %"
    },
    "status_ex": "",
    "actions": [
        {
            "label": "High Humidity Alarm",
            "value": "a=1&z=24&trigger=HMH;"
        },
        {
            "label": "Low Humidity Alarm",
            "value": "a=1&z=24&trigger=HML;"
        },
        {
            "label": "High Temperature Alarm",
            "value": "a=1&z=24&trigger=TSH;"
        },
        {
            "label": "Low Temperature Alarm",
            "value": "a=1&z=24&trigger=TSL;"
        }
    ],
    "status_icons": [],
    "statusEx": "1",
    "icon": "assets\/icons\/occupancy-sensor.svg"
}

@shred86
Copy link
Contributor

shred86 commented Dec 8, 2019

Again, just for future reference. Keypad 2 pairs to Abode as two devices, one keypad and one motion sensor:

Keypad:

{
    "id": "RF:<redacted>",
    "type_tag": "device_type.keypad",
    "type": "Keypad",
    "name": "Keypad",
    "area": "1",
    "zone": "22",
    "sort_order": "",
    "is_window": "",
    "bypass": "0",
    "schar_24hr": "0",
    "sresp_24hr": "0",
    "sresp_mode_0": "5",
    "sresp_entry_0": "5",
    "sresp_exit_0": "5",
    "group_name": "Misc",
    "group_id": "397894",
    "default_group_id": "1",
    "sort_id": "4",
    "sresp_mode_1": "5",
    "sresp_entry_1": "5",
    "sresp_exit_1": "5",
    "sresp_mode_2": "5",
    "sresp_entry_2": "5",
    "sresp_exit_2": "5",
    "sresp_mode_3": "5",
    "uuid": "<redacted>",
    "sresp_entry_3": "5",
    "sresp_exit_3": "5",
    "sresp_mode_4": "5",
    "sresp_entry_4": "5",
    "sresp_exit_4": "5",
    "version": "0002",
    "origin": "abode",
    "has_subscription": null,
    "onboard": "0",
    "s2_grnt_keys": "",
    "s2_dsk": "",
    "s2_propty": "",
    "s2_keys_valid": "",
    "zwave_secure_protocol": "",
    "control_url": "",
    "deep_link": null,
    "status_color": "#5cb85c",
    "faults": {
        "low_battery": 0,
        "tempered": 0,
        "supervision": 0,
        "out_of_order": 0,
        "no_response": 0,
        "jammed": 0,
        "zwave_fault": 0
    },
    "status": "Online",
    "status_display": "Online",
    "statuses": [],
    "status_ex": "",
    "actions": [],
    "status_icons": [],
    "icon": "assets\/icons\/keypad-2.svg"
}

Motion sensor:

{
    "id": "RF:<redacted>",
    "type_tag": "device_type.povs",
    "type": "Occupancy",
    "name": "Entryway Motion",
    "area": "1",
    "zone": "23",
    "sort_order": "",
    "is_window": "",
    "bypass": "0",
    "schar_24hr": "0",
    "sresp_24hr": "0",
    "sresp_mode_0": "0",
    "sresp_entry_0": "0",
    "sresp_exit_0": "0",
    "group_name": "Motion",
    "group_id": "397892",
    "default_group_id": "1",
    "sort_id": "3",
    "sresp_mode_1": "5",
    "sresp_entry_1": "4",
    "sresp_exit_1": "0",
    "sresp_mode_2": "0",
    "sresp_entry_2": "0",
    "sresp_exit_2": "0",
    "sresp_mode_3": "0",
    "uuid": "<redacted>",
    "sresp_entry_3": "0",
    "sresp_exit_3": "0",
    "sresp_mode_4": "0",
    "sresp_entry_4": "0",
    "sresp_exit_4": "0",
    "version": "0001",
    "origin": "abode",
    "has_subscription": null,
    "onboard": "0",
    "s2_grnt_keys": "",
    "s2_dsk": "",
    "s2_propty": "",
    "s2_keys_valid": "",
    "zwave_secure_protocol": "",
    "control_url": "",
    "deep_link": null,
    "status_color": "#5cb85c",
    "faults": {
        "low_battery": 0,
        "tempered": 0,
        "supervision": 0,
        "out_of_order": 0,
        "no_response": 0,
        "jammed": 0,
        "zwave_fault": 0
    },
    "status": "Online",
    "status_display": "Online",
    "statuses": {
        "motion": "0"
    },
    "status_ex": "",
    "actions": [],
    "status_icons": [],
    "sresp_trigger": "0",
    "sresp_restore": "0",
    "occupancy_timer": "30",
    "sensitivity": "4",
    "model": "L1",
    "is_motion_sensor": true,
    "icon": "assets\/icons\/occupancy-sensor.svg"
}

@troycarpenter
Copy link

troycarpenter commented Feb 5, 2020

  1. For the smoke/co detector, I don't see anything in the JSON that identifies its current state, i.e. detecting smoke/co or not. This device might be useless to us much like how the glass break sensor is useless (only reports online, doesn't pass through actual detection events).

New to this project, but I'm curious: how do you suppose it would show its status? There is the 'status: "Online"' and 'status_display: "Online"' fields which appear the same as they do for occupancy sensors that are not tripped. I haven't actually tripped the smoke/co detector and Abode's website implies that doing a test on the First Alert device doesn't actually generate an alarm signal to the gateway. My understanding is the only way to fully test the device and have the monitor center call is to physically trigger it with a smoke emulator substance (or actual smoke, I guess). Only then would we be able to see the difference between the idle state and a tripped state.

And that begs the question...does the device tell you if it was smoke or CO that tripped the alarm?

I see a "statuses" field that is empty for smoke/co detector, but has "motion" values for occupancy. Is that what would indicate there's no status that gets reported?

I guess at some point I can actually trip one of these with a match to see how or if the status changes so it can be monitored.

@shred86
Copy link
Contributor

shred86 commented Feb 6, 2020

It's reported through one of these timeline events:

{
    "code": "1110",
    "sia": "",
    "label": "Fire Alarm",
    "notification_image": "smoke-detected.png",
    "label_vendor": "Fire",
    "notification": "Fire Alarm has been activated at $time$ ($timezone$) on $date$ by '$devicename$'.",
    "app_notification": "Fire Alarm has been activated at $time$ ($timezone$) <br \/> on $date$ by '$devicename$'.",
    "app_notification_priority": "high",
    "group": "d",
    "severity": "0",
    "color": "#cc3f44",
    "pos": "c",
    "is_active": "0",
    "is_new": "0",
    "desc": "Fire has been detected.",
    "is_notify": "1",
    "is_alarm": "1",
    "alarm_sent": "1",
    "is_notify_ifttt": "1",
    "default_notify": "1",
    "default_email": "1",
    "user_changeable_notification": "0",
    "get_record_id": "12",
    "is_save": "1",
    "has_automation": "0",
    "category": "alarm",
    "sub_category": "alarm",
    "automation_configurations": null
}, 
{
    "code": "1111",
    "sia": "FA",
    "label": "Smoke Alarm",
    "notification_image": "smoke-detected.png",
    "label_vendor": "Smoke",
    "notification": "Smoke has been detected by '$devicename$' at $time$ ($timezone$) on $date$.",
    "app_notification": "Smoke has been detected by '$devicename$' at $time$ ($timezone$) <br \/> on $date$.",
    "app_notification_priority": "high",
    "group": "d",
    "severity": "0",
    "color": "#cc3f44",
    "pos": "c",
    "is_active": "1",
    "is_new": "0",
    "desc": "Smoke has been detected.",
    "is_notify": "1",
    "is_alarm": "1",
    "alarm_sent": "1",
    "is_notify_ifttt": "1",
    "default_notify": "1",
    "default_email": "1",
    "user_changeable_notification": "0",
    "get_record_id": "6",
    "is_save": "1",
    "has_automation": "0",
    "category": "alarm",
    "sub_category": "alarm",
    "automation_configurations": null
},
{
    "code": "1162",
    "sia": "",
    "label": "CO Alarm",
    "notification_image": "devices.png",
    "label_vendor": "Carbon Monoxide Detected",
    "notification": "'$devicename$' has detected Carbon Monoxide at $time$ ($timezone$) on $date$.",
    "app_notification": "'$devicename$' has detected Carbon Monoxide at $time$ ($timezone$) <br \/> on $date$.",
    "app_notification_priority": "high",
    "group": "d",
    "severity": "2",
    "color": "#cc3f44",
    "pos": "r",
    "is_active": "1",
    "is_new": "0",
    "desc": "CO has been detected.",
    "is_notify": "1",
    "is_alarm": "1",
    "alarm_sent": "1",
    "is_notify_ifttt": "1",
    "default_notify": "1",
    "default_email": "1",
    "user_changeable_notification": "0",
    "get_record_id": "13",
    "is_save": "1",
    "has_automation": "0",
    "category": "alarm",
    "sub_category": "alarm",
    "automation_configurations": null
}

Some sensors only report their state internally to the gateway as well, like the Iota motion sensor, meaning it doesn't report motion in the JSON message via Abode's socketio server but rather just to the local Iota hub (or itself in this case). This is why you're able to setup CUE automations with it based on motion but don't actually see its motion state in the web UI.

I've triggered my smoke detector before (I realize this isn't the Smoke/CO2 detector) and it didn't report anything in the JSON data. It was just a timeline event.

@troycarpenter
Copy link

Once I have a chance, I'll trip on of my First Alert smoke/CO detectors to see what happens. How exactly will I be able to confirm the alarm actually throws an event with JSON data and not simply a timeline entry?

@shred86
Copy link
Contributor

shred86 commented Feb 10, 2020

You will just have to watch for the actual device JSON data and timeline event as both will be pushed. Just save both and share them here if you can.

@shred86
Copy link
Contributor

shred86 commented Mar 17, 2020

JSON data for the Abode Smoke Alarm Monitor. It doesn't show any updates when smoke is detected, but just for future reference:

{
    "id": "RF:<redacted>",
    "type_tag": "device_type.smoke_detector",
    "type": "Smoke Detector",
    "name": "Smoke Alarm Monitor",
    "area": "1",
    "zone": "8",
    "sort_order": "",
    "is_window": "",
    "bypass": "0",
    "schar_24hr": "1",
    "sresp_24hr": "6",
    "sresp_mode_0": "0",
    "sresp_entry_0": "0",
    "sresp_exit_0": "0",
    "group_name": "Sensors",
    "group_id": "398444",
    "default_group_id": "1",
    "sort_id": "1",
    "sresp_mode_1": "0",
    "sresp_entry_1": "0",
    "sresp_exit_1": "0",
    "sresp_mode_2": "0",
    "sresp_entry_2": "0",
    "sresp_exit_2": "0",
    "sresp_mode_3": "0",
    "uuid": "<redacted>",
    "sresp_entry_3": "0",
    "sresp_exit_3": "0",
    "sresp_mode_4": "0",
    "sresp_entry_4": "0",
    "sresp_exit_4": "0",
    "version": "",
    "origin": "abode",
    "has_subscription": null,
    "onboard": "0",
    "s2_grnt_keys": "",
    "s2_dsk": "",
    "s2_propty": "",
    "s2_keys_valid": "",
    "zwave_secure_protocol": "",
    "control_url": "",
    "deep_link": null,
    "status_color": "#5cb85c",
    "faults": {
        "low_battery": 0,
        "tempered": 0,
        "supervision": 0,
        "out_of_order": 0,
        "no_response": 0,
        "jammed": 0,
        "zwave_fault": 0
    },
    "status": "Online",
    "status_display": "Online",
    "statuses": [],
    "status_ex": "",
    "actions": [],
    "status_icons": [],
    "icon": "assets\/icons\/smoke-detector.svg"
}

@FreeWillyB
Copy link

@MisterWil do you know abodepy can set add a new code for a keypad? Or if it's even possible to do so via the API?

@MisterWil
Copy link
Owner Author

@MisterWil do you know abodepy can set add a new code for a keypad? Or if it's even possible to do so via the API?

If it an be done via the web interface then it's likely you can do so via an API, but I've not investigated it.

@tradel
Copy link

tradel commented Aug 2, 2022

JSON for the Abode Cam 2:

{
  "id": "XF:b0c5caXXXXXX",
  "type_tag": "device_type.mini_cam",
  "type": "Abode Cam 2",
  "name": "Kitchen Cam",
  "area": "1",
  "zone": "500",
  "sort_order": "",
  "is_window": "",
  "bypass": null,
  "schar_24hr": null,
  "sresp_24hr": null,
  "sresp_mode_0": null,
  "sresp_entry_0": null,
  "sresp_exit_0": null,
  "group_name": "Ungrouped",
  "group_id": "1",
  "default_group_id": "1",
  "sort_id": "10000",
  "sresp_mode_1": null,
  "sresp_entry_1": null,
  "sresp_exit_1": null,
  "sresp_mode_2": null,
  "sresp_entry_2": null,
  "sresp_exit_2": null,
  "sresp_mode_3": null,
  "uuid": "131e88142c0d57ac07b5c35fXXXXXXXX",
  "sresp_entry_3": null,
  "sresp_exit_3": null,
  "sresp_mode_4": null,
  "sresp_entry_4": null,
  "sresp_exit_4": null,
  "version": "4.60.0.177",
  "origin": "abode_cam",
  "has_subscription": null,
  "onboard": "0",
  "s2_grnt_keys": null,
  "s2_dsk": null,
  "s2_propty": null,
  "s2_keys_valid": null,
  "zwave_secure_protocol": "",
  "control_url": "api/v1/cams/XF:b0c5caXXXXXX/video",
  "deep_link": null,
  "status_color": "#5cb85c",
  "faults": {
    "low_battery": 0,
    "tempered": 0,
    "supervision": 0,
    "out_of_order": 0,
    "no_response": 0,
    "jammed": 0,
    "zwave_fault": 0
  },
  "status": "Online",
  "status_display": "Online",
  "statuses": [],
  "status_ex": "",
  "actions": [
    {
      "label": "Capture Video",
      "value": "a=1&z=500&req=vid;"
    },
    {
      "label": "Turn off Live Video",
      "value": "a=1&z=500&privacy=on;"
    },
    {
      "label": "Turn on Live Video",
      "value": "a=1&z=500&privacy=off;"
    }
  ],
  "status_icons": [],
  "icon": "assets/icons/mini-camera.svg",
  "control_url_snapshot": "api/v1/cams/XF:b0c5caXXXXXX/snapshot",
  "ptt_supported": false,
  "is_new_camera": 0,
  "stream_quality": 2,
  "camera_mac": "B0:C5:CA:XX:XX:XX",
  "privacy": "0",
  "enable_audio": 0,
  "alarm_video": "15",
  "pre_alarm_video": "2",
  "mic_volume": "0",
  "speaker_volume": "0",
  "mic_default_volume": 40,
  "speaker_default_volume": 46,
  "bandwidth": {
    "slider_labels": [
      {
        "name": "High",
        "value": 3
      },
      {
        "name": "Medium",
        "value": 2
      },
      {
        "name": "Low",
        "value": 1
      }
    ],
    "min": 1,
    "max": 3,
    "step": 1
  },
  "volume": {
    "min": 0,
    "max": 100,
    "step": 1
  },
  "video_flip": "0",
  "hframe": "1080P"
}

@tradel
Copy link

tradel commented Aug 2, 2022

@MisterWil looks like the existing camera code works for the Cam 2 after I add the type tag mini_cam. Do you want me to submit a PR to support it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants