RGB LED strip control using Arduino and MQTT

Tags: #<Tag:0x00007f832e6d6358> #<Tag:0x00007f832e6d6128> #<Tag:0x00007f832e6d59f8>

Did you ever think of using the ARILUX controller for Openhab?
Didnt find documentation about it yet, but its basically a modded ESP8266 board.
costs about 5$ and I have 5 of them.
Would be cool to use them in Openhab.

Please check sonoff-tasmota, it’s supporting lot of things beside sonoff devices, details in

I was using this firmware together with MagicHome and on bare esp12 modules. Works great!

Please be warned seems to be missing configuration files to work.

I have gotten this to flash to an Arduino Nano using an ENC28J60.

Arduino Code Modified

#include <UIPEthernet.h>
#include <utility/logging.h>
#include <PubSubClient.h>

// Set the MAC address
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0x5E, 0x69 };

// Set fallback IP address if DHCP fails
IPAddress ip(192,168,3,20);

// Set the broker server IP
byte server[] = { 192,168,3,3 };

EthernetClient ethClient;

// Callback function header
void callback(char* topic, byte* payload, unsigned int length);

PubSubClient client(server, 1883, callback, ethClient);

int SoffitR;
int SoffitG;
int SoffitB;
int BLUE = 5;                   
int GREEN = 7; 
int RED = 3; 

void setup()
    // Open serial communications
    // Start with a hard-coded address:
    Serial.println("Assigning Static IP address:");
    Ethernet.begin(mac, ip);
     Serial.print("My address:");
  // Connect to Broker, give it arduino as the name
  if (client.connect("arduino_LED2")) {
    // Publish a message to the status topic
    client.publish("status/arduino_LED2","Arduino LED2 is now online");
    // Listen for messages on the control topic

void loop()

void callback(char* topic, byte* payload, unsigned int length) {
  // check for messages on subscribed topics
  payload[length] = '\0';
  Serial.print("Topic: ");

  // check topic to identify type of content
if(String(topic) == "control/arduino_LED/livingroom/color") {
    // convert payload to String
    String value = String((char*)payload);
    Serial.print (value);
    // split string at every "," and store in proper variable
    // convert final result to integer
    SoffitR = value.substring(0,value.indexOf(',')).toInt();
    SoffitG = value.substring(value.indexOf(',')+1,value.lastIndexOf(',')).toInt();
    SoffitB = value.substring(value.lastIndexOf(',')+1).toInt();

    // print obtained values for debugging
    Serial.print("RED: ");
    //client.publish("status/arduino_LED2", SoffitR);

    Serial.print("GREEN: ");
    //client.publish("status/arduino_LED2", SoffitG);
    Serial.print("BLUE: ");
    //client.publish("status/arduino_LED2/soffit/color/blue", int SoffitB);
  analogWrite(GREEN, SoffitG);
  analogWrite(RED, SoffitR);
  analogWrite(BLUE, SoffitB);

.Items Code

Color LivSoffitLight "Living Room Soffit Color" (Lights_LivingRoom)
String LivSoffitLightColor (Lights_LivingRoom) {mqtt=">[mosquitto:control/arduino_LED/livingroom/color:command:*:default]"}
Number LivSoffitAnimation "Living Room Soffit Animation" (Lights_LivingRoom) {mqtt=">[mosquitto:control/arduino_LED/livingroom/animation:command:*:default]"}

Sitemap Code:

sitemap demo label="MC Smart Home Automation" {
    Frame label="Date" {
        Text item=Date

Frame label="Accent-Lighting" {

Colorpicker item=LivSoffitLight



I have not gotten this to acutally light the LED’s on the Arduino I think this is missing rules. I will post rules if I figure them out. If anyone has knowledge about the rules I need I could use them.

Otherwise this will connect to mosquitto MQTT broker.

Hello All ,

I do have a problem with the last Arduino cod from this topic.
i am using binding-mqtt - 2.4.0
The cod is running but is not receiving the value from server , check the next picture , i try to check step by step but something is not right and i ca’t figure this out .

in the serial monitor from Arduino , you can see that is not stuck after providing the IP
sry for my English