All Projects → scorelab → senz

scorelab / senz

Licence: Apache-2.0 license
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.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
scala
5932 projects
java
68154 projects - #9 most used programming language
CSS
56736 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to senz

smashtierlist
🎮⚡️ Popular tier lists for Super Smash Bros. series
Stars: ✭ 40 (-21.57%)
Mutual labels:  switch
SHSliderSwitch
SHSliderSwitch is a simple lightweight library to implement an animated slider switch.
Stars: ✭ 18 (-64.71%)
Mutual labels:  switch
ng-toggle
Bootstrap-styled Angular Toggle Component
Stars: ✭ 14 (-72.55%)
Mutual labels:  switch
ModuleMania
Various useful sysmodules (kip files) for Nintendo Switch, to be used with CFW
Stars: ✭ 30 (-41.18%)
Mutual labels:  switch
sys-clk-Overlay
Editor for your sys-clk configuration using ovl-loader!
Stars: ✭ 53 (+3.92%)
Mutual labels:  switch
jw-bootstrap-switch-ng2
Bootstrap Switch for Angular 2+
Stars: ✭ 45 (-11.76%)
Mutual labels:  switch
yrs
Yarn registry switch tool
Stars: ✭ 12 (-76.47%)
Mutual labels:  switch
proxmox-pci-switcher
Switch among Guest VMs organized by Resource Pool
Stars: ✭ 104 (+103.92%)
Mutual labels:  switch
simple-switch
Vanilla JS/CSS Switch UI element
Stars: ✭ 18 (-64.71%)
Mutual labels:  switch
lily
Hosts管理工具,双击切换立即生效,告别重启浏览器! Hosts manager takes effect immediately on switch
Stars: ✭ 69 (+35.29%)
Mutual labels:  switch
uberswitch
A header-only, unobtrusive, almighty alternative to the C++ switch statement that looks just like the original.
Stars: ✭ 83 (+62.75%)
Mutual labels:  switch
PokemonRNGGuides
A repository of Pokemon RNG abuse guides
Stars: ✭ 62 (+21.57%)
Mutual labels:  switch
rcli
Simplified R version handling
Stars: ✭ 33 (-35.29%)
Mutual labels:  switch
GDCheckbox
Customizable CheckBox / RadioButton component for iOS
Stars: ✭ 23 (-54.9%)
Mutual labels:  switch
nx
Userland library for Nintendo Switch homebrew (and other potential purposes), written in pure Rust and some assembly bits
Stars: ✭ 67 (+31.37%)
Mutual labels:  switch
Rich-Presence-U
Display your Nintendo games on Discord.
Stars: ✭ 77 (+50.98%)
Mutual labels:  switch
xiaomiplug
Xiaomi Mi Smart WiFi Socket integration for Home Assistant
Stars: ✭ 99 (+94.12%)
Mutual labels:  switch
CompositeToggle
Composite toggle system for unity
Stars: ✭ 38 (-25.49%)
Mutual labels:  switch
emusak-ui
This is a tool which allows you to download saves or mods for Nintendo Switch emulators using a compatible Emusak backend
Stars: ✭ 877 (+1619.61%)
Mutual labels:  switch
PygameWidgets
A module for use with Pygame. Includes fully customisable buttons, textboxes, sliders and many more, as well as the ability to create and run animations on these widgets.
Stars: ✭ 34 (-33.33%)
Mutual labels:  switch

Senz

License Codacy Badge Build Status Gitter chat

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

Senz server

Sample programs

How to Contribute

Issues

Feel free to submit issues and enhancement requests.

Contribute

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Commit changes to your own branch
  4. Push your work back up to your fork
  5. Submit a Pull request so that we can review your changes
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].