Skip to content

Commit

Permalink
ARGB Controllers Support
Browse files Browse the repository at this point in the history
  • Loading branch information
Tommy4chan authored Dec 7, 2022
1 parent a77fe8e commit eccc627
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 2 deletions.
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ This library was designed for use with devices compatible with the MagicHome Wif

- RGB Controllers
- RGB+WW Controllers
- ARGB Controllers

## Commands

- Turning devices on and off
- Setting colors (rgb, rgbw) + brightness
- Setting colors (rgb, rgbw,ARGB) + brightness
- Sending preset functions

## Usage/Examples
Expand All @@ -34,6 +35,7 @@ Set led color (r, g, b, w must be in range from 0 to 255, if not there is filter
(brightness must be in range from 0 to 100)
```cpp
Led.SetColor(r, g, b, w, brightness);
Led.SetColorARGB(r, g, b, brightness);
```
Set preset function (speed must be in range from 0 to 100)

Expand All @@ -60,6 +62,7 @@ preset_number:
- 56 = Seven color jumping
```cpp
Led.SetPresetFunction(preset_number, speed);
Led.SetPresetFunctionARGB(preset_number, speed, brightness);
```

## Feedback
Expand All @@ -70,5 +73,8 @@ If you have any feedback, all contact information is in my github profile

- [@Tommy4chan](https://github.com/Tommy4chan)

Copyright 2022 Anton Panurin (Tommy4chan). Licensed under MIT.
## Contributors

- [@Raphitech](https://github.com/Raphitech)

Copyright 2022 Anton Panurin (Tommy4chan). Licensed under MIT.
2 changes: 2 additions & 0 deletions keywords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ TurnOn KEYWORD2
TurnOff KEYWORD2
SetColor KEYWORD2
SetPresetFunction KEYWORD2
SetColorARGB KEYWORD2
SetPresetFunctionARGB KEYWORD2
SendData KEYWORD2
CheckRange KEYWORD2
BrightnessLevel KEYWORD2
23 changes: 23 additions & 0 deletions src/MagicHomeApi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ void MagicHomeApi::SetColor(int r, int g, int b, int w, int brightness){
SendData(data, len);
}

void MagicHomeApi::SetColorARGB(int r, int g, int b, int brightness){
int len = 13;
byte data[len] = {0x41,0x01, BrightnessLevel(CheckRange(0, 255, r), brightness), BrightnessLevel(CheckRange(0, 255, g), brightness),
BrightnessLevel(CheckRange(0, 255, b), brightness),0x00,0x00,0x00,0x32,0x00,0x00,0xf0,0xe4};
int sum = 0;
for(int i = 0; i < 7; i++){
sum += data[i];
}
data[13] = sum&0xFF;
SendData(data, len);
}

void MagicHomeApi::SetPresetFunction(int f_number, int speed){
int len = 5;
byte data[len] = {0x61, CheckRange(37, 56, f_number), CheckRange(0, 100, 100-speed), 0x0F, 0x00};
Expand All @@ -64,6 +76,17 @@ void MagicHomeApi::SetPresetFunction(int f_number, int speed){
SendData(data, len);
}

void MagicHomeApi::SetPresetFunctionARGB(int f_number, int speed, int brightness){
int len = 5;
byte data[len] = {0x42, CheckRange(01, 74, f_number), CheckRange(0, 100, 100-speed), brightness, 0x1c};
int sum = 0;
for(int i = 0; i < 4; i++){
sum += data[i];
}
data[4] = sum&0xFF;
SendData(data, len);
}

void MagicHomeApi::SendData(byte data[], int len){
ClientConnect();
Serial.println("Data:");
Expand Down
2 changes: 2 additions & 0 deletions src/MagicHomeApi.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ class MagicHomeApi
void TurnOn();
void TurnOff();
void SetColor(int r, int g, int b, int w, int brightness);
void SetColorARGB(int r, int g, int b, int brightness);
void SetPresetFunction(int f_number, int speed);
void SetPresetFunctionARGB(int f_number, int speed, int brightness);
void SendData(byte data[], int len);
int CheckRange(int min, int max, int value);
int BrightnessLevel(int value, int brightness);
Expand Down

0 comments on commit eccc627

Please sign in to comment.