Add possibility to set color1 and color2
This commit is contained in:
parent
7673b4e19c
commit
7a954bea55
|
@ -23,6 +23,27 @@ HomieNode stripNode("strip", "strip");
|
||||||
HomieNode sensorNode("sensor", "sensor");
|
HomieNode sensorNode("sensor", "sensor");
|
||||||
Bounce debouncer = Bounce();
|
Bounce debouncer = Bounce();
|
||||||
|
|
||||||
|
uint32_t color1 = pixels.Color(255, 0, 0);
|
||||||
|
uint32_t color2 = pixels.Color(0, 0, 255);
|
||||||
|
|
||||||
|
bool onSetColor(const HomieRange& range, const String& value){
|
||||||
|
if (!range.isRange || range.index < 0 || range.index > 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
switch(range.index) {
|
||||||
|
case 0:
|
||||||
|
color1 = value.toInt();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
color2 = value.toInt();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
stripNode.setProperty("color_" + String(range.index)).send(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool onSetPixel(const HomieRange& range, const String& value){
|
bool onSetPixel(const HomieRange& range, const String& value){
|
||||||
if(!range.isRange) {
|
if(!range.isRange) {
|
||||||
pixels.None();
|
pixels.None();
|
||||||
|
@ -53,19 +74,19 @@ bool onSetEffect(const HomieRange& range, const String& value){
|
||||||
String effect = value;
|
String effect = value;
|
||||||
effect.toLowerCase();
|
effect.toLowerCase();
|
||||||
if(effect == "scanner") {
|
if(effect == "scanner") {
|
||||||
pixels.Scanner(pixels.Color(255,0,0), 40);
|
pixels.Scanner(color1);
|
||||||
}
|
}
|
||||||
else if(effect == "randomscanner") {
|
else if(effect == "randomscanner") {
|
||||||
pixels.Scanner(pixels.Color(255,0,0), 40,true);
|
pixels.Scanner(color1, 40, true);
|
||||||
}
|
}
|
||||||
else if(effect == "rainbowcycle") {
|
else if(effect == "rainbowcycle") {
|
||||||
pixels.RainbowCycle(50);
|
pixels.RainbowCycle(50);
|
||||||
}
|
}
|
||||||
else if(effect == "theaterchase") {
|
else if(effect == "theaterchase") {
|
||||||
pixels.TheaterChase(pixels.Color(0,0,255), pixels.Color(255,0,00), 100);
|
pixels.TheaterChase(color1, color2, 100);
|
||||||
}
|
}
|
||||||
else if(effect == "fade") {
|
else if(effect == "fade") {
|
||||||
pixels.Fade(pixels.Color(100,0,0),pixels.Color(0,0,100),200,100);
|
pixels.Fade(color1, color2, 200, 100);
|
||||||
}
|
}
|
||||||
else if(effect == "randomfade") {
|
else if(effect == "randomfade") {
|
||||||
pixels.RandomFade();
|
pixels.RandomFade();
|
||||||
|
@ -97,7 +118,7 @@ bool onSetLength(const HomieRange& range, const String& value){
|
||||||
void loopHandler() {
|
void loopHandler() {
|
||||||
pixels.Update();
|
pixels.Update();
|
||||||
|
|
||||||
int sensorValue = debouncer.read();
|
bool sensorValue = debouncer.read();
|
||||||
if (Homie.isConfigured() && Homie.isConnected() && sensorValue != lastSensorValue) {
|
if (Homie.isConfigured() && Homie.isConnected() && sensorValue != lastSensorValue) {
|
||||||
sensorNode.setProperty("motion").send(sensorValue ? "true" : "false");
|
sensorNode.setProperty("motion").send(sensorValue ? "true" : "false");
|
||||||
lastSensorValue = sensorValue;
|
lastSensorValue = sensorValue;
|
||||||
|
@ -114,8 +135,8 @@ void setup() {
|
||||||
Homie_setFirmware("schild", "1.0.0");
|
Homie_setFirmware("schild", "1.0.0");
|
||||||
Homie.setLoopFunction(loopHandler);
|
Homie.setLoopFunction(loopHandler);
|
||||||
|
|
||||||
|
|
||||||
stripNode.advertiseRange("pixel", 0, NUMPIXELS-1).settable(onSetPixel);
|
stripNode.advertiseRange("pixel", 0, NUMPIXELS-1).settable(onSetPixel);
|
||||||
|
stripNode.advertiseRange("color", 0, 1).settable(onSetColor);
|
||||||
stripNode.advertise("brightness").settable(onSetBrightness);
|
stripNode.advertise("brightness").settable(onSetBrightness);
|
||||||
stripNode.advertise("effect").settable(onSetEffect);
|
stripNode.advertise("effect").settable(onSetEffect);
|
||||||
stripNode.advertise("clear").settable(onSetClear);
|
stripNode.advertise("clear").settable(onSetClear);
|
||||||
|
|
Loading…
Reference in New Issue