Skip to content

Commit 2116db8

Browse files
committed
Version 1.0.0. See changelog for details.
1 parent 9683b77 commit 2116db8

104 files changed

Lines changed: 1738 additions & 341 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
## 1.0.0
2+
- DB updated to 0.6.7.
3+
- Home page displays various statistics now (See the screenshot). Data is returned by a stored procedure in DB.
4+
- Transactions can be accessed under Data Management.
5+
- Latest received heartbeats are stored in DB and can be accessed from home page.
6+
- Latest connector status information can be accessed from home page.
7+
- "Humanize" the date if it's from today or yesterday.
8+
- Drop-down date picker (JQuery plugin) for user-friendly input.
9+
- Time input field defaults to 00:00 when left empty.
10+
- Drop-down select list of user and parent id tags where applicable.
11+
- Drop-down select list for connector, transaction and reservation ids (via Ajax calls) for user-friendly input after a charge point is selected for an OCPP operation.
12+
- Client-side input control for required fields (needs HTML5).
13+
- Server-side fixes for mandatory/optional fields to conform to OCPP.
14+
- User ID Tag restriction: It must be between 1 and 20 characters long. Allowed characters are upper or lower case letters, numbers and dot, dash, underscore symbols.
15+
116
## 0.6.8
217
- Started using MVC, JQuery and Ajax.
318
- InputUtils for user input validation.

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@ How to use?
2020

2121
Screenshots
2222
-----
23-
1. [Data Management - Reservations](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/reservations.png)
24-
2. [Data Management - Charge Points](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/chargepoints.png)
25-
3. [Data Management - Users](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/users.png)
26-
4. [Operations - OCPP v1.2](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/ocpp12.png)
27-
5. [Operations - OCPP v1.5](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/ocpp15.png)
28-
6. [Settings](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/settings.png)
23+
1. [Home](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/home.png)
24+
2. [Heartbeats](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/heartbeats.png)
25+
3. [Connector Status](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/connector-status.png)
26+
4. [Data Management - Reservations](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/reservations.png)
27+
5. [Data Management - Charge Points](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/chargepoints.png)
28+
6. [Data Management - Users](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/users.png)
29+
7. [Data Management - Transactions](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/transactions.png)
30+
8. [Operations - OCPP v1.2](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/ocpp12.png)
31+
9. [Operations - OCPP v1.5](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/ocpp15.png)
32+
10. [Settings](https://raw.github.com/RWTH-i5-IDSG/steve/master/resources/screenshots/settings.png)
2933

3034
Change log
3135
-----

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>idsg</groupId>
55
<artifactId>steve</artifactId>
6-
<version>0.6.8</version>
6+
<version>1.0.0</version>
77
<packaging>war</packaging>
88
<build>
99
<plugins>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
ALTER TABLE `stevedb`.`dbVersion` CHANGE COLUMN `upateTimestamp` `updateTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ;
2+
3+
INSERT INTO `stevedb`.`dbVersion` (`version`) VALUES ('0.6.7') ON DUPLICATE KEY UPDATE `version` = '0.6.7';
4+
5+
ALTER TABLE `stevedb`.`chargebox` ADD COLUMN `lastHeartbeatTimestamp` TIMESTAMP NULL DEFAULT NULL AFTER `diagnosticsTimestamp` ;
6+
7+
DROP EVENT IF EXISTS expire_reservations;
8+
DELIMITER ;;
9+
CREATE EVENT expire_reservations
10+
ON SCHEDULE EVERY 1 DAY STARTS '2013-11-16 03:00:00'
11+
DO BEGIN
12+
INSERT INTO reservation_expired (SELECT * FROM reservation WHERE reservation.expiryDatetime <= NOW());
13+
DELETE FROM reservation WHERE reservation.expiryDatetime <= NOW();
14+
END ;;
15+
16+
DELIMITER ;;
17+
CREATE DEFINER=`root`@`localhost` PROCEDURE `getStats`(
18+
OUT numChargeBoxes INT,
19+
OUT numUsers INT,
20+
OUT numReservs INT,
21+
OUT numTranses INT,
22+
OUT heartbeatToday INT,
23+
OUT heartbeatYester INT,
24+
OUT heartbeatEarl INT,
25+
OUT connAvail INT,
26+
OUT connOcc INT,
27+
OUT connFault INT,
28+
OUT connUnavail INT)
29+
BEGIN
30+
-- # of chargeboxes
31+
SELECT COUNT(chargeBoxId) INTO numChargeBoxes FROM chargebox;
32+
-- # of users
33+
SELECT COUNT(idTag) INTO numUsers FROM user;
34+
-- # of reservations
35+
SELECT COUNT(reservation_pk) INTO numReservs FROM reservation;
36+
-- # of active transactions
37+
SELECT COUNT(transaction_pk) INTO numTranses FROM transaction WHERE stopTimestamp IS NULL;
38+
39+
-- # of today's heartbeats
40+
SELECT COUNT(lastHeartbeatTimestamp) INTO heartbeatToday FROM chargebox
41+
WHERE lastHeartbeatTimestamp >= CURDATE();
42+
-- # of yesterday's heartbeats
43+
SELECT COUNT(lastHeartbeatTimestamp) INTO heartbeatYester FROM chargebox
44+
WHERE lastHeartbeatTimestamp >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND lastHeartbeatTimestamp < CURDATE();
45+
-- # of earlier heartbeats
46+
SELECT COUNT(lastHeartbeatTimestamp) INTO heartbeatEarl FROM chargebox
47+
WHERE lastHeartbeatTimestamp < DATE_SUB(CURDATE(), INTERVAL 1 DAY);
48+
49+
-- # of latest AVAILABLE statuses
50+
SELECT COUNT(cs.status) INTO connAvail
51+
FROM connector_status cs
52+
INNER JOIN (SELECT connector_pk, MAX(statusTimestamp) AS Max FROM connector_status GROUP BY connector_pk)
53+
AS t1 ON cs.connector_pk = t1.connector_pk AND cs.statusTimestamp = t1.Max
54+
WHERE cs.status = 'AVAILABLE' GROUP BY cs.status;
55+
56+
-- # of latest OCCUPIED statuses
57+
SELECT COUNT(cs.status) INTO connOcc
58+
FROM connector_status cs
59+
INNER JOIN (SELECT connector_pk, MAX(statusTimestamp) AS Max FROM connector_status GROUP BY connector_pk)
60+
AS t1 ON cs.connector_pk = t1.connector_pk AND cs.statusTimestamp = t1.Max
61+
WHERE cs.status = 'OCCUPIED' GROUP BY cs.status;
62+
63+
-- # of latest FAULTED statuses
64+
SELECT COUNT(cs.status) INTO connFault
65+
FROM connector_status cs
66+
INNER JOIN (SELECT connector_pk, MAX(statusTimestamp) AS Max FROM connector_status GROUP BY connector_pk)
67+
AS t1 ON cs.connector_pk = t1.connector_pk AND cs.statusTimestamp = t1.Max
68+
WHERE cs.status = 'FAULTED' GROUP BY cs.status;
69+
70+
-- # of latest UNAVAILABLE statuses
71+
SELECT COUNT(cs.status) INTO connUnavail
72+
FROM connector_status cs
73+
INNER JOIN (SELECT connector_pk, MAX(statusTimestamp) AS Max FROM connector_status GROUP BY connector_pk)
74+
AS t1 ON cs.connector_pk = t1.connector_pk AND cs.statusTimestamp = t1.Max
75+
WHERE cs.status = 'UNAVAILABLE' GROUP BY cs.status;
76+
77+
END ;;
7.55 KB
Loading
56.2 KB
Loading
51.1 KB
Loading

resources/screenshots/home.png

65.6 KB
Loading

resources/screenshots/ocpp12.png

2.3 KB
Loading

resources/screenshots/ocpp15.png

14.3 KB
Loading

0 commit comments

Comments
 (0)