Skip to content

This repository demonstrates sending Alert using ReachPlus SDK through Python on Raspberry PI

License

Notifications You must be signed in to change notification settings

ReachPlus/PanicButton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

You will need the following hardware in order to trigger alerts from ReachPlus Alerts using a panic button.

  • Raspberry PI
  • IDC connector cables
  • One push button
  • One green LED
  • One blue LED

Panic Button

Setting up the hardware

Blue LED

  • Connect the ground end of the LED to pin 39 which is ground
  • Connect the positive end of the LED to pin 40 which is GPIO

Green LED

  • Connect the ground end of the LED to pin 34
  • Connect the positive end of the LED to pin 33 which is GPIO

Push Button

  • Using the IDC connector cables, connect one end of push button to pin 1 which is 3.3V and other end to pin 38 which is GPIO

Schematic

Software

We will be using Python scripting to work with the GPIO's of the Raspberry Pi.

Step 1: Importing modules that are required

import thread

import RPi.GPIO as GPIO
from time import sleep

import requests
from requests.auth import HTTPBasicAuth 

thread - helps us create threads

RPi.GPIO - will be used to work with Raspberry Pi ports

sleep - will be used for delays

requests - will be used as the REST client

Step 2: Configure ReachPlus Alerts server settings

These settings will be made in the settings.config.json configuration file

{
   "settings":{
      "sdkUrl":"http://192.168.5.166:47665/jobs",
      "rpasUser":"admin",
      "rpasPassword":"alerts",
      "triggerInputPin":38,
      "systemOnline":33,
      "sendStatus":40,
      "alertSampleFile":"samplealert1.txt"
 
   }
}

Step 3: Define the Alert Payload

The alert payload will contain the contents of the alert we plan to send. It will be stored in a separate text file which is loaded from the settings.config.json file.

<Job xmlns:ns2="urn:oasis:names:tc:emergency:cap:1.2" mJobId="d0ad073a-3565-4aa5-9fbf-84d638b208b1" mJobType="Alert" mJobStatus="Sent">
  <alert xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="emergencyAlertWs">
    <acknowledgement>
      <isRequired>true</isRequired>
      <option1>I need assistance</option1>
      <option2>I don't need assistance</option2>
    </acknowledgement>
    <alertLevel>Minor</alertLevel>
    <categoryIconKey>fire</categoryIconKey>
    <categoryKey>Fire</categoryKey>
    <identifier>d0ad073a-3565-4aa5-9fbf-84d638b208b1</identifier>
    <shortMessage>Fire drill alert</shortMessage>
    <title>Sample Fire Drill alert</title>
    <type>Emergency</type>
    <CAPAlert>
      <ns2:identifier>d0ad073a-3565-4aa5-9fbf-84d638b208b1</ns2:identifier>
      <ns2:sender>Mohsan Raza</ns2:sender>
      <ns2:sent>2015-09-03T16:37:19.000+05:00</ns2:sent>
      <ns2:status>Actual</ns2:status>
      <ns2:msgType>Alert</ns2:msgType>
      <ns2:source></ns2:source>
      <ns2:scope>Private</ns2:scope>
      <ns2:restriction></ns2:restriction>
      <ns2:addresses>Mohsan-Administrator</ns2:addresses>
      <ns2:note></ns2:note>
      <ns2:references></ns2:references>
      <ns2:incidents>&quot;Second floor fire drill&quot;</ns2:incidents>
      <ns2:info>
        <ns2:category>Fire</ns2:category>
        <ns2:event>Sample Fire Drill alert</ns2:event>
        <ns2:responseType>Evacuate</ns2:responseType>
        <ns2:urgency>Immediate</ns2:urgency>
        <ns2:severity>Minor</ns2:severity>
        <ns2:certainty>Observed</ns2:certainty>
        <ns2:audience></ns2:audience>
        <ns2:senderName>Mohsan Raza</ns2:senderName>
        <ns2:headline>Fire drill alert</ns2:headline>
        <ns2:description>This is a sample fire drill alert for a fire that has been observed and is spreading across the building. This alert has been created to replicate what an actual alert would look like.</ns2:description>
        <ns2:instruction>
          1) Remain calm
          2) Leave immediately, do not wait around to collect your belongings
          3) Ensure the room is empty upon leaving and shut your room door
          4) Quickly evacuate the building at your nearest Emergency Exit
          5) Do not use the lift
          6) Wait at the designated meeting point
        </ns2:instruction>
        <ns2:web>http://www.firstaid.com</ns2:web>
        <ns2:contact>Emergency Management: Phone Number</ns2:contact>
        <ns2:parameter>
          <ns2:valueName>p8Category</ns2:valueName>
          <ns2:value>Fire</ns2:value>
        </ns2:parameter>
        <ns2:parameter>
          <ns2:valueName>p8CategoryIcon</ns2:valueName>
          <ns2:value>fire</ns2:value>
        </ns2:parameter>
        <ns2:resource>
          <ns2:resourceDesc></ns2:resourceDesc>
          <ns2:mimeType>image/jpeg</ns2:mimeType>
          <ns2:size>44860</ns2:size>
          <ns2:uri></ns2:uri>
          <ns2:derefUri>/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowRUU4RURFNUIwRkMxMUUzOERBOUUxOUQ0NUMxQThGRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowRUU4RURFNkIwRkMxMUUzOERBOUUxOUQ0NUMxQThGRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBFRThFREUzQjBGQzExRTM4REE5RTE5RDQ1QzFBOEZFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBFRThFREU0QjBGQzExRTM4REE5RTE5RDQ1QzFBOEZFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEB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</ns2:derefUri>
          <ns2:digest></ns2:digest>
        </ns2:resource>
        <ns2:area>
          <ns2:areaDesc>The second floor of the quadrangle tower located at 200 bay street.</ns2:areaDesc>
        </ns2:area>
      </ns2:info>
    </CAPAlert>
  </alert>
  <groupId>48865108-17fb-49fc-9b19-6244b7b99555</groupId>
  <groupName>Mohsan-Administrator</groupName>
  <jobId>d0ad073a-3565-4aa5-9fbf-84d638b208b1</jobId>
  <jobStatus>Sent</jobStatus>
  <jobType>Alert</jobType>
  <sentBy>Mohsan Raza</sentBy>
  <sentTime>2015-09-03T16:37:20.014+05:00</sentTime>
  <sentVia>AD-HOC Console</sentVia>
  <validForMins>0</validForMins>
  <validTill>2015-09-03T16:47:19.998+05:00</validTill>
</Job>

Step 4: Monitor the status of the push button

We will monitor status of push button in a separate thread. If the button is pressed we will call the sendAlert method and turn on the blue LED.

def sendAlertThread( ):
    try:
        while True:            # this will carry on until you hit CTRL+C
            if GPIO.input(triggerInputPin): # if port triggerInputPin == 1
               # print " LED ON"
                GPIO.output(sendStatusPin, 1)         # set port/pin value to 1/HIGH/True
                if flag:
                    flag = 0
                print "Sending alert"
                try:
                    sendAlert()
                finally:
                    GPIO.output(sendStatusPin,0)
 
            else:
                GPIO.output(sendStatusPin, 0)         # set port/pin value to 0/LOW/False
                flag = 1
 
            sleep(0.1)         # wait 0.1 seconds
 
    finally:                   # this block will run no matter how the try block exits
        GPIO.cleanup()            

The flag ensures that the alert is only sent once when the button is pushed.

Step 5: Keep the Green LED blinking when the script is running (optional)

When the script is being executed, we want the green LED to be blinking.

def onlineBlinkerThread( ):
    try:
        while True:            # this will carry on until you hit CTRL+C
 
            GPIO.output(systemOnlinePin, 1) # set port/pin value to 1/HIGH/True
            sleep(2)           # wait 0.1 seconds
 
    finally:                   # this block will run no matter how the try block exits
        GPIO.cleanup()         # clean up after yourself
        systemError()

Step 6: Initiate two threads based on the methods defines in steps 4 and 5

with open('settings.config.json') as json_data_file:
    config = json.load(json_data_file)
 
sdkUrl = config['settings']['sdkUrl']
rpasUser = config['settings']['rpasUser']
rpasPassword = config['settings']['rpasPassword']
triggerInputPin = config['settings']['triggerInputPin']
systemOnlinePin = config['settings']['systemOnline']
sendStatusPin = config['settings']['sendStatus']
alertSampleFile = config['settings']['alertSampleFile']
 
setupGPIO ()
 
GPIO.output(systemOnlinePin, 0)
GPIO.output(sendStatusPin, 0)
try:
   thread.start_new_thread( onlineBlinkerThread, ( ) )
   thread.start_new_thread( sendAlertThread, ( ) )
except:
   print "Error: unable to start thread"
   systemError()
 
 
GPIO.output(systemOnlinePin, 1)
GPIO.output(sendStatusPin, 1)
 
while 1:
   pass

Demo

Execute the script on the Raspberry Pi. If the green LED is blinking, it represents that the system is not online and alerts cannot be sent. Once the green LED is stable you are ready to trigger the alert using the push button. When the push button is pushed, the blue LED should become solid. This represents that the alert transmission is in progress. Once the alert has been sent, the blue LED will turn off. If the blue LED starts blinking, it represents that the alert could not be sent. ReachPlus Alerts server 5.6.0(releasing soon) is required for this samle to work.

About

This repository demonstrates sending Alert using ReachPlus SDK through Python on Raspberry PI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages