Installation¶
This page describes an installation of the package dm
and how to integrate it into the project.
Getting the source code¶
Contact project manager (project no. TH02010845: IotCloud - Intelligence for IoT systems) to obtain source code.
Requirements¶
Ubuntu packages¶
Use the command below to install the required Ubuntu packages.
apt install python3-tk python3-venv
A Python virtual environment (optional)¶
It is suitable to create a Python virtual environment.
python3 -m venv env
After successful creation, it is necessary to activate the environment.
source env/bin/activate # for activate env
Python dependencies¶
List of used packages
matplotlib==3.0.2
mysql-connector-python==8.0.15
numpy==1.16.1
pandas==0.24.2
pickle-mixin==1.0.2
pytz==2018.9
requests==2.21.0
scipy==1.2.1
sklearn==0.0
sphinx==2.2.0
sphinx_rtd_theme==0.4.3
sympy==1.3
Install Python dependencies using the command below. The installation should be done in the virtual environment.
pip install -r requirements.txt
Documentation dependencies (optional)¶
apt-get install latexmk texlive-latex-recommended \
texlive-latex-extra texlive-fonts-recommended
To generate the documentation, it is required to go to the docs
folder.
The documentation can be generated either in HTML form or in PDF form.
If the documentation is generated in PDF form, it is open in the Opera browser after
a successful generation.
cd docs
make latex && \
cd build/latex/ && \
make && \
opera modulesforhealthyenvironment.pdf && \
cd - make html \
&& opera build/html/index.html
Configuration file¶
The configuration file config.ini
has to be placed in the /etc/dp/
folder.
The example of a configuration file follows.
[ant-work]
api.key.dm =
[rehivetech]
api.key.dm =
api.key.acontroller =
[db]
host =localhost
user =
passwd =
database =statistiky
[rapidminer]
launcher = ./rapidminer-studio/RapidMiner-Studio.sh
repository.processes.path =
[OpenWeatherOrg]
api.key =
[WundergroundCom]
api.key =
[package]
abs.path = /home/travis/build/iotcloud
abs.graph.path = ${abs.path}/src/graph
; shift last value in PreProcessing, this value is last measured from server
shift.last_value = 300
co2.event_file.name = ${abs.path}/examples/events_peto.json
t_h.event_file.name = ${abs.path}/examples/events_klarka.json
shower.event_file.name = ${abs.path}/examples/events_klarka_shower.json
; time shift that is subtracted or added to start or end of an interval respectively
interval_extension = 300
[open-detector]
generic.directory = ${package:abs.path}/examples2/0300_open_detector/generic_data
generic.devices.path = ${package:abs.path}/examples2/0001_create_update_db/devices.json
generic.co2.data_file.name = ${generic.directory}/training_co2.csv
generic.t_h.data_file.name = ${generic.directory}/training_t_h.csv
generic.co2.model.name = ${generic.directory}/model_co2.bin
generic.t_h.model.name = ${generic.directory}/model_t_h.bin
adapted.directory = ${package:abs.path}/examples2/0300_open_detector/adapted_data
adapted.combined_with_generic_data = No
; time shift to select an event when window was closed
attrs.no_event.time_shift = -1800
; time shift that is subtracted or added to start or end of an interval respectively
attrs.interval_extension = 300
selector.cache.before = 1800
selector.cache.after = 600
co2.detection.delay = 180
t_h.detection.delay = 180
[estimate]
; window size for linear regression
co2.windows.size = 1200
t_h.windows.size = 2700
; time shift that is subtracted or added to start or end of an interval respectively
attrs.interval_extension = 300
estimate.time = 3600
[predictor]
; time shift that is subtracted or added to start or end of an interval respectively
attrs.interval_extension = 300
selector.cache.before = 3600
selector.cache.after = 7200
generic.directory = ${package:abs.path}/examples2/0302_ventilation_predictor/generic_data
adapted.directory = ${package:abs.path}/examples2/0302_ventilation_predictor/adapted_data
generic.co2.data_file.name = ${generic.directory}/training_co2.csv
generic.t_h.data_file.name = ${generic.directory}/training_t_h.csv
generic.co2.model.name = ${generic.directory}/model_co2.bin
generic.t_h.model.name = ${generic.directory}/model_t_h.bin
generic.t_h.raw_csv.training_data = ${generic.directory}/raw_training.csv
; time shift to select an event when window was closed
attrs.no_event.time_shift = -1800
Other tools¶
The following command can be used for API key generation on the server. It is only required to enter an arbitrary email in the right form.
echo `pwgen 80 1` "= namea@example.org" >> /etc/beeeon/server/apikeys.properties