3rd Party Local API - Beta Testers/Contributers Wanted
Posted: Mon Dec 03, 2012 2:21 am
Hi All,
I received and installed my envisalink 3 a few weeks ago and given the lack of a real functional local (or remote for that matter) easy to use API I've been working on one off and on since then.
The feature list so far:
-Written in python (runnable on almost any os as well as modded/open source routers running ddwrt/tomato)
-Connects and maintains a connection to your envisalink device
-Maintains a state of all the alarm zones and partitions
-Runs a very simple http server
-Currently very simple (because I suck and hate web design) front page to arm/stayarm/disarm alarm.
-JSON output of the status of entire system, including all zones and partitions.
-Sends notifications using pageonce.
Todo list:
-Add some form of authentication
-Add email, and other notifications.
-Add zone and partition names
-Finish a web page with alarm keypad and other action buttons buttons, zone/partition status using a timed/repeating AJAX/Xhtmlrequest to pull data from the json api.
-Other requests?
I'm like to share the code with a few willing participants if anyone is interested. When I get it to a more complete stage I plan to post the source on github. As well if anyone has any feature requests etc, i'd be interested to hear them.
Thanks!
Here is some sample output of my system pulled via http://host/api :
I received and installed my envisalink 3 a few weeks ago and given the lack of a real functional local (or remote for that matter) easy to use API I've been working on one off and on since then.
The feature list so far:
-Written in python (runnable on almost any os as well as modded/open source routers running ddwrt/tomato)
-Connects and maintains a connection to your envisalink device
-Maintains a state of all the alarm zones and partitions
-Runs a very simple http server
-Currently very simple (because I suck and hate web design) front page to arm/stayarm/disarm alarm.
-JSON output of the status of entire system, including all zones and partitions.
-Sends notifications using pageonce.
Todo list:
-Add some form of authentication
-Add email, and other notifications.
-Add zone and partition names
-Finish a web page with alarm keypad and other action buttons buttons, zone/partition status using a timed/repeating AJAX/Xhtmlrequest to pull data from the json api.
-Other requests?
I'm like to share the code with a few willing participants if anyone is interested. When I get it to a more complete stage I plan to post the source on github. As well if anyone has any feature requests etc, i'd be interested to hear them.
Thanks!
Here is some sample output of my system pulled via http://host/api :
Code: Select all
{"zones": {"1": {"status": {"open": false}, "lastevents": [{"message": "Zone 001 Restored", "datetime": "2012-12-02 17:21:06"}, {"message": "Zone 001 Open", "datetime": "2012-12-02 18:40:45"}, {"message": "Zone 001 Restored", "datetime": "2012-12-02 18:40:51"}]}, "2": {"status": {"open": false}, "lastevents": [{"message": "Zone 002 Restored", "datetime": "2012-12-02 17:21:06"}, {"message": "Zone 002 Open", "datetime": "2012-12-02 17:55:17"}, {"message": "Zone 002 Restored", "datetime": "2012-12-02 17:55:24"}, {"message": "Zone 002 Open", "datetime": "2012-12-02 18:17:17"}, {"message": "Zone 002 Restored", "datetime": "2012-12-02 18:17:20"}, {"message": "Zone 002 Open", "datetime": "2012-12-02 18:40:33"}, {"message": "Zone 002 Restored", "datetime": "2012-12-02 18:40:37"}, {"message": "Zone 002 Open", "datetime": "2012-12-02 18:44:53"}, {"message": "Zone 002 Restored", "datetime": "2012-12-02 18:45:01"}, {"message": "Zone 002 Open", "datetime": "2012-12-02 23:31:34"}, {"message": "Zone 002 Restored", "datetime": "2012-12-02 23:33:01"}]}, "3": {"status": {"open": false}, "lastevents": [{"message": "Zone 003 Restored", "datetime": "2012-12-02 17:21:06"}]}, "4": {"status": {"open": false}, "lastevents": [{"message": "Zone 004 Restored", "datetime": "2012-12-02 17:21:06"}]}, "5": {"status": {"open": false}, "lastevents": [{"message": "Zone 005 Restored", "datetime": "2012-12-02 17:21:06"}, {"message": "Zone 005 Open", "datetime": "2012-12-02 17:22:43"}, {"message": "Zone 005 Restored", "datetime": "2012-12-02 17:22:46"}, {"message": "Zone 005 Open", "datetime": "2012-12-02 17:40:58"}, {"message": "Zone 005 Restored", "datetime": "2012-12-02 17:40:59"}, {"message": "Zone 005 Open", "datetime": "2012-12-02 17:41:00"}, {"message": "Zone 005 Restored", "datetime": "2012-12-02 17:41:02"}, {"message": "Zone 005 Open", "datetime": "2012-12-02 17:42:14"}, {"message": "Zone 005 Restored", "datetime": "2012-12-02 17:42:15"}, {"message": "Zone 005 Open", "datetime": "2012-12-02 17:53:56"}, {"message": "Zone 005 Restored", "datetime": "2012-12-02 23:37:07"}]}, "6": {"status": {"open": false}, "lastevents": [{"message": "Zone 006 Restored", "datetime": "2012-12-02 17:21:06"}]}, "7": {"status": {"open": false}, "lastevents": [{"message": "Zone 007 Restored", "datetime": "2012-12-02 17:21:06"}]}, "8": {"status": {"open": false}, "lastevents": [{"message": "Zone 008 Restored", "datetime": "2012-12-02 17:21:06"}]}, "9": {"status": {"open": false}, "lastevents": [{"message": "Zone 009 Restored", "datetime": "2012-12-02 17:21:06"}]}, "10": {"status": {"open": false}, "lastevents": [{"message": "Zone 010 Restored", "datetime": "2012-12-02 17:21:06"}]}, "11": {"status": {"open": false}, "lastevents": [{"message": "Zone 011 Restored", "datetime": "2012-12-02 17:21:07"}]}, "12": {"status": {"open": false}, "lastevents": [{"message": "Zone 012 Restored", "datetime": "2012-12-02 17:21:07"}]}, "13": {"status": {"open": false}, "lastevents": [{"message": "Zone 013 Restored", "datetime": "2012-12-02 17:21:07"}]}, "14": {"status": {"open": false}, "lastevents": [{"message": "Zone 014 Restored", "datetime": "2012-12-02 17:21:07"}]}, "15": {"status": {"open": true}, "lastevents": [{"message": "Zone 015 Open", "datetime": "2012-12-02 17:21:07"}]}, "16": {"status": {"open": false}, "lastevents": [{"message": "Zone 016 Restored", "datetime": "2012-12-02 17:21:07"}]}, "17": {"status": {"open": false}, "lastevents": [{"message": "Zone 017 Restored", "datetime": "2012-12-02 17:21:07"}]}, "18": {"status": {"open": false}, "lastevents": [{"message": "Zone 018 Restored", "datetime": "2012-12-02 17:21:07"}]}, "19": {"status": {"open": false}, "lastevents": [{"message": "Zone 019 Restored", "datetime": "2012-12-02 17:21:07"}]}, "20": {"status": {"open": false}, "lastevents": [{"message": "Zone 020 Restored", "datetime": "2012-12-02 17:21:07"}]}, "21": {"status": {"open": false}, "lastevents": [{"message": "Zone 021 Restored", "datetime": "2012-12-02 17:21:07"}]}, "22": {"status": {"open": false}, "lastevents": [{"message": "Zone 022 Restored", "datetime": "2012-12-02 17:21:08"}]}, "23": {"status": {"open": false}, "lastevents": [{"message": "Zone 023 Restored", "datetime": "2012-12-02 17:21:08"}]}, "24": {"status": {"open": false}, "lastevents": [{"message": "Zone 024 Restored", "datetime": "2012-12-02 17:21:08"}]}, "25": {"status": {"open": false}, "lastevents": [{"message": "Zone 025 Restored", "datetime": "2012-12-02 17:21:08"}]}, "26": {"status": {"open": false}, "lastevents": [{"message": "Zone 026 Restored", "datetime": "2012-12-02 17:21:08"}]}, "27": {"status": {"open": false}, "lastevents": [{"message": "Zone 027 Restored", "datetime": "2012-12-02 17:21:08"}]}, "28": {"status": {"open": false}, "lastevents": [{"message": "Zone 028 Restored", "datetime": "2012-12-02 17:21:08"}]}, "29": {"status": {"open": false}, "lastevents": [{"message": "Zone 029 Restored", "datetime": "2012-12-02 17:21:08"}]}, "30": {"status": {"open": false}, "lastevents": [{"message": "Zone 030 Restored", "datetime": "2012-12-02 17:21:08"}]}, "31": {"status": {"open": false}, "lastevents": [{"message": "Zone 031 Restored", "datetime": "2012-12-02 17:21:08"}]}, "32": {"status": {"open": false}, "lastevents": [{"message": "Zone 032 Restored", "datetime": "2012-12-02 17:21:08"}]}, "33": {"status": {"open": false}, "lastevents": [{"message": "Zone 033 Restored", "datetime": "2012-12-02 17:21:08"}]}, "34": {"status": {"open": false}, "lastevents": [{"message": "Zone 034 Restored", "datetime": "2012-12-02 17:21:08"}]}, "35": {"status": {"open": false}, "lastevents": [{"message": "Zone 035 Restored", "datetime": "2012-12-02 17:21:08"}]}, "36": {"status": {"open": false}, "lastevents": [{"message": "Zone 036 Restored", "datetime": "2012-12-02 17:21:08"}]}, "37": {"status": {"open": false}, "lastevents": [{"message": "Zone 037 Restored", "datetime": "2012-12-02 17:21:08"}]}, "38": {"status": {"open": false}, "lastevents": [{"message": "Zone 038 Restored", "datetime": "2012-12-02 17:21:08"}]}, "39": {"status": {"open": false}, "lastevents": [{"message": "Zone 039 Restored", "datetime": "2012-12-02 17:21:08"}]}, "40": {"status": {"open": false}, "lastevents": [{"message": "Zone 040 Restored", "datetime": "2012-12-02 17:21:08"}]}, "41": {"status": {"open": false}, "lastevents": [{"message": "Zone 041 Restored", "datetime": "2012-12-02 17:21:08"}]}, "42": {"status": {"open": false}, "lastevents": [{"message": "Zone 042 Restored", "datetime": "2012-12-02 17:21:08"}]}, "43": {"status": {"open": false}, "lastevents": [{"message": "Zone 043 Restored", "datetime": "2012-12-02 17:21:08"}]}, "44": {"status": {"open": false}, "lastevents": [{"message": "Zone 044 Restored", "datetime": "2012-12-02 17:21:09"}]}, "45": {"status": {"open": false}, "lastevents": [{"message": "Zone 045 Restored", "datetime": "2012-12-02 17:21:09"}]}, "46": {"status": {"open": false}, "lastevents": [{"message": "Zone 046 Restored", "datetime": "2012-12-02 17:21:09"}]}, "47": {"status": {"open": false}, "lastevents": [{"message": "Zone 047 Restored", "datetime": "2012-12-02 17:21:09"}]}, "48": {"status": {"open": false}, "lastevents": [{"message": "Zone 048 Restored", "datetime": "2012-12-02 17:21:09"}]}, "49": {"status": {"open": false}, "lastevents": [{"message": "Zone 049 Restored", "datetime": "2012-12-02 17:21:09"}]}, "50": {"status": {"open": false}, "lastevents": [{"message": "Zone 050 Restored", "datetime": "2012-12-02 17:21:09"}]}, "51": {"status": {"open": false}, "lastevents": [{"message": "Zone 051 Restored", "datetime": "2012-12-02 17:21:09"}]}, "52": {"status": {"open": false}, "lastevents": [{"message": "Zone 052 Restored", "datetime": "2012-12-02 17:21:09"}]}, "53": {"status": {"open": false}, "lastevents": [{"message": "Zone 053 Restored", "datetime": "2012-12-02 17:21:09"}]}, "54": {"status": {"open": false}, "lastevents": [{"message": "Zone 054 Restored", "datetime": "2012-12-02 17:21:09"}]}, "55": {"status": {"open": false}, "lastevents": [{"message": "Zone 055 Restored", "datetime": "2012-12-02 17:21:09"}]}, "56": {"status": {"open": false}, "lastevents": [{"message": "Zone 056 Restored", "datetime": "2012-12-02 17:21:09"}]}, "57": {"status": {"open": false}, "lastevents": [{"message": "Zone 057 Restored", "datetime": "2012-12-02 17:21:09"}]}, "58": {"status": {"open": false}, "lastevents": [{"message": "Zone 058 Restored", "datetime": "2012-12-02 17:21:09"}]}, "59": {"status": {"open": false}, "lastevents": [{"message": "Zone 059 Restored", "datetime": "2012-12-02 17:21:09"}]}, "60": {"status": {"open": false}, "lastevents": [{"message": "Zone 060 Restored", "datetime": "2012-12-02 17:21:09"}]}, "61": {"status": {"open": false}, "lastevents": [{"message": "Zone 061 Restored", "datetime": "2012-12-02 17:21:09"}]}, "62": {"status": {"open": false}, "lastevents": [{"message": "Zone 062 Restored", "datetime": "2012-12-02 17:21:09"}]}, "63": {"status": {"open": false}, "lastevents": [{"message": "Zone 063 Restored", "datetime": "2012-12-02 17:21:09"}]}, "64": {"status": {"open": false}, "lastevents": [{"message": "Zone 064 Restored", "datetime": "2012-12-02 17:21:09"}]}}, "version": 0.1, "partition": {"1": {"status": {"ready": false, "trouble": false, "armed": true}, "lastevents": [{"message": "Partition 1 Armed Mode 1", "datetime": "2012-12-02 17:21:09"}, {"message": "Partition 1 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}, {"message": "Partition 1 User 0040 Opening", "datetime": "2012-12-02 17:55:24"}, {"message": "Partition 1 Disarmed", "datetime": "2012-12-02 17:55:24"}, {"message": "Partition 1 Not Ready", "datetime": "2012-12-02 18:17:17"}, {"message": "Partition 1 Not Ready", "datetime": "2012-12-02 18:40:33"}, {"message": "Partition 1 Not Ready", "datetime": "2012-12-02 18:40:45"}, {"message": "Partition 1 Not Ready", "datetime": "2012-12-02 18:44:53"}, {"message": "Partition 1 Not Ready", "datetime": "2012-12-02 23:31:34"}, {"message": "Partition 1 Not Ready", "datetime": "2012-12-02 23:32:56"}, {"message": "Partition 1 Armed Mode 1", "datetime": "2012-12-03 00:06:50"}]}, "2": {"status": {"trouble": false}, "lastevents": [{"message": "Partition 2 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}]}, "3": {"status": {"trouble": false}, "lastevents": [{"message": "Partition 3 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}]}, "4": {"status": {"trouble": false}, "lastevents": [{"message": "Partition 4 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}]}, "5": {"status": {"trouble": false}, "lastevents": [{"message": "Partition 5 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}]}, "6": {"status": {"trouble": false}, "lastevents": [{"message": "Partition 6 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}]}, "7": {"status": {"trouble": false}, "lastevents": [{"message": "Partition 7 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}]}, "8": {"status": {"trouble": false}, "lastevents": [{"message": "Partition 8 Trouble LED OFF", "datetime": "2012-12-02 17:21:10"}]}}}