{"id":14036869,"url":"https://github.com/bkbilly/AlarmPI","last_synced_at":"2025-07-27T04:32:41.661Z","repository":{"id":41454772,"uuid":"53438383","full_name":"bkbilly/AlarmPI","owner":"bkbilly","description":"🚨 Home Security Intrusion Detection for Raspberry PI or any other linux OS","archived":false,"fork":false,"pushed_at":"2024-03-30T11:46:31.000Z","size":9980,"stargazers_count":95,"open_issues_count":2,"forks_count":13,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-05-01T17:04:26.900Z","etag":null,"topics":["alarm","android-application","diy","hikvision","home-assistant","ifttt-maker","mqtt","python","raspberry-pi","restful-api","security","voip","zigbee"],"latest_commit_sha":null,"homepage":"http://bkbilly.github.io/AlarmPI/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bkbilly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":"bkbilly","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://www.paypal.me/bkbillybk"]}},"created_at":"2016-03-08T19:16:30.000Z","updated_at":"2024-05-01T10:30:06.000Z","dependencies_parsed_at":"2024-04-05T08:00:17.324Z","dependency_job_id":null,"html_url":"https://github.com/bkbilly/AlarmPI","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkbilly%2FAlarmPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkbilly%2FAlarmPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkbilly%2FAlarmPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkbilly%2FAlarmPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkbilly","download_url":"https://codeload.github.com/bkbilly/AlarmPI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":214982087,"owners_count":15811653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alarm","android-application","diy","hikvision","home-assistant","ifttt-maker","mqtt","python","raspberry-pi","restful-api","security","voip","zigbee"],"created_at":"2024-08-12T03:02:17.256Z","updated_at":"2024-08-12T03:05:55.392Z","avatar_url":"https://github.com/bkbilly.png","language":"Python","funding_links":["https://github.com/sponsors/bkbilly","https://www.paypal.me/bkbillybk"],"categories":["Python"],"sub_categories":[],"readme":"# AlarmPI ![Build Status](https://github.com/bkbilly/AlarmPI/workflows/build/badge.svg) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/bkbilly/AlarmPI)](https://github.com/bkbilly/AlarmPI/releases/latest)\n\nAlarmPI is a home security system based on Raspberry PI. It supports wired sensors (PIR, Magnetic etc.) and wireless through MQTT or Hikvision. It is controlled with a Web UI, a Android Application, or through HTTP \u0026 MQTT messages. When the alarm detects movement, it supports the following events:\n * Enables the Siren\n * Send Mail\n * VoIP Calls\n * Send MQTT message\n\nIt is written in python and supports both python 2.7 \u0026 python 3.6. There is also the option of having more than one user by editing the server.json file accordingly.\n\n\n## Installation\nWith this command on your terminal you can install and update the application with my latest commit.\n```bash\nbash \u003c(curl -s \"https://raw.githubusercontent.com/bkbilly/AlarmPI/master/install.sh\")\n```\n\n## Usage\n### Web UI\nThe Web Interface of the alarm has all the features that are needed to configure and use the home security. It supports real time events of the sensors, the logs and their status.\nIt also works as an smartphone application from the browser: _Add to Home screen_\n\n### Mobile Application\nThe android application is very light and fast and it is recomended for the phone, but it has no real time updates.\nYou can download it from here: [Play Store](https://play.google.com/store/apps/details?id=bkbilly.alarmpi)\n\nThe source code for the application is here: https://github.com/bkbilly/AlarmPI-Android\n\n### Snips\nThrough voice commands from Snips platform using this application: [snips console](https://console.snips.ai/store/en/skill_G4V82q5rb2)\n\n### Home-Assistant\nIt is also controlled with MQTT commands with the Home-Assistant component: 'MQTT Alarm Control Panel'.\nOn Home-Assistant the configuration is like so:\n```yaml\nalarm_control_panel:\n  - platform: mqtt\n    name: \"AlarmPI\"\n    state_topic: \"home/alarm\"        # The State Topic from AlarmPI\n    command_topic: \"home/alarm/set\"  # The Command Topic from AlarmPI\n    payload_arm_home: \"ARM_HOME\"     # This is not used\n    payload_arm_away: \"ARM_AWAY\"\n```\n\n## API\n### HTTP\n  * `https://admin:secret@example.com:5000/setSensorStatus?name=test1\u0026state=off`\n  * `https://admin:secret@example.com:5000/activateAlarmZone?zones=home,away`\n  * `https://admin:secret@example.com:5000/activateAlarmOnline`\n  * `https://admin:secret@example.com:5000/deactivateAlarmOnline`\n  * `https://admin:secret@example.com:5000/stopSiren`\n  * `https://admin:secret@example.com:5000/startSiren`\n  * `https://example.com:5000/login?username=admin\u0026password=secret`\n\n### MQTT\nThese are the possible mqtt messages. First you will have to setup the MQTT state_topc \u0026 command_topic.\n  * `home/alarm/set` [ARM_HOME,ARM_AWAY,ARM_NIGHT,DISARM,PENDING]\n  * `home/alarm/set/siren` {\"state\": \"ON\"}\n  * `home/alarm/set/sensor/test1` [off,online]\n  * `home/alarm/sensor/test1` [off,on,error]\n  * `home/alarm` [armed_away,disarmed,triggered]\n\nSupports custom messages subscriptions on MQTT Sensors by filling the appropriate information about topic and payload on sensor settings. This can be used for cases like zigbee2mqtt so that zigbee devices can be used. The payload must be a python function with the payload stored as `message` like this:\n * message['contact'] == 'ON'\n\n### IFTTT\nIt can also be used with IFTTT using the Webhooks module like this:\n`https://admin:secret@example.com:5000/activateAlarmOnline`\n`https://admin:secret@example.com:5000/deactivateAlarmOnline`\n\u003eMy personal favourite is to control it with Google Assistant.\n\n## SipCall (VoIP)\nI have built the sipcall for the Raspberry Pi, so hopefully you will not have to build it yourself.\nTo test it, execute this replacing the (myserver, myusername, mypassword, mynumbertocall):\n\n`./sipcall -sd myserver -su myusername -sp mypassword -pn mynumbertocall -s 1 -mr 2 -ttsf ../play.wav`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkbilly%2FAlarmPI","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkbilly%2FAlarmPI","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkbilly%2FAlarmPI/lists"}