Skip to content

phoenix128/python-ialarmclient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c807901 · Mar 5, 2019

History

4 Commits
Mar 5, 2019
Mar 5, 2019
Mar 5, 2019
Mar 5, 2019
Mar 5, 2019

Repository files navigation

Python client for iAlarm

Also compatible with Meiantech, Allarmi365, and others

Install

python3 -m pip install ialarmclient-phoenix

Usage example

#!/usr/bin/env python
import asyncio

import ialarmclient


async def start():
    ialarm = ialarmclient.IalarmClient(
        username="username", # <- Your alarm web interface username
        password="password", # <- Your alarm web interface password
        url="http://192.168.123.123" # <- Your alarm web interface URL (no trailing slash)
    )

    # Refresh alarm status, to be called every time you need to read updated information
    # May take up to 30-40 seconds the first time. Subsequent calls will be almost immediate.
    await ialarm.refresh() 
    
    # Retrieve information about your alarm zones (name, status, etc...)
    zones = await ialarm.get_zones()
    for zone in zones:
        if zone.type != ialarmclient.ZONE_TYPE_DISABLED:
            print("Zone {} is {}".format(zone.number, zone.name))
            # Other information can be read (see IalarmZone)
    
    # Retrieve alarm status (armed, disarmed, power failure, etc...)
    status = await ialarm.get_status()
    
    # Commands to arm/disarm your system
    await ialarm.arm_stay()
    await ialarm.arm_away()
    await ialarm.disarm()
    await ialarm.cancel_alarm()
    
    # List all zones in alarm
    status = await ialarm.get_status()
    for alarmed_zone in status.alarmed_zones:
        print("Zone {} is alarmed".format(alarmed_zone.name))
    
    # Status information for your system
    if status.power_source_failure:
        print("Power failure")
        
    if status.low_battery:
        print("Low battery")
    
    if status.panic_alarm:
        print("Panic alarm triggered")
        
    if status.arm_status == ialarmclient.STATUS_ARMED_AWAY:
        print("System armed")
    elif status.arm_status == ialarmclient.STATUS_ARMED_STAY:
        print("System armed (STAY)")
    elif status.arm_status == ialarmclient.STATUS_DISARMED:
        print("System disarmed")    

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(start())

About

Python client for iAlarm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages