For a list of mock-users and their corresponding passwords, together with the IP addresses and other system accounts for the VMs, look at the bottom of this file.
A short and quick installation guide for Climify.
Prerequistive:
- Java
- Jenkins
Follow the Jenkins installation guide, set up a user account.
Prerequistive:
- Java
- PHP
- Apache
Make sure that Apache is set up correctly. Then place the skoleklima files inside /var/www/html/, then run the Climify.jar (See below).
Prerequistive:
- Maven
- Java
Go to communication/mqtt and enter command: 'mvn clean install package'
This will install the different .jar for each of the communication components. E.g. the Climify webserver .jar will be located in Climify/target. This can be run using 'java -jar Climify.jar'
A list of releases in descending order.
Tag for release #3: https://github.com/cenh/SE2-Climify/tree/R3
Since release 2, the list of files changed in 'skoleklima' folder
- css/styles.css - Edit and delete rules implementation called for updated styling
- js/api-getter.js - removed some prints so web console is cleaner
- js/charts.js - fixed some bugs, and added functionality to calculate statistics. Also made it such that the download .csv for graphs work
- js/devices.js - created this file for device page
- js/main.js - moved some functions to devices.js
- js/rule-getter.js - functions that allow CRUD operations on rules
- ink/navigation.php - added new route 'control map'
- ink/views/view-control-map.php - new route
- ink/views/view-data-map.php - added the working devices page
- ink/views/view-dashboard.php - added the new route 'control' map to appropriate permissions, changed how permissions are used
- ink/views/view-data.php - added a mouseover that shows reccomended indicator ranges
- ink/views/view-rules.php - added dynamic elements that allow CRUD operations for rules
- api/api-get-rules.php - added new API for getting rules
- api/api-rule-delete.php - added new API for deleting rules
- api/api-rule-execute.php - preliminary API for executing rules (No longer used)
- api/api-rule-save.php - added new API for saving rules
- api/api-rule-update.php - added new API for updating rules
Here is a list of the files changed and their changes within the 'communication/mqtt' folder.
- Climify/src/main/java/org/Climify/ClimifyMessageHandler.java - Now supports CRUD operations with rules and executes them
- Climify/src/main/java/org/Climify/ClimifyMQTTController.java - Handles MQTT messages
- Climify/src/main/java/org/Climify/mariaDB/MariaDBCommunicator.java - Now gets rules from MariaDB
- MqttLib/src/main/java/org/MqttLib/openhab/Item.java - now contains item description as well.
- MqttLib/src/main/java/org/MqttLib/openhab/Option.java - created file for openHAB options
- MqttLib/src/main/java/org/MqttLib/openhab/StateDescription.java - defines the description of an item
- RaspberryPi/src/main/java/org/RaspberryPi/openhab/RestCommunicator.java - now looks for state description as well
Tag for release #2: https://github.com/cenh/SE2-Climify/tree/R2
Here is a list of the files changed and their changes within the 'skoleklima' folder.
- ink/views/view-data-map.php & ink/views/view-data-map.php - changes to reflect new tables.
- ink/navigation.php - changes to reflect permissions.
- js/charts.js - changed to retrieve data from more sensors.
- api/api-get-all-sensordata.php - Changed to get all sensor data.
- api/api-user-login.php - Updated the security.
- api/api-get-current-temperature.php, api/api-get-current-humidty.php & api/api-get-battery-level.php - Created to retrieve sensor data.
- api/api-get-graph-data.php - Changed to support multiple sensors.
- admin-login/api/api-admin-login.php - Updated the security.
- admin-login/api/api-get-roles.php - Added role tables to the admin page.
- admin-login/index.php - Added role table.
Here is a list of the files changed and their changes within the 'communication/mqtt' folder.
- Climify/src/main/java/org/Climify/ClimifyMessageHandler.java - Changed to also save sensor in MariaDB.
- Climify/src/main/java/org/Climify/ClimifyMqttController.java - MariaDB connection.
- Climify/src/main/java/org/Climify/influxDB/InfluxCommunicator.java - Updated to save category aswell.
- Climify/src/main/java/org/Climify/mariaDB/MariaDBCommunicator.java - MariaDB communication protocol.
- MqttLib/src/main/java/org/MqttLib/openhab/ - Various updates and new files for openHAB usage.
- RaspberryPi/src/main/java/org/RaspberryPi/ - Various changes to RaspberryPi communication with MQTT.
Tag for release #3: https://github.com/cenh/SE2-Climify/tree/R1
The first release seeks to fulfill the user stories specified in the report.
Currently, the first release can be accessed at http://se2-webapp03.compute.dtu.dk/playground/skoleklima/
In the navigation a tab has been added named "Room X". This is where release 1's features are demonstrated.
On the page it will be possible to set the thermostat (via MQTT) and view latest influxdb data available.
The graph used is not grafana, nor is it connected to influxdb yet, it is a chartJS clientside implementation where it displays the set temperature on the thermostat during your current session. As this is stored on the frontside in javascript it is reloaded whenever the browser reloads.
To get data from the influxdb we make http API calls to the 8086 port on the local machine, and process the response with javascript on the clientside.
An example:
Information about the VMs
Domain: se2-jenkins03.compute.dtu.dk
IP: 130.225.68.155
Jenkins webservice: http://se2-jenkins03.compute.dtu.dk:8080/
User: admin - password: totallysecurepassword
Domain: se2-webapp03.compute.dtu.dk
IP: 130.225.69.76
Webapp: http://se2-webapp03.compute.dtu.dk/SE2-Climify/skoleklima/index.php
Admin login: http://se2-webapp03.compute.dtu.dk/SE2-Climify/skoleklima/admin-login/index.php
Jenkins: http://130.225.69.76:8080/
Mock user (Role: Project Manager): john - password: testpassword
Mock user (Role: Project Observer): jason - password: testpassword
Mock admin: admin - password: totallysecurepassword (Login via the Admin login page, see above link)
Mysql user: root - password: totallysecurepassword
Jenkins: admin - password: totallysecurepassword
##Release 1 The first release seeks to fulfill the user stories specified in the report.
Currently, the first release can be accessed at http://se2-webapp03.compute.dtu.dk/playground/skoleklima/
In the navigation a tab has been added named "Room X". This is where release 1's features are demonstrated.
On the page it will be possible to set the thermostat (via MQTT) and view latest influxdb data available.
The graph used is not grafana, nor is it connected to influxdb yet, it is a chartJS clientside implementation where it displays the set temperature on the thermostat during your current session. As this is stored on the frontside in javascript it is reloaded whenever the browser reloads.
To get data from the influxdb we make http API calls to the 8086 port on the local machine, and process the response with javascript on the clientside.
An example: