omi-odf
O-MI/O-DF WebSocket client tested with the reference implementation.
Last updated 3 years ago by akaustel .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install omi-odf 
SYNC missed versions from official npm registry.

Omi Client

This is a very simplistic WebSocket based client for communicating with a O-MI Node, using O-DF formatted messages.

Getting started

Start a O-MI Node

Download the reference server implementation from:

https://github.com/AaltoAsia/O-MI/releases

We used this one: https://github.com/AaltoAsia/O-MI/releases/download/0.8.2/o-mi-node-0.8.2-warp10.tgz

Extract it to an appropriate location.

Edit the conf/application.conf. Ensure the localhost is not commented out in the IP whitelist section.

input-whitelist-ips=[	
        "127.0.0.1"
]

Ensure you have java 8 or later.

In a console/command line type java -version, response should be something like this:

greg@desktop ~/o-mi-node-0.8.2-warp10 $ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Run the server.

greg@desktop ~/o-mi-node-0.8.2-warp10 $ ./bin/o-mi-node

The first startup will take some few minutes to start, be patient.

Run the example

Create a working directory for your project and install this package there.

npm install omi-odf

Create a app.js with the following sample code:

var OmiClient = require('omi-odf').OmiClient;
var inspect = require('util').inspect;

var host = 'ws://localhost:8080';
var omiClient = new OmiClient(host);

omiClient.once('ready', function() {
    console.log("OmiClient connected to "+ host +'.');
    
    var name = 'MyDevice';
    var path = 'Your/Path/Things/'+name;
    var ep = 'relay';

    // ensure the instance in the O-MI node by issuing a write command
    omiClient.write(path, ep, false);

    // subscribe to changes from "MyDevice"
    omiClient.subscribe(path, null, {}, function(ep, data, opts) {
        console.log("Subscribe:", ep, data, opts);
    });

    // write ep to true, which should trigger subscription callback
    setTimeout(() => { omiClient.write(path, ep, true); }, 500);
    
    setTimeout(() => {
        omiClient.read(path, ep, function(ep, value, opts) {
            console.log('Read:', ep, value, opts);
        });
    }, 600);
});

omiClient.once('close', function() {
    console.log("OmiClient websocket connection was lost.");
    process.exit(1);
});

Run the program:

node app.js

Develop

This code is available at GitHub:

git clone https://github.com/ControlThings/omi-odf-nodejs.git

Current Tags

  • 0.1.3                                ...           latest (2 years ago)

4 Versions

  • 0.1.3                                ...           2 years ago
  • 0.1.2                                ...           3 years ago
  • 0.1.1                                ...           3 years ago
  • 0.1.0                                ...           3 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 1
Last Month 2
Dependencies (2)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |