All Projects → aksakalli → EsperIoT

aksakalli / EsperIoT

Licence: GPL-2.0 license
Small and simple stream-based CEP tool for IoT devices connected to an MQTT broker

Programming Languages

java
68154 projects - #9 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to EsperIoT

esper-demo-nuclear
Simple demo of some features of the Esper Complex Event Processing (CEP) engine.
Stars: ✭ 83 (+361.11%)
Mutual labels:  cep, complex-event-processing, esper
Smooks
An extensible Java framework for building XML and non-XML streaming applications
Stars: ✭ 293 (+1527.78%)
Mutual labels:  stream-processing, event-driven
gostream
Stream Processing Library for Go
Stars: ✭ 51 (+183.33%)
Mutual labels:  stream-processing, complex-event-processing
gocells
Event Based Applications [DEPRECATED]
Stars: ✭ 69 (+283.33%)
Mutual labels:  cep, event-driven
Siddhi
Stream Processing and Complex Event Processing Engine
Stars: ✭ 1,185 (+6483.33%)
Mutual labels:  cep, stream-processing
beepbeep-3
An event stream processor anyone can use
Stars: ✭ 20 (+11.11%)
Mutual labels:  cep, stream-processing
Watermill
Building event-driven applications the easy way in Go.
Stars: ✭ 3,504 (+19366.67%)
Mutual labels:  stream-processing, event-driven
Wayeb
Wayeb is a Complex Event Processing and Forecasting (CEP/F) engine written in Scala.
Stars: ✭ 138 (+666.67%)
Mutual labels:  cep, stream-processing
football-events
Event-Driven microservices with Kafka Streams
Stars: ✭ 57 (+216.67%)
Mutual labels:  stream-processing, event-driven
openPDC
Open Source Phasor Data Concentrator
Stars: ✭ 109 (+505.56%)
Mutual labels:  stream-processing, complex-event-processing
product-sp
An open source, cloud-native streaming data integration and analytics product optimized for agile digital businesses
Stars: ✭ 80 (+344.44%)
Mutual labels:  stream-processing, complex-event-processing
godsend
A simple and eloquent workflow for streaming messages to micro-services.
Stars: ✭ 15 (-16.67%)
Mutual labels:  stream-processing
hifiberry
This is a custom component to allow control of HifiberryOS devices in Home Assistant using the audiocontrol2 REST API.
Stars: ✭ 26 (+44.44%)
Mutual labels:  internet-of-things
ripple
Simple shared surface streaming application
Stars: ✭ 17 (-5.56%)
Mutual labels:  stream-processing
event-gateway
AsyncAPI Event Gateway
Stars: ✭ 35 (+94.44%)
Mutual labels:  event-driven
fd-vue-webapp
A Vue.js web application for Freedomotic Open IoT framework
Stars: ✭ 63 (+250%)
Mutual labels:  internet-of-things
awesome-bigdata
A curated list of awesome big data frameworks, ressources and other awesomeness.
Stars: ✭ 11,093 (+61527.78%)
Mutual labels:  stream-processing
gobot
Golang framework for robotics, drones, and the Internet of Things (IoT)
Stars: ✭ 7,869 (+43616.67%)
Mutual labels:  internet-of-things
flink-connectors
Apache Flink connectors for Pravega.
Stars: ✭ 84 (+366.67%)
Mutual labels:  stream-processing
esp8266-dht22
ESP8266 Lua script running on NodeMCU firmware which sends DHT22 data to web server, with deepsleep mode
Stars: ✭ 14 (-22.22%)
Mutual labels:  internet-of-things

EsperIoT Build Status

EsperIoT is an MQTT connector and configuration manager for Esper CEP Engine. With EsperIoT, your application can specify any statements and subscribe upcoming results from the engine.

screen shot

For example, a thermo sensor publishes measurements to a MQTT Broker. EsperIoT allows you to create a new statement over REST Api such as selecting average value when it reaches a specific threshold for last 24 hours. When measurement values reaches that condition, a new message will be published for regarding statement Mqtt topic.

What is Esper?

Esper is a CEP which allows you to process data in memory by arrival. Esper has its own SQL like Domain Specific Language to process data, called EPL In EPL:

  • SQL → EPL
  • Tables → Event Streams, Views
  • Rows → Events

How to run

You need a MQTT server running and the easiest way to start one is Docker.

docker run --rm -it -p 1883:1883 eclipse-mosquitto

Now you can run EsperIoT:

./mvnw spring-boot:run -Drun.arguments=--mqtt.serverURI=tcp://127.0.0.1:1883

Go to the Swagger UI to explore the REST API.

Features

  • Spring Rest endpoints to
    • add/remove/list Esper statements
    • swagger-ui under /swagger-ui.html
  • MQTT broker publish/subscribe service

TODO

  • Implementing some IoT object types as event to receive like:
  • Adding new Examples and documentation
  • New endpoints for changing engine configuration
  • Integration Test
  • use better mapper for DTO such as mapstruct
  • Integration test

License

EsperIoT is an extended work of Esper by EsperTech Inc., so it is released under GNU Public License v2.0. Any new project based on this source code should also follow this license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].