Skip to content

magcode/sunricher-wifi-mqtt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sunricher-wifi-mqtt

This code is not maintained anymore.

This tool controls Sunricher Perfect RF LED devices (SR-1009*) using MQTT.

You need to own at least a WiFi-to-RF device (SR-2818WiN) and one RF receiver/actuator (e.g. SR-1009SAC-HP).

The program is written in Java and acts as a "bridge". You can run it on almost any device which can run Java.

Installing and starting

Grab a release or build it yourself (see below). A configuration file sunricher.properties is needed and must be located beside the *.jar file:

mqttServer=<protocol and host of MQTT broker>
mqttUsername=<mqtt username, can be empty>
mqttPassword=<mqtt password, can be empty>
mqttVersion=<mqtt version, can be empty, defaults to 3>
logLevel=<log level, e.g. ERROR,WARN,INFO,DEBUG,TRACE>
ledHost=<host of sunricher device>
topic=<mqtt topic>
disableWifi=<true|false>

Example:

mqttServer=tcp://192.168.0.2
mqttUsername=John
mqttPassword=Doe
LOGLEVEL=INFO
ledHost=192.168.0.3
topic=myroom/lights
disableWifi=true

Before you can start you need to "pair" your RF device. "Pairing" means "assign a channel". This can be achieved by using the Easy Lighting App. Note down the channel you have used to pair the device. Channels are count from 1 (top left) to 8 (bottom right) in the App.

To build it yourself run the following commands:

mvn clean install

To start it:

java -jar target/sunricher-mqtt-<version>-jar-with-dependencies.jar

A log file will be written: sunricher-led.log.

Implemented commands

The following commands are implemented:

  • power on/off a channel
  • set and dim colors
  • set and dim white
  • set brightness
  • start/stop built in RGB program
  • change RGB program speed

In case you miss commands please create a pull request or donate the hardware so that I can implement it. Be aware that with Sunricher devices it is not possible to read the current state from the controller.

Tested devices

Thanks to mshaposhnikov for generous support for this project.

Please report more working devices via Pull Request for README.md or via an issue.

Send MQTT commands

You need to run a MQTT broker and you can control the LEDs using a chosen topic.

To specify the channel use e.g. 1 or a single channel or e.g. 2,3 for multiple channels.

Power On

myroom/lights/<channels>/power

Send 0 or OFF for Power Off and 1 or ON for Power On.

Brightness

This sets the combined brightness with all LEDs on. Use this for 1-channel devices.

myroom/lights/<channels>/brightness

Send a number between 0 and 100

Color control

Dim RGB

myroom/lights/<channels>/rgbdim

Send a number between 0 and 100 to set the RGB brightness.

Set single channels directly

myroom/lights/<channels>/[red|green|blue|white]

Send a number between 0 and 255 to set the channel brightness.

Set colors via RGB

myroom/lights/<channels>/rgb

Send a string <r>,<g>,<b>. The value for each color can be between 0 and 255. Example: 100,0,10

Set colors via HSB

myroom/lights/<channels>/hsb

Send a string <h>,<s>,<b>.

The value for hue h can be between 0 and 360.

The values for saturation s can be between 0 and 100.

The values for brightness b can be between 0 and 100.

Example: 310,50,50

RGB fading program

myroom/lights/<channels>/prg

Send 0 to turn off the color fading program.

Send a number between 1 and 10 to select and start one of the built in color fading programs.

RGB fading program speed

myroom/lights/<channels>/prgspeed

Send a number between 1 and 10 to select the color fading speed.

AT Commands

You can control the LED controller WiFi module (HF-A11) using AT commands.

Use the following topic to send commands:

myroom/lights/0/at

Example to disable WIFI (and save 1 Watt power consumption):

HF-A11ASSISTHREAD
+ok
AT+MSLP=off

SR-2818WiN operating hints

You might want to use the LAN interface only and turn off WiFi in order to save some energy and improve security. This is possible.

  • Connect the SR-2818WiN to your wired local network
  • Reset the SR-2818WiN (holding reset button approx 5 seconds)
  • You should find the "EASYCOLOR" WiFi access point
  • Check your network router / DHCP server. The LAN interface of the device should have received an IP address in your local network.
  • Optional: make sure that the device always gets the same IP address from your network router / DHCP server.
  • Optional: disallow Internet access for this particular IP address in your network router.
  • Connect to this IP address with the tool as described above. (Do not connect to the wifi access point)
  • The connection should work and you should be able to control your LED receivers now
  • Now use the AT commands above to disable WIFI. Alternatively use the setting disableWifi=true in sunricher.properties
  • In my case power consumption went down from 3.0 Watts (WiFi+LAN) to 2.1 Watts (LAN only)

Openhab integration

The file sunricher.items provides an example setup. You need a transformation file.