All Projects → rbccps-iisc → ideam

rbccps-iisc / ideam

Licence: other
City Data Exchange & Analytics Stack (CDEAS) for Smart Cities

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
lua
6591 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to ideam

SecureFiware
Proposing security measures and security analysis in the Fiware IoT environment.
Stars: ✭ 21 (+50%)
Mutual labels:  iot-platform, smartcities
eywa
Make IoT a lot more fun with data.
Stars: ✭ 55 (+292.86%)
Mutual labels:  iot-platform
automile-php
Automile offers a simple, smart, cutting-edge telematics solution for businesses to track and manage their business vehicles.
Stars: ✭ 28 (+100%)
Mutual labels:  iot-platform
docs
Documentation repo of nebula orchestration system
Stars: ✭ 16 (+14.29%)
Mutual labels:  iot-platform
IoTBench-test-suite
A micro-benchmark suite to assess the effectiveness of tools designed for IoT apps
Stars: ✭ 59 (+321.43%)
Mutual labels:  iot-platform
XENA
XENA is the managed remote administration platform for botnet creation & development powered by blockchain and machine learning. Aiming to provide an ecosystem which serves the bot herders. Favoring secrecy and resiliency over performance. It's micro-service oriented allowing for specialization and lower footprint. Join the community of the ulti…
Stars: ✭ 127 (+807.14%)
Mutual labels:  iot-platform
kiotlog
Kiotlog is a platform for IoT developers to create Internet of Things applications based on LPWAN protocols.
Stars: ✭ 12 (-14.29%)
Mutual labels:  iot-platform
Neon
Similar to 🏡 HomeAssistant and OpenHAB, but made with .net core and ❤️ in Florence, Italy
Stars: ✭ 32 (+128.57%)
Mutual labels:  iot-platform
vscp
VSCP (Very Simple Control Protocol) IoT/m2m framework
Stars: ✭ 47 (+235.71%)
Mutual labels:  iot-platform
AeonNodeEditor
No description or website provided.
Stars: ✭ 22 (+57.14%)
Mutual labels:  iot-platform
nuclei-sdk
Nuclei RISC-V Software Development Kit
Stars: ✭ 65 (+364.29%)
Mutual labels:  iot-platform
astarte-kubernetes-operator
Astarte Kubernetes Operator
Stars: ✭ 18 (+28.57%)
Mutual labels:  iot-platform
cbj smart-home
🏡 If you are searching for an easy way to connect all your smart home devices with one app CyBear Jinni 🦾🐼🧞‍♂️ is here for you. Join the community and make your home smarter than yesterday.
Stars: ✭ 40 (+185.71%)
Mutual labels:  iot-platform
manager
The API endpoint that manages nebula orchestrator clusters
Stars: ✭ 28 (+100%)
Mutual labels:  iot-platform
MBP
A management platform for IoT environments and applications
Stars: ✭ 20 (+42.86%)
Mutual labels:  iot-platform
ccn-lite
CCN-lite, a lightweight implementation of the CCNx protocol and its variations
Stars: ✭ 71 (+407.14%)
Mutual labels:  iot-platform
iot-event-analytics
IoT Event Analytics is a complex event processing and agent network platform
Stars: ✭ 23 (+64.29%)
Mutual labels:  iot-platform
helix-sandbox
Middleware for secure IoT provisioning, access and control.
Stars: ✭ 23 (+64.29%)
Mutual labels:  iot-platform
thingspeak-esp-examples
ESP8266 / NodeMCU Examples for https://ThingSpeak.com
Stars: ✭ 76 (+442.86%)
Mutual labels:  iot-platform
fd-vue-webapp
A Vue.js web application for Freedomotic Open IoT framework
Stars: ✭ 63 (+350%)
Mutual labels:  iot-platform

City Data Exchange & Analytics Middleware (CDX) for Smart Cities

https://travis-ci.org/rbccps-iisc/ideam.svg?branch=master

Architecture

hourglass.png

ms_arch.png

Resources

Getting Started

This guide will help you to quickly get started with a single node instance of CDX and start publishing data from a device.

  1. Install Docker

    sudo apt-get install docker.io
    
  2. Add permission to user

    sudo usermod -a -G docker $USER
    
  3. Logout and log back in.

  4. Run ifconfig and note down the name of the interface you're connected to.

    alternate textI

    In the above example the interface name is enp9s0

  5. Now run:

    sudo nmcli device show enp9s0
    

    Replace enp9s0 with your respective interface name. The output should be something like this

    alternate textI

    Note down the DNS from IP4.DNS section

  6. Add DNS obtained in the previous step to the file /etc/docker/daemon.json If the file does not exist, create it. The entry should look something like this

    {"dns": ["8.8.8.8", "8.8.4.4"]}
    

    Add the obtained DNS to the above JSON array. So the final entry should look something like this:

    {"dns": ["8.8.8.8","8.8.4.4","168.95.1.1"]}
    

    Of course, the DNS would change according to your network.

  7. Add DNS in /etc/default/docker file as follows:

    DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --dns 168.95.1.1"
    
  8. Restart Docker

    service docker restart
    

CDX Installation

  1. Clone CDX git repo

    git clone https://github.com/rbccps-iisc/ideam.git
    

    CDX repository comes with a default configuration file ideam.conf:

    [APIGATEWAY]
    https = 8443
    
    [BROKER]
    http = 12080
    management = 12081
    amqp = 12082
    mqtt = 12083
    
    [ELASTICSEARCH]
    kibana = 13081
    
    [WEBSERVER]
    http = 14080
    
    [LDAP]
    ldap = 15389
    
    [CATALOGUE]
    http = 16080
    
    [KONGA]
    http = 17080
    
    [VIDEOSERVER]
    rtmp = 18935
    hls = 18080
    http = 18088
    
    [PASSWORDS]
    ldap = ?
    broker = ?
    cdx.admin = ?
    database = ?
    

    This file contains details about the ports used by different microservices. It also allows the user to configure passwords that should be used for certain services during installation. By default, the password fields in the config file is set to ?, which indicates that the system will generate random passwords during runtime.

  2. Install CDX

    cd ideam/
    ./install
    

Registering your first device

  • Once CDX has installed you can now start registering devices with it. Let's create a simple test device for the sake of illustration:

    sh tests/create_entity.sh testStreetlight
    
  • This will give you the details of the registration

    {
      "Registration": "success",
      "entityID": "teststreetlight",
      "apiKey": "EHQilai5cF_tNmWOwg-oiPdncmRPdfGCIhFHM85zDDW",
      "subscriptionEndPoint": "https://smartcity.rbccps.org/api/{version}/followid=teststreetlight",
      "accessEndPoint": "https://smartcity.rbccps.org/api/{version}/db?id=teststreetlight",
      "publicationEndPoint": "https://smartcity.rbccps.org/api/{version}/publish?id=teststreetlight",
      "resourceAPIInfo": "https://rbccps-iisc.github.io"
    }

Publishing from your device

  • You can now publish data from this device using:

    sh tests/publish.sh teststreetlight EHQilai5cF_tNmWOwg-oiPdncmRPdfGCIhFHM85zDDW
    

    This will publish {"body": "testdata"} to the exchange teststreetlight.protected

  • That's it! You can similarly register more devices and apps with the middleware.

For detailed guides and resources visit https://cdx.readthedocs.io/en/latest/

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].