Woopsa is the first fully open-source object-oriented protocol for automation and the Internet of Things
Clone or download
peache85 Merge pull request #39 from fabien-chevalley/angular
Add angular client implementation
Latest commit d9c6321 Apr 26, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Sources Merge pull request #39 from fabien-chevalley/angular Apr 26, 2018
.gitattributes use category for performance unit tests. Sep 28, 2017
.gitignore use category for performance unit tests. Sep 28, 2017
LICENSE.txt Whitespace change Apr 25, 2018
README.md add badge on readme file Oct 2, 2017

README.md

Woopsa

AppVeyor npm NuGet

Woopsa is a protocol that's simple, lightweight, free, open-source, web and object-oriented, publish-subscribe, real-time capable and Industry 4.0 ready. It contributes to the revolution of the Internet of Things.

Woopsa allows you to share the complete object model of your application in a way that's similar to OPC-UA. It's based on rock-solid foundations such as HTTP and JSON, which makes it work on the web out-of-the-box. Our mission is to get Woopsa on as many platforms as possible. Today, C# and JavaScript implementations exist, but there are much more to come!

Example JavaScript Client

var woopsa = new WoopsaClient("http://demo.woopsa.org/woopsa", jQuery);
woopsa.read("/Temperature", function(result){
//result = 24.2
});

Example C# Server

WeatherStation station = new WeatherStation();
WoopsaServer server = new WoopsaServer(station);

station.Temperature = 24.2;

Example node Server

var woopsa = require('woopsa');
var weatherStation = {
    Temperature: 24.2,
    IsRaining: false,
    Sensitivity: 0.5,
    Altitude: 430,
    City: "Geneva",
    Time: new Date(),
    GetWeatherAtDate: function (date){
        var date = new Date(date);
        if ( date.getDay() === 1 )
            return "rainy";
        else
            return "sunny";
    },
    Thermostat: {
        SetPoint: 24.0
    }
}
var server = new woopsa.Server(weatherStation, {port: 80});

Example Embedded C Server (Arduino, others)

double Temperature;
int Altitude;
float GetAirPressure() {
  return 42.2;
}

WOOPSA_BEGIN(woopsa_entries)
  WOOPSA_PROPERTY_READONLY(Temperature, WOOPSA_TYPE_REAL)
  WOOPSA_PROPERTY(Altitude, WOOPSA_TYPE_INTEGER)
  WOOPSA_METHOD(GetAirPressure, WOOPSA_TYPE_REAL)
WOOPSA_END
...

Getting the library

The latest version is part of the git repository. It contains the .NET and JavaScript versions of the Woopsa library, as well as a few examples to get started!

Getting started

Our Getting Started tutorial allows you to get started quickly with Woopsa. It's really easy !

Compatibility

Woopsa has been tested and works on:

  • .NET Framework 4.0
  • .NET Framework 4.5
  • .NET Core 2.0
  • Mono 4.0+