Package: pyalarmdotcomajax
pyalarmdotcomajaxAsynchronous Python Library for Accessing Alarm.com ServicesThis is an unofficial project that is not affiliated with Alarm.com.Forked from Daren Lord's pyalarmdotcom.Installation / UsageTo install use pip:pipinstallpyalarmdotcomajaxOr clone the repo:gitclonehttps://github.com/uvjustin/pyalarmdotcomajax.git
pythonsetup.pyinstallUsageSeeexamples/basic_sensor_data.pyfor a basic usage example.Device Support (Core Functions)Pyalarmdotcomajax supports core features (monitoring and using actions) of the device types listed below.As of v0.2, multiples of all devices are supported.All devices include the attributes:name,id_,state,battery_low,battery_critical,malfunctioning,parent_ids, and a few others.Device TypeNotable AttributesActionsNotesGarage Door(none)open, closeGatesupports_remote_closeopen, closeImage Sensorimagespeek_inLightbrightnessturn_on (with brightness), turn_offNo support for RGB/W, effects, temperature, etc.Lockslock, unlockPartitionuncleared_issuesarm away, arm stay, arm night, disarmSensordevice_subtype(none)Systemunit_id(none)Thermostattemp_average,temp_at_tstat,step_value,supports_fan_mode,supports_fan_indefinite,supports_fan_circulate_when_off,supported_fan_durations,fan_mode,supports_heat,supports_heat_aux,supports_cool,supports_auto,min_heat_setpoint,min_cool_setpoint,max_heat_setpoint,max_cool_setpoint,heat_setpoint,cool_setpoint,supports_humidity,humidity,supports_schedules,supports_schedules_smart,schedule_modeset_attributeWater Sensor(none)Known Sensor deviceTypesThis list identifies deviceTypes used in the alarm.com API and is incomplete. Please help by submitting missing values.deviceTypeDescription1Contact Sensor2Motion Sensor5Smoke Detector6CO Detector8Freeze Sensor9Panic Button10Fixed Panic Button14Siren19Glass Break Detector52Vibration Contact Sensor68Panel Image Sensor69Mobile Phone (for Bluetooth Disarming)83Panel Glass Break Sensor89Panel Motion SensorDevice Support (Configuration)Pyalarmdotcomajax supports changing configuration options for the devices listed below.Skybell HDDoorbell CameraConfiguration OptionSlugSupported ValuesNotesIndoor Chimeindoor-chimeon,offOutdoor Chimeoutdoor-chimeoff,low,medium,highLED Brightnessled-brightness0-100LED Colorled-color#000000-#FFFFFFMust include#at start.Motion Sensor Sensitivitymotion-sensitivitylow,medium,high,very_highCommand Line InterfaceThe CLI is available by runningadcfrom anywhere in your terminal. Useadc --help,adc get --help, andadc set --helpfor more information.usage:adc[-h][-d][-ver][-v]-uUSERNAME-pPASSWORD[-nDEVICE_NAME][-cCOOKIE|-oONE_TIME_PASSWORD]{get,set}...

basiccommandlinedebuginterfaceforalarm.comviapyalarmdotcomajax.showsdevicestatesinvariousformats.

options:-h,--helpshowthishelpmessageandexit-d,--debugshowpyalarmdotcomajax's debug output.-ver, --version       show program'sversionnumberandexit-v,--verboseshowverboseoutput.-vvreturnsbase64imagedataforimagesensorimages.-uUSERNAME,--usernameUSERNAMEalarm.comusername-pPASSWORD,--passwordPASSWORDalarm.compassword-nDEVICE_NAME,--device-nameDEVICE_NAMEregistersadevicewiththisnameonalarm.comandrequeststhetwo-factorauthenticationcookieforthedevice.-cCOOKIE,--cookieCOOKIEtwo-factorauthenticationcookie.cannotbeusedwith--one-time-password!-oONE_TIME_PASSWORD,--one-time-passwordONE_TIME_PASSWORDprovideotpcodeforaccountsthathavetwo-factorauthenticationenabled.ifnotprovidedhere,adcwillpromptuserforotp.cannotbeusedwith--cookie!

actions:{get,set}getgetdatafromalarm.com.use'adc get --help'forparameters.setsetdeviceconfigurationoption.use'adc set --help'forparameters

getoptions:-h,--helpshowthishelpmessageandexit-x,--include-unsupportedreturnbasicdataforallknownunsupporteddevices.alwaysoutputsinverboseformat.setoptions:-h,--helpshowthishelpmessageandexit-iDEVICE_ID,--device-idDEVICE_IDNumericAlarm.comdeviceidentifier.-sSETTING_SLUG,--setting-slugSETTING_SLUGIdentifierforsetting.Appearsinparenthesisaftersettingnameinadcsethumanreadableoutput.-kNEW_VALUE,--new-valueNEW_VALUENewvalueforsetting.ExamplesGet human-readable status (and device IDs) for all devices:adc -u "your_username" -p "your_password" getGet raw JSON output from Alarm.com for all devices:adc -v -u "your_username" -p "your_password" getTurn off Skybell HD indoor chime (assume Skybell device ID is 283431032-1520):adc -u "your_username" -p "your_password" set -i "283431032-1520" -s "indoor-chime" -k "off"DevelopmentVS Code Support StructuresThis repository includes a full development environment for VS Code:VS Codedev container. Automatically installs extensions and Python dependencies and registers Git pre-commit scripts.Configuration files for type checking (mypy), linting (ruffandblack), etc.Pre-commit checks run all of the above when committing to Git and on demand via VS Codetasks.ReferencesSome API definitions are available in thenode-alarm-dot-com repository.Open ItemsFeaturesSupport additional components (lights, irrigation, etc.).Support more sensor types (see list above in this README).Adddebug_infoproperty toADCControllerthat returns aggregate of raw JSON from all endpoints. This will allow users to export the entity model of unsupported devices to help maintainers implement support in this library.Similar to above, proactively populateunsupported_device_typesproperty forADCBaseElementto show users device id, device name, and device type for available but unsupported devices.More granular exception handling when logging in. Should report discrete error types for authentication failures due to wrong credentials, connection issues, or other.MIT LicenseCopyright (c) 2020 Justin WongPermission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.