Add basic FASTLED function initated by Joen (#433)
* merge FastLED part of Joen Co-Authored-By: Leon Kiefer <leon.k97@gmx.de>
This commit is contained in:
1 parent
e20339857e
commit
0a9e8eaf35
6 files changed
+424
-1
No files matched your search
@@ -101,6 +101,7 @@ char mqtt_port[6] = "1883";
|
|||||||
//#define ZsensorGPIOKeyCode "GPIOKeyCode" //ESP8266, Arduino, ESP32
|
//#define ZsensorGPIOKeyCode "GPIOKeyCode" //ESP8266, Arduino, ESP32
|
||||||
//#define ZsensorGPIOInput "GPIOInput" //ESP8266, Arduino, ESP32
|
//#define ZsensorGPIOInput "GPIOInput" //ESP8266, Arduino, ESP32
|
||||||
//#define ZmqttDiscovery "HADiscovery"//ESP8266, Arduino, ESP32, Sonoff RF Bridge
|
//#define ZmqttDiscovery "HADiscovery"//ESP8266, Arduino, ESP32, Sonoff RF Bridge
|
||||||
|
//#define ZactuatorFASTLED "FASTLED" //ESP8266, Arduino, ESP32, Sonoff RF Bridge
|
||||||
|
|
||||||
/*-------------DEFINE YOUR ADVANCED NETWORK PARAMETERS BELOW----------------*/
|
/*-------------DEFINE YOUR ADVANCED NETWORK PARAMETERS BELOW----------------*/
|
||||||
//#define MDNS_SD //uncomment if you want to use mdns for discovering automatically your ip server, please note that MDNS with ESP32 can cause the BLE to not work
|
//#define MDNS_SD //uncomment if you want to use mdns for discovering automatically your ip server, please note that MDNS with ESP32 can cause the BLE to not work
|
||||||
|
|||||||
@@ -0,0 +1,293 @@
|
|||||||
|
/*
|
||||||
|
OpenMQTTGateway - ESP8266 or Arduino program for home automation
|
||||||
|
|
||||||
|
This gateway enables to use RGBLED strips like WS2812
|
||||||
|
|
||||||
|
Copyright: (c)
|
||||||
|
|
||||||
|
This file is part of OpenMQTTGateway.
|
||||||
|
|
||||||
|
OpenMQTTGateway is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenMQTTGateway is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "User_config.h"
|
||||||
|
|
||||||
|
#ifdef ZactuatorFASTLED
|
||||||
|
|
||||||
|
#ifdef ESP8266
|
||||||
|
#include <FastLED.h>
|
||||||
|
#else
|
||||||
|
#include <FastLED.h>
|
||||||
|
#endif
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
enum LEDState
|
||||||
|
{
|
||||||
|
OFF,
|
||||||
|
FIRE,
|
||||||
|
GENERAL
|
||||||
|
};
|
||||||
|
LEDState currentLEDState;
|
||||||
|
long lastUpdate = 0;
|
||||||
|
long currentUpdate = 0;
|
||||||
|
CRGB leds[FASTLED_NUM_LEDS];
|
||||||
|
CRGB ledColorBlink[FASTLED_NUM_LEDS];
|
||||||
|
bool blinkLED[FASTLED_NUM_LEDS];
|
||||||
|
const long blinkInterval = 300;
|
||||||
|
const long fireUpdate = 10;
|
||||||
|
CRGBPalette16 gPal;
|
||||||
|
|
||||||
|
void setupFASTLED()
|
||||||
|
{
|
||||||
|
trc(F("FASTLED_DATA_PIN "));
|
||||||
|
trc(String(FASTLED_DATA_PIN));
|
||||||
|
trc(F("FASTLED_NUM_LEDS "));
|
||||||
|
trc(String(FASTLED_NUM_LEDS));
|
||||||
|
trc(F("ZactuatorFASTLED setup done "));
|
||||||
|
FastLED.addLeds<FASTLED_TYPE, FASTLED_DATA_PIN>(leds, FASTLED_NUM_LEDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
//returns the current step of the animation
|
||||||
|
int animation_step(int duration, int steps)
|
||||||
|
{
|
||||||
|
int currentStep = ((currentUpdate % duration) / ((float)duration)) * steps;
|
||||||
|
return currentStep;
|
||||||
|
}
|
||||||
|
|
||||||
|
//returns the number of steps since the last update
|
||||||
|
int animation_step_count(int duration, int steps)
|
||||||
|
{
|
||||||
|
long lastAnimationNumber = lastUpdate / duration;
|
||||||
|
long currentAnimationNumber = currentUpdate / duration;
|
||||||
|
int lastStep = ((lastUpdate % duration) / ((float)duration)) * steps;
|
||||||
|
int currentStep = ((currentUpdate % duration) / ((float)duration)) * steps;
|
||||||
|
|
||||||
|
return currentStep - lastStep + (currentAnimationNumber - lastAnimationNumber) * steps;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FASTLEDLoop()
|
||||||
|
{
|
||||||
|
|
||||||
|
lastUpdate = currentUpdate;
|
||||||
|
currentUpdate = millis();
|
||||||
|
|
||||||
|
if (currentLEDState == GENERAL)
|
||||||
|
{
|
||||||
|
|
||||||
|
for (int i = 0; i < FASTLED_NUM_LEDS; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
int count = animation_step_count(blinkInterval, 2);
|
||||||
|
int step = animation_step(blinkInterval, 2);
|
||||||
|
|
||||||
|
if (count > 0)
|
||||||
|
{
|
||||||
|
if (blinkLED[i])
|
||||||
|
{
|
||||||
|
|
||||||
|
if (step == 0)
|
||||||
|
{
|
||||||
|
leds[i] = ledColorBlink[i];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ledColorBlink[i] = leds[i];
|
||||||
|
leds[i] = CRGB::Black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (currentLEDState == FIRE)
|
||||||
|
{
|
||||||
|
int count = animation_step_count(fireUpdate, 1);
|
||||||
|
if (count > 0)
|
||||||
|
{
|
||||||
|
//random16_add_entropy( random(0)); //random() don't exists in ESP framework - workaround?
|
||||||
|
Fire2012WithPalette();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FastLED.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean FASTLEDtoMQTT()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
void MQTTtoFASTLEDJSON(char *topicOri, JsonObject& jsonData)
|
||||||
|
{
|
||||||
|
trc(F("MQTTtoFASTLEDJSON: "));
|
||||||
|
currentLEDState = GENERAL;
|
||||||
|
String topic = topicOri;
|
||||||
|
|
||||||
|
trc(topic);
|
||||||
|
//number = (long)strtol(&datacallback[1], NULL, 16);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (topic == subjectMQTTtoFASTLEDsetled)
|
||||||
|
{
|
||||||
|
trc(F("JSON parsed"));
|
||||||
|
int ledNr = jsonData["led"];
|
||||||
|
trc(F("led"));
|
||||||
|
trc(ledNr);
|
||||||
|
const char *color = jsonData["hex"];
|
||||||
|
trc(F("hex"));
|
||||||
|
|
||||||
|
long number = (long)strtol(color, NULL, 16);
|
||||||
|
trc(number);
|
||||||
|
bool blink = jsonData["blink"];
|
||||||
|
if (ledNr <= FASTLED_NUM_LEDS)
|
||||||
|
{
|
||||||
|
trc(F("blink"));
|
||||||
|
trc(blink);
|
||||||
|
blinkLED[ledNr] = blink;
|
||||||
|
leds[ledNr] = number;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void MQTTtoFASTLED(char *topicOri, char *datacallback)
|
||||||
|
{
|
||||||
|
trc(F("MQTTtoFASTLED: "));
|
||||||
|
currentLEDState = GENERAL;
|
||||||
|
String topic = topicOri;
|
||||||
|
long number = 0;
|
||||||
|
trc(topic);
|
||||||
|
if (topic == subjectMQTTtoFASTLED)
|
||||||
|
{
|
||||||
|
number = (long)strtol(&datacallback[1], NULL, 16);
|
||||||
|
trc(number);
|
||||||
|
for (int i = 0; i < FASTLED_NUM_LEDS; i++)
|
||||||
|
{
|
||||||
|
leds[i] = number;
|
||||||
|
}
|
||||||
|
FastLED.show();
|
||||||
|
}
|
||||||
|
else if (topic == subjectMQTTtoFASTLEDsetbrightness)
|
||||||
|
{
|
||||||
|
number = (long)strtol(&datacallback[1], NULL, 16);
|
||||||
|
trc(number);
|
||||||
|
FastLED.setBrightness(number);
|
||||||
|
FastLED.show();
|
||||||
|
}
|
||||||
|
else if (topic == subjectMQTTtoFASTLEDsetanimation)
|
||||||
|
{
|
||||||
|
String payload = datacallback;
|
||||||
|
trc(payload);
|
||||||
|
if (payload.equals("fire"))
|
||||||
|
{
|
||||||
|
currentLEDState = FIRE;
|
||||||
|
gPal = HeatColors_p;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentLEDState = OFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentLEDState = OFF;
|
||||||
|
}
|
||||||
|
if (currentLEDState==OFF)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < FASTLED_NUM_LEDS; i++)
|
||||||
|
{
|
||||||
|
leds[i] = CRGB::Black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fire2012 by Mark Kriegsman, July 2012
|
||||||
|
// as part of "Five Elements" shown here: http://youtu.be/knWiGsmgycY
|
||||||
|
////
|
||||||
|
// This basic one-dimensional 'fire' simulation works roughly as follows:
|
||||||
|
// There's a underlying array of 'heat' cells, that model the temperature
|
||||||
|
// at each point along the line. Every cycle through the simulation,
|
||||||
|
// four steps are performed:
|
||||||
|
// 1) All cells cool down a little bit, losing heat to the air
|
||||||
|
// 2) The heat from each cell drifts 'up' and diffuses a little
|
||||||
|
// 3) Sometimes randomly new 'sparks' of heat are added at the bottom
|
||||||
|
// 4) The heat from each cell is rendered as a color into the leds array
|
||||||
|
// The heat-to-color mapping uses a black-body radiation approximation.
|
||||||
|
//
|
||||||
|
// Temperature is in arbitrary units from 0 (cold black) to 255 (white hot).
|
||||||
|
//
|
||||||
|
// This simulation scales it self a bit depending on NUM_LEDS; it should look
|
||||||
|
// "OK" on anywhere from 20 to 100 LEDs without too much tweaking.
|
||||||
|
//
|
||||||
|
// I recommend running this simulation at anywhere from 30-100 frames per second,
|
||||||
|
// meaning an interframe delay of about 10-35 milliseconds.
|
||||||
|
//
|
||||||
|
// Looks best on a high-density LED setup (60+ pixels/meter).
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// There are two main parameters you can play with to control the look and
|
||||||
|
// feel of your fire: COOLING (used in step 1 above), and SPARKING (used
|
||||||
|
// in step 3 above).
|
||||||
|
//
|
||||||
|
// COOLING: How much does the air cool as it rises?
|
||||||
|
// Less cooling = taller flames. More cooling = shorter flames.
|
||||||
|
// Default 55, suggested range 20-100
|
||||||
|
#define COOLING 55
|
||||||
|
|
||||||
|
// SPARKING: What chance (out of 255) is there that a new spark will be lit?
|
||||||
|
// Higher chance = more roaring fire. Lower chance = more flickery fire.
|
||||||
|
// Default 120, suggested range 50-200.
|
||||||
|
#define SPARKING 120
|
||||||
|
bool gReverseDirection = false;
|
||||||
|
|
||||||
|
void Fire2012WithPalette()
|
||||||
|
{
|
||||||
|
// Array of temperature readings at each simulation cell
|
||||||
|
static byte heat[FASTLED_NUM_LEDS];
|
||||||
|
|
||||||
|
// Step 1. Cool down every cell a little
|
||||||
|
for (int i = 0; i < FASTLED_NUM_LEDS; i++)
|
||||||
|
{
|
||||||
|
heat[i] = qsub8(heat[i], random8(0, ((COOLING * 10) / FASTLED_NUM_LEDS) + 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 2. Heat from each cell drifts 'up' and diffuses a little
|
||||||
|
for (int k = FASTLED_NUM_LEDS - 1; k >= 2; k--)
|
||||||
|
{
|
||||||
|
heat[k] = (heat[k - 1] + heat[k - 2] + heat[k - 2]) / 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 3. Randomly ignite new 'sparks' of heat near the bottom
|
||||||
|
if (random8() < SPARKING)
|
||||||
|
{
|
||||||
|
int y = random8(7);
|
||||||
|
heat[y] = qadd8(heat[y], random8(160, 255));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 4. Map from heat cells to LED colors
|
||||||
|
for (int j = 0; j < FASTLED_NUM_LEDS; j++)
|
||||||
|
{
|
||||||
|
// Scale the heat value from 0-255 down to 0-240
|
||||||
|
// for best results with color palettes.
|
||||||
|
byte colorindex = scale8(heat[j], 240);
|
||||||
|
CRGB color = ColorFromPalette(gPal, colorindex);
|
||||||
|
int pixelnumber;
|
||||||
|
if (gReverseDirection)
|
||||||
|
{
|
||||||
|
pixelnumber = (FASTLED_NUM_LEDS - 1) - j;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pixelnumber = j;
|
||||||
|
}
|
||||||
|
leds[pixelnumber] = color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
/*
|
||||||
|
OpenMQTTGateway - ESP8266 or Arduino program for home automation
|
||||||
|
|
||||||
|
This files enables you to set your parameters for the FASTLED actuator
|
||||||
|
|
||||||
|
Copyright: (c)
|
||||||
|
|
||||||
|
This file is part of OpenMQTTGateway.
|
||||||
|
|
||||||
|
OpenMQTTGateway is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenMQTTGateway is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*-------------------FASTLED topics & parameters----------------------*/
|
||||||
|
//FASTLED MQTT Subjects
|
||||||
|
#define subjectMQTTtoFASTLED Base_Topic Gateway_Name "/commands/MQTTtoFASTLED"
|
||||||
|
#define subjectMQTTtoFASTLEDsetled Base_Topic Gateway_Name "/commands/MQTTtoFASTLED/setled" //set only one LED with JSON struct {"led":0-x,"hex":"#000000","blink":true/false}
|
||||||
|
#define subjectMQTTtoFASTLEDsetbrightness Base_Topic Gateway_Name "/commands/MQTTtoFASTLED/setbrightness" //set the brightness 0-255
|
||||||
|
#define subjectMQTTtoFASTLEDsetanimation Base_Topic Gateway_Name "/commands/MQTTtoFASTLED/setanimation" //Animation Fire2012 by Mark Kriegsman
|
||||||
|
#define subjectGTWFASTLEDtoMQTT Base_Topic Gateway_Name "/FASTLEDtoMQTT" //same color on all LEDs in #RRGGBB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// How many leds in your strip?
|
||||||
|
#define FASTLED_NUM_LEDS 16
|
||||||
|
|
||||||
|
// Uncomment/edit one of the following lines for your leds arrangement.
|
||||||
|
|
||||||
|
//#define FASTLED_TYPE TM1803
|
||||||
|
//#define FASTLED_TYPE TM1804
|
||||||
|
//#define FASTLED_TYPE TM1809
|
||||||
|
//#define FASTLED_TYPE WS2811
|
||||||
|
//#define FASTLED_TYPE WS2812
|
||||||
|
//#define FASTLED_TYPE WS2812B
|
||||||
|
#define FASTLED_TYPE NEOPIXEL
|
||||||
|
//#define FASTLED_TYPE APA104
|
||||||
|
//#define FASTLED_TYPE UCS1903
|
||||||
|
//#define FASTLED_TYPE UCS1903B
|
||||||
|
//#define FASTLED_TYPE GW6205
|
||||||
|
|
||||||
|
//#define FASTLED_TYPE WS2801, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE SM16716, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE LPD8806, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE P9813, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE APA102, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE DOTSTAR, RGB>(leds, NUM_LEDS);
|
||||||
|
|
||||||
|
//#define FASTLED_TYPE WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
|
||||||
|
//#define FASTLED_TYPE DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
|
||||||
|
|
||||||
|
// For led chips like Neopixels, which have a data line, ground, and power, you just
|
||||||
|
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
|
||||||
|
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
|
||||||
|
//#define DATA_PIN 3
|
||||||
|
//#define CLOCK_PIN 13
|
||||||
|
|
||||||
|
#ifdef ESP8266
|
||||||
|
|
||||||
|
#elif ESP32
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ESP8266
|
||||||
|
//#define FASTLED_ESP8266_RAW_PIN_ORDER
|
||||||
|
//#define FASTLED_ESP8266_NODEMCU_PIN_ORDER
|
||||||
|
#define FASTLED_ESP8266_D1_PIN_ORDER
|
||||||
|
#define FASTLED_DATA_PIN D2 // only D2 works by me
|
||||||
|
//#define FASTLED_CLOCK_PIN 13
|
||||||
|
#elif ESP32
|
||||||
|
#define FASTLED_DATA_PIN 16
|
||||||
|
#define FASTLED_CLOCK_PIN 13
|
||||||
|
#else
|
||||||
|
#define FASTLED_DATA_PIN 10
|
||||||
|
#define FASTLED_CLOCK_PIN 13
|
||||||
|
#endif
|
||||||
@@ -99,6 +99,9 @@
|
|||||||
#ifdef ZmqttDiscovery
|
#ifdef ZmqttDiscovery
|
||||||
#include "config_mqttDiscovery.h"
|
#include "config_mqttDiscovery.h"
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ZactuatorFASTLED
|
||||||
|
#include "config_FASTLED.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------*/
|
||||||
|
|
||||||
@@ -608,6 +611,10 @@ void setup()
|
|||||||
#ifdef ZsensorGPIOKeyCode
|
#ifdef ZsensorGPIOKeyCode
|
||||||
setupGPIOKeyCode();
|
setupGPIOKeyCode();
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ZactuatorFASTLED
|
||||||
|
setupFASTLED();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
trc(F("MQTT_MAX_PACKET_SIZE"));
|
trc(F("MQTT_MAX_PACKET_SIZE"));
|
||||||
trc(MQTT_MAX_PACKET_SIZE);
|
trc(MQTT_MAX_PACKET_SIZE);
|
||||||
@@ -943,6 +950,10 @@ void loop()
|
|||||||
#if defined(ESP8266) || defined(ESP32) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
|
#if defined(ESP8266) || defined(ESP32) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
|
||||||
stateMeasures();
|
stateMeasures();
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ZactuatorFASTLED
|
||||||
|
FASTLEDLoop();
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1033,6 +1044,10 @@ void stateMeasures(){
|
|||||||
modules = modules + ZmqttDiscovery;
|
modules = modules + ZmqttDiscovery;
|
||||||
pubMqttDiscovery();
|
pubMqttDiscovery();
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ZactuatorFASTLED
|
||||||
|
modules = modules + ZactuatorFASTLED;
|
||||||
|
#endif
|
||||||
|
|
||||||
SYSdata["modules"] = modules;
|
SYSdata["modules"] = modules;
|
||||||
trc(SYSdata);
|
trc(SYSdata);
|
||||||
char JSONmessageBuffer[JSON_MSG_BUFFER];
|
char JSONmessageBuffer[JSON_MSG_BUFFER];
|
||||||
@@ -1148,6 +1163,12 @@ void receivingMQTT(char * topicOri, char * datacallback) {
|
|||||||
MQTTtoONOFF(topicOri, jsondata);
|
MQTTtoONOFF(topicOri, jsondata);
|
||||||
#endif
|
#endif
|
||||||
digitalWrite(led_send, HIGH);
|
digitalWrite(led_send, HIGH);
|
||||||
|
|
||||||
|
#ifdef ZactuatorFASTLED
|
||||||
|
MQTTtoFASTLEDJSON(topicOri, jsondata);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
} else { // not a json object --> simple decoding
|
} else { // not a json object --> simple decoding
|
||||||
#ifdef simpleReceiving
|
#ifdef simpleReceiving
|
||||||
#ifdef ZgatewayLORA
|
#ifdef ZgatewayLORA
|
||||||
@@ -1179,6 +1200,11 @@ void receivingMQTT(char * topicOri, char * datacallback) {
|
|||||||
MQTTtoONOFF(topicOri, datacallback);
|
MQTTtoONOFF(topicOri, datacallback);
|
||||||
#endif
|
#endif
|
||||||
digitalWrite(led_send, HIGH);
|
digitalWrite(led_send, HIGH);
|
||||||
|
|
||||||
|
#ifdef ZactuatorFASTLED
|
||||||
|
MQTTtoFASTLED(topicOri, datacallback);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
//YELLOW OFF
|
//YELLOW OFF
|
||||||
digitalWrite(led_send, HIGH);
|
digitalWrite(led_send, HIGH);
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ lib_deps =
|
|||||||
Wire
|
Wire
|
||||||
jarzebski/Arduino-INA226
|
jarzebski/Arduino-INA226
|
||||||
1technophile/NewRemoteSwitch
|
1technophile/NewRemoteSwitch
|
||||||
|
FastLED
|
||||||
build_flags =
|
build_flags =
|
||||||
-w ; supress all warnings
|
-w ; supress all warnings
|
||||||
|
|
||||||
@@ -42,6 +43,7 @@ lib_deps =
|
|||||||
IRremoteESP8266
|
IRremoteESP8266
|
||||||
https://github.com/tzapu/WiFiManager.git#c3ff582374e677f76d14de013966df0888b5b38e
|
https://github.com/tzapu/WiFiManager.git#c3ff582374e677f76d14de013966df0888b5b38e
|
||||||
esp8266_mdns
|
esp8266_mdns
|
||||||
|
FastLED
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
Ethernet
|
Ethernet
|
||||||
build_flags =
|
build_flags =
|
||||||
@@ -62,6 +64,7 @@ lib_deps =
|
|||||||
https://github.com/tzapu/WiFiManager.git#c3ff582374e677f76d14de013966df0888b5b38e
|
https://github.com/tzapu/WiFiManager.git#c3ff582374e677f76d14de013966df0888b5b38e
|
||||||
https://github.com/eos1d3/ESP32_BLE.git
|
https://github.com/eos1d3/ESP32_BLE.git
|
||||||
https://github.com/sandeepmistry/arduino-LoRa.git
|
https://github.com/sandeepmistry/arduino-LoRa.git
|
||||||
|
FastLED
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
esp8266_mdns
|
esp8266_mdns
|
||||||
Ethernet
|
Ethernet
|
||||||
@@ -76,6 +79,7 @@ lib_deps =
|
|||||||
${common.lib_deps}
|
${common.lib_deps}
|
||||||
IRremote
|
IRremote
|
||||||
Ethernet
|
Ethernet
|
||||||
|
FastLED
|
||||||
build_flags =
|
build_flags =
|
||||||
${common.build_flags}
|
${common.build_flags}
|
||||||
|
|
||||||
@@ -87,5 +91,6 @@ lib_deps =
|
|||||||
${common.lib_deps}
|
${common.lib_deps}
|
||||||
IRremote
|
IRremote
|
||||||
Ethernet
|
Ethernet
|
||||||
|
FastLED
|
||||||
build_flags =
|
build_flags =
|
||||||
${common.build_flags}
|
${common.build_flags}
|
||||||
+5
-1
@@ -151,6 +151,7 @@ const byte subnet[] = { 255, 255, 255, 0 }; //ip adress
|
|||||||
#define jsonReceiving true
|
#define jsonReceiving true
|
||||||
#define simplePublishing true
|
#define simplePublishing true
|
||||||
#define simpleReceiving true
|
#define simpleReceiving true
|
||||||
|
#define ZactuatorFASTLED "FASTLED" //ESP8266, Arduino, ESP32, Sonoff RF Bridge
|
||||||
#define TRACE 1 // commented = trace off, uncommented = trace on
|
#define TRACE 1 // commented = trace off, uncommented = trace on
|
||||||
#elif ESP32
|
#elif ESP32
|
||||||
#define ZgatewayRF "RF"
|
#define ZgatewayRF "RF"
|
||||||
@@ -176,6 +177,7 @@ const byte subnet[] = { 255, 255, 255, 0 }; //ip adress
|
|||||||
#define jsonReceiving true
|
#define jsonReceiving true
|
||||||
#define simplePublishing true
|
#define simplePublishing true
|
||||||
#define simpleReceiving true
|
#define simpleReceiving true
|
||||||
|
#define ZactuatorFASTLED "FASTLED" //ESP8266, Arduino, ESP32, Sonoff RF Bridge
|
||||||
#define TRACE 1 // commented = trace off, uncommented = trace on
|
#define TRACE 1 // commented = trace off, uncommented = trace on
|
||||||
#elif defined(__AVR_ATmega1280__)
|
#elif defined(__AVR_ATmega1280__)
|
||||||
#define ZgatewayRF "RF"
|
#define ZgatewayRF "RF"
|
||||||
@@ -202,9 +204,10 @@ const byte subnet[] = { 255, 255, 255, 0 }; //ip adress
|
|||||||
#define jsonReceiving true
|
#define jsonReceiving true
|
||||||
#define simplePublishing true
|
#define simplePublishing true
|
||||||
#define simpleReceiving true
|
#define simpleReceiving true
|
||||||
|
#define ZactuatorFASTLED "FASTLED" //ESP8266, Arduino, ESP32, Sonoff RF Bridge
|
||||||
#define TRACE 1 // commented = trace off, uncommented = trace on
|
#define TRACE 1 // commented = trace off, uncommented = trace on
|
||||||
#else // for arduino Uno
|
#else // for arduino Uno
|
||||||
#define ZgatewayRF "RF"
|
//#define ZgatewayRF "RF"
|
||||||
//#define ZgatewayLORA "LORA" (not tested yet)
|
//#define ZgatewayLORA "LORA" (not tested yet)
|
||||||
//#define Zgateway2G (not tested yet)
|
//#define Zgateway2G (not tested yet)
|
||||||
//#define ZgatewayRF2 // too big for UNO
|
//#define ZgatewayRF2 // too big for UNO
|
||||||
@@ -224,6 +227,7 @@ const byte subnet[] = { 255, 255, 255, 0 }; //ip adress
|
|||||||
#define jsonReceiving true
|
#define jsonReceiving true
|
||||||
//#define simplePublishing true
|
//#define simplePublishing true
|
||||||
//#define simpleReceiving true
|
//#define simpleReceiving true
|
||||||
|
#define ZactuatorFASTLED "FASTLED" //ESP8266, Arduino, ESP32, Sonoff RF Bridge
|
||||||
//#define TRACE 1 // commented = trace off, uncommented = trace on
|
//#define TRACE 1 // commented = trace off, uncommented = trace on
|
||||||
#endif
|
#endif
|
||||||
/*----------------------------OTHER PARAMETERS-----------------------------*/
|
/*----------------------------OTHER PARAMETERS-----------------------------*/
|
||||||
|
|||||||
Reference in new issue
Block a user