Skip to content

sapher/mysensors-controller-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mysensors-controller-java

Simple headless mysensors controller library.

Work in progress, feel free to get on the boat :).

Purpose

This is personal project that I wanted to share. The API isn't that clean, but it's workable. It was made to create a quick prototype with the help of an RaspberryPI & MySensors.

Headless mean there's no UI, it's really just a library, some kind of a wrapper.

Installation

MySensors

First of all you need by building a serial RaspberryPi Gateway by following this link.

Side note : It's not mandatory but using the IRQ pin bring better performance.

Download

git clone https://github.com/mysensors/MySensors.git --branch master
cd MySensors

This pinout is working for the pi3.

CS  = 24
CE  = 22
IRQ = 13

Compile

./configure --my-debug=enable --my-gateway=serial --my-serial-pty=/dev/ttyGateway --my-serial-is-pty --my-rf24-ce-pin=22 --my-rf24-cs-pin=24 --my-rf24-irq-pin=13 --my-transport=nrf24 --my-rf24-pa-level=RF24_PA_MAX

Install

sudo make && make install

Usage

Instantiate a new controller. You can instantiate multiple gateway if needed.

Controller controller = new Controller('/dev/ttyGatewaySerial'); // change this according to your need
controller.start()

Stop the watching of the tty. No events will be generated.

controller.stop();

To listen to events first you need to implement the NodeListener. Then you need to register that listener to the controller.

public class MyClass implements NodeListener {
    
    // New data from sensor is available
    public void sensorDataReceived(Node sensorNode, TypeReqSet typeReq, float value) {
        // ... my code
    }
}
MyClass myClass = new MyClass();
controller.addNodeListener(myClass);

Limitations

Auto ID

At this stage, auto setting of ID is not implemented.

Threading

Performance can be an issue, as there's no threading is involved. That library is event based, when new data arrive then an event is generated. If there's a lot of activity this can cause performance issue.

You'd be fine if you have a simple setup. If you have a setup with hundreds of nodes, then it is clearly an issue.

Links

About

Very simple mysensors controller.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages