Skip to content

Latest commit

History

104 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Ember 1.0.0

The source code for the City of Light

For a complete paper (wrote according the ACM standard) about the project and its assumption, visit here and drop us a line! To access slides made to demo the project, visit here

About

This is an academic project born to be an efficient solution for the CINI 2017 Challenge on smart cities illumination systems. In particular, the goal was to prototype and test a solution which was capable of (near) real-time data stream processing for monitoring records from street lamps, lumen sensors co-located with the street lamps themselves and from traffic data produced by third-party APIs. We will explore this solution for the following use case: in a smart city context it is necessary to guarantee the maximum efficiency from lamps consumption while providing an optimal illumination within safety limits for pedestrians and drivers according to local traffic intensity. To achieve that, it is necessary to project a grid of smart lamps capable of tuning their light level according to the right amount of energy necessary to provide city aware, safe and green consumption levels. This grid must be powered and managed via a reliable, highly available, processing-capable control system. Introducing Project Ember.

Usage

Project Ember is thought to be usable out-of-the-box. To install Apache Flink on your development machine or to configure an HA JobManager with multiple TaskManagers, you can follow the official guide at flink.apache.org. You can also give a try to a very simple docker-compose.yml under the dockerutilsfolder. Once the framework is online, visit <jobmanageraddress>:8081 to load your jar and monitor your cluster status.

Configuration

Project Ember is customizable according the environment it will be run upon. You can specify a path to a .properties file to override the default configuration. To use it you have only to launch the program, inside the Flink directory, with the command bin/flink run project-ember.jar config.properties.

The following table shows some configurations options:

propertytypedescriptiondefault
lifespan.rank.minlongLifespan ranking window - slide from (min, max)1
lifespan.rank.maxlongLifespan ranking window - slide from (min, max)60
lifespan.rank.sizeintegerLifespan ranking results, max number of items10
lifespan.days.maxintegerLifespan of a single bulb, security limit (in days)200
alerts.period.secondslongInterval (in seconds) to perform a query on Elasticsearch to detect any anomaly30
alerts.electricalfailure.secondslongExpiration time (in seconds) to consider an electrical failure for a not responding lamp90
elasticsearch.cluster.namestringElasticsearch cluster name (security option enabled by default)"embercluster"
elasticsearch.cluster.addressstringElasticsearch cluster remote address"localhost"
elasticsearch.cluster.portintElasticsearch cluster port opened (by default 9200 for web-based queries and 9300 for clients)9300
kafka.cluster.addressstringApache Kafka cluster remote address"localhost"
kafka.cluster.portintApache Kafka cluster port opened9092
kafka.topic.alertbooleanOption to enable the alerts messages production under topic 'alert', else alerts are stored by lamp ID in Elasticsearch under 'alert' index.true

Disclaimer: this project is in its early release, and it is made to be available to a large panorama of institutions. If you want a particular configuration, please contact us or open an issue to ask for new features.

Control Parameters

Please, for a custom experience or to change the behavior of the control operator for particular environments (as for example different regulations or parking silos), feel free to change the parameters in EmberControlRoom.java before building and deploying your solution.

About

City of Light (proudly powered by Apache Flink, Apache Kafka and Elasticsearch - this is home for the Flink custom package and for project documentation)

Topics

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages