MisterWil / abodepy

A thin Python wrapper for the Abode alarm API
MIT License
49 stars 17 forks source link

Outstanding Devices #10

Open MisterWil opened 6 years ago

MisterWil commented 6 years ago

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

MisterWil commented 6 years ago

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 commented 5 years ago

@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 commented 5 years ago

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

medic459 commented 5 years ago

@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 commented 5 years ago

@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 commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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

shred86 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago
  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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 3 years ago

@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 commented 3 years ago

@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 commented 1 year ago

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 commented 1 year ago

@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?