Skip to content

yetzt/liftstream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Liftstream

Turns the Deutsche Bahn ADAM API into an Event Emitter or a Server for Server Sent Events and Websocket Stream.

Install

Simply npm install liftstream.

Usage as Library

Liftstream emits an event every time the state of a lift changes.

var liftstream = require("liftstream");

var stream = new liftstream({
	statefile: "/tmp/statefile.json", // save elevator states here
	interval: "5m",                   // adam api polling interval
	dev: false                        // send fake events for testing
});

stream.on("data", function(data){
	console.log("Lift Number "+data.equipmentnumber+" is now "+data.state);
});

stream.on("error", console.error);

Usage as Server

Liftstream may run as an HTTP service and provide all events as Server Sent Events and Websocket Messages.

First create your own config.js from config.js.dist. Then you can start the server with node server.js or npm start. Please be reasonable with the interval value.

The Interfaces are http://localhost:3000/stream.sse for Server Sent Events and ws://localhost:3000/stream.ws for the Websocket.

Every message consists of a single JSON encoded object.

Since the data changes very little, there is a developer mode, which returns a fake event on every update without other changes. It's activated by setting config.dev to true in config.js.

You can test your Server with wscat --connect wss://server:port/stream.ws from the ws module.

License

Unlicense

About

streaming interface for db adam api

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published