Coder Social home page Coder Social logo

darshan123 / senz Goto Github PK

View Code? Open in Web Editor NEW

This project forked from scorelab/senz

0.0 0.0 0.0 1.03 MB

SenZ is a new kind of query language that can be used to communicate with IoT Devices . It is easily integrable , Ultimately fast and is in the Highest end of security integration. Also it is lively developed accordingly. As it is said earlier this uses a #twitter like massaging syntax which has made this language a usable , more powerful and understandable. The communication between each of these devices are done via the My sensors switch which was developed using python, A high-end application switch which works as a massage broker. Once client devices are registered in the switch they should share their data to specific people(Other client devices). Then the. Then they are capable of sharing massages accordingly. Currently MySensors switch is implemented on two languages one is Python and the other one is Scala. In either case it doesn't matter in which language your clients are built on. You can use either of the implementations to suit your product. currently there are two implementation which works on UDP packet connection and TCP packet connections.

License: Apache License 2.0

Dockerfile 1.86% Scala 98.14%

senz's Introduction

Senz

Codacy Badge License Build Status

SenZ is a new kind of query language that can be used to communicate with IoT devices. It is easily integrable, incredibly fast, and is in the highest end of security integration. Also, it is developed live. As said earlier SenZ uses a #twitter like messaging syntax which makes this language more usable, powerful, and understandable. The communication between each of these devices are done via the MySensors switch which was developed using Python; a high-end application switch which works as a message broker. Once client devices are registered in the switch they should share their data to specific people (other client devices). Then, they are capable of sharing messages accordingly.

SenZ

Currently, the MySensors switch is implemented on two languages: one is Python and the other one is Scala. In either case it doesn't matter in which language your clients are built on. You can use either of the implementations to suit your product. As of now there are two implementations which work on the UDP packet connection and TCP packet connections.

Internal Working

SenZ uses five types of messages for the communication:

Type Description
SHARE Share some attributes to some client/device
UNSHARE Stop sharing some attributes
GET Request a SHARES attribute from a client/device
PUT To do some alternation to the device. When you need to control some device/application/client.
DATA Reply to a GET, PUT or a SHARE. To send the reply with the requested data.

SenZ messages follow a Twitter-like message structure.

<type> #<attribute name> <attribute value> #time <current timestamp> @<receiver> ^<sender> <digital signature>
Tag Description
<type> Type of the message. One of the types from SHARE, UNSHARE, GET, PUT, DATA
#<attribute name> Name of the attribute you need to use in the message. It depends on your purpose.
$<attribute name> Name of the attribute which is encrypted
<attribute value> Value of the attribute you are sharing
#time The attribute to represent the current timestamp. This has to be sent in every message
<current timestamp> This is the value of the time attribute
@<receiver> This is the user name of the receiver of the message
^<sender> This is the user name of the sender of the message
<digital signature> The digital signature which is used by SenZ-switch to verify the sender

Setting up the project

These are the instructions on how to setup the project:

Pre-requisites

  • Scala 2.12.6 or higher
  • MongoDB Community edition (Server)

Run server

  1. cd in to the project folder
  2. Run sbt run

Run tests

  1. cd in to the project folder
  2. Run sbt test

senz's People

Contributors

sumedhe avatar akarshani avatar charithccmc avatar codacy-badger avatar simcard0000 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.