Overview
Help for developers/contributors.
Note
The development on the Raspberry PI can be time consuming. Use your pc for development and deploy the code changes to a Raspberry PI.
Getting the code¶
Open a terminal, navigate into your working directory and run the following command:
# cloning the repositories
git clone --recurse-submodules https://github.com/ArPIHomeSecurity/arpi_management.git
# switch to the development branch
git checkout dev_vXXXX
git submodule foreach git checkout dev_vXXXX
# switch to a released version
git checkout vXXXX
git submodule foreach git checkout vXXXX
+ arpi_management: managing the software components
|--arpi_server: backend
|--arpi_webapplication: frontend
Prerequisites for development¶
- python 3
- python pipenv (for management and server)
- nodejs (for the web application)
- docker (for management and server)
- For PyGObject on Ubuntu/Debian (for server)
sudo apt install \ gcc \ libgirepository1.0-dev \ libcairo2-dev \ pkg-config \ python3-dev \ gir1.2-gtk-3.0
Preparing environments:
- Server: python
pipenv install --dev
- Web application: angular
npm install --dev
Features¶
Hardware clock¶
The software is configured to use a DS1307 hardware clock. The configuration is prepared during the installation of the board (arpi_management/scripts/install_environment.sh).
The hardware clock is updated every hour from system clock and updates the system clock on reboot (arpi_management/arpi_server/etc/cron/hwclock).
GSM module¶
The software is configured to work with a GSM module (tested with SIM900A) on serial port /dev/ttyAMA0 9600 Baud. The console on serial port is disabled.
NoIP¶
You can use a NoIP provider for accessing the security system remotely on the same domain name.
Certbot¶
You can switch the connection of the web application to a signed HTTPS connection with the help of Certbot.