3 Commits

25 changed files with 29666 additions and 30090 deletions

View File

@@ -9,10 +9,10 @@ Lighthub allows connecting together:
* Contact sensors (switches, buttons etc) * Contact sensors (switches, buttons etc)
* Analog sensors (Leak detectors, Knobs etc) * Analog sensors (Leak detectors, Knobs etc)
* 1-Wire temperature sensors (up to 20 on single bus) * 1-Wire temperature sensors (up to 20 on single bus)
* Temperature/Humidity/CO2 sensors: DHT22, CS811, HDC1080 * Temperature/Humidity/CO2 sensors: DHT22, CS811, HDC1080 and any type of Modbus connected devices
* Standard nonexpensive Relay board with TTL inputs, [like this](http://ali.pub/2zlosh) to control AC powered lamps, floor heaters, boilers etc * Standard nonexpensive Relay board with TTL inputs, [like this](http://ali.pub/2zlosh) to control AC powered lamps, floor heaters, boilers etc
* [Standard nonexpensive LED dimmers](http://ali.pub/2zlokp) and [AC DMX-512 dimmers](http://ali.pub/2zlont) * [Standard nonexpensive LED dimmers](http://ali.pub/2zlokp) and [AC DMX-512 dimmers](http://ali.pub/2zlont)
* Modbus RTU devices (Currently, are deployed two types of Modbus devices: AC Dimmer and Ventilation set (Based on [Vacon 10 controller](http://files.danfoss.com/download/Drives/Vacon-10-Quick-Guide-DPD00714F1-UK.pdf)) * Modbus RTU devices (Currently, possible to control two types of Modbus devices: AC Dimmer and Ventilation set (Based on [Vacon 10 controller](http://files.danfoss.com/download/Drives/Vacon-10-Quick-Guide-DPD00714F1-UK.pdf)) and configure polling of virtually any Modbus device.
* Simple DMX wall sensor panel [like this](http://ali.pub/2zlohe) * Simple DMX wall sensor panel [like this](http://ali.pub/2zlohe)
[List of non-expensive compatible components from AliExpress here](http://ppv.alipromo.com/custom/promo.php?hash=pjagwaovaero6vkeabjpkpvy4gznbgkc&landing_id=39661) [List of non-expensive compatible components from AliExpress here](http://ppv.alipromo.com/custom/promo.php?hash=pjagwaovaero6vkeabjpkpvy4gznbgkc&landing_id=39661)
@@ -22,7 +22,8 @@ Lighthub allows connecting together:
![alt text](docs/LightHubAppDiagram.png "LightHub application diagram") ![alt text](docs/LightHubAppDiagram.png "LightHub application diagram")
Where is possible both, to configure local control/mapping between inputs and outputs (light, floor heating thermostats) and remote control from MQTT enabled software. At the moment, LightHub tested and perfectly working with following set of complementary free software: Where is possible both, to configure local control/mapping between inputs and outputs (light, floor heating thermostats) and remote control from MQTT enabled software and between controllers. At the moment, LightHub tested and perfectly working with following set of complementary free software:
* [HomeAssistant](https://www.home-assistant.io) - the best choice of HomeAutomation system
* [Openhab or Openhab2 Smarthome software](http://www.openhab.org/) * [Openhab or Openhab2 Smarthome software](http://www.openhab.org/)
Openhab provides own native mobile app both, for IoS and Android, and even allow you to use Apple's HomeKit and Google Home to say "Siri, turn on light in bedroom" or "Hey Google, set bedroom light to Red" but requires some server to be installed in-premises (Raspberry PI with [Openhabian](https://docs.openhab.org/installation/openhabian) will good enough) Openhab provides own native mobile app both, for IoS and Android, and even allow you to use Apple's HomeKit and Google Home to say "Siri, turn on light in bedroom" or "Hey Google, set bedroom light to Red" but requires some server to be installed in-premises (Raspberry PI with [Openhabian](https://docs.openhab.org/installation/openhabian) will good enough)
* [HomeRemote mobile client](http://thehomeremote.com/) * [HomeRemote mobile client](http://thehomeremote.com/)
@@ -32,11 +33,13 @@ Home Remote mobile applicatios for IoS and Android requires just MQTT broker to
Scalability of Lighthub is virtually unlimited: Setup so many controllers you needed in most convenient places of your house - MQTT broker will allow controllers communicate each other and with Openhab/NodeRed/HomeRemote and propagate commands across network. Scalability of Lighthub is virtually unlimited: Setup so many controllers you needed in most convenient places of your house - MQTT broker will allow controllers communicate each other and with Openhab/NodeRed/HomeRemote and propagate commands across network.
# [Please refer to our Wiki for insructions.](https://github.com/anklimov/lighthub/wiki/Configuring) # [Please refer to our Wiki for insructions.](https://github.com/anklimov/lighthub/wiki/Configuring)
* [Russian-language Wiki](https://www.lazyhome.ru/dokuwiki/doku.php)
* [Compiling and flashing](https://github.com/anklimov/lighthub/wiki/Compiling-and-flashing) * [Compiling and flashing](https://github.com/anklimov/lighthub/wiki/Compiling-and-flashing)
* [Configuring](https://github.com/anklimov/lighthub/wiki/Configuring) * [Configuring](https://github.com/anklimov/lighthub/wiki/Configuring)
* [Channel commands](https://github.com/anklimov/lighthub/wiki/Channel-commands) * [Channel commands](https://github.com/anklimov/lighthub/wiki/Channel-commands)
* [OpenHab integration](https://github.com/anklimov/lighthub/wiki/OpenHab--integration) * [OpenHab integration](https://github.com/anklimov/lighthub/wiki/OpenHab--integration)
* [Doxygen developers documentation](https://anklimov.github.io/lighthub/docs/html/index.html)
* [Latest Release notes](https://github.com/anklimov/lighthub/releases/tag/v3.0.0)
# Platforms specific details: # Platforms specific details:
@@ -55,7 +58,7 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne
**ESP8266, ESP32**: (Tested) **ESP8266, ESP32**: (Tested)
* DMX-OUT on USART1 TX * DMX-OUT on USART1 TX
* DMX-IN - disabled - not possible to deploy in ESP8266 * DMX-IN - disabled - not possible to deploy in ESP8266
* Modbus - disabled. Might be configured in future on USART0 instead CLI/DEBUG * Modbus - disabled on ESP8266, Might be configured in future on USART0 instead CLI/DEBUG, on ESP32 binded with UART2
* Uses Wifi interface instead wired connection * Uses Wifi interface instead wired connection
**NRF52840** : Still early development stage **NRF52840** : Still early development stage
@@ -67,11 +70,14 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne
* USE_1W_PIN=49 // use direct connection to 1W devices on 49 pin, no I2C bridge DS2482-100 * USE_1W_PIN=49 // use direct connection to 1W devices on 49 pin, no I2C bridge DS2482-100
* SD_CARD_INSERTED // enable sd-card support and fix lan starting * SD_CARD_INSERTED // enable sd-card support and fix lan starting
* SERIAL_BAUD=115200 // set baud rate for console on Serial0 * SERIAL_BAUD=115200 // set baud rate for console on Serial0
* Wiz5500 //Use Wiznet 5500 library instead Wiznet 5100 * Wiz5500 //Use Wiznet 5500 library instead universal Wiznet
* Wiz5100 //Use Wiznet 5500 library instead universal Wiznet
* DISABLE_FREERAM_PRINT // disable printing free Ram in bytes * DISABLE_FREERAM_PRINT // disable printing free Ram in bytes
* CUSTOM_FIRMWARE_MAC=de:ad:be:ef:fe:00 //set firmware macaddress * CUSTOM_FIRMWARE_MAC=de:ad:be:ef:fe:00 //set firmware macaddress
* DMX_DISABLE //disable DMX support * DMX_DISABLE //disable DMX support
* MODBUS_DISABLE // disable Modbus support * MODBUS_DISABLE // disable old Modbus driver
* MBUS_DISABLE // disable new Modbus driver
* MODBUS_TX_PIN=13
* OWIRE_DISABLE // disable OneWire support * OWIRE_DISABLE // disable OneWire support
* ARTNET_ENABLE //Enable Artnet protocol support * ARTNET_ENABLE //Enable Artnet protocol support
* AVR_DMXOUT_PIN=18 // Set Pin for DMXOUT on megaatmega2560 * AVR_DMXOUT_PIN=18 // Set Pin for DMXOUT on megaatmega2560
@@ -82,11 +88,27 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne
* WIFI_MANAGER_DISABLE //Disable wifi manager for esp8266 * WIFI_MANAGER_DISABLE //Disable wifi manager for esp8266
* COUNTER_DISABLE //disable Counter, Uptime input support (for RAM savings on mega2560) * COUNTER_DISABLE //disable Counter, Uptime input support (for RAM savings on mega2560)
* DHT_DISABLE //disable DHT input support (for RAM savings on mega2560) * DHT_DISABLE //disable DHT input support (for RAM savings on mega2560)
* PID_DISABLE // Disable PID regulator
* STATUSLED // Enable RGB status led on pins 50,51,52 (DUE only)
* DMX_SMOOTH //Smooth transition on DMX channels (DUE only)
* OTA // Enable Other The Air firmware upload
* W5500_CS_PIN=53 //Defines CS pin for Ethernet adapter (10-th by default)
* WIFI_ENABLE //Enable WiFi for ESP (Wiznet by default)
* SPILED_DISABLE //Disable SPI LED library
* AC_DISABLE //Disable UART Hayer Air condition driver
* M5STACK //Logging to M5Stack OLED screen
* NO_HOMIE //Disable HOMIE discovery topics
* BRIGHT_STEP //Scale DMX bright - Table1
* BRIGHT_LOG //Scale DMX bright - Table2
* MCP23017 allow I2C input port extender on MCP23017 chip
* RESTART_LAN_ON_MQTT_ERRORS //reinit LAN if many mqtt errors occured * RESTART_LAN_ON_MQTT_ERRORS //reinit LAN if many mqtt errors occured
* DEVICE_NAME short handy device name which is used instead of mac for download config http://{MY_CONFIG_SERVER}/{DEVICE_NAME}_config.json * DEVICE_NAME short handy device name which is used instead of mac for download config http://{MY_CONFIG_SERVER}/{DEVICE_NAME}_config.json
* SYSLOG_ENABLE enable UDP SYSLOG support feature(under DEVELOPMENT) that must be configured through config file * SYSLOG_ENABLE enable UDP SYSLOG support feature(under DEVELOPMENT) that must be configured through config file
* WITH_PRINTEX_LIB use PrintEx library (develop experimental feature) * WITH_PRINTEX_LIB use PrintEx library (develop experimental feature)
* CSSHDC_DISABLE //Disable CS811 and HDC1080 sensors support * CSSHDC_DISABLE //Disable CS811 and HDC1080 sensors support
* FASTLED - using FASTLED library instead default ADAFRUIT_LED
* SCALE_VOLUME_100 using 0..100 scaling in /set topics instead 0.255 (default)

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
1234567890

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -20,4 +20,5 @@ int abstractOut::isActive()
int abstractOut::Setup() int abstractOut::Setup()
{ {
if (item) item->setCmd(CMD_OFF); if (item) item->setCmd(CMD_OFF);
return 1;
} }

View File

@@ -1041,6 +1041,7 @@ uint16_t readCache::analogReadCached (uint8_t _pin)
uint8_t readCache::digitalReadCached(uint8_t _pin) uint8_t readCache::digitalReadCached(uint8_t _pin)
{ {
///TBD ///TBD
return 0;
} }
#ifdef MCP23017 #ifdef MCP23017

View File

@@ -575,6 +575,46 @@ return 0;
// Recursive function with small stack consumption // Recursive function with small stack consumption
// if cmd defined - execute Ctrl for any group members recursively // if cmd defined - execute Ctrl for any group members recursively
// else performs Activity check for group members and return true if any member is active // else performs Activity check for group members and return true if any member is active
bool digGroup (aJsonObject *itemArr, itemCmd *cmd, char* subItem)
{ if (!itemArr || itemArr->type!=aJson_Array) return false;
// Iterate across array of names
aJsonObject *i = itemArr->child;
configLocked++;
while (i) {
if (i->type == aJson_String)
{ //debugSerial<< i->valuestring<<endl;
aJsonObject *nextItem = aJson.getObjectItem(items, i->valuestring);
if (nextItem && nextItem->type == aJson_Array) //nextItem is correct item
{
Item it(nextItem);
if (cmd && it.isValid()) it.Ctrl(*cmd,subItem,false); //Execute (non recursive)
//Retrieve itemType
aJsonObject * itemtype = aJson.getArrayItem(nextItem,0);
if (itemtype && itemtype->type == aJson_Int && itemtype->valueint == CH_GROUP)
{ //is Group
aJsonObject * itemSubArray = aJson.getArrayItem(nextItem,1);
short res = digGroup(itemSubArray,cmd,subItem);
if (!cmd && res)
{
configLocked--;
return true; //Not execution, just activity check. If any channel is active - return true
}
}
else // Normal channel
if (!cmd && it.isValid() && it.isActive())
{
configLocked--;
return true; //Not execution, just activity check. If any channel is active - return true
}
}
}
i = i->next;
} //while
configLocked--;
return false;
}
/* LOCKS LEAK - maintenance critical fix
bool digGroup (aJsonObject *itemArr, itemCmd *cmd, char* subItem) bool digGroup (aJsonObject *itemArr, itemCmd *cmd, char* subItem)
{ if (!itemArr || itemArr->type!=aJson_Array) return false; { if (!itemArr || itemArr->type!=aJson_Array) return false;
// Iterate across array of names // Iterate across array of names
@@ -605,6 +645,7 @@ bool digGroup (aJsonObject *itemArr, itemCmd *cmd, char* subItem)
configLocked--; configLocked--;
return false; return false;
} }
*/
int Item::Ctrl(itemCmd cmd, char* subItem, bool allowRecursion) int Item::Ctrl(itemCmd cmd, char* subItem, bool allowRecursion)
{ {

View File

@@ -943,23 +943,23 @@ return false;
int itemCmd::doMapping(aJsonObject *mappingData) int itemCmd::doMapping(aJsonObject *mappingData)
{ {
return 0;
} }
int itemCmd::doReverseMapping (aJsonObject *mappingData) int itemCmd::doReverseMapping (aJsonObject *mappingData)
{ {
return 0;
} }
int itemCmd::doMappingCmd(aJsonObject *mappingData) int itemCmd::doMappingCmd(aJsonObject *mappingData)
{ {
return 0;
} }
int itemCmd::doReverseMappingCmd (aJsonObject *mappingData) int itemCmd::doReverseMappingCmd (aJsonObject *mappingData)
{ {
return 0;
} }
char * itemCmd::toString(char * Buffer, int bufLen, int sendFlags, bool scale100 ) char * itemCmd::toString(char * Buffer, int bufLen, int sendFlags, bool scale100 )

View File

@@ -403,7 +403,7 @@ void setupSyslog()
char *syslogServer = getStringFromConfig(udpSyslogArr, 0); char *syslogServer = getStringFromConfig(udpSyslogArr, 0);
if (n>1) syslogPort = aJson.getArrayItem(udpSyslogArr, 1)->valueint; if (n>1) syslogPort = aJson.getArrayItem(udpSyslogArr, 1)->valueint;
inet_ntoa_r(Ethernet.localIP(),syslogDeviceHostname,sizeof(syslogDeviceHostname)); _inet_ntoa_r(Ethernet.localIP(),syslogDeviceHostname,sizeof(syslogDeviceHostname));
infoSerial<<F("Syslog params:")<<syslogServer<<":"<<syslogPort<<":"<<syslogDeviceHostname<<endl; infoSerial<<F("Syslog params:")<<syslogServer<<":"<<syslogPort<<":"<<syslogDeviceHostname<<endl;
udpSyslog.server(syslogServer, syslogPort); udpSyslog.server(syslogServer, syslogPort);
udpSyslog.deviceHostname(syslogDeviceHostname); udpSyslog.deviceHostname(syslogDeviceHostname);
@@ -820,7 +820,9 @@ void onInitialStateInitLAN() {
WiFi.mode(WIFI_STA); // ESP 32 - WiFi.disconnect(); instead WiFi.mode(WIFI_STA); // ESP 32 - WiFi.disconnect(); instead
infoSerial<<F("WIFI AP/Password:")<<QUOTE(ESP_WIFI_AP)<<F("/")<<QUOTE(ESP_WIFI_PWD)<<endl; infoSerial<<F("WIFI AP/Password:")<<QUOTE(ESP_WIFI_AP)<<F("/")<<QUOTE(ESP_WIFI_PWD)<<endl;
#ifndef ARDUINO_ARCH_ESP32
wifi_set_macaddr(STATION_IF,mac); //ESP32 to check wifi_set_macaddr(STATION_IF,mac); //ESP32 to check
#endif
WiFi.begin(QUOTE(ESP_WIFI_AP), QUOTE(ESP_WIFI_PWD)); WiFi.begin(QUOTE(ESP_WIFI_AP), QUOTE(ESP_WIFI_PWD));
@@ -1256,24 +1258,24 @@ void cmdFunctionIp(int arg_cnt, char **args)
/* /*
#if defined(ARDUINO_ARCH_AVR) || defined(__SAM3X8E__) || defined(NRF5) #if defined(ARDUINO_ARCH_AVR) || defined(__SAM3X8E__) || defined(NRF5)
DNSClient dns; DNSClient dns;
#define inet_aton(cp, addr) dns.inet_aton(cp, addr) #define _inet_aton(cp, addr) dns._inet_aton(cp, addr)
#else #else
#define inet_aton(cp, addr) inet_aton(cp, addr) #define _inet_aton(cp, addr) _inet_aton(cp, addr)
#endif #endif
*/ */
// switch (arg_cnt) { // switch (arg_cnt) {
// case 5: // case 5:
if (arg_cnt>4 && inet_aton(args[4], ip)) saveFlash(OFFSET_MASK, ip); if (arg_cnt>4 && _inet_aton(args[4], ip)) saveFlash(OFFSET_MASK, ip);
else saveFlash(OFFSET_MASK, ip0); else saveFlash(OFFSET_MASK, ip0);
// case 4: // case 4:
if (arg_cnt>3 && inet_aton(args[3], ip)) saveFlash(OFFSET_GW, ip); if (arg_cnt>3 && _inet_aton(args[3], ip)) saveFlash(OFFSET_GW, ip);
else saveFlash(OFFSET_GW, ip0); else saveFlash(OFFSET_GW, ip0);
// case 3: // case 3:
if (arg_cnt>2 && inet_aton(args[2], ip)) saveFlash(OFFSET_DNS, ip); if (arg_cnt>2 && _inet_aton(args[2], ip)) saveFlash(OFFSET_DNS, ip);
else saveFlash(OFFSET_DNS, ip0); else saveFlash(OFFSET_DNS, ip0);
// case 2: // case 2:
if (arg_cnt>1 && inet_aton(args[1], ip)) saveFlash(OFFSET_IP, ip); if (arg_cnt>1 && _inet_aton(args[1], ip)) saveFlash(OFFSET_IP, ip);
else saveFlash(OFFSET_IP, ip0); else saveFlash(OFFSET_IP, ip0);
// break; // break;
@@ -1507,10 +1509,23 @@ lan_status loadConfigFromHttp(int arg_cnt, char **args)
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32) //|| defined (NRF5) #if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32) //|| defined (NRF5)
HTTPClient httpClient; HTTPClient httpClient;
#if defined(WIFI_ENABLE)
WiFiClient configEthClient;
#else
EthernetClient configEthClient;
#endif
String fullURI = "http://"; String fullURI = "http://";
fullURI+=configServer; fullURI+=configServer;
fullURI+=URI; fullURI+=URI;
#if defined(ARDUINO_ARCH_ESP8266)
httpClient.begin(configEthClient,fullURI);
#else
httpClient.begin(fullURI); httpClient.begin(fullURI);
#endif
int httpResponseCode = httpClient.GET(); int httpResponseCode = httpClient.GET();
if (httpResponseCode > 0) { if (httpResponseCode > 0) {
infoSerial.printf("[HTTP] GET... code: %d\n", httpResponseCode); infoSerial.printf("[HTTP] GET... code: %d\n", httpResponseCode);

View File

@@ -52,6 +52,7 @@ int out_dmx::getChanType()
} }
return 0; return 0;
} }
return 0;
} }
int out_dmx::PixelCtrl(itemCmd cmd, char* subItem, bool show) int out_dmx::PixelCtrl(itemCmd cmd, char* subItem, bool show)

View File

@@ -323,7 +323,7 @@ void ReadUniqueID( uint32_t * pdwUniqueID )
} }
int inet_aton(const char* aIPAddrString, IPAddress& aResult) int _inet_aton(const char* aIPAddrString, IPAddress& aResult)
{ {
// See if we've been given a valid IP address // See if we've been given a valid IP address
const char* p =aIPAddrString; const char* p =aIPAddrString;
@@ -393,7 +393,7 @@ int inet_aton(const char* aIPAddrString, IPAddress& aResult)
* @return either pointer to buf which now holds the ASCII * @return either pointer to buf which now holds the ASCII
* representation of addr or NULL if buf was too small * representation of addr or NULL if buf was too small
*/ */
char *inet_ntoa_r(IPAddress addr, char *buf, int buflen) char *_inet_ntoa_r(IPAddress addr, char *buf, int buflen)
{ {
short n; short n;
char intbuf[4]; char intbuf[4];

View File

@@ -54,8 +54,8 @@ void parseBytes(const char* str, char separator, byte* bytes, int maxBytes, int
int log(const char *str, ...); int log(const char *str, ...);
void printFloatValueToStr(float value, char *valstr); void printFloatValueToStr(float value, char *valstr);
void ReadUniqueID( uint32_t * pdwUniqueID ); void ReadUniqueID( uint32_t * pdwUniqueID );
int inet_aton(const char* aIPAddrString, IPAddress& aResult); int _inet_aton(const char* aIPAddrString, IPAddress& aResult);
char *inet_ntoa_r(IPAddress addr, char *buf, int buflen); char *_inet_ntoa_r(IPAddress addr, char *buf, int buflen);
void printIPAddress(IPAddress ipAddress); void printIPAddress(IPAddress ipAddress);
char* setTopic(char* buf, int8_t buflen, topicType tt, const char* suffix = NULL); char* setTopic(char* buf, int8_t buflen, topicType tt, const char* suffix = NULL);
void printUlongValueToStr(char *valstr, unsigned long value); void printUlongValueToStr(char *valstr, unsigned long value);

View File

@@ -94,7 +94,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/Ethernet2 https://github.com/anklimov/Ethernet2
ArduinoHttpClient ArduinoHttpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/knolleary/pubsubclient.git https://github.com/knolleary/pubsubclient.git
@@ -105,8 +105,8 @@ lib_deps =
Streaming Streaming
https://github.com/anklimov/NRFFlashStorage https://github.com/anklimov/NRFFlashStorage
https://github.com/adafruit/Adafruit_NeoPixel.git https://github.com/adafruit/Adafruit_NeoPixel.git
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
https://github.com/arcao/Syslog.git https://github.com/arcao/Syslog.git
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -141,7 +141,7 @@ lib_ignore =
lib_deps = lib_deps =
https://github.com/ebenolson/WIFIMANAGER-ESP32.git https://github.com/ebenolson/WIFIMANAGER-ESP32.git
https://github.com/zhouhan0126/WebServer-esp32.git https://github.com/zhouhan0126/WebServer-esp32.git
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/knolleary/pubsubclient.git https://github.com/knolleary/pubsubclient.git
Streaming Streaming
@@ -160,8 +160,8 @@ lib_deps =
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
M5Stack M5Stack
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
https://github.com/arcao/Syslog.git https://github.com/arcao/Syslog.git
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -199,7 +199,7 @@ lib_ignore =
lib_deps = lib_deps =
https://github.com/ebenolson/WIFIMANAGER-ESP32.git https://github.com/ebenolson/WIFIMANAGER-ESP32.git
https://github.com/zhouhan0126/WebServer-esp32.git https://github.com/zhouhan0126/WebServer-esp32.git
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/knolleary/pubsubclient.git https://github.com/knolleary/pubsubclient.git
Streaming Streaming
@@ -216,8 +216,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
https://github.com/arcao/Syslog.git https://github.com/arcao/Syslog.git
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -251,7 +251,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxDue https://github.com/anklimov/DmxDue
ArduinoHttpClient ArduinoHttpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/Ethernet5100 https://github.com/anklimov/Ethernet5100
@@ -267,8 +267,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -309,7 +309,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxDue https://github.com/anklimov/DmxDue
ArduinoHttpClient ArduinoHttpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/Ethernet.git https://github.com/anklimov/Ethernet.git
@@ -325,8 +325,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -355,7 +355,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxSimple https://github.com/anklimov/DmxSimple
https://github.com/anklimov/httpClient https://github.com/anklimov/httpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/DMXSerial https://github.com/anklimov/DMXSerial
@@ -371,8 +371,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -402,7 +402,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxSimple https://github.com/anklimov/DmxSimple
https://github.com/anklimov/httpClient https://github.com/anklimov/httpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/DMXSerial https://github.com/anklimov/DMXSerial
@@ -417,8 +417,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -464,7 +464,7 @@ lib_deps =
;https://github.com/anklimov/DS2482_OneWire ;https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/ESP-Dmx https://github.com/anklimov/ESP-Dmx
ESP8266HTTPClient ESP8266HTTPClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/knolleary/pubsubclient.git https://github.com/knolleary/pubsubclient.git
@@ -480,8 +480,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA.git https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -513,7 +513,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxSimple https://github.com/anklimov/DmxSimple
https://github.com/anklimov/httpClient https://github.com/anklimov/httpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/DMXSerial https://github.com/anklimov/DMXSerial
@@ -528,8 +528,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -562,7 +562,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxDue https://github.com/anklimov/DmxDue
ArduinoHttpClient ArduinoHttpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/Ethernet2 https://github.com/anklimov/Ethernet2
@@ -579,8 +579,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -617,7 +617,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxDue https://github.com/anklimov/DmxDue
ArduinoHttpClient ArduinoHttpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/Ethernet https://github.com/anklimov/Ethernet
@@ -634,8 +634,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -665,7 +665,7 @@ lib_deps =
https://github.com/anklimov/DS2482_OneWire https://github.com/anklimov/DS2482_OneWire
https://github.com/anklimov/DmxSimple https://github.com/anklimov/DmxSimple
https://github.com/anklimov/httpClient https://github.com/anklimov/httpClient
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
https://github.com/anklimov/ModbusMaster https://github.com/anklimov/ModbusMaster
https://github.com/anklimov/DMXSerial https://github.com/anklimov/DMXSerial
@@ -680,8 +680,8 @@ lib_deps =
ClosedCube HDC1080 ClosedCube HDC1080
SparkFun CCS811 Arduino Library@~1.0.7 SparkFun CCS811 Arduino Library@~1.0.7
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/anklimov/ArduinoOTA https://github.com/anklimov/ArduinoOTA#8feeea77869a5039857d2d23d0a46f8a8fe1514a
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
https://github.com/arcao/Syslog.git https://github.com/arcao/Syslog.git
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200
@@ -726,7 +726,7 @@ lib_ignore =
M5Stack M5Stack
ArduinoOTA ArduinoOTA
lib_deps = lib_deps =
https://github.com/anklimov/aJson https://github.com/anklimov/aJson#b063de5fb8041e039aaff06b21790edb12c22fdf
https://github.com/anklimov/CmdArduino https://github.com/anklimov/CmdArduino
ArduinoHttpClient ArduinoHttpClient
https://github.com/knolleary/pubsubclient.git https://github.com/knolleary/pubsubclient.git
@@ -734,7 +734,7 @@ lib_deps =
UIPEthernet UIPEthernet
https://github.com/anklimov/NRFFlashStorage https://github.com/anklimov/NRFFlashStorage
Adafruit NeoPixel Adafruit NeoPixel
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library#65438e94ef5cdeb73d7a79d37b8ca46ee9331cd2
SPI SPI
br3ttb/PID@^1.2.1 br3ttb/PID@^1.2.1
monitor_speed = 115200 monitor_speed = 115200