├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── Bug_report.md │ ├── Feature_request.md │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── config.yml ├── issue-close-app.yml └── stale.yml ├── .gitignore ├── .gitpod.yml ├── .travis.yml ├── API.md ├── BUILDS.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Doxyfile ├── I2CDEVICES.md ├── LICENSE.txt ├── MODULES.md ├── README.md ├── RELEASENOTES.md ├── TEMPLATES.md ├── api └── upload-arduino.php ├── arduino ├── espupload.py ├── version 2.3.0 │ ├── boards.txt │ ├── platform.txt │ └── tools │ │ └── sdk │ │ └── ld │ │ └── eagle.flash.1m0.ld ├── version 2.4.2 │ ├── boards.txt │ └── platform.txt └── version 2.6.1 │ ├── boards.txt │ └── platform.txt ├── esp8266.flash.1m0.ld ├── experimental ├── ArduinoNTPd │ ├── NTPPacket.cpp │ ├── NTPPacket.h │ ├── NTPServer.cpp │ └── NTPServer.h ├── README_GPS_UBX.md ├── README_MP3.md ├── support_flash_log.ino ├── xdrv_14_mp3.ino ├── xsns_91_pn532_i2c.ino ├── xsns_91_teleperiod.ino └── xsns_92_GPS_UBX.ino ├── include └── dummy.txt ├── lib ├── A4988_Stepper │ ├── README.adoc │ ├── keywords.txt │ ├── library.properties │ └── src │ │ ├── A4988_Stepper.cpp │ │ └── A4988_Stepper.h ├── AT24C256 │ ├── Eeprom24C128_256.cpp │ └── Eeprom24C128_256.h ├── Adafruit-GFX-Library-1.5.6-gemu-1.0 │ ├── .gitignore │ ├── .travis.yml │ ├── Adafruit_GFX.cpp │ ├── Adafruit_GFX.h │ ├── Adafruit_SPITFT.cpp │ ├── Adafruit_SPITFT.h │ ├── Adafruit_SPITFT_Macros.h │ ├── Fonts │ │ ├── FreeMono12pt7b.h │ │ ├── FreeMono18pt7b.h │ │ ├── FreeMono24pt7b.h │ │ ├── FreeMono9pt7b.h │ │ ├── FreeMonoBold12pt7b.h │ │ ├── FreeMonoBold18pt7b.h │ │ ├── FreeMonoBold24pt7b.h │ │ ├── FreeMonoBold9pt7b.h │ │ ├── FreeMonoBoldOblique12pt7b.h │ │ ├── FreeMonoBoldOblique18pt7b.h │ │ ├── FreeMonoBoldOblique24pt7b.h │ │ ├── FreeMonoBoldOblique9pt7b.h │ │ ├── FreeMonoOblique12pt7b.h │ │ ├── FreeMonoOblique18pt7b.h │ │ ├── FreeMonoOblique24pt7b.h │ │ ├── FreeMonoOblique9pt7b.h │ │ ├── FreeSans12pt7b.h │ │ ├── FreeSans18pt7b.h │ │ ├── FreeSans24pt7b.h │ │ ├── FreeSans9pt7b.h │ │ ├── FreeSansBold12pt7b.h │ │ ├── FreeSansBold18pt7b.h │ │ ├── FreeSansBold24pt7b.h │ │ ├── FreeSansBold9pt7b.h │ │ ├── FreeSansBoldOblique12pt7b.h │ │ ├── FreeSansBoldOblique18pt7b.h │ │ ├── FreeSansBoldOblique24pt7b.h │ │ ├── FreeSansBoldOblique9pt7b.h │ │ ├── FreeSansOblique12pt7b.h │ │ ├── FreeSansOblique18pt7b.h │ │ ├── FreeSansOblique24pt7b.h │ │ ├── FreeSansOblique9pt7b.h │ │ ├── FreeSerif12pt7b.h │ │ ├── FreeSerif18pt7b.h │ │ ├── FreeSerif24pt7b.h │ │ ├── FreeSerif9pt7b.h │ │ ├── FreeSerifBold12pt7b.h │ │ ├── FreeSerifBold18pt7b.h │ │ ├── FreeSerifBold24pt7b.h │ │ ├── FreeSerifBold9pt7b.h │ │ ├── FreeSerifBoldItalic12pt7b.h │ │ ├── FreeSerifBoldItalic18pt7b.h │ │ ├── FreeSerifBoldItalic24pt7b.h │ │ ├── FreeSerifBoldItalic9pt7b.h │ │ ├── FreeSerifItalic12pt7b.h │ │ ├── FreeSerifItalic18pt7b.h │ │ ├── FreeSerifItalic24pt7b.h │ │ ├── FreeSerifItalic9pt7b.h │ │ ├── Org_01.h │ │ ├── Picopixel.h │ │ ├── Tiny3x3a2pt7b.h │ │ └── TomThumb.h │ ├── README.md │ ├── examples │ │ └── mock_ili9341 │ │ │ └── mock_ili9341.ino │ ├── fontconvert │ │ ├── Makefile │ │ ├── fontconvert.c │ │ ├── fontconvert_win.md │ │ └── makefonts.sh │ ├── gfxfont.h │ ├── glcdfont.c │ ├── library.properties │ └── license.txt ├── Adafruit_CCS811-1.0.0.14 │ ├── .travis.yml │ ├── Adafruit_CCS811.cpp │ ├── Adafruit_CCS811.h │ ├── LICENSE │ ├── README.md │ ├── examples │ │ ├── CCS811_OLED_Demo │ │ │ └── CCS811_OLED_Demo.ino │ │ └── CCS811_test │ │ │ └── CCS811_test.ino │ └── library.properties ├── Adafruit_ILI9341-1.2.0-Tasmota-1.0 │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .travis.yml │ ├── Adafruit_ILI9341.cpp │ ├── Adafruit_ILI9341.h │ ├── README.md │ ├── examples │ │ ├── breakouttouchpaint │ │ │ ├── .esp8266.test.skip │ │ │ └── breakouttouchpaint.ino │ │ ├── fulltest_featherwing │ │ │ ├── .mega2560.test.skip │ │ │ └── fulltest_featherwing.ino │ │ ├── graphicstest │ │ │ └── graphicstest.ino │ │ ├── graphicstest_featherwing │ │ │ ├── .mega2560.test.skip │ │ │ └── graphicstest_featherwing.ino │ │ ├── onoffbutton │ │ │ └── onoffbutton.ino │ │ ├── onoffbutton_breakout │ │ │ ├── .esp8266.test.skip │ │ │ └── onoffbutton_breakout.ino │ │ ├── pictureEmbed │ │ │ ├── dragon.h │ │ │ └── pictureEmbed.ino │ │ ├── spitftbitmap │ │ │ └── spitftbitmap.ino │ │ ├── touchpaint │ │ │ └── touchpaint.ino │ │ └── touchpaint_featherwing │ │ │ ├── .mega2560.test.skip │ │ │ └── touchpaint_featherwing.ino │ └── library.properties ├── Adafruit_LED_Backpack-1.1.6 │ ├── Adafruit_LEDBackpack.cpp │ ├── Adafruit_LEDBackpack.h │ ├── README.md │ ├── README.txt │ ├── examples │ │ ├── HT16K33 │ │ │ └── HT16K33.ino │ │ ├── bargraph24 │ │ │ └── bargraph24.ino │ │ ├── bicolor8x8 │ │ │ └── bicolor8x8.pde │ │ ├── clock_sevenseg_ds1307 │ │ │ └── clock_sevenseg_ds1307.ino │ │ ├── clock_sevenseg_gps │ │ │ └── clock_sevenseg_gps.ino │ │ ├── matrix16x8 │ │ │ └── matrix16x8.ino │ │ ├── matrix8x8 │ │ │ └── matrix8x8.ino │ │ ├── minimatrix16x8 │ │ │ └── minimatrix16x8.ino │ │ ├── quadalphanum │ │ │ └── quadalphanum.ino │ │ ├── quadalphanum_mini │ │ │ └── quadalphanum_mini.ino │ │ ├── roboface │ │ │ └── roboface.pde │ │ ├── sevenseg │ │ │ └── sevenseg.ino │ │ └── wavface │ │ │ ├── wavface.pde │ │ │ └── wavs │ │ │ ├── beware_i.wav │ │ │ ├── ihunger.wav │ │ │ └── run_cowd.wav │ ├── library.properties │ └── license.txt ├── Adafruit_MAX31865-1.1.0-custom │ ├── Adafruit_MAX31865.cpp │ ├── Adafruit_MAX31865.h │ ├── README.md │ ├── README.txt │ ├── examples │ │ └── max31865 │ │ │ └── max31865.ino │ └── library.properties ├── Adafruit_SGP30-1.0.3 │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .travis.yml │ ├── Adafruit_SGP30.cpp │ ├── Adafruit_SGP30.h │ ├── README.md │ ├── examples │ │ └── sgp30test │ │ │ └── sgp30test.ino │ ├── library.properties │ └── license.txt ├── Adafruit_SH1106-gemu-1.0 │ ├── Adafruit_SH1106.cpp │ ├── Adafruit_SH1106.h │ ├── LICENSE.txt │ ├── README.md │ └── examples │ │ ├── sh1106_128x64_i2c │ │ └── sh1106_128x64_i2c.ino │ │ └── sh1106_128x64_spi │ │ └── sh1106_128x64_spi.ino ├── Adafruit_SSD1306-1.3.0-gemu-1.1 │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .travis.yml │ ├── Adafruit_SSD1306.cpp │ ├── Adafruit_SSD1306.h │ ├── README.md │ ├── examples │ │ ├── OLED_featherwing │ │ │ └── OLED_featherwing.ino │ │ ├── ssd1306_128x32_i2c │ │ │ └── ssd1306_128x32_i2c.ino │ │ ├── ssd1306_128x32_spi │ │ │ └── ssd1306_128x32_spi.ino │ │ ├── ssd1306_128x64_i2c │ │ │ └── ssd1306_128x64_i2c.ino │ │ └── ssd1306_128x64_spi │ │ │ └── ssd1306_128x64_spi.ino │ ├── library.properties │ ├── license.txt │ └── splash.h ├── Adafruit_SSD1351-gemu-1.0 │ ├── README.md │ ├── SSD1351.cpp │ ├── SSD1351.h │ ├── Tiger.c │ ├── Tiger.rgb │ ├── keywords.txt │ ├── library.properties │ └── spi_register.h ├── Adafruit_TSL2591_Library │ ├── Adafruit_TSL2591.cpp │ └── Adafruit_TSL2591.h ├── ArduinoJson-5.13.4 │ ├── ArduinoJson.h │ ├── CHANGELOG.md │ ├── LICENSE.md │ ├── README.md │ ├── examples │ │ ├── JsonConfigFile │ │ │ └── JsonConfigFile.ino │ │ ├── JsonGeneratorExample │ │ │ └── JsonGeneratorExample.ino │ │ ├── JsonHttpClient │ │ │ └── JsonHttpClient.ino │ │ ├── JsonParserExample │ │ │ └── JsonParserExample.ino │ │ ├── JsonServer │ │ │ └── JsonServer.ino │ │ ├── JsonUdpBeacon │ │ │ └── JsonUdpBeacon.ino │ │ ├── ProgmemExample │ │ │ └── ProgmemExample.ino │ │ └── StringExample │ │ │ └── StringExample.ino │ ├── keywords.txt │ ├── library.properties │ └── src │ │ ├── ArduinoJson.h │ │ ├── ArduinoJson.hpp │ │ └── ArduinoJson │ │ ├── Configuration.hpp │ │ ├── Data │ │ ├── Encoding.hpp │ │ ├── JsonBufferAllocated.hpp │ │ ├── JsonFloat.hpp │ │ ├── JsonInteger.hpp │ │ ├── JsonVariantAs.hpp │ │ ├── JsonVariantContent.hpp │ │ ├── JsonVariantDefault.hpp │ │ ├── JsonVariantType.hpp │ │ ├── List.hpp │ │ ├── ListConstIterator.hpp │ │ ├── ListIterator.hpp │ │ ├── ListNode.hpp │ │ ├── NonCopyable.hpp │ │ ├── ReferenceType.hpp │ │ └── ValueSaver.hpp │ │ ├── Deserialization │ │ ├── Comments.hpp │ │ ├── JsonParser.hpp │ │ ├── JsonParserImpl.hpp │ │ └── StringWriter.hpp │ │ ├── DynamicJsonBuffer.hpp │ │ ├── JsonArray.hpp │ │ ├── JsonArrayImpl.hpp │ │ ├── JsonArraySubscript.hpp │ │ ├── JsonBuffer.hpp │ │ ├── JsonBufferBase.hpp │ │ ├── JsonBufferImpl.hpp │ │ ├── JsonObject.hpp │ │ ├── JsonObjectImpl.hpp │ │ ├── JsonObjectSubscript.hpp │ │ ├── JsonPair.hpp │ │ ├── JsonVariant.hpp │ │ ├── JsonVariantBase.hpp │ │ ├── JsonVariantCasts.hpp │ │ ├── JsonVariantComparisons.hpp │ │ ├── JsonVariantImpl.hpp │ │ ├── JsonVariantOr.hpp │ │ ├── JsonVariantSubscripts.hpp │ │ ├── Polyfills │ │ ├── attributes.hpp │ │ ├── ctype.hpp │ │ ├── isFloat.hpp │ │ ├── isInteger.hpp │ │ ├── math.hpp │ │ ├── parseFloat.hpp │ │ └── parseInteger.hpp │ │ ├── RawJson.hpp │ │ ├── Serialization │ │ ├── DummyPrint.hpp │ │ ├── DynamicStringBuilder.hpp │ │ ├── FloatParts.hpp │ │ ├── IndentedPrint.hpp │ │ ├── JsonPrintable.hpp │ │ ├── JsonSerializer.hpp │ │ ├── JsonSerializerImpl.hpp │ │ ├── JsonWriter.hpp │ │ ├── Prettyfier.hpp │ │ ├── StaticStringBuilder.hpp │ │ └── StreamPrintAdapter.hpp │ │ ├── StaticJsonBuffer.hpp │ │ ├── StringTraits │ │ ├── ArduinoStream.hpp │ │ ├── CharPointer.hpp │ │ ├── FlashString.hpp │ │ ├── StdStream.hpp │ │ ├── StdString.hpp │ │ └── StringTraits.hpp │ │ ├── TypeTraits │ │ ├── EnableIf.hpp │ │ ├── FloatTraits.hpp │ │ ├── IsArray.hpp │ │ ├── IsBaseOf.hpp │ │ ├── IsChar.hpp │ │ ├── IsConst.hpp │ │ ├── IsFloatingPoint.hpp │ │ ├── IsIntegral.hpp │ │ ├── IsSame.hpp │ │ ├── IsSignedIntegral.hpp │ │ ├── IsUnsignedIntegral.hpp │ │ ├── IsVariant.hpp │ │ ├── RemoveConst.hpp │ │ └── RemoveReference.hpp │ │ └── version.hpp ├── BME680_driver-bme680_v3.5.9 │ ├── LICENSE │ ├── README.md │ ├── Self test │ │ ├── bme680_selftest.c │ │ └── bme680_selftest.h │ ├── bme680.c │ ├── bme680.h │ └── bme680_defs.h ├── C2Programmer-1.0.0 │ ├── README.md │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ └── src │ │ ├── c2.cpp │ │ ├── c2.h │ │ ├── ihx.cpp │ │ └── ihx.h ├── FT6236-gemu-1.0 │ ├── FT6236.cpp │ └── FT6236.h ├── FrogmoreScd30 │ ├── FrogmoreScd30.cpp │ └── FrogmoreScd30.h ├── HPMA115S0 │ ├── LICENSE.md │ ├── README.md │ ├── example │ │ └── example.ino │ ├── library.properties │ └── src │ │ ├── hpma115S0.cpp │ │ └── hpma115S0.h ├── I2Cdevlib-Core │ ├── .library.json │ ├── I2Cdev.cpp │ ├── I2Cdev.h │ ├── keywords.txt │ └── library.json ├── I2Cdevlib-MPU6050 │ ├── Examples │ │ ├── MPU6050_DMP6 │ │ │ ├── MPU6050_DMP6.ino │ │ │ └── Processing │ │ │ │ └── MPUTeapot │ │ │ │ └── MPUTeapot.pde │ │ └── MPU6050_raw │ │ │ └── MPU6050_raw.ino │ ├── MPU6050.cpp │ ├── MPU6050.h │ ├── MPU6050_6Axis_MotionApps20.h │ ├── MPU6050_9Axis_MotionApps41.h │ └── helper_3dmath.h ├── IRremoteESP8266-2.7.1 │ ├── CPPLINT.cfg │ ├── LICENSE.txt │ ├── README.md │ ├── README_fr.md │ ├── ReleaseNotes.md │ ├── SupportedProtocols.md │ ├── examples │ │ ├── CommonAcControl │ │ │ ├── CommonAcControl.ino │ │ │ └── platformio.ini │ │ ├── ControlSamsungAC │ │ │ ├── ControlSamsungAC.ino │ │ │ └── platformio.ini │ │ ├── DumbIRRepeater │ │ │ ├── DumbIRRepeater.ino │ │ │ └── platformio.ini │ │ ├── IRGCSendDemo │ │ │ ├── IRGCSendDemo.ino │ │ │ └── platformio.ini │ │ ├── IRGCTCPServer │ │ │ ├── IRGCTCPServer.ino │ │ │ └── platformio.ini │ │ ├── IRMQTTServer │ │ │ ├── IRMQTTServer.h │ │ │ ├── IRMQTTServer.ino │ │ │ └── platformio.ini │ │ ├── IRServer │ │ │ ├── IRServer.ino │ │ │ └── platformio.ini │ │ ├── IRrecvDemo │ │ │ ├── IRrecvDemo.ino │ │ │ └── platformio.ini │ │ ├── IRrecvDump │ │ │ ├── IRrecvDump.ino │ │ │ └── platformio.ini │ │ ├── IRrecvDumpV2 │ │ │ ├── IRrecvDumpV2.ino │ │ │ └── platformio.ini │ │ ├── IRsendDemo │ │ │ ├── IRsendDemo.ino │ │ │ └── platformio.ini │ │ ├── IRsendProntoDemo │ │ │ ├── IRsendProntoDemo.ino │ │ │ └── platformio.ini │ │ ├── JVCPanasonicSendDemo │ │ │ ├── JVCPanasonicSendDemo.ino │ │ │ └── platformio.ini │ │ ├── LGACSend │ │ │ ├── LGACSend.ino │ │ │ └── platformio.ini │ │ ├── SmartIRRepeater │ │ │ ├── SmartIRRepeater.ino │ │ │ └── platformio.ini │ │ ├── TurnOnArgoAC │ │ │ ├── TurnOnArgoAC.ino │ │ │ └── platformio.ini │ │ ├── TurnOnDaikinAC │ │ │ ├── TurnOnDaikinAC.ino │ │ │ └── platformio.ini │ │ ├── TurnOnFujitsuAC │ │ │ ├── TurnOnFujitsuAC.ino │ │ │ └── platformio.ini │ │ ├── TurnOnKelvinatorAC │ │ │ ├── TurnOnKelvinatorAC.ino │ │ │ └── platformio.ini │ │ ├── TurnOnMitsubishiAC │ │ │ ├── TurnOnMitsubishiAC.ino │ │ │ └── platformio.ini │ │ ├── TurnOnMitsubishiHeavyAc │ │ │ ├── TurnOnMitsubishiHeavyAc.ino │ │ │ └── platformio.ini │ │ ├── TurnOnPanasonicAC │ │ │ ├── TurnOnPanasonicAC.ino │ │ │ └── platformio.ini │ │ ├── TurnOnToshibaAC │ │ │ ├── TurnOnToshibaAC.ino │ │ │ └── platformio.ini │ │ ├── TurnOnTrotecAC │ │ │ ├── TurnOnTrotecAC.ino │ │ │ └── platformio.ini │ │ └── Web-AC-control │ │ │ ├── README.md │ │ │ ├── Web-AC-control.ino │ │ │ ├── platformio.ini │ │ │ ├── printscreen.png │ │ │ └── upload │ │ │ ├── favicon.ico │ │ │ ├── level_1_off.svg │ │ │ ├── level_1_on.svg │ │ │ ├── level_2_off.svg │ │ │ ├── level_2_on.svg │ │ │ ├── level_3_off.svg │ │ │ ├── level_3_on.svg │ │ │ ├── level_4_off.svg │ │ │ ├── level_4_on.svg │ │ │ ├── ui.html │ │ │ └── ui.js │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ ├── pylintrc │ ├── src │ │ ├── CPPLINT.cfg │ │ ├── IRac.cpp │ │ ├── IRac.h │ │ ├── IRrecv.cpp │ │ ├── IRrecv.h │ │ ├── IRremoteESP8266.h │ │ ├── IRsend.cpp │ │ ├── IRsend.h │ │ ├── IRtext.cpp │ │ ├── IRtext.h │ │ ├── IRtimer.cpp │ │ ├── IRtimer.h │ │ ├── IRutils.cpp │ │ ├── IRutils.h │ │ ├── i18n.h │ │ ├── ir_Aiwa.cpp │ │ ├── ir_Amcor.cpp │ │ ├── ir_Amcor.h │ │ ├── ir_Argo.cpp │ │ ├── ir_Argo.h │ │ ├── ir_Carrier.cpp │ │ ├── ir_Coolix.cpp │ │ ├── ir_Coolix.h │ │ ├── ir_Daikin.cpp │ │ ├── ir_Daikin.h │ │ ├── ir_Denon.cpp │ │ ├── ir_Dish.cpp │ │ ├── ir_Electra.cpp │ │ ├── ir_Electra.h │ │ ├── ir_Fujitsu.cpp │ │ ├── ir_Fujitsu.h │ │ ├── ir_GICable.cpp │ │ ├── ir_GlobalCache.cpp │ │ ├── ir_Goodweather.cpp │ │ ├── ir_Goodweather.h │ │ ├── ir_Gree.cpp │ │ ├── ir_Gree.h │ │ ├── ir_Haier.cpp │ │ ├── ir_Haier.h │ │ ├── ir_Hitachi.cpp │ │ ├── ir_Hitachi.h │ │ ├── ir_Inax.cpp │ │ ├── ir_JVC.cpp │ │ ├── ir_Kelvinator.cpp │ │ ├── ir_Kelvinator.h │ │ ├── ir_LG.cpp │ │ ├── ir_LG.h │ │ ├── ir_Lasertag.cpp │ │ ├── ir_Lego.cpp │ │ ├── ir_Lutron.cpp │ │ ├── ir_MWM.cpp │ │ ├── ir_Magiquest.cpp │ │ ├── ir_Magiquest.h │ │ ├── ir_Midea.cpp │ │ ├── ir_Midea.h │ │ ├── ir_Mitsubishi.cpp │ │ ├── ir_Mitsubishi.h │ │ ├── ir_MitsubishiHeavy.cpp │ │ ├── ir_MitsubishiHeavy.h │ │ ├── ir_NEC.cpp │ │ ├── ir_NEC.h │ │ ├── ir_Neoclima.cpp │ │ ├── ir_Neoclima.h │ │ ├── ir_Nikai.cpp │ │ ├── ir_Panasonic.cpp │ │ ├── ir_Panasonic.h │ │ ├── ir_Pioneer.cpp │ │ ├── ir_Pronto.cpp │ │ ├── ir_RC5_RC6.cpp │ │ ├── ir_RCMM.cpp │ │ ├── ir_Samsung.cpp │ │ ├── ir_Samsung.h │ │ ├── ir_Sanyo.cpp │ │ ├── ir_Sharp.cpp │ │ ├── ir_Sharp.h │ │ ├── ir_Sherwood.cpp │ │ ├── ir_Sony.cpp │ │ ├── ir_Tcl.cpp │ │ ├── ir_Tcl.h │ │ ├── ir_Teco.cpp │ │ ├── ir_Teco.h │ │ ├── ir_Toshiba.cpp │ │ ├── ir_Toshiba.h │ │ ├── ir_Trotec.cpp │ │ ├── ir_Trotec.h │ │ ├── ir_Vestel.cpp │ │ ├── ir_Vestel.h │ │ ├── ir_Whirlpool.cpp │ │ ├── ir_Whirlpool.h │ │ ├── ir_Whynter.cpp │ │ └── locale │ │ │ ├── README.md │ │ │ ├── de-CH.h │ │ │ ├── de-DE.h │ │ │ ├── defaults.h │ │ │ ├── en-AU.h │ │ │ ├── en-IE.h │ │ │ ├── en-UK.h │ │ │ ├── en-US.h │ │ │ ├── es-ES.h │ │ │ └── fr-FR.h │ ├── test │ │ ├── IRac_test.cpp │ │ ├── IRrecv_test.cpp │ │ ├── IRrecv_test.h │ │ ├── IRsend_test.cpp │ │ ├── IRsend_test.h │ │ ├── IRutils_test.cpp │ │ ├── Makefile │ │ ├── ir_Aiwa_test.cpp │ │ ├── ir_Amcor_test.cpp │ │ ├── ir_Argo_test.cpp │ │ ├── ir_Carrier_test.cpp │ │ ├── ir_Coolix_test.cpp │ │ ├── ir_Daikin_test.cpp │ │ ├── ir_Denon_test.cpp │ │ ├── ir_Dish_test.cpp │ │ ├── ir_Electra_test.cpp │ │ ├── ir_Fujitsu_test.cpp │ │ ├── ir_GICable_test.cpp │ │ ├── ir_GlobalCache_test.cpp │ │ ├── ir_Goodweather_test.cpp │ │ ├── ir_Gree_test.cpp │ │ ├── ir_Haier_test.cpp │ │ ├── ir_Hitachi_test.cpp │ │ ├── ir_Inax_test.cpp │ │ ├── ir_JVC_test.cpp │ │ ├── ir_Kelvinator_test.cpp │ │ ├── ir_LG_test.cpp │ │ ├── ir_Lasertag_test.cpp │ │ ├── ir_Lego_test.cpp │ │ ├── ir_Lutron_test.cpp │ │ ├── ir_MWM_test.cpp │ │ ├── ir_Magiquest_test.cpp │ │ ├── ir_Midea_test.cpp │ │ ├── ir_MitsubishiHeavy_test.cpp │ │ ├── ir_Mitsubishi_test.cpp │ │ ├── ir_NEC_test.cpp │ │ ├── ir_Neoclima_test.cpp │ │ ├── ir_Nikai_test.cpp │ │ ├── ir_Panasonic_test.cpp │ │ ├── ir_Pioneer_test.cpp │ │ ├── ir_Pronto_test.cpp │ │ ├── ir_RC5_RC6_test.cpp │ │ ├── ir_RCMM_test.cpp │ │ ├── ir_Samsung_test.cpp │ │ ├── ir_Sanyo_test.cpp │ │ ├── ir_Sharp_test.cpp │ │ ├── ir_Sherwood_test.cpp │ │ ├── ir_Sony_test.cpp │ │ ├── ir_Tcl_test.cpp │ │ ├── ir_Teco_test.cpp │ │ ├── ir_Toshiba_test.cpp │ │ ├── ir_Trotec_test.cpp │ │ ├── ir_Vestel_test.cpp │ │ ├── ir_Whirlpool_test.cpp │ │ └── ir_Whynter_test.cpp │ └── tools │ │ ├── Makefile │ │ ├── RawToGlobalCache.sh │ │ ├── auto_analyse_raw_data.py │ │ ├── auto_analyse_raw_data_test.py │ │ ├── gc_decode.cpp │ │ ├── generate_irtext_h.sh │ │ ├── mkkeywords │ │ ├── mode2_decode.cpp │ │ └── scrape_supported_devices.py ├── JaretBurkett_ILI9488-gemu-1.0 │ ├── ILI9488.cpp │ ├── ILI9488.h │ ├── README.md │ ├── examples │ │ └── graphicstest │ │ │ └── graphicstest.ino │ ├── keywords.txt │ ├── library.properties │ └── spi_register.h ├── Joba_Tsl2561-2.0.10 │ ├── .gitignore │ ├── .hgignore │ ├── .travis.yml │ ├── COPYING │ ├── COPYING.LESSER │ ├── README │ ├── examples │ │ ├── Autogain │ │ │ └── Autogain.ino │ │ ├── Simple │ │ │ └── Simple.ino │ │ ├── Testing │ │ │ └── Testing.ino │ │ ├── Utility │ │ │ └── Utility.ino │ │ ├── platformio.ini │ │ └── platformio.sh │ ├── lib │ │ └── readme.txt │ ├── library.json │ ├── library.properties │ ├── platformio.ini │ └── src │ │ ├── Tsl2561.cpp │ │ ├── Tsl2561.h │ │ ├── Tsl2561Util.cpp │ │ └── Tsl2561Util.h ├── LinkedList-1.2.3 │ ├── LICENSE.txt │ ├── LinkedList.h │ ├── README.md │ ├── examples │ │ ├── ClassList │ │ │ └── ClassList.pde │ │ └── SimpleIntegerList │ │ │ └── SimpleIntegerList.pde │ ├── keywords.txt │ ├── library.json │ └── library.properties ├── LiquidCrystal_I2C-1.1.3 │ ├── LiquidCrystal_I2C.cpp │ ├── LiquidCrystal_I2C.h │ ├── LiquidCrystal_I2C.o │ ├── README.md │ ├── examples │ │ ├── CustomChars │ │ │ └── CustomChars.pde │ │ ├── HelloWorld │ │ │ └── HelloWorld.pde │ │ └── SerialDisplay │ │ │ └── SerialDisplay.pde │ ├── keywords.txt │ ├── library.json │ └── library.properties ├── Mutichannel_Gas_Sensor │ ├── License.txt │ ├── README.md │ ├── examples │ │ ├── GetVersion │ │ │ └── GetVersion.ino │ │ ├── I2C_Address │ │ │ └── I2C_Address.ino │ │ ├── RawData │ │ │ └── RawData.ino │ │ ├── ReadSensorValue_Grove │ │ │ └── ReadSensorValue_Grove.ino │ │ ├── ReadSensorValue_Xadow │ │ │ └── ReadSensorValue_Xadow.ino │ │ ├── UpdateFrimware │ │ │ ├── UpdateFrimware.ino │ │ │ ├── bootloader_atmega168.h │ │ │ └── gpl.txt │ │ ├── calibration │ │ │ └── calibration.ino │ │ ├── factory_setting │ │ │ └── factory_setting.ino │ │ └── new_firmware │ │ │ └── new_firmware.ino │ ├── library.json │ ├── library.properties │ └── src │ │ ├── MutichannelGasSensor.cpp │ │ └── MutichannelGasSensor.h ├── NeoPixelBus-2.5.0.09 │ ├── .gitattributes │ ├── .github │ │ └── ISSUE_TEMPLATE │ │ │ ├── bug_report.md │ │ │ └── feature_request.md │ ├── .gitignore │ ├── COPYING │ ├── ReadMe.md │ ├── examples │ │ ├── DotStarTest │ │ │ └── DotStarTest.ino │ │ ├── NeoPixelBrightness │ │ │ └── NeoPixelBrightness.ino │ │ ├── NeoPixelGamma │ │ │ └── NeoPixelGamma.ino │ │ ├── NeoPixelTest │ │ │ └── NeoPixelTest.ino │ │ ├── animations │ │ │ ├── NeoPixelAnimation │ │ │ │ └── NeoPixelAnimation.ino │ │ │ ├── NeoPixelCylon │ │ │ │ └── NeoPixelCylon.ino │ │ │ ├── NeoPixelFunFadeInOut │ │ │ │ └── NeoPixelFunFadeInOut.ino │ │ │ ├── NeoPixelFunLoop │ │ │ │ └── NeoPixelFunLoop.ino │ │ │ ├── NeoPixelFunRandomChange │ │ │ │ └── NeoPixelFunRandomChange.ino │ │ │ └── NeoPixelRotateLoop │ │ │ │ └── NeoPixelRotateLoop.ino │ │ ├── bitmaps │ │ │ ├── NeoPixelBitmap │ │ │ │ ├── NeoPixelBitmap.ino │ │ │ │ ├── Strings.bmp │ │ │ │ └── StringsW.bmp │ │ │ ├── NeoPixelBufferCylon │ │ │ │ ├── Cylon.pdn │ │ │ │ ├── CylonGrb.h │ │ │ │ ├── CylonGrbw.h │ │ │ │ └── NeoPixelBufferCylon.ino │ │ │ ├── NeoPixelBufferShader │ │ │ │ └── NeoPixelBufferShader.ino │ │ │ └── NeoPixelDibTest │ │ │ │ └── NeoPixelDibTest.ino │ │ └── topologies │ │ │ ├── NeoPixelMosaicDump │ │ │ └── NeoPixelMosaicDump.ino │ │ │ ├── NeoPixelMosaicTest │ │ │ └── NeoPixelMosaicTest.ino │ │ │ ├── NeoPixelRingTopologyTest │ │ │ └── NeoPixelRingTopologyTest.ino │ │ │ ├── NeoPixelTilesDump │ │ │ └── NeoPixelTilesDump.ino │ │ │ ├── NeoPixelTilesTest │ │ │ └── NeoPixelTilesTest.ino │ │ │ ├── NeoPixelTopologyDump │ │ │ └── NeoPixelTopologyDump.ino │ │ │ └── NeoPixelTopologyTest │ │ │ └── NeoPixelTopologyTest.ino │ ├── extras │ │ └── curves │ │ │ ├── circular.png │ │ │ ├── cubic.png │ │ │ ├── different.png │ │ │ ├── exponential.png │ │ │ ├── gamma.png │ │ │ ├── pronounced.png │ │ │ ├── quadratic.png │ │ │ ├── quintic.png │ │ │ └── sinusoidal.png │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ └── src │ │ ├── NeoPixelAnimator.h │ │ ├── NeoPixelBrightnessBus.h │ │ ├── NeoPixelBus.h │ │ └── internal │ │ ├── DotStarAvrMethod.h │ │ ├── DotStarColorFeatures.h │ │ ├── DotStarGenericMethod.h │ │ ├── DotStarSpiMethod.h │ │ ├── Esp32_i2s.c │ │ ├── Esp32_i2s.h │ │ ├── HsbColor.cpp │ │ ├── HsbColor.h │ │ ├── HslColor.cpp │ │ ├── HslColor.h │ │ ├── HtmlColor.cpp │ │ ├── HtmlColor.h │ │ ├── HtmlColorNameStrings.cpp │ │ ├── HtmlColorNameStrings.h │ │ ├── HtmlColorNames.cpp │ │ ├── HtmlColorShortNames.cpp │ │ ├── Layouts.h │ │ ├── NeoArmMethod.h │ │ ├── NeoAvrMethod.h │ │ ├── NeoBitmapFile.h │ │ ├── NeoBuffer.h │ │ ├── NeoBufferContext.h │ │ ├── NeoBufferMethods.h │ │ ├── NeoColorFeatures.h │ │ ├── NeoDib.h │ │ ├── NeoEase.h │ │ ├── NeoEsp32I2sMethod.h │ │ ├── NeoEsp32RmtMethod.h │ │ ├── NeoEsp8266DmaMethod.h │ │ ├── NeoEsp8266UartMethod.cpp │ │ ├── NeoEsp8266UartMethod.h │ │ ├── NeoEspBitBangMethod.h │ │ ├── NeoGamma.cpp │ │ ├── NeoGamma.h │ │ ├── NeoHueBlend.h │ │ ├── NeoMosaic.h │ │ ├── NeoPixelAnimator.cpp │ │ ├── NeoPixelAvr.c │ │ ├── NeoPixelEsp.c │ │ ├── NeoRingTopology.h │ │ ├── NeoSpriteSheet.h │ │ ├── NeoTiles.h │ │ ├── NeoTopology.h │ │ ├── RgbColor.cpp │ │ ├── RgbColor.h │ │ ├── RgbwColor.cpp │ │ └── RgbwColor.h ├── NewPing-1.9.1 │ ├── README.md │ ├── examples │ │ ├── NewPing15SensorsTimer │ │ │ └── NewPing15SensorsTimer.pde │ │ ├── NewPing3Sensors │ │ │ └── NewPing3Sensors.pde │ │ ├── NewPingEventTimer │ │ │ └── NewPingEventTimer.pde │ │ ├── NewPingExample │ │ │ └── NewPingExample.pde │ │ ├── NewPingTimerMedian │ │ │ └── NewPingTimerMedian.pde │ │ └── TimerExample │ │ │ └── TimerExample.pde │ ├── keywords.txt │ ├── library.properties │ └── src │ │ ├── NewPing.cpp │ │ └── NewPing.h ├── OneWire-2.3.3.06 │ ├── OneWire.cpp │ ├── OneWire.h │ ├── examples │ │ ├── DS18x20_Temperature │ │ │ └── DS18x20_Temperature.pde │ │ ├── DS2408_Switch │ │ │ └── DS2408_Switch.pde │ │ └── DS250x_PROM │ │ │ └── DS250x_PROM.pde │ ├── keywords.txt │ ├── library.json │ └── library.properties ├── PubSubClient-EspEasy-2.7.12 │ ├── .gitignore │ ├── .travis.yml │ ├── CHANGES.txt │ ├── LICENSE.txt │ ├── README.md │ ├── examples │ │ ├── mqtt_auth │ │ │ └── mqtt_auth.ino │ │ ├── mqtt_basic │ │ │ └── mqtt_basic.ino │ │ ├── mqtt_esp8266 │ │ │ └── mqtt_esp8266.ino │ │ ├── mqtt_large_message │ │ │ └── mqtt_large_message.ino │ │ ├── mqtt_publish_in_callback │ │ │ └── mqtt_publish_in_callback.ino │ │ ├── mqtt_reconnect_nonblocking │ │ │ └── mqtt_reconnect_nonblocking.ino │ │ └── mqtt_stream │ │ │ └── mqtt_stream.ino │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ ├── src │ │ ├── PubSubClient.cpp │ │ └── PubSubClient.h │ └── tests │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── src │ │ ├── connect_spec.cpp │ │ ├── keepalive_spec.cpp │ │ ├── lib │ │ │ ├── Arduino.h │ │ │ ├── BDDTest.cpp │ │ │ ├── BDDTest.h │ │ │ ├── Buffer.cpp │ │ │ ├── Buffer.h │ │ │ ├── Client.h │ │ │ ├── IPAddress.cpp │ │ │ ├── IPAddress.h │ │ │ ├── Print.h │ │ │ ├── ShimClient.cpp │ │ │ ├── ShimClient.h │ │ │ ├── Stream.cpp │ │ │ ├── Stream.h │ │ │ └── trace.h │ │ ├── publish_spec.cpp │ │ ├── receive_spec.cpp │ │ └── subscribe_spec.cpp │ │ ├── testcases │ │ ├── __init__.py │ │ ├── mqtt_basic.py │ │ ├── mqtt_publish_in_callback.py │ │ └── settings.py │ │ └── testsuite.py ├── TasmotaModbus-1.2.0 │ ├── README.md │ ├── examples │ │ └── modbustest │ │ │ └── modbustest.ino │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ └── src │ │ ├── TasmotaModbus.cpp │ │ └── TasmotaModbus.h ├── TasmotaSerial-2.4.1 │ ├── README.md │ ├── examples │ │ └── swsertest │ │ │ └── swsertest.ino │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ └── src │ │ ├── TasmotaSerial.cpp │ │ └── TasmotaSerial.h ├── Xlatb_RA8876-gemu-1.0 │ ├── RA8876.cpp │ ├── RA8876.h │ ├── README.md │ ├── keywords.txt │ ├── library.properties │ └── spi_register.h ├── base64-1.1.1 │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── catch.cpp │ ├── catch.hpp │ ├── library.properties │ └── src │ │ └── base64.hpp ├── bearssl-esp8266 │ ├── bearssl_esp8266-customized.txt │ ├── conf │ │ └── esp8266.mk │ ├── library.properties │ └── src │ │ ├── aead │ │ ├── ccm.c │ │ ├── eax.c │ │ └── gcm.c │ │ ├── codec │ │ ├── ccopy.c │ │ ├── dec16be.c │ │ ├── dec16le.c │ │ ├── dec32be.c │ │ ├── dec32le.c │ │ ├── dec64be.c │ │ ├── dec64le.c │ │ ├── enc16be.c │ │ ├── enc16le.c │ │ ├── enc32be.c │ │ ├── enc32le.c │ │ ├── enc64be.c │ │ ├── enc64le.c │ │ ├── pemdec.c │ │ └── pemenc.c │ │ ├── ec │ │ ├── ec_all_m15.c │ │ ├── ec_c25519_i15.c │ │ ├── ec_curve25519.c │ │ ├── ec_default.c │ │ ├── ec_keygen.c │ │ ├── ec_p256_m15.c │ │ ├── ec_prime_i15.c │ │ ├── ec_pubkey.c │ │ ├── ec_secp256r1.c │ │ ├── ec_secp384r1.c │ │ ├── ec_secp521r1.c │ │ ├── ecdsa_atr.c │ │ ├── ecdsa_default_sign_asn1.c │ │ ├── ecdsa_default_sign_raw.c │ │ ├── ecdsa_default_vrfy_asn1.c │ │ ├── ecdsa_default_vrfy_raw.c │ │ ├── ecdsa_i15_bits.c │ │ ├── ecdsa_i15_sign_asn1.c │ │ ├── ecdsa_i15_sign_raw.c │ │ ├── ecdsa_i15_vrfy_asn1.c │ │ ├── ecdsa_i15_vrfy_raw.c │ │ └── ecdsa_rta.c │ │ ├── hash │ │ ├── dig_oid.c │ │ ├── dig_size.c │ │ ├── ghash_ctmul.c │ │ ├── ghash_ctmul32.c │ │ ├── ghash_ctmul64.c │ │ ├── ghash_pclmul.c │ │ ├── md5.c │ │ ├── md5sha1.c │ │ ├── mgf1.c │ │ ├── multihash.c │ │ ├── sha1.c │ │ ├── sha2big.c │ │ └── sha2small.c │ │ ├── int │ │ ├── i15_add.c │ │ ├── i15_bitlen.c │ │ ├── i15_decmod.c │ │ ├── i15_decode.c │ │ ├── i15_decred.c │ │ ├── i15_encode.c │ │ ├── i15_fmont.c │ │ ├── i15_iszero.c │ │ ├── i15_moddiv.c │ │ ├── i15_modpow.c │ │ ├── i15_modpow2.c │ │ ├── i15_montmul.c │ │ ├── i15_mulacc.c │ │ ├── i15_muladd.c │ │ ├── i15_ninv15.c │ │ ├── i15_reduce.c │ │ ├── i15_rshift.c │ │ ├── i15_sub.c │ │ └── i15_tmont.c │ │ ├── kdf │ │ ├── hkdf.c │ │ └── shake.c │ │ ├── mac │ │ ├── hmac.c │ │ └── hmac_ct.c │ │ ├── pgmspace_bearssl.h │ │ ├── rand │ │ ├── aesctr_drbg.c │ │ ├── hmac_drbg.c │ │ └── sysrng.c │ │ ├── rsa │ │ ├── rsa_default_keygen.c │ │ ├── rsa_default_modulus.c │ │ ├── rsa_default_oaep_decrypt.c │ │ ├── rsa_default_oaep_encrypt.c │ │ ├── rsa_default_pkcs1_sign.c │ │ ├── rsa_default_pkcs1_vrfy.c │ │ ├── rsa_default_priv.c │ │ ├── rsa_default_privexp.c │ │ ├── rsa_default_pss_sign.c │ │ ├── rsa_default_pss_vrfy.c │ │ ├── rsa_default_pub.c │ │ ├── rsa_default_pubexp.c │ │ ├── rsa_i15_keygen.c │ │ ├── rsa_i15_modulus.c │ │ ├── rsa_i15_oaep_decrypt.c │ │ ├── rsa_i15_oaep_encrypt.c │ │ ├── rsa_i15_pkcs1_sign.c │ │ ├── rsa_i15_pkcs1_vrfy.c │ │ ├── rsa_i15_priv.c │ │ ├── rsa_i15_privexp.c │ │ ├── rsa_i15_pss_sign.c │ │ ├── rsa_i15_pss_vrfy.c │ │ ├── rsa_i15_pub.c │ │ ├── rsa_i15_pubexp.c │ │ ├── rsa_oaep_pad.c │ │ ├── rsa_oaep_unpad.c │ │ ├── rsa_pkcs1_sig_pad.c │ │ ├── rsa_pkcs1_sig_unpad.c │ │ ├── rsa_pss_sig_pad.c │ │ ├── rsa_pss_sig_unpad.c │ │ └── rsa_ssl_decrypt.c │ │ ├── settings.c │ │ ├── ssl │ │ ├── prf.c │ │ ├── prf_md5sha1.c │ │ ├── prf_sha256.c │ │ ├── prf_sha384.c │ │ ├── ssl_ccert_single_ec.c │ │ ├── ssl_ccert_single_rsa.c │ │ ├── ssl_client.c │ │ ├── ssl_client_default_rsapub.c │ │ ├── ssl_client_full.c │ │ ├── ssl_engine.c │ │ ├── ssl_engine_default_aescbc.c │ │ ├── ssl_engine_default_aesccm.c │ │ ├── ssl_engine_default_aesgcm.c │ │ ├── ssl_engine_default_chapol.c │ │ ├── ssl_engine_default_descbc.c │ │ ├── ssl_engine_default_ec.c │ │ ├── ssl_engine_default_ecdsa.c │ │ ├── ssl_engine_default_rsavrfy.c │ │ ├── ssl_hashes.c │ │ ├── ssl_hs_client.c │ │ ├── ssl_hs_server.c │ │ ├── ssl_io.c │ │ ├── ssl_keyexport.c │ │ ├── ssl_lru.c │ │ ├── ssl_rec_cbc.c │ │ ├── ssl_rec_ccm.c │ │ ├── ssl_rec_chapol.c │ │ ├── ssl_rec_gcm.c │ │ ├── ssl_scert_single_ec.c │ │ └── ssl_scert_single_rsa.c │ │ ├── symcipher │ │ ├── aes_big_cbcdec.c │ │ ├── aes_big_cbcenc.c │ │ ├── aes_big_ctr.c │ │ ├── aes_big_ctrcbc.c │ │ ├── aes_big_dec.c │ │ ├── aes_big_enc.c │ │ ├── aes_common.c │ │ ├── aes_ct.c │ │ ├── aes_ct64.c │ │ ├── aes_ct64_cbcdec.c │ │ ├── aes_ct64_cbcenc.c │ │ ├── aes_ct64_ctr.c │ │ ├── aes_ct64_ctrcbc.c │ │ ├── aes_ct64_dec.c │ │ ├── aes_ct64_enc.c │ │ ├── aes_ct_cbcdec.c │ │ ├── aes_ct_cbcenc.c │ │ ├── aes_ct_ctr.c │ │ ├── aes_ct_ctrcbc.c │ │ ├── aes_ct_dec.c │ │ ├── aes_ct_enc.c │ │ ├── aes_small_cbcdec.c │ │ ├── aes_small_cbcenc.c │ │ ├── aes_small_ctr.c │ │ ├── aes_small_ctrcbc.c │ │ ├── aes_small_dec.c │ │ ├── aes_small_enc.c │ │ ├── chacha20_ct.c │ │ ├── chacha20_sse2.c │ │ ├── des_ct.c │ │ ├── des_ct_cbcdec.c │ │ ├── des_ct_cbcenc.c │ │ ├── des_support.c │ │ ├── des_tab.c │ │ ├── des_tab_cbcdec.c │ │ ├── des_tab_cbcenc.c │ │ ├── poly1305_ctmul.c │ │ ├── poly1305_ctmul32.c │ │ ├── poly1305_ctmulq.c │ │ └── poly1305_i15.c │ │ ├── t_bearssl.h │ │ ├── t_bearssl_aead.h │ │ ├── t_bearssl_block.h │ │ ├── t_bearssl_ec.h │ │ ├── t_bearssl_hash.h │ │ ├── t_bearssl_hmac.h │ │ ├── t_bearssl_kdf.h │ │ ├── t_bearssl_pem.h │ │ ├── t_bearssl_prf.h │ │ ├── t_bearssl_rand.h │ │ ├── t_bearssl_rsa.h │ │ ├── t_bearssl_ssl.h │ │ ├── t_bearssl_tasmota_config.h │ │ ├── t_bearssl_x509.h │ │ ├── t_config.h │ │ ├── t_inner.h │ │ └── x509 │ │ ├── asn1enc.c │ │ ├── encode_ec_pk8der.c │ │ ├── encode_ec_rawder.c │ │ ├── encode_rsa_pk8der.c │ │ ├── encode_rsa_rawder.c │ │ ├── pkey_decoder.c │ │ ├── skey_decoder.c │ │ ├── x509_decoder.c │ │ ├── x509_knownkey.c │ │ ├── x509_minimal.c │ │ └── x509_minimal_full.c ├── esp-epaper-29-ws-20171230-gemu-1.1 │ ├── .gitignore │ ├── .travis.yml │ ├── Arduino │ │ ├── epd2in9-demo │ │ │ └── epd2in9-demo.ino │ │ └── libraries │ │ │ └── readme.txt │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── components │ │ └── epaper-29-ws │ │ │ ├── component.mk │ │ │ ├── epaper-29-ws.c │ │ │ ├── epaper-29-ws.h │ │ │ ├── epaper_font.c │ │ │ ├── epaper_fonts.h │ │ │ ├── font16.c │ │ │ ├── font20.c │ │ │ ├── font8.c │ │ │ ├── imagedata.cpp │ │ │ └── imagedata.h │ ├── docs │ │ ├── Doxyfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── conf.py │ │ ├── gen-dxd.py │ │ ├── index.rst │ │ ├── link-roles.py │ │ ├── repo_util.py │ │ └── requirements.txt │ ├── library.properties │ ├── main │ │ ├── README.md │ │ ├── component.mk │ │ ├── esp-epaper-29-ws.c │ │ ├── imagedata.c │ │ └── imagedata.h │ ├── pictures │ │ ├── 2.9inch_e-Paper_Datasheet.pdf │ │ ├── e-paper-and-esp-sample-image.jpg │ │ ├── e-paper-and-esp-sample-text.jpg │ │ ├── espresif-logo.bmp │ │ └── image-conversion-setup.png │ └── src │ │ ├── epd2in9.cpp │ │ ├── epd2in9.h │ │ ├── epd4in2.cpp │ │ ├── epd4in2.h │ │ ├── epdif.cpp │ │ ├── epdif.h │ │ ├── epdpaint.cpp │ │ ├── epdpaint.h │ │ ├── font12.c │ │ ├── font16.c │ │ ├── font20.c │ │ ├── font24.c │ │ ├── font8.c │ │ ├── fonts.h │ │ ├── renderer.cpp │ │ └── renderer.h ├── esp-knx-ip-0.5.2 │ ├── DPT.h │ ├── LICENSE │ ├── README.md │ ├── esp-knx-ip-config.cpp │ ├── esp-knx-ip-conversion.cpp │ ├── esp-knx-ip-send.cpp │ ├── esp-knx-ip-webserver.cpp │ ├── esp-knx-ip.cpp │ ├── esp-knx-ip.h │ ├── examples │ │ ├── environment-sensor │ │ │ └── environment-sensor.ino │ │ ├── sonoff │ │ │ └── sonoff.ino │ │ └── static-config │ │ │ └── static-config.ino │ ├── keywords.txt │ └── library.properties ├── rc-switch-2.6.2.13 │ ├── .gitignore │ ├── .travis.yml │ ├── RCSwitch.cpp │ ├── RCSwitch.h │ ├── README.md │ ├── examples │ │ ├── ReceiveDemo_Advanced │ │ │ ├── ReceiveDemo_Advanced.ino │ │ │ └── output.ino │ │ ├── ReceiveDemo_Simple │ │ │ └── ReceiveDemo_Simple.ino │ │ ├── SendDemo │ │ │ └── SendDemo.ino │ │ ├── TypeA_WithDIPSwitches │ │ │ └── TypeA_WithDIPSwitches.ino │ │ ├── TypeA_WithDIPSwitches_Lightweight │ │ │ └── TypeA_WithDIPSwitches_Lightweight.ino │ │ ├── TypeB_WithRotaryOrSlidingSwitches │ │ │ └── TypeB_WithRotaryOrSlidingSwitches.ino │ │ ├── TypeC_Intertechno │ │ │ └── TypeC_Intertechno.ino │ │ ├── TypeD_REV │ │ │ └── TypeD_REV.ino │ │ └── Webserver │ │ │ └── Webserver.ino │ ├── keywords.txt │ ├── library.json │ └── library.properties └── vl53l0x-arduino-1.02 │ ├── .travis.yml │ ├── LICENSE.txt │ ├── README.md │ ├── VL53L0X.cpp │ ├── VL53L0X.h │ ├── examples │ ├── Continuous │ │ └── Continuous.ino │ └── Single │ │ └── Single.ino │ ├── keywords.txt │ └── library.properties ├── pio ├── espupload.py ├── http-uploader.py ├── name-firmware.py ├── obj-dump.py ├── sftp-uploader.py └── strip-floats.py ├── platformio.ini ├── platformio_override_sample.ini ├── platformio_tasmota_env.ini ├── tasmota ├── CHANGELOG.md ├── Parsing.cpp ├── StackThunk_light.cpp ├── StackThunk_light.h ├── WiFiClientSecureLightBearSSL.cpp ├── WiFiClientSecureLightBearSSL.h ├── core_esp8266_timer.c ├── core_esp8266_wiring_digital.c ├── core_esp8266_wiring_pwm.c ├── i18n.h ├── language │ ├── bg-BG.h │ ├── cs-CZ.h │ ├── de-DE.h │ ├── el-GR.h │ ├── en-GB.h │ ├── es-ES.h │ ├── fr-FR.h │ ├── he-HE.h │ ├── hu-HU.h │ ├── it-IT.h │ ├── ko-KO.h │ ├── nl-NL.h │ ├── pl-PL.h │ ├── pt-BR.h │ ├── pt-PT.h │ ├── ru-RU.h │ ├── sk-SK.h │ ├── sv-SE.h │ ├── tr-TR.h │ ├── uk-UK.h │ ├── zh-CN.h │ └── zh-TW.h ├── my_user_config.h ├── sendemail.h ├── sendemail.ino ├── settings.h ├── settings.ino ├── support.ino ├── support_button.ino ├── support_command.ino ├── support_esptool.ino ├── support_features.ino ├── support_float.ino ├── support_legacy_cores.ino ├── support_rotary.ino ├── support_rtc.ino ├── support_static_buffer.ino ├── support_switch.ino ├── support_tasmota.ino ├── support_udp.ino ├── support_wifi.ino ├── tasmota.h ├── tasmota.ino ├── tasmota_ca.ino ├── tasmota_post.h ├── tasmota_template.h ├── tasmota_version.h ├── user_config_override_sample.h ├── xdrv_01_webserver.ino ├── xdrv_02_mqtt.ino ├── xdrv_03_energy.ino ├── xdrv_04_light.ino ├── xdrv_05_irremote.ino ├── xdrv_05_irremote_full.ino ├── xdrv_06_snfbridge.ino ├── xdrv_07_domoticz.ino ├── xdrv_08_serial_bridge.ino ├── xdrv_09_timers.ino ├── xdrv_10_rules.ino ├── xdrv_10_scripter.ino ├── xdrv_11_knx.ino ├── xdrv_12_home_assistant.ino ├── xdrv_13_display.ino ├── xdrv_14_mp3.ino ├── xdrv_15_pca9685.ino ├── xdrv_16_tuyamcu.ino ├── xdrv_17_rcswitch.ino ├── xdrv_18_armtronix_dimmers.ino ├── xdrv_19_ps16dz_dimmer.ino ├── xdrv_20_hue.ino ├── xdrv_21_wemo.ino ├── xdrv_22_sonoff_ifan.ino ├── xdrv_23_zigbee_0_constants.ino ├── xdrv_23_zigbee_3_devices.ino ├── xdrv_23_zigbee_5_converters.ino ├── xdrv_23_zigbee_6_commands.ino ├── xdrv_23_zigbee_7_statemachine.ino ├── xdrv_23_zigbee_8_parsers.ino ├── xdrv_23_zigbee_9_impl.ino ├── xdrv_24_buzzer.ino ├── xdrv_25_A4988_Stepper.ino ├── xdrv_26_ariluxrf.ino ├── xdrv_27_shutter.ino ├── xdrv_28_pcf8574.ino ├── xdrv_29_deepsleep.ino ├── xdrv_30_exs_dimmer.ino ├── xdrv_31_tasmota_slave.ino ├── xdrv_99_debug.ino ├── xdrv_interface.ino ├── xdsp_01_lcd.ino ├── xdsp_02_ssd1306.ino ├── xdsp_03_matrix.ino ├── xdsp_04_ili9341.ino ├── xdsp_05_epaper_29.ino ├── xdsp_06_epaper_42.ino ├── xdsp_07_sh1106.ino ├── xdsp_08_ILI9488.ino ├── xdsp_09_SSD1351.ino ├── xdsp_10_RA8876.ino ├── xdsp_interface.ino ├── xlgt_01_ws2812.ino ├── xlgt_02_my92x1.ino ├── xlgt_03_sm16716.ino ├── xlgt_04_sm2135.ino ├── xlgt_05_sonoff_l1.ino ├── xlgt_interface.ino ├── xnrg_01_hlw8012.ino ├── xnrg_02_cse7766.ino ├── xnrg_03_pzem004t.ino ├── xnrg_04_mcp39f501.ino ├── xnrg_05_pzem_ac.ino ├── xnrg_06_pzem_dc.ino ├── xnrg_07_ade7953.ino ├── xnrg_08_sdm120.ino ├── xnrg_09_dds2382.ino ├── xnrg_10_sdm630.ino ├── xnrg_11_ddsu666.ino ├── xnrg_12_solaxX1.ino ├── xnrg_interface.ino ├── xsns_01_counter.ino ├── xsns_02_analog.ino ├── xsns_04_snfsc.ino ├── xsns_05_ds18x20.ino ├── xsns_06_dht.ino ├── xsns_07_sht1x.ino ├── xsns_08_htu21.ino ├── xsns_09_bmp.ino ├── xsns_10_bh1750.ino ├── xsns_11_veml6070.ino ├── xsns_12_ads1115.ino ├── xsns_13_ina219.ino ├── xsns_14_sht3x.ino ├── xsns_15_mhz19.ino ├── xsns_16_tsl2561.ino ├── xsns_17_senseair.ino ├── xsns_18_pms5003.ino ├── xsns_19_mgs.ino ├── xsns_20_novasds.ino ├── xsns_21_sgp30.ino ├── xsns_22_sr04.ino ├── xsns_24_si1145.ino ├── xsns_26_lm75ad.ino ├── xsns_27_apds9960.ino ├── xsns_28_tm1638.ino ├── xsns_29_mcp230xx.ino ├── xsns_30_mpr121.ino ├── xsns_31_ccs811.ino ├── xsns_32_mpu6050.ino ├── xsns_33_ds3231.ino ├── xsns_34_hx711.ino ├── xsns_35_tx20.ino ├── xsns_36_mgc3130.ino ├── xsns_37_rfsensor.ino ├── xsns_38_az7798.ino ├── xsns_39_max31855.ino ├── xsns_40_pn532.ino ├── xsns_41_max44009.ino ├── xsns_42_scd30.ino ├── xsns_43_hre.ino ├── xsns_44_sps30.ino ├── xsns_45_vl53l0x.ino ├── xsns_46_MLX90614.ino ├── xsns_47_max31865.ino ├── xsns_48_chirp.ino ├── xsns_50_paj7620.ino ├── xsns_51_rdm6300.ino ├── xsns_52_ibeacon.ino ├── xsns_53_sml.ino ├── xsns_54_ina226.ino ├── xsns_55_hih_series.ino ├── xsns_56_hpma.ino ├── xsns_57_tsl2591.ino ├── xsns_interface.ino └── xx2c_interface.ino ├── tools ├── Esptool │ ├── EraseFlash.bat │ ├── ReadFlash.bat │ ├── VerifyFlash.bat │ └── WriteFlash.bat ├── decode-config.md ├── decode-status.py ├── fw_efm8bb1 │ ├── RF-Bridge-EFM8BB1-20181023.hex │ ├── RF-Bridge-EFM8BB1-20181102.hex │ ├── RF-Bridge-EFM8BB1-20181127.hex │ └── RF_Bridge_iTead_Original.hex ├── fw_server │ ├── fw-server.py │ └── fw │ │ └── README ├── logo │ ├── TASMOTA_FullLogo_Vector.svg │ └── TASMOTA_Symbol_Vector.svg └── theov2_attiny85 │ ├── TheoV2Sensor1 │ └── TheoV2Sensor1.ino │ ├── TheoV2Sensor2 │ └── TheoV2Sensor2.ino │ └── info.txt └── updateDocs.sh /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=off 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | --- 5 | 6 | 12 | 13 | **Have you looked for this feature in other issues and in the wiki?** 14 | 15 | **Is your feature request related to a problem? Please describe.** 16 | _A clear and concise description of what the problem is._ 17 | 18 | **Describe the solution you'd like** 19 | _A clear and concise description of what you want to happen._ 20 | 21 | **Describe alternatives you've considered** 22 | _A clear and concise description of any alternative solutions or features you've considered._ 23 | 24 | **Additional context** 25 | _Add any other context or screenshots about the feature request here._ 26 | 27 | **(Please, remember to close the issue when the problem has been addressed)** 28 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Tasmota Docs 4 | url: https://tasmota.github.io/docs/#/ 5 | about: All the information related to Tasmota 6 | - name: Tasmota Support Chat 7 | url: https://discord.gg/Ks2Kzd4 8 | about: Chat for feedback, questions and troubleshooting. 9 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description: 2 | 3 | **Related issue (if applicable):** fixes # 4 | 5 | ## Checklist: 6 | - [ ] The pull request is done against the latest dev branch 7 | - [ ] Only relevant files were touched 8 | - [ ] Only one feature/fix was added per PR. 9 | - [ ] The code change is tested and works on core 2.6.1 10 | - [ ] The code change pass travis tests. **Your PR cannot be merged unless tests pass** 11 | - [ ] I accept the [CLA](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md#contributor-license-agreement-cla). 12 | -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | # Configuration for sentiment-bot - https://github.com/behaviorbot/sentiment-bot 2 | 3 | # *Required* toxicity threshold between 0 and .99 with the higher numbers being the most toxic 4 | # Anything higher than this threshold will be marked as toxic and commented on 5 | sentimentBotToxicityThreshold: .7 6 | 7 | # *Required* Comment to reply with 8 | sentimentBotReplyComment: > 9 | Please be sure to review the code of conduct and be respectful of other users. 10 | 11 | # Note: the bot will only work if your repository has a Code of Conduct 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## OS specific ######## 2 | .DS_Store 3 | .fuse_hidden* 4 | 5 | ## Project files ###### 6 | .pioenvs 7 | .piolibdeps 8 | .clang_complete 9 | .gcc-flags.json 10 | .cache 11 | tasmota/user_config_override.h 12 | build 13 | <<<<<<< HEAD 14 | experimental 15 | README.md 16 | ======= 17 | firmware.map 18 | <<<<<<< HEAD 19 | >>>>>>> e592fa9c024a518d73ed13e7ccfdfc8c2f7f525c 20 | ======= 21 | firmware.asm 22 | <<<<<<< HEAD 23 | >>>>>>> 397070900af3e0f0fc4785e68242b1668d584e91 24 | ======= 25 | tasmota*.bin 26 | tasmota*.map 27 | platformio_override.ini 28 | >>>>>>> 8cf2d15ed1c09645cc1c33fca9a6376ed4b635f0 29 | 30 | ## Visual Studio Code specific ###### 31 | .vscode 32 | .vscode/.browse.c_cpp.db* 33 | .vscode/c_cpp_properties.json 34 | .vscode/launch.json 35 | *.bak 36 | -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | tasks: 2 | - before: pip install -U platformio 3 | command: platformio run -e tasmota 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - '3.7' 4 | sudo: false 5 | install: 6 | - pip install -U platformio 7 | - platformio upgrade 8 | - platformio update 9 | 10 | cache: false 11 | 12 | env: 13 | - ENV=tasmota 14 | - ENV=tasmota-minimal 15 | - ENV=tasmota-basic 16 | - ENV=tasmota-knx 17 | - ENV=tasmota-sensors 18 | - ENV=tasmota-display 19 | - ENV=tasmota-ir 20 | - ENV=tasmota-BG 21 | - ENV=tasmota-BR 22 | - ENV=tasmota-CN 23 | - ENV=tasmota-CZ 24 | - ENV=tasmota-DE 25 | - ENV=tasmota-ES 26 | - ENV=tasmota-FR 27 | - ENV=tasmota-GR 28 | - ENV=tasmota-HE 29 | - ENV=tasmota-HU 30 | - ENV=tasmota-IT 31 | - ENV=tasmota-KO 32 | - ENV=tasmota-NL 33 | - ENV=tasmota-PL 34 | - ENV=tasmota-PT 35 | - ENV=tasmota-RU 36 | - ENV=tasmota-SE 37 | - ENV=tasmota-SK 38 | - ENV=tasmota-TR 39 | - ENV=tasmota-TW 40 | - ENV=tasmota-UK 41 | 42 | script: 43 | - platformio run -e $ENV 44 | before_deploy: 45 | - for file in .pioenvs/*/firmware.bin; do cp $file ${file%/*}.bin; done 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sonoff-Tasmota-Playground 2 | 3 | User Contributed Sonoff-Tasmota Core, Driver and Sensors. 4 | 5 | The code in here can be used to test functionality with Sonoff-Tasmota. 6 | 7 | -------------------------------------------------------------------------------- /api/upload-arduino.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /arduino/version 2.3.0/tools/sdk/ld/eagle.flash.1m0.ld: -------------------------------------------------------------------------------- 1 | /* Flash Split for 1M chips, no SPIFFS */ 2 | /* sketch 999KB */ 3 | /* eeprom 20KB */ 4 | 5 | MEMORY 6 | { 7 | dport0_0_seg : org = 0x3FF00000, len = 0x10 8 | dram0_0_seg : org = 0x3FFE8000, len = 0x14000 9 | iram1_0_seg : org = 0x40100000, len = 0x8000 10 | irom0_0_seg : org = 0x40201010, len = 0xf9ff0 11 | } 12 | 13 | PROVIDE ( _SPIFFS_start = 0x402FB000 ); 14 | PROVIDE ( _SPIFFS_end = 0x402FB000 ); 15 | PROVIDE ( _SPIFFS_page = 0 ); 16 | PROVIDE ( _SPIFFS_block = 0 ); 17 | 18 | INCLUDE "../ld/eagle.app.v6.common.ld" 19 | -------------------------------------------------------------------------------- /esp8266.flash.1m0.ld: -------------------------------------------------------------------------------- 1 | /* Flash Split for 1M chips */ 2 | /* sketch 999KB */ 3 | /* eeprom 20KB */ 4 | 5 | MEMORY 6 | { 7 | dport0_0_seg : org = 0x3FF00000, len = 0x10 8 | dram0_0_seg : org = 0x3FFE8000, len = 0x14000 9 | iram1_0_seg : org = 0x40100000, len = 0x8000 10 | irom0_0_seg : org = 0x40201010, len = 0xf9ff0 11 | } 12 | 13 | PROVIDE ( _SPIFFS_start = 0x402FB000 ); 14 | PROVIDE ( _SPIFFS_end = 0x402FB000 ); 15 | PROVIDE ( _SPIFFS_page = 0 ); 16 | PROVIDE ( _SPIFFS_block = 0 ); 17 | 18 | INCLUDE "esp8266.flash.common.ld" 19 | -------------------------------------------------------------------------------- /experimental/ArduinoNTPd/NTPPacket.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * File: NTPPacket.cpp 3 | * Description: 4 | * NTP packet representation. 5 | * Author: Mooneer Salem 6 | * License: New BSD License 7 | */ 8 | 9 | #include "NTPPacket.h" 10 | 11 | void NtpPacket::swapEndian() 12 | { 13 | reverseBytes_(&rootDelay); 14 | reverseBytes_(&rootDispersion); 15 | reverseBytes_(&referenceTimestampSeconds); 16 | reverseBytes_(&referenceTimestampFraction); 17 | reverseBytes_(&originTimestampSeconds); 18 | reverseBytes_(&originTimestampFraction); 19 | reverseBytes_(&receiveTimestampSeconds); 20 | reverseBytes_(&receiveTimestampFraction); 21 | reverseBytes_(&transmitTimestampSeconds); 22 | reverseBytes_(&transmitTimestampFraction); 23 | } 24 | 25 | void NtpPacket::reverseBytes_(uint32_t *number) 26 | { 27 | char buf[4]; 28 | char *numberAsChar = (char*)number; 29 | 30 | buf[0] = numberAsChar[3]; 31 | buf[1] = numberAsChar[2]; 32 | buf[2] = numberAsChar[1]; 33 | buf[3] = numberAsChar[0]; 34 | 35 | numberAsChar[0] = buf[0]; 36 | numberAsChar[1] = buf[1]; 37 | numberAsChar[2] = buf[2]; 38 | numberAsChar[3] = buf[3]; 39 | } 40 | -------------------------------------------------------------------------------- /experimental/ArduinoNTPd/NTPServer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * File: NTPServer.h 3 | * Description: 4 | * NTP server implementation. 5 | * Author: Mooneer Salem 6 | * License: New BSD License 7 | */ 8 | 9 | #ifndef NTP_SERVER_H 10 | #define NTP_SERVER_H 11 | 12 | class NtpServer 13 | { 14 | public: 15 | NtpServer(WiFiUDP Port) 16 | { 17 | timeServerPort_=Port; 18 | } 19 | 20 | /* 21 | * Begins listening for NTP requests. 22 | */ 23 | bool beginListening(void); 24 | 25 | 26 | /* 27 | * Processes a single NTP request. 28 | */ 29 | bool processOneRequest(uint32_t utc, uint32_t millisecs); 30 | 31 | private: 32 | WiFiUDP timeServerPort_; 33 | }; 34 | 35 | #endif // NTP_SERVER_H 36 | -------------------------------------------------------------------------------- /include/dummy.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/A4988_Stepper/README.adoc: -------------------------------------------------------------------------------- 1 | Stepper Library for Tasmota 2 | 3 | This Class allows you to control bipolar stepper motors. To use it you will need an A4988-StepperDriverCircuit, connected at least with 2 GPIO's (direction and step) and of cause a stepper motor. 4 | 5 | == License == 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General Public 18 | License along with this library; if not, write to the Free Software 19 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | -------------------------------------------------------------------------------- /lib/A4988_Stepper/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Test 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | A4988_Stepper KEYWORD1 A4988_Stepper 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | doMove KEYWORD2 16 | doRotate KEYWORD2 17 | setRPM KEYWORD2 18 | setSPR KEYWORD2 19 | setMIS KEYWORD2 20 | version KEYWORD2 21 | 22 | ####################################### 23 | # Constants (LITERAL1) 24 | ####################################### 25 | -------------------------------------------------------------------------------- /lib/A4988_Stepper/library.properties: -------------------------------------------------------------------------------- 1 | name=A4988_Stepper 2 | version=0.0.1 3 | author=Tim Leuschner 4 | maintainer=Tim Leuschner 5 | sentence=Allows Tasmota to control stepper motors, connected to A4988-StepperDriverCircuit. 6 | paragraph=This library allows you to control bipolar stepper motors, controlled by A4988-stepperDriverCircuit. 7 | category=Device Control 8 | url= 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit-GFX-Library-1.5.6-gemu-1.0/.gitignore: -------------------------------------------------------------------------------- 1 | default.vim 2 | fontconvert/fontconvert 3 | # Our handy .gitignore for automation ease 4 | Doxyfile* 5 | doxygen_sqlite3.db 6 | html -------------------------------------------------------------------------------- /lib/Adafruit-GFX-Library-1.5.6-gemu-1.0/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | cache: 4 | directories: 5 | - ~/arduino_ide 6 | - ~/.arduino15/packages/ 7 | git: 8 | depth: false 9 | quiet: true 10 | env: 11 | global: 12 | - PRETTYNAME="Adafruit GFX Library" 13 | 14 | before_install: 15 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 16 | 17 | install: 18 | - arduino --install-library "Adafruit ILI9341" 19 | 20 | script: 21 | - build_main_platforms 22 | 23 | # Generate and deploy documentation 24 | after_success: 25 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 26 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) 27 | -------------------------------------------------------------------------------- /lib/Adafruit-GFX-Library-1.5.6-gemu-1.0/Adafruit_SPITFT_Macros.h: -------------------------------------------------------------------------------- 1 | // THIS FILE INTENTIONALLY LEFT BLANK. 2 | 3 | // Macros previously #defined here have been made into (mostly) inline 4 | // functions in the Adafruit_SPITFT class. Other libraries might still 5 | // contain code trying to #include this header file, so until everything's 6 | // updated this file still exists (but doing nothing) to avoid trouble. 7 | -------------------------------------------------------------------------------- /lib/Adafruit-GFX-Library-1.5.6-gemu-1.0/fontconvert/Makefile: -------------------------------------------------------------------------------- 1 | all: fontconvert 2 | 3 | CC = gcc 4 | CFLAGS = -Wall -I/usr/local/include/freetype2 -I/usr/include/freetype2 -I/usr/include 5 | LIBS = -lfreetype 6 | 7 | fontconvert: fontconvert.c 8 | $(CC) $(CFLAGS) $< $(LIBS) -o $@ 9 | strip $@ 10 | 11 | clean: 12 | rm -f fontconvert 13 | -------------------------------------------------------------------------------- /lib/Adafruit-GFX-Library-1.5.6-gemu-1.0/fontconvert/makefonts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Ugly little Bash script, generates a set of .h files for GFX using 4 | # GNU FreeFont sources. There are three fonts: 'Mono' (Courier-like), 5 | # 'Sans' (Helvetica-like) and 'Serif' (Times-like); four styles: regular, 6 | # bold, oblique or italic, and bold+oblique or bold+italic; and four 7 | # sizes: 9, 12, 18 and 24 point. No real error checking or anything, 8 | # this just powers through all the combinations, calling the fontconvert 9 | # utility and redirecting the output to a .h file for each combo. 10 | 11 | # Adafruit_GFX repository does not include the source outline fonts 12 | # (huge zipfile, different license) but they're easily acquired: 13 | # http://savannah.gnu.org/projects/freefont/ 14 | 15 | convert=./fontconvert 16 | inpath=~/Desktop/freefont/ 17 | outpath=../Fonts/ 18 | fonts=(FreeMono FreeSans FreeSerif) 19 | styles=("" Bold Italic BoldItalic Oblique BoldOblique) 20 | sizes=(9 12 18 24) 21 | 22 | for f in ${fonts[*]} 23 | do 24 | for index in ${!styles[*]} 25 | do 26 | st=${styles[$index]} 27 | for si in ${sizes[*]} 28 | do 29 | infile=$inpath$f$st".ttf" 30 | if [ -f $infile ] # Does source combination exist? 31 | then 32 | outfile=$outpath$f$st$si"pt7b.h" 33 | # printf "%s %s %s > %s\n" $convert $infile $si $outfile 34 | $convert $infile $si > $outfile 35 | fi 36 | done 37 | done 38 | done 39 | -------------------------------------------------------------------------------- /lib/Adafruit-GFX-Library-1.5.6-gemu-1.0/gfxfont.h: -------------------------------------------------------------------------------- 1 | // Font structures for newer Adafruit_GFX (1.1 and later). 2 | // Example fonts are included in 'Fonts' directory. 3 | // To use a font in your Arduino sketch, #include the corresponding .h 4 | // file and pass address of GFXfont struct to setFont(). Pass NULL to 5 | // revert to 'classic' fixed-space bitmap font. 6 | 7 | #ifndef _GFXFONT_H_ 8 | #define _GFXFONT_H_ 9 | 10 | /// Font data stored PER GLYPH 11 | typedef struct { 12 | uint16_t bitmapOffset; ///< Pointer into GFXfont->bitmap 13 | uint8_t width; ///< Bitmap dimensions in pixels 14 | uint8_t height; ///< Bitmap dimensions in pixels 15 | uint8_t xAdvance; ///< Distance to advance cursor (x axis) 16 | int8_t xOffset; ///< X dist from cursor pos to UL corner 17 | int8_t yOffset; ///< Y dist from cursor pos to UL corner 18 | } GFXglyph; 19 | 20 | /// Data stored for FONT AS A WHOLE 21 | typedef struct { 22 | uint8_t *bitmap; ///< Glyph bitmaps, concatenated 23 | GFXglyph *glyph; ///< Glyph array 24 | uint8_t first; ///< ASCII extents (first char) 25 | uint8_t last; ///< ASCII extents (last char) 26 | uint8_t yAdvance; ///< Newline distance (y axis) 27 | } GFXfont; 28 | 29 | #endif // _GFXFONT_H_ 30 | -------------------------------------------------------------------------------- /lib/Adafruit-GFX-Library-1.5.6-gemu-1.0/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit GFX Library 2 | version=1.5.6 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Adafruit GFX graphics core library, this is the 'core' class that all our other graphics libraries derive from. 6 | paragraph=Install this library in addition to the display library for your hardware. 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit-GFX-Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_CCS811-1.0.0.14/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | 4 | # Blacklist 5 | branches: 6 | except: 7 | - gh-pages 8 | 9 | env: 10 | global: 11 | - PRETTYNAME="Adafruit CCS811 Arduino Library" 12 | # Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" 13 | # - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile 14 | 15 | before_install: 16 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 17 | 18 | install: 19 | - arduino --install-library "Adafruit SSD1306","Adafruit GFX Library" 20 | 21 | script: 22 | - build_main_platforms 23 | 24 | # Generate and deploy documentation 25 | after_success: 26 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 27 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) -------------------------------------------------------------------------------- /lib/Adafruit_CCS811-1.0.0.14/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Adafruit Industries 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /lib/Adafruit_CCS811-1.0.0.14/README.md: -------------------------------------------------------------------------------- 1 | # Adafruit CCS811 Library [![Build Status](https://travis-ci.org/adafruit/Adafruit_CCS811.svg?branch=master)](https://travis-ci.org/adafruit/Adafruit_CCS811) 2 | 3 | 4 | 5 | This is a library for the Adafruit CCS811 gas sensor breakout board: 6 | * https://www.adafruit.com/product/3566 7 | 8 | Check out the links above for our tutorials and wiring diagrams. This chip uses I2C to communicate 9 | 10 | Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! 11 | 12 | Written by Dean Miller for Adafruit Industries. 13 | MIT license, all text above must be included in any redistribution 14 | -------------------------------------------------------------------------------- /lib/Adafruit_CCS811-1.0.0.14/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit CCS811 Library 2 | version=1.0.0 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=This is a library for the Adafruit CCS811 I2C gas sensor breakout. 6 | paragraph=This is a library for the Adafruit CCS811 I2C gas sensor breakou. 7 | category=Sensors 8 | url=https://github.com/adafruit/Adafruit_CCS811 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.gitignore: -------------------------------------------------------------------------------- 1 | # Our handy .gitignore for automation ease 2 | Doxyfile* 3 | doxygen_sqlite3.db 4 | html 5 | -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | 4 | cache: 5 | directories: 6 | - ~/arduino_ide 7 | # Caches Arduino IDE + ESP32 platform 8 | - ~/.arduino15/packages/ 9 | # Caches Arduino platforms 10 | git: 11 | depth: false 12 | quiet: true 13 | 14 | # Blacklist 15 | branches: 16 | except: 17 | - gh-pages 18 | 19 | env: 20 | global: 21 | - PRETTYNAME="Adafruit ILI9341 Arduino Library" 22 | # Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" 23 | # - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile 24 | 25 | before_install: 26 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 27 | 28 | install: 29 | - arduino --install-library "Adafruit GFX Library","Adafruit STMPE610","Adafruit TouchScreen" 30 | 31 | script: 32 | - build_main_platforms 33 | 34 | # Generate and deploy documentation 35 | after_success: 36 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 37 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) 38 | 39 | -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/.esp8266.test.skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/.esp8266.test.skip -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/.mega2560.test.skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/.mega2560.test.skip -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/.mega2560.test.skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/.mega2560.test.skip -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/.esp8266.test.skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/.esp8266.test.skip -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/.mega2560.test.skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/.mega2560.test.skip -------------------------------------------------------------------------------- /lib/Adafruit_ILI9341-1.2.0-Tasmota-1.0/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit ILI9341 2 | version=1.2.0 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Library for Adafruit ILI9341 displays 6 | paragraph=Library for Adafruit ILI9341 displays 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit_ILI9341 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_LED_Backpack-1.1.6/examples/wavface/wavs/beware_i.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_LED_Backpack-1.1.6/examples/wavface/wavs/beware_i.wav -------------------------------------------------------------------------------- /lib/Adafruit_LED_Backpack-1.1.6/examples/wavface/wavs/ihunger.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_LED_Backpack-1.1.6/examples/wavface/wavs/ihunger.wav -------------------------------------------------------------------------------- /lib/Adafruit_LED_Backpack-1.1.6/examples/wavface/wavs/run_cowd.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_LED_Backpack-1.1.6/examples/wavface/wavs/run_cowd.wav -------------------------------------------------------------------------------- /lib/Adafruit_LED_Backpack-1.1.6/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit LED Backpack Library 2 | version=1.1.6 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Adafruit LED Backpack Library for our 8x8 matrix and 7-segment LED backpacks 6 | paragraph=Adafruit LED Backpack Library for our 8x8 matrix and 7-segment LED backpacks 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit-LED-Backpack-Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_LED_Backpack-1.1.6/license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012 Adafruit Industries 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/Adafruit_MAX31865-1.1.0-custom/README.md: -------------------------------------------------------------------------------- 1 | # Adafruit_MAX31865 2 | Arduino Library for Adafruit MAX31865 RTD Sensor 3 | -------------------------------------------------------------------------------- /lib/Adafruit_MAX31865-1.1.0-custom/README.txt: -------------------------------------------------------------------------------- 1 | This is the Adafruit MAX31856 Arduino Library 2 | 3 | Tested and works great with the Adafruit Thermocouple Breakout w/MAX31856 4 | 5 | * http://www.adafruit.com/products/3328 6 | 7 | These sensors use SPI to communicate, 4 pins are required to 8 | interface 9 | 10 | Adafruit invests time and resources providing this open source code, 11 | please support Adafruit and open-source hardware by purchasing 12 | products from Adafruit! 13 | 14 | Written by Limor Fried/Ladyada for Adafruit Industries. 15 | BSD license, check license.txt for more information 16 | All text above must be included in any redistribution -------------------------------------------------------------------------------- /lib/Adafruit_MAX31865-1.1.0-custom/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit MAX31865 library 2 | version=1.0.1 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Library for the Adafruit RTD Amplifier breakout with MAX31865 6 | paragraph=Library for the Adafruit RTD Amplifier breakout with MAX31865 7 | category=Sensors 8 | url=https://github.com/adafruit/Adafruit_MAX31865 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_SGP30-1.0.3/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | Doxyfile* 3 | doxygen_sqlite3.db 4 | html -------------------------------------------------------------------------------- /lib/Adafruit_SGP30-1.0.3/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | 4 | # Blacklist 5 | branches: 6 | except: 7 | - gh-pages 8 | 9 | env: 10 | global: 11 | - PRETTYNAME="Adafruit SGP30 Arduino Library" 12 | # Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" 13 | # - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile 14 | 15 | before_install: 16 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 17 | 18 | #install: 19 | # - arduino --install-library "Adafruit ILI9341","Adafruit GFX Library" 20 | 21 | script: 22 | - build_main_platforms 23 | 24 | # Generate and deploy documentation 25 | after_success: 26 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 27 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) -------------------------------------------------------------------------------- /lib/Adafruit_SGP30-1.0.3/README.md: -------------------------------------------------------------------------------- 1 | Adafruit_SGP30 2 | ================ 3 | 4 | This is the Adafruit SGP30 Gas / Air Quality I2C sensor library 5 | 6 | Tested and works great with the Aadafruit SGP30 Breakout Board 7 | * http://www.adafruit.com/products/3709 8 | 9 | This chip uses I2C to communicate, 2 pins are required to interface 10 | 11 | Adafruit invests time and resources providing this open source code, 12 | please support Adafruit and open-source hardware by purchasing 13 | products from Adafruit! 14 | 15 | Written by Limor Fried for Adafruit Industries. 16 | BSD license, check license.txt for more information 17 | All text above must be included in any redistribution 18 | 19 | -------------------------------------------------------------------------------- /lib/Adafruit_SGP30-1.0.3/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit SGP30 Sensor 2 | version=1.0.3 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=This is an Arduino library for the Adafruit SGP30 Gas / Air Quality Sensor 6 | paragraph=This is an Arduino library for the Adafruit SGP30 Gas / Air Quality Sensor 7 | category=Sensors 8 | url=https://github.com/adafruit/Adafruit_SGP30 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_SH1106-gemu-1.0/README.md: -------------------------------------------------------------------------------- 1 | Adafruit_SH1106 2 | =============== 3 | 4 | Adafruit graphic library for SH1106 driver lcds. 5 | 6 | some small oled lcd use SH1106 driver. 7 | 8 | I change the adafruit SSD1306 to SH1106 9 | 10 | SH1106 driver similar to SSD1306. thus, just change the display() method. 11 | 12 | However, SH1106 driver don't provide several functions such as scroll commands. 13 | 14 | 15 | Adafruit-GFX-Library 16 | https://github.com/adafruit/Adafruit-GFX-Library 17 | -------------------------------------------------------------------------------- /lib/Adafruit_SSD1306-1.3.0-gemu-1.1/.gitignore: -------------------------------------------------------------------------------- 1 | # Our handy .gitignore for automation ease 2 | Doxyfile* 3 | doxygen_sqlite3.db 4 | html 5 | -------------------------------------------------------------------------------- /lib/Adafruit_SSD1306-1.3.0-gemu-1.1/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | cache: 4 | directories: 5 | - ~/arduino_ide 6 | - ~/.arduino15/packages/ 7 | git: 8 | depth: false 9 | quiet: true 10 | env: 11 | global: 12 | - ARDUINO_IDE_VERSION="1.8.5" 13 | - PRETTYNAME="Adafruit SSD1306" 14 | # Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" 15 | # - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile 16 | 17 | before_install: 18 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 19 | 20 | install: 21 | - arduino --install-library "Adafruit GFX Library" 22 | 23 | script: 24 | - build_main_platforms 25 | 26 | # Generate and deploy documentation 27 | after_success: 28 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 29 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) 30 | -------------------------------------------------------------------------------- /lib/Adafruit_SSD1306-1.3.0-gemu-1.1/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit SSD1306 2 | version=1.3.0 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=SSD1306 oled driver library for monochrome 128x64 and 128x32 displays 6 | paragraph=SSD1306 oled driver library for monochrome 128x64 and 128x32 displays 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit_SSD1306 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_SSD1351-gemu-1.0/README.md: -------------------------------------------------------------------------------- 1 | ### SSD3115 Arduino Library 2 | This library is for support for the 128x128 oled controller over 3 wire SPI. It is based heavily on the [Adafruit_SSD1351](https://github.com/adafruit/Adafruit-SSD1351-library) library and is designed to work with the [Adafruit_GFX library](https://github.com/adafruit/Adafruit-GFX-Library). 3 | -------------------------------------------------------------------------------- /lib/Adafruit_SSD1351-gemu-1.0/Tiger.rgb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/Adafruit_SSD1351-gemu-1.0/Tiger.rgb -------------------------------------------------------------------------------- /lib/Adafruit_SSD1351-gemu-1.0/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | SSD3115 KEYWORD1 10 | 11 | 12 | ####################################### 13 | # Methods and Functions (KEYWORD2) 14 | ####################################### 15 | 16 | setRotation KEYWORD2 17 | setAddrWindow KEYWORD2 18 | pushColor KEYWORD2 19 | drawPixel KEYWORD2 20 | drawFastVLine KEYWORD2 21 | drawFastHLine KEYWORD2 22 | fillRect KEYWORD2 23 | setRotation KEYWORD2 24 | setRotation KEYWORD2 25 | height KEYWORD2 26 | width KEYWORD2 27 | invertDisplay KEYWORD2 28 | drawImage KEYWORD2 29 | setScrollArea KEYWORD2 30 | scroll KEYWORD2 31 | -------------------------------------------------------------------------------- /lib/Adafruit_SSD1351-gemu-1.0/library.properties: -------------------------------------------------------------------------------- 1 | name=SSD3115 2 | version=1.0 3 | author=Limor Fried/Ladyada 4 | maintainer=Limor Fried/Ladyada 5 | sentence=Library for SSD3115 displays 6 | paragraph=Library for SSD3115 displays 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit-SSD1351-library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/ArduinoJson.h: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #include "src/ArduinoJson.h" 6 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | --------------------- 3 | 4 | Copyright © 2014-2018 Benoit BLANCHON 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 7 | 8 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 9 | 10 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/keywords.txt: -------------------------------------------------------------------------------- 1 | JsonArray KEYWORD1 2 | JsonObject KEYWORD1 3 | JsonVariant KEYWORD1 4 | StaticJsonBuffer KEYWORD1 5 | DynamicJsonBuffer KEYWORD1 6 | add KEYWORD2 7 | createArray KEYWORD2 8 | createNestedArray KEYWORD2 9 | createNestedObject KEYWORD2 10 | createObject KEYWORD2 11 | parseArray KEYWORD2 12 | parseObject KEYWORD2 13 | prettyPrintTo KEYWORD2 14 | printTo KEYWORD2 15 | success KEYWORD2 16 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/library.properties: -------------------------------------------------------------------------------- 1 | name=ArduinoJson 2 | version=5.13.4 3 | author=Benoit Blanchon 4 | maintainer=Benoit Blanchon 5 | sentence=An efficient and elegant JSON library for Arduino. 6 | paragraph=ArduinoJson supports serialization, deserialization, fixed allocation, zero-copy, streams, and more. It is the most popular Arduino library on GitHub. Check out arduinojson.org for a comprehensive documentation. 7 | category=Data Processing 8 | url=https://arduinojson.org/?utm_source=meta&utm_medium=library.properties 9 | architectures=* 10 | repository=https://github.com/bblanchon/ArduinoJson.git 11 | license=MIT 12 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson.h: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #ifdef __cplusplus 8 | 9 | #include "ArduinoJson.hpp" 10 | 11 | using namespace ArduinoJson; 12 | 13 | #else 14 | 15 | #error ArduinoJson requires a C++ compiler, please change file extension to .cc or .cpp 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "ArduinoJson/version.hpp" 8 | 9 | #include "ArduinoJson/DynamicJsonBuffer.hpp" 10 | #include "ArduinoJson/JsonArray.hpp" 11 | #include "ArduinoJson/JsonObject.hpp" 12 | #include "ArduinoJson/StaticJsonBuffer.hpp" 13 | 14 | #include "ArduinoJson/Deserialization/JsonParserImpl.hpp" 15 | #include "ArduinoJson/JsonArrayImpl.hpp" 16 | #include "ArduinoJson/JsonBufferImpl.hpp" 17 | #include "ArduinoJson/JsonObjectImpl.hpp" 18 | #include "ArduinoJson/JsonVariantImpl.hpp" 19 | #include "ArduinoJson/Serialization/JsonSerializerImpl.hpp" 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/Encoding.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | class Encoding { 11 | public: 12 | // Optimized for code size on a 8-bit AVR 13 | static char escapeChar(char c) { 14 | const char *p = escapeTable(false); 15 | while (p[0] && p[1] != c) { 16 | p += 2; 17 | } 18 | return p[0]; 19 | } 20 | 21 | // Optimized for code size on a 8-bit AVR 22 | static char unescapeChar(char c) { 23 | const char *p = escapeTable(true); 24 | for (;;) { 25 | if (p[0] == '\0') return c; 26 | if (p[0] == c) return p[1]; 27 | p += 2; 28 | } 29 | } 30 | 31 | private: 32 | static const char *escapeTable(bool excludeIdenticals) { 33 | return &"\"\"\\\\b\bf\fn\nr\rt\t"[excludeIdenticals ? 4 : 0]; 34 | } 35 | }; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/JsonBufferAllocated.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../JsonBuffer.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | class JsonBufferAllocated { 13 | public: 14 | void *operator new(size_t n, JsonBuffer *jsonBuffer) throw() { 15 | if (!jsonBuffer) return NULL; 16 | return jsonBuffer->alloc(n); 17 | } 18 | 19 | void operator delete(void *, JsonBuffer *)throw(); 20 | }; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/JsonFloat.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | #if ARDUINOJSON_USE_DOUBLE 13 | typedef double JsonFloat; 14 | #else 15 | typedef float JsonFloat; 16 | #endif 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/JsonInteger.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | #if ARDUINOJSON_USE_LONG_LONG 13 | typedef long long JsonInteger; 14 | typedef unsigned long long JsonUInt; 15 | #elif ARDUINOJSON_USE_INT64 16 | typedef __int64 JsonInteger; 17 | typedef unsigned _int64 JsonUInt; 18 | #else 19 | typedef long JsonInteger; 20 | typedef unsigned long JsonUInt; 21 | #endif 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/JsonVariantAs.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A metafunction that returns the type of the value returned by 11 | // JsonVariant::as() 12 | template 13 | struct JsonVariantAs { 14 | typedef T type; 15 | }; 16 | 17 | template <> 18 | struct JsonVariantAs { 19 | typedef const char* type; 20 | }; 21 | 22 | template <> 23 | struct JsonVariantAs { 24 | typedef JsonArray& type; 25 | }; 26 | 27 | template <> 28 | struct JsonVariantAs { 29 | typedef const JsonArray& type; 30 | }; 31 | 32 | template <> 33 | struct JsonVariantAs { 34 | typedef JsonObject& type; 35 | }; 36 | 37 | template <> 38 | struct JsonVariantAs { 39 | typedef const JsonObject& type; 40 | }; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/JsonVariantContent.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonFloat.hpp" 8 | #include "JsonInteger.hpp" 9 | 10 | namespace ArduinoJson { 11 | 12 | // Forward declarations 13 | class JsonArray; 14 | class JsonObject; 15 | 16 | namespace Internals { 17 | // A union that defines the actual content of a JsonVariant. 18 | // The enum JsonVariantType determines which member is in use. 19 | union JsonVariantContent { 20 | JsonFloat asFloat; // used for double and float 21 | JsonUInt asInteger; // used for bool, char, short, int and longs 22 | const char* asString; // asString can be null 23 | JsonArray* asArray; // asArray cannot be null 24 | JsonObject* asObject; // asObject cannot be null 25 | }; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/JsonVariantDefault.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | template 11 | struct JsonVariantDefault { 12 | static T get() { 13 | return T(); 14 | } 15 | }; 16 | 17 | template 18 | struct JsonVariantDefault : JsonVariantDefault {}; 19 | 20 | template 21 | struct JsonVariantDefault : JsonVariantDefault {}; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/JsonVariantType.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | class JsonArray; 9 | class JsonObject; 10 | 11 | namespace Internals { 12 | 13 | // Enumerated type to know the current type of a JsonVariant. 14 | // The value determines which member of JsonVariantContent is used. 15 | enum JsonVariantType { 16 | JSON_UNDEFINED, // JsonVariant has not been initialized 17 | JSON_UNPARSED, // JsonVariant contains an unparsed string 18 | JSON_STRING, // JsonVariant stores a const char* 19 | JSON_BOOLEAN, // JsonVariant stores a bool 20 | JSON_POSITIVE_INTEGER, // JsonVariant stores an JsonUInt 21 | JSON_NEGATIVE_INTEGER, // JsonVariant stores an JsonUInt that must be negated 22 | JSON_ARRAY, // JsonVariant stores a pointer to a JsonArray 23 | JSON_OBJECT, // JsonVariant stores a pointer to a JsonObject 24 | JSON_FLOAT // JsonVariant stores a JsonFloat 25 | }; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/ListConstIterator.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "ListNode.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A read-only forward itertor for List 13 | template 14 | class ListConstIterator { 15 | public: 16 | explicit ListConstIterator(const ListNode *node = NULL) : _node(node) {} 17 | 18 | const T &operator*() const { 19 | return _node->content; 20 | } 21 | const T *operator->() { 22 | return &_node->content; 23 | } 24 | 25 | bool operator==(const ListConstIterator &other) const { 26 | return _node == other._node; 27 | } 28 | 29 | bool operator!=(const ListConstIterator &other) const { 30 | return _node != other._node; 31 | } 32 | 33 | ListConstIterator &operator++() { 34 | if (_node) _node = _node->next; 35 | return *this; 36 | } 37 | 38 | ListConstIterator &operator+=(size_t distance) { 39 | while (_node && distance) { 40 | _node = _node->next; 41 | --distance; 42 | } 43 | return *this; 44 | } 45 | 46 | private: 47 | const ListNode *_node; 48 | }; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/ListIterator.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "ListConstIterator.hpp" 8 | #include "ListNode.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | template 14 | class List; 15 | 16 | // A read-write forward iterator for List 17 | template 18 | class ListIterator { 19 | friend class List; 20 | 21 | public: 22 | explicit ListIterator(ListNode *node = NULL) : _node(node) {} 23 | 24 | T &operator*() const { 25 | return _node->content; 26 | } 27 | T *operator->() { 28 | return &_node->content; 29 | } 30 | 31 | bool operator==(const ListIterator &other) const { 32 | return _node == other._node; 33 | } 34 | 35 | bool operator!=(const ListIterator &other) const { 36 | return _node != other._node; 37 | } 38 | 39 | ListIterator &operator++() { 40 | if (_node) _node = _node->next; 41 | return *this; 42 | } 43 | 44 | ListIterator &operator+=(size_t distance) { 45 | while (_node && distance) { 46 | _node = _node->next; 47 | --distance; 48 | } 49 | return *this; 50 | } 51 | 52 | operator ListConstIterator() const { 53 | return ListConstIterator(_node); 54 | } 55 | 56 | private: 57 | ListNode *_node; 58 | }; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/ListNode.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include // for NULL 8 | 9 | #include "JsonBufferAllocated.hpp" 10 | 11 | namespace ArduinoJson { 12 | namespace Internals { 13 | 14 | // A node for a singly-linked list. 15 | // Used by List and its iterators. 16 | template 17 | struct ListNode : public Internals::JsonBufferAllocated { 18 | ListNode() throw() : next(NULL) {} 19 | 20 | ListNode *next; 21 | T content; 22 | }; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/NonCopyable.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A type that cannot be copied 11 | class NonCopyable { 12 | protected: 13 | NonCopyable() {} 14 | 15 | private: 16 | // copy constructor is private 17 | NonCopyable(const NonCopyable&); 18 | 19 | // copy operator is private 20 | NonCopyable& operator=(const NonCopyable&); 21 | }; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Data/ReferenceType.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A type that is meant to be used by reference only (JsonArray and JsonObject) 11 | class ReferenceType { 12 | public: 13 | bool operator==(const ReferenceType& other) const { 14 | // two JsonArray are equal if they are the same instance 15 | // (we don't compare the content) 16 | return this == &other; 17 | } 18 | 19 | bool operator!=(const ReferenceType& other) const { 20 | return this != &other; 21 | } 22 | }; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Deserialization/StringWriter.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | template 11 | class StringWriter { 12 | public: 13 | class String { 14 | public: 15 | String(TChar** ptr) : _writePtr(ptr), _startPtr(*ptr) {} 16 | 17 | void append(char c) { 18 | *(*_writePtr)++ = TChar(c); 19 | } 20 | 21 | const char* c_str() const { 22 | *(*_writePtr)++ = 0; 23 | return reinterpret_cast(_startPtr); 24 | } 25 | 26 | private: 27 | TChar** _writePtr; 28 | TChar* _startPtr; 29 | }; 30 | 31 | StringWriter(TChar* buffer) : _ptr(buffer) {} 32 | 33 | String startString() { 34 | return String(&_ptr); 35 | } 36 | 37 | private: 38 | TChar* _ptr; 39 | }; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/JsonArrayImpl.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonArray.hpp" 8 | #include "JsonArraySubscript.hpp" 9 | #include "JsonObject.hpp" 10 | 11 | namespace ArduinoJson { 12 | 13 | inline JsonArray &JsonArray::createNestedArray() { 14 | if (!_buffer) return JsonArray::invalid(); 15 | JsonArray &array = _buffer->createArray(); 16 | add(array); 17 | return array; 18 | } 19 | 20 | inline JsonObject &JsonArray::createNestedObject() { 21 | if (!_buffer) return JsonObject::invalid(); 22 | JsonObject &object = _buffer->createObject(); 23 | add(object); 24 | return object; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/JsonBufferImpl.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "Deserialization/JsonParser.hpp" 8 | 9 | inline ArduinoJson::JsonArray &ArduinoJson::JsonBuffer::createArray() { 10 | JsonArray *ptr = new (this) JsonArray(this); 11 | return ptr ? *ptr : JsonArray::invalid(); 12 | } 13 | 14 | inline ArduinoJson::JsonObject &ArduinoJson::JsonBuffer::createObject() { 15 | JsonObject *ptr = new (this) JsonObject(this); 16 | return ptr ? *ptr : JsonObject::invalid(); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/JsonObjectImpl.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonArray.hpp" 8 | #include "JsonObject.hpp" 9 | #include "JsonObjectSubscript.hpp" 10 | 11 | namespace ArduinoJson { 12 | 13 | template 14 | inline JsonArray &JsonObject::createNestedArray_impl(TStringRef key) { 15 | if (!_buffer) return JsonArray::invalid(); 16 | JsonArray &array = _buffer->createArray(); 17 | set(key, array); 18 | return array; 19 | } 20 | 21 | template 22 | inline JsonObject &JsonObject::createNestedObject_impl(TStringRef key) { 23 | if (!_buffer) return JsonObject::invalid(); 24 | JsonObject &object = _buffer->createObject(); 25 | set(key, object); 26 | return object; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/JsonPair.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonVariant.hpp" 8 | 9 | namespace ArduinoJson { 10 | 11 | // A key value pair for JsonObject. 12 | struct JsonPair { 13 | const char* key; 14 | JsonVariant value; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/JsonVariantBase.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonVariantCasts.hpp" 8 | #include "JsonVariantComparisons.hpp" 9 | #include "JsonVariantOr.hpp" 10 | #include "JsonVariantSubscripts.hpp" 11 | #include "Serialization/JsonPrintable.hpp" 12 | 13 | namespace ArduinoJson { 14 | namespace Internals { 15 | 16 | template 17 | class JsonVariantBase : public JsonPrintable, 18 | public JsonVariantCasts, 19 | public JsonVariantComparisons, 20 | public JsonVariantOr, 21 | public JsonVariantSubscripts, 22 | public JsonVariantTag {}; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Polyfills/attributes.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #ifdef _MSC_VER // Visual Studio 8 | 9 | #define FORCE_INLINE // __forceinline causes C4714 when returning std::string 10 | #define NO_INLINE __declspec(noinline) 11 | #define DEPRECATED(msg) __declspec(deprecated(msg)) 12 | 13 | #elif defined(__GNUC__) // GCC or Clang 14 | 15 | #define FORCE_INLINE __attribute__((always_inline)) 16 | #define NO_INLINE __attribute__((noinline)) 17 | #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) 18 | #define DEPRECATED(msg) __attribute__((deprecated(msg))) 19 | #else 20 | #define DEPRECATED(msg) __attribute__((deprecated)) 21 | #endif 22 | 23 | #else // Other compilers 24 | 25 | #define FORCE_INLINE 26 | #define NO_INLINE 27 | #define DEPRECATED(msg) 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Polyfills/ctype.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | inline bool isdigit(char c) { 11 | return '0' <= c && c <= '9'; 12 | } 13 | 14 | inline bool issign(char c) { 15 | return '-' == c || c == '+'; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Polyfills/isFloat.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include // for strcmp 8 | #include "./ctype.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | inline bool isFloat(const char* s) { 14 | if (!s) return false; 15 | 16 | if (!strcmp(s, "NaN")) return true; 17 | if (issign(*s)) s++; 18 | if (!strcmp(s, "Infinity")) return true; 19 | if (*s == '\0') return false; 20 | 21 | while (isdigit(*s)) s++; 22 | 23 | if (*s == '.') { 24 | s++; 25 | while (isdigit(*s)) s++; 26 | } 27 | 28 | if (*s == 'e' || *s == 'E') { 29 | s++; 30 | if (issign(*s)) s++; 31 | if (!isdigit(*s)) return false; 32 | while (isdigit(*s)) s++; 33 | } 34 | 35 | return *s == '\0'; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Polyfills/isInteger.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "./ctype.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | inline bool isInteger(const char* s) { 13 | if (!s || !*s) return false; 14 | if (issign(*s)) s++; 15 | while (isdigit(*s)) s++; 16 | return *s == '\0'; 17 | } 18 | } // namespace Internals 19 | } // namespace ArduinoJson 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Polyfills/math.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | template 10 | bool isNaN(T x) { 11 | return x != x; 12 | } 13 | 14 | template 15 | bool isInfinity(T x) { 16 | return x != 0.0 && x * 2 == x; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Polyfills/parseInteger.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | #include "../Configuration.hpp" 10 | #include "./ctype.hpp" 11 | 12 | namespace ArduinoJson { 13 | namespace Internals { 14 | template 15 | T parseInteger(const char *s) { 16 | if (!s) return 0; // NULL 17 | 18 | if (*s == 't') return 1; // "true" 19 | 20 | T result = 0; 21 | bool negative_result = false; 22 | 23 | switch (*s) { 24 | case '-': 25 | negative_result = true; 26 | s++; 27 | break; 28 | case '+': 29 | s++; 30 | break; 31 | } 32 | 33 | while (isdigit(*s)) { 34 | result = T(result * 10 + T(*s - '0')); 35 | s++; 36 | } 37 | 38 | return negative_result ? T(~result + 1) : result; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/RawJson.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | 9 | namespace Internals { 10 | // A special type of data that can be used to insert pregenerated JSON portions. 11 | template 12 | class RawJsonString { 13 | public: 14 | explicit RawJsonString(T str) : _str(str) {} 15 | operator T() const { 16 | return _str; 17 | } 18 | 19 | private: 20 | T _str; 21 | }; 22 | 23 | template 24 | struct StringTraits, void> { 25 | static bool is_null(RawJsonString source) { 26 | return StringTraits::is_null(static_cast(source)); 27 | } 28 | 29 | typedef RawJsonString duplicate_t; 30 | 31 | template 32 | static duplicate_t duplicate(RawJsonString source, Buffer* buffer) { 33 | return duplicate_t(StringTraits::duplicate(source, buffer)); 34 | } 35 | 36 | static const bool has_append = false; 37 | static const bool has_equals = false; 38 | static const bool should_duplicate = StringTraits::should_duplicate; 39 | }; 40 | } 41 | 42 | template 43 | inline Internals::RawJsonString RawJson(T str) { 44 | return Internals::RawJsonString(str); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Serialization/DummyPrint.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A dummy Print implementation used in JsonPrintable::measureLength() 11 | class DummyPrint { 12 | public: 13 | size_t print(char) { 14 | return 1; 15 | } 16 | 17 | size_t print(const char* s) { 18 | return strlen(s); 19 | } 20 | }; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../StringTraits/StringTraits.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A Print implementation that allows to write in a String 13 | template 14 | class DynamicStringBuilder { 15 | public: 16 | DynamicStringBuilder(TString &str) : _str(str) {} 17 | 18 | size_t print(char c) { 19 | StringTraits::append(_str, c); 20 | return 1; 21 | } 22 | 23 | size_t print(const char *s) { 24 | size_t initialLen = _str.length(); 25 | StringTraits::append(_str, s); 26 | return _str.length() - initialLen; 27 | } 28 | 29 | private: 30 | DynamicStringBuilder &operator=(const DynamicStringBuilder &); 31 | 32 | TString &_str; 33 | }; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Serialization/JsonSerializer.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonWriter.hpp" 8 | 9 | namespace ArduinoJson { 10 | 11 | class JsonArray; 12 | class JsonObject; 13 | class JsonVariant; 14 | 15 | namespace Internals { 16 | 17 | class JsonArraySubscript; 18 | template 19 | class JsonObjectSubscript; 20 | 21 | template 22 | class JsonSerializer { 23 | public: 24 | static void serialize(const JsonArray &, Writer &); 25 | static void serialize(const JsonArraySubscript &, Writer &); 26 | static void serialize(const JsonObject &, Writer &); 27 | template 28 | static void serialize(const JsonObjectSubscript &, Writer &); 29 | static void serialize(const JsonVariant &, Writer &); 30 | }; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Serialization/StaticStringBuilder.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A Print implementation that allows to write in a char[] 11 | class StaticStringBuilder { 12 | public: 13 | StaticStringBuilder(char *buf, size_t size) : end(buf + size - 1), p(buf) { 14 | *p = '\0'; 15 | } 16 | 17 | size_t print(char c) { 18 | if (p >= end) return 0; 19 | *p++ = c; 20 | *p = '\0'; 21 | return 1; 22 | } 23 | 24 | size_t print(const char *s) { 25 | char *begin = p; 26 | while (p < end && *s) *p++ = *s++; 27 | *p = '\0'; 28 | return size_t(p - begin); 29 | } 30 | 31 | private: 32 | char *end; 33 | char *p; 34 | }; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | 9 | #if ARDUINOJSON_ENABLE_STD_STREAM 10 | 11 | #include 12 | 13 | namespace ArduinoJson { 14 | namespace Internals { 15 | 16 | class StreamPrintAdapter { 17 | public: 18 | explicit StreamPrintAdapter(std::ostream& os) : _os(os) {} 19 | 20 | size_t print(char c) { 21 | _os << c; 22 | return 1; 23 | } 24 | 25 | size_t print(const char* s) { 26 | _os << s; 27 | return strlen(s); 28 | } 29 | 30 | private: 31 | // cannot be assigned 32 | StreamPrintAdapter& operator=(const StreamPrintAdapter&); 33 | 34 | std::ostream& _os; 35 | }; 36 | } 37 | } 38 | 39 | #endif // ARDUINOJSON_ENABLE_STD_STREAM 40 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/StringTraits/StringTraits.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include 8 | #include "../Configuration.hpp" 9 | #include "../TypeTraits/EnableIf.hpp" 10 | #include "../TypeTraits/IsBaseOf.hpp" 11 | #include "../TypeTraits/IsChar.hpp" 12 | #include "../TypeTraits/IsConst.hpp" 13 | #include "../TypeTraits/RemoveReference.hpp" 14 | 15 | namespace ArduinoJson { 16 | namespace Internals { 17 | 18 | template 19 | struct StringTraits { 20 | static const bool has_append = false; 21 | static const bool has_equals = false; 22 | }; 23 | 24 | template 25 | struct StringTraits : StringTraits {}; 26 | 27 | template 28 | struct StringTraits : StringTraits {}; 29 | } 30 | } 31 | 32 | #include "ArduinoStream.hpp" 33 | #include "CharPointer.hpp" 34 | #include "FlashString.hpp" 35 | #include "StdStream.hpp" 36 | #include "StdString.hpp" 37 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/EnableIf.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T if Condition is true. 11 | template 12 | struct EnableIf {}; 13 | 14 | template 15 | struct EnableIf { 16 | typedef T type; 17 | }; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsArray.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the const modifier 11 | template 12 | struct IsArray { 13 | static const bool value = false; 14 | }; 15 | template 16 | struct IsArray { 17 | static const bool value = true; 18 | }; 19 | template 20 | struct IsArray { 21 | static const bool value = true; 22 | }; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsBaseOf.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that returns true if Derived inherits from TBase is an 11 | // integral type. 12 | template 13 | class IsBaseOf { 14 | protected: // <- to avoid GCC's "all member functions in class are private" 15 | typedef char Yes[1]; 16 | typedef char No[2]; 17 | 18 | static Yes &probe(const TBase *); 19 | static No &probe(...); 20 | 21 | public: 22 | enum { 23 | value = sizeof(probe(reinterpret_cast(0))) == sizeof(Yes) 24 | }; 25 | }; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsChar.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsSame.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A meta-function that returns true if T is a charater 13 | template 14 | struct IsChar { 15 | static const bool value = IsSame::value || 16 | IsSame::value || 17 | IsSame::value; 18 | }; 19 | 20 | template 21 | struct IsChar : IsChar {}; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsConst.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the const modifier 11 | template 12 | struct IsConst { 13 | static const bool value = false; 14 | }; 15 | 16 | template 17 | struct IsConst { 18 | static const bool value = true; 19 | }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsSame.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A meta-function that returns true if T is a floating point type 13 | template 14 | struct IsFloatingPoint { 15 | static const bool value = IsSame::value || IsSame::value; 16 | }; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsIntegral.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsSame.hpp" 8 | #include "IsSignedIntegral.hpp" 9 | #include "IsUnsignedIntegral.hpp" 10 | 11 | namespace ArduinoJson { 12 | namespace Internals { 13 | 14 | // A meta-function that returns true if T is an integral type. 15 | template 16 | struct IsIntegral { 17 | static const bool value = IsSignedIntegral::value || 18 | IsUnsignedIntegral::value || 19 | IsSame::value; 20 | // CAUTION: differs from std::is_integral as it doesn't include bool 21 | }; 22 | 23 | template 24 | struct IsIntegral : IsIntegral {}; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsSame.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that returns true if types T and U are the same. 11 | template 12 | struct IsSame { 13 | static const bool value = false; 14 | }; 15 | 16 | template 17 | struct IsSame { 18 | static const bool value = true; 19 | }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | #include "IsSame.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | // A meta-function that returns true if T is an integral type. 14 | template 15 | struct IsSignedIntegral { 16 | static const bool value = 17 | IsSame::value || IsSame::value || 18 | IsSame::value || IsSame::value || 19 | #if ARDUINOJSON_USE_LONG_LONG 20 | IsSame::value || 21 | #endif 22 | #if ARDUINOJSON_USE_INT64 23 | IsSame::value || 24 | #endif 25 | false; 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | #include "IsSame.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | // A meta-function that returns true if T is an integral type. 14 | template 15 | struct IsUnsignedIntegral { 16 | static const bool value = 17 | IsSame::value || IsSame::value || 18 | IsSame::value || IsSame::value || 19 | #if ARDUINOJSON_USE_LONG_LONG 20 | IsSame::value || 21 | #endif 22 | #if ARDUINOJSON_USE_INT64 23 | IsSame::value || 24 | #endif 25 | false; 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/IsVariant.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsBaseOf.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | class JsonVariantTag {}; 13 | 14 | template 15 | struct IsVariant : IsBaseOf {}; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/RemoveConst.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the const modifier 11 | template 12 | struct RemoveConst { 13 | typedef T type; 14 | }; 15 | template 16 | struct RemoveConst { 17 | typedef T type; 18 | }; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/TypeTraits/RemoveReference.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the reference modifier. 11 | template 12 | struct RemoveReference { 13 | typedef T type; 14 | }; 15 | template 16 | struct RemoveReference { 17 | typedef T type; 18 | }; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/ArduinoJson-5.13.4/src/ArduinoJson/version.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #define ARDUINOJSON_VERSION "5.13.4" 8 | #define ARDUINOJSON_VERSION_MAJOR 5 9 | #define ARDUINOJSON_VERSION_MINOR 13 10 | #define ARDUINOJSON_VERSION_REVISION 4 11 | -------------------------------------------------------------------------------- /lib/C2Programmer-1.0.0/README.md: -------------------------------------------------------------------------------- 1 | # c2_prog_wifi 2 | WiFi-enabled programmer for Silicon Labs microcontrollers using the C2 programmer protocol, and to act as a serial-wifi bridge. 3 | 4 | Designed to run in the Arduino environment for ESP8266 module: https://github.com/esp8266/Arduino 5 | 6 | New programs can be loaded sending .hex files through the web-interface. 7 | 8 | Everything is still alpha. Currently tested with EFM8BB10F2G-A-QFN20 and ESP-01 module: http://app.cear.ufpb.br/~lucas.hartmann/tag/efm8bb1/ 9 | 10 | LICENSE: GPLv3 or newer. -------------------------------------------------------------------------------- /lib/C2Programmer-1.0.0/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map for C2Programmer 3 | # (esp8266) 4 | ####################################### 5 | 6 | ####################################### 7 | # Datatypes (KEYWORD1) 8 | ####################################### 9 | 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | 16 | ####################################### 17 | # Constants (LITERAL1) 18 | ####################################### 19 | 20 | -------------------------------------------------------------------------------- /lib/C2Programmer-1.0.0/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "C2Programmer", 3 | "version": "1.0.0", 4 | "keywords": [ 5 | "C2", "io", "Programmer" 6 | ], 7 | "description": "Implementation of C2 programmer allowing update of Sonoff Bridge RF chip.", 8 | "repository": 9 | { 10 | "type": "git", 11 | "url": "https://github.com/lhartmann/c2_prog_wifi" 12 | }, 13 | "frameworks": "arduino", 14 | "platforms": "espressif8266" 15 | } 16 | -------------------------------------------------------------------------------- /lib/C2Programmer-1.0.0/library.properties: -------------------------------------------------------------------------------- 1 | name=C2Programmer 2 | version=1.0.0 3 | author=Lucas Hartmann 4 | maintainer=Theo Arends 5 | sentence=Implementation of C2 programmer allowing update of Sonoff Bridge RF chip. 6 | paragraph= 7 | category=Signal Input/Output 8 | url= 9 | architectures=esp8266 10 | -------------------------------------------------------------------------------- /lib/C2Programmer-1.0.0/src/ihx.h: -------------------------------------------------------------------------------- 1 | #ifndef IHX_H 2 | #define IHX_H 3 | 4 | #include 5 | 6 | // Decoded 7 | // Intel HEX file format: 8 | // 1B - Start ':' 9 | // 2B - data bytes 10 | // 4B - address 11 | // 2B - record type 12 | // ?B - data 13 | // 2B - checksum 14 | 15 | // 01234567890123 16 | // :NNAAAATTDDSS 17 | struct ihx_t { 18 | uint8_t len; 19 | uint8_t address_high; 20 | uint8_t address_low; 21 | uint8_t record_type; // See IHX_RT_* below 22 | uint8_t data[]; 23 | }; 24 | #define IHX_RT_DATA 0x00 25 | #define IHX_RT_END_OF_FILE 0x01 26 | #define IHX_RT_EXTENDED_SEGMENT_ADDRESS 0x02 27 | #define IHX_RT_START_SEGMENT_ADDRESS 0x03 28 | #define IHX_RT_EXTENDED_LINEAR_ADDRESS 0x04 29 | #define IHX_RT_START_LINEAR_ADDRESS 0x05 30 | 31 | #define IHX_SUCCESS 0x00 32 | #define IHX_ERROR 0xFF 33 | 34 | extern uint8_t ihx_decode(uint8_t *buff, uint16_t slen); 35 | 36 | #endif // IHX_H 37 | 38 | // This is to enforce arduino-like formatting in kate 39 | // kate: space-indent on; indent-width 2; mixed-indent off; indent-mode cstyle; 40 | -------------------------------------------------------------------------------- /lib/FT6236-gemu-1.0/FT6236.h: -------------------------------------------------------------------------------- 1 | #ifndef FT6236 2 | #define FT6236 3 | 4 | #define FT6236_MODE_NORMAL 0x00 5 | #define FT6236_MODE_TEST 0x04 6 | #define FT6236_MODE_SYSTEM 0x01 7 | 8 | #define FT6236_BUFFER_SIZE 0x1E // 30 bytes buffer 9 | #define FT6236_MAX_BUTTONS 1 // 50 buttons should be enough for just about any page 10 | 11 | struct TouchLocation { 12 | uint16_t y; // we swop x and y in position because we're using the screen in portrait mode 13 | uint16_t x; 14 | }; 15 | 16 | void FT6236flushbuttonregister(void); 17 | void FT6236registerbutton(uint16_t buttonid,uint16_t xmin,uint16_t ymin,uint16_t xmax, uint16_t ymax); 18 | uint16_t FT6236GetButtonMask(void); 19 | void FT6236begin(uint8_t i2c_addr); 20 | uint8_t FT6236readTouchRegister( uint8_t reg ); 21 | uint8_t FT6236readTouchLocation( TouchLocation * pLoc, uint8_t num ); 22 | uint8_t FT6236readTouchAddr( uint8_t regAddr, uint8_t * pBuf, uint8_t len ); 23 | void FT6236writeTouchRegister( uint8_t reg, uint8_t val); 24 | uint32_t FT6236dist(const TouchLocation & loc); 25 | uint32_t FT6236dist(const TouchLocation & loc1, const TouchLocation & loc2); 26 | bool FT6236sameLoc( const TouchLocation & loc, const TouchLocation & loc2 ); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /lib/HPMA115S0/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2017 Felix Galindo 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /lib/HPMA115S0/README.md: -------------------------------------------------------------------------------- 1 | # HPMA115S0 2 | Library for Honeywell's Particle Sensor (HPMA115S0-XXX) 3 | -------------------------------------------------------------------------------- /lib/HPMA115S0/example/example.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * @file example.ino 3 | * @author Felix Galindo 4 | * @date June 2017 5 | * @brief Example using HPMA115S0 sensor library on a Feather 32u4 6 | * @license MIT 7 | */ 8 | 9 | #include 10 | #include 11 | 12 | //Create an instance of software serial 13 | SoftwareSerial hpmaSerial(10, 11); // Feather TX, Feather RX 14 | 15 | //Create an instance of the hpma115S0 library 16 | HPMA115S0 hpma115S0(hpmaSerial); 17 | 18 | void setup() { 19 | Serial.begin(57600); 20 | hpmaSerial.begin(9600); 21 | delay(5000); 22 | Serial.println("Starting..."); 23 | hpma115S0.Init(); 24 | hpma115S0.StartParticleMeasurement(); 25 | } 26 | 27 | void loop() { 28 | unsigned int pm2_5, pm10; 29 | if (hpma115S0.ReadParticleMeasurement(&pm2_5, &pm10)) { 30 | Serial.println("PM 2.5: " + String(pm2_5) + " ug/m3" ); 31 | Serial.println("PM 10: " + String(pm10) + " ug/m3" ); 32 | } 33 | delay(1000); 34 | } -------------------------------------------------------------------------------- /lib/HPMA115S0/library.properties: -------------------------------------------------------------------------------- 1 | name=HPMA115S0 Arduino Library 2 | version=1.0.0 3 | author=Felix Galindo 4 | maintainer=Felix Galindo 5 | sentence=A library for Honeywell HPMA115S0 Particle Sensor 6 | paragraph=Supports the HPMA115S0 7 | category=Sensors 8 | url=https://github.com/felixgalindo/HPMA115S0.git 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/I2Cdevlib-Core/.library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "I2Cdevlib-Core", 3 | "repository": { 4 | "url": "https://github.com/jrowberg/i2cdevlib.git", 5 | "type": "git" 6 | }, 7 | "platforms": [ 8 | "atmelavr" 9 | ], 10 | "frameworks": [ 11 | "arduino" 12 | ], 13 | "version": "6744ce0ac4", 14 | "export": { 15 | "include": "Arduino/I2Cdev" 16 | }, 17 | "authors": [ 18 | { 19 | "maintainer": false, 20 | "name": "Jeff Rowberg", 21 | "url": "https://github.com/jrowberg", 22 | "email": "jeff@rowberg.net" 23 | } 24 | ], 25 | "keywords": [ 26 | "i2cdevlib", 27 | "i2c" 28 | ], 29 | "id": 11, 30 | "description": "The I2C Device Library (I2Cdevlib) is a collection of uniform and well-documented classes to provide simple and intuitive interfaces to I2C devices." 31 | } -------------------------------------------------------------------------------- /lib/I2Cdevlib-Core/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For I2Cdev 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | I2Cdev KEYWORD1 9 | 10 | ####################################### 11 | # Methods and Functions (KEYWORD2) 12 | ####################################### 13 | 14 | readBit KEYWORD2 15 | readBitW KEYWORD2 16 | readBits KEYWORD2 17 | readBitsW KEYWORD2 18 | readByte KEYWORD2 19 | readBytes KEYWORD2 20 | readWord KEYWORD2 21 | readWords KEYWORD2 22 | writeBit KEYWORD2 23 | writeBitW KEYWORD2 24 | writeBits KEYWORD2 25 | writeBitsW KEYWORD2 26 | writeByte KEYWORD2 27 | writeBytes KEYWORD2 28 | writeWord KEYWORD2 29 | writeWords KEYWORD2 30 | 31 | ####################################### 32 | # Instances (KEYWORD2) 33 | ####################################### 34 | 35 | ####################################### 36 | # Constants (LITERAL1) 37 | ####################################### 38 | 39 | -------------------------------------------------------------------------------- /lib/I2Cdevlib-Core/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "I2Cdevlib-Core", 3 | "keywords": "i2cdevlib, i2c", 4 | "description": "The I2C Device Library (I2Cdevlib) is a collection of uniform and well-documented classes to provide simple and intuitive interfaces to I2C devices.", 5 | "include": "Arduino/I2Cdev", 6 | "repository": 7 | { 8 | "type": "git", 9 | "url": "https://github.com/jrowberg/i2cdevlib.git" 10 | }, 11 | "frameworks": "arduino", 12 | "platforms": "atmelavr" 13 | } 14 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/CPPLINT.cfg: -------------------------------------------------------------------------------- 1 | set noparent 2 | root=src 3 | linelength=80 4 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/CommonAcControl/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/ControlSamsungAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/DumbIRRepeater/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRGCSendDemo/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRGCTCPServer/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRMQTTServer/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | build_flags = -DMQTT_MAX_PACKET_SIZE=768 ; -D_IR_LOCALE_=en-AU 9 | framework = arduino 10 | platform = espressif8266 11 | 12 | [common] 13 | lib_deps_builtin = 14 | lib_deps_external = 15 | PubSubClient 16 | ArduinoJson@>=6.0 17 | 18 | [common_esp8266] 19 | lib_deps_external = 20 | ${common.lib_deps_builtin} 21 | ${common.lib_deps_external} 22 | WifiManager@>=0.14 23 | 24 | [common_esp32] 25 | lib_deps_external = 26 | ${common.lib_deps_builtin} 27 | ${common.lib_deps_external} 28 | https://github.com/tzapu/WiFiManager.git#development 29 | 30 | [env:nodemcuv2] 31 | board = nodemcuv2 32 | lib_deps = ${common_esp8266.lib_deps_external} 33 | 34 | [env:d1_mini] 35 | board = d1_mini 36 | lib_deps = ${common_esp8266.lib_deps_external} 37 | 38 | [env:d1_mini_no_mqtt] 39 | board = d1_mini 40 | build_flags = 41 | ${env.build_flags} 42 | -DMQTT_ENABLE=false 43 | lib_deps = ${common_esp8266.lib_deps_external} 44 | 45 | [env:esp32dev] 46 | platform = espressif32 47 | board = esp32dev 48 | lib_deps = ${common_esp32.lib_deps_external} 49 | 50 | [env:esp01_1m] 51 | board = esp01_1m 52 | build_flags = 53 | ${env.build_flags} 54 | -Wl,-Teagle.flash.1m64.ld 55 | lib_deps = ${common_esp8266.lib_deps_external} 56 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRServer/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRrecvDemo/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRrecvDump/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRrecvDumpV2/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | ; Default platform 6 | platform = espressif8266 7 | ; Default board 8 | board = nodemcuv2 9 | framework = arduino 10 | lib_extra_dirs = ../../ 11 | lib_ldf_mode = deep+ 12 | lib_ignore = examples 13 | build_flags = ; -D_IR_LOCALE_=en-AU 14 | 15 | [env:nodemcuv2] 16 | board = nodemcuv2 17 | ; build_flags = -D_IR_LOCALE_=en-AU 18 | 19 | [env:esp32dev] 20 | platform = espressif32 21 | board = esp32dev 22 | ; build_flags = -D_IR_LOCALE_=en-AU 23 | 24 | [env:de-CH] 25 | build_flags = -D_IR_LOCALE_=de-CH 26 | 27 | [env:de-DE] 28 | build_flags = -D_IR_LOCALE_=de-DE 29 | 30 | [env:en-AU] 31 | build_flags = -D_IR_LOCALE_=en-AU 32 | 33 | [env:en-IE] 34 | build_flags = -D_IR_LOCALE_=en-IE 35 | 36 | [env:en-UK] 37 | build_flags = -D_IR_LOCALE_=en-UK 38 | 39 | [env:en-US] 40 | build_flags = -D_IR_LOCALE_=en-US 41 | 42 | [env:es-ES] 43 | build_flags = -D_IR_LOCALE_=es-ES 44 | 45 | [env:fr-FR] 46 | build_flags = -D_IR_LOCALE_=fr-FR 47 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRsendDemo/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/IRsendProntoDemo/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/JVCPanasonicSendDemo/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/LGACSend/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/SmartIRRepeater/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnArgoAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnDaikinAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnFujitsuAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnKelvinatorAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnMitsubishiAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnMitsubishiHeavyAc/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnPanasonicAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnToshibaAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/TurnOnTrotecAC/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [env:nodemcuv2] 12 | platform = espressif8266 13 | board = nodemcuv2 14 | 15 | [env:esp32dev] 16 | platform = espressif32 17 | board = esp32dev 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/Web-AC-control/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | 4 | [env] 5 | lib_extra_dirs = ../../ 6 | lib_ldf_mode = deep+ 7 | lib_ignore = examples 8 | framework = arduino 9 | build_flags = ; -D_IR_LOCALE_=en-AU 10 | 11 | [common] 12 | lib_deps_builtin = 13 | lib_deps_external = 14 | ArduinoJson@>=6.0 15 | 16 | [common_esp8266] 17 | lib_deps_external = 18 | ${common.lib_deps_builtin} 19 | ${common.lib_deps_external} 20 | WifiManager@>=0.14 21 | 22 | [common_esp32] 23 | lib_deps_external = 24 | ${common.lib_deps_builtin} 25 | ${common.lib_deps_external} 26 | https://github.com/tzapu/WiFiManager.git#development 27 | 28 | [env:nodemcuv2] 29 | platform = espressif8266 30 | board = nodemcuv2 31 | lib_deps = ${common_esp8266.lib_deps_external} 32 | 33 | [env:esp32dev] 34 | platform = espressif32 35 | board = esp32dev 36 | lib_deps = ${common_esp32.lib_deps_external} 37 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/Web-AC-control/printscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/IRremoteESP8266-2.7.1/examples/Web-AC-control/printscreen.png -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/examples/Web-AC-control/upload/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/IRremoteESP8266-2.7.1/examples/Web-AC-control/upload/favicon.ico -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "IRremoteESP8266", 3 | "version": "2.7.1", 4 | "keywords": "infrared, ir, remote, esp8266, esp32", 5 | "description": "Send and receive infrared signals with multiple protocols (ESP8266/ESP32)", 6 | "repository": 7 | { 8 | "type": "git", 9 | "url": "https://github.com/crankyoldgit/IRremoteESP8266.git" 10 | }, 11 | "authors": [ 12 | { 13 | "name": "David Conran", 14 | "url": "https://plus.google.com/+davidconran", 15 | "maintainer": true 16 | }, 17 | { 18 | "name": "Mark Szabo", 19 | "url": "http://nomartini-noparty.blogspot.com/", 20 | "maintainer": true 21 | }, 22 | { 23 | "name": "Sebastien Warin", 24 | "url": "http://sebastien.warin.fr", 25 | "maintainer": true 26 | }, 27 | { 28 | "name": "Ken Shirriff", 29 | "email": "zetoslab@gmail.com" 30 | }, 31 | { 32 | "name": "Roi Dayan", 33 | "url": "https://github.com/roidayan/", 34 | "maintainer": true 35 | }, 36 | { 37 | "name": "Massimiliano Pinto", 38 | "url": "https://github.com/pintomax/", 39 | "maintainer": true 40 | } 41 | ], 42 | "frameworks": "arduino", 43 | "platforms": ["espressif8266", "espressif32"] 44 | } 45 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/library.properties: -------------------------------------------------------------------------------- 1 | name=IRremoteESP8266 2 | version=2.7.1 3 | author=David Conran, Sebastien Warin, Mark Szabo, Ken Shirriff 4 | maintainer=Mark Szabo, David Conran, Sebastien Warin, Roi Dayan, Massimiliano Pinto 5 | sentence=Send and receive infrared signals with multiple protocols (ESP8266/ESP32) 6 | paragraph=This library enables you to send and receive infra-red signals on an ESP8266 or an ESP32. 7 | category=Device Control 8 | url=https://github.com/crankyoldgit/IRremoteESP8266 9 | architectures=esp8266,esp32 10 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/pylintrc: -------------------------------------------------------------------------------- 1 | [REPORTS] 2 | 3 | # Tells whether to display a full report or only the messages 4 | reports=no 5 | 6 | [FORMAT] 7 | 8 | # Maximum number of characters on a single line. 9 | max-line-length=80 10 | 11 | # String used as indentation unit. 12 | indent-string=' ' 13 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/CPPLINT.cfg: -------------------------------------------------------------------------------- 1 | filter=-build/include,+build/include_alpha,+build/include_order,+build/include_what_you_use 2 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/IRtimer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 David Conran 2 | 3 | #ifndef IRTIMER_H_ 4 | #define IRTIMER_H_ 5 | 6 | #define __STDC_LIMIT_MACROS 7 | #include 8 | 9 | // Classes 10 | class IRtimer { 11 | public: 12 | IRtimer(); 13 | void reset(); 14 | uint32_t elapsed(); 15 | #ifdef UNIT_TEST 16 | static void add(uint32_t usecs); 17 | #endif // UNIT_TEST 18 | 19 | private: 20 | uint32_t start; 21 | }; 22 | 23 | class TimerMs { 24 | public: 25 | TimerMs(); 26 | void reset(); 27 | uint32_t elapsed(); 28 | #ifdef UNIT_TEST 29 | static void add(uint32_t msecs); 30 | #endif // UNIT_TEST 31 | 32 | private: 33 | uint32_t start; 34 | }; 35 | #endif // IRTIMER_H_ 36 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/i18n.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019 - David Conran (@crankyoldgit) 2 | 3 | #ifndef I18N_H_ 4 | #define I18N_H_ 5 | 6 | #include "IRremoteESP8266.h" 7 | 8 | // Load the appropriate locale header file. 9 | #ifndef _IR_LOCALE_ 10 | #define _IR_LOCALE_ en-AU 11 | #endif // _IR_LOCALE_ 12 | 13 | #define ENQUOTE_(x) #x 14 | #define ENQUOTE(x) ENQUOTE_(x) 15 | 16 | // Load the desired/requested locale. 17 | #ifdef _IR_LOCALE_ 18 | #include ENQUOTE(locale/_IR_LOCALE_.h) 19 | #endif // _IR_LOCALE_ 20 | 21 | // Now that any specific locale has been loaded, we can safely load the defaults 22 | // as the defaults should not override anything that has now set. 23 | #include "locale/defaults.h" 24 | 25 | #endif // I18N_H_ 26 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/ir_LG.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 David Conran 2 | 3 | // Supports: 4 | // Brand: LG, Model: 6711A20083V remote 5 | // Brand: LG, Model: AKB74395308 remote 6 | 7 | #ifndef IR_LG_H_ 8 | #define IR_LG_H_ 9 | 10 | #define __STDC_LIMIT_MACROS 11 | #include 12 | 13 | uint8_t calcLGChecksum(uint16_t data); 14 | 15 | #endif // IR_LG_H_ 16 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/ir_Magiquest.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 mpflaga 2 | // Copyright 2015 kitlaan 3 | // Copyright 2017 Jason kendall, David Conran 4 | 5 | #ifndef IR_MAGIQUEST_H_ 6 | #define IR_MAGIQUEST_H_ 7 | 8 | #define __STDC_LIMIT_MACROS 9 | #include 10 | #include "IRremoteESP8266.h" 11 | #include "IRsend.h" 12 | 13 | // MagiQuest packet is both Wand ID and magnitude of swish and flick 14 | union magiquest { 15 | uint64_t llword; 16 | uint8_t byte[8]; 17 | // uint16_t word[4]; 18 | uint32_t lword[2]; 19 | struct { 20 | uint16_t magnitude; 21 | uint32_t wand_id; 22 | uint8_t padding; 23 | uint8_t scrap; 24 | } cmd; 25 | }; 26 | 27 | const uint16_t kMagiQuestTotalUsec = 1150; 28 | const uint8_t kMagiQuestZeroRatio = 30; // usually <= ~25% 29 | const uint8_t kMagiQuestOneRatio = 38; // usually >= ~50% 30 | const uint16_t kMagiQuestMarkZero = 280; 31 | const uint16_t kMagiQuestSpaceZero = 850; 32 | const uint16_t kMagiQuestMarkOne = 580; 33 | const uint16_t kMagiQuestSpaceOne = 600; 34 | const uint32_t kMagiQuestGap = kDefaultMessageGap; // Just a guess. 35 | #endif // IR_MAGIQUEST_H_ 36 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/ir_Sherwood.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2017 David Conran 2 | 3 | // Sherwood IR remote emulation 4 | 5 | // Supports: 6 | // Brand: Sherwood, Model: RC-138 remote 7 | // Brand: Sherwood, Model: RD6505(B) Receiver 8 | 9 | #include 10 | #include "IRsend.h" 11 | 12 | #if SEND_SHERWOOD 13 | // Send an IR command to a Sherwood device. 14 | // 15 | // Args: 16 | // data: The contents of the command you want to send. 17 | // nbits: The bit size of the command being sent. (kSherwoodBits) 18 | // repeat: The nr. of times you want the command to be repeated. (Default: 1) 19 | // 20 | // Status: STABLE / Known working. 21 | // 22 | // Note: 23 | // Sherwood remote codes appear to be NEC codes with a manditory repeat code. 24 | // i.e. repeat should be >= kSherwoodMinRepeat (1). 25 | void IRsend::sendSherwood(uint64_t data, uint16_t nbits, uint16_t repeat) { 26 | sendNEC(data, nbits, std::max((uint16_t)kSherwoodMinRepeat, repeat)); 27 | } 28 | #endif 29 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/locale/en-AU.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019 - David Conran (@crankyoldgit) 2 | // Locale/language file for English / Australia. 3 | // This file will override the default values located in `defaults.h`. 4 | #ifndef LOCALE_EN_AU_H_ 5 | #define LOCALE_EN_AU_H_ 6 | // Nothing should really need to be set here, as en-AU is the default 7 | // locale/language. 8 | #endif // LOCALE_EN_AU_H__ 9 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/locale/en-IE.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019 - David Conran (@crankyoldgit) 2 | // Locale/language file for English / Ireland. 3 | // This file will override the default values located in `defaults.h`. 4 | #ifndef LOCALE_EN_IE_H_ 5 | #define LOCALE_EN_IE_H_ 6 | // Nothing should really need to be set here, as en-IE is the same as en-AU, 7 | // which is the default locale/language. 8 | #endif // LOCALE_EN_IE_H__ 9 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/locale/en-UK.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019 - David Conran (@crankyoldgit) 2 | // Locale/language file for English / United Kingdom. 3 | // This file will override the default values located in `defaults.h`. 4 | #ifndef LOCALE_EN_UK_H_ 5 | #define LOCALE_EN_UK_H_ 6 | // Nothing should really need to be set here, as en-UK is the same as en-AU, 7 | // which is the default locale/language. 8 | #endif // LOCALE_EN_UK_H__ 9 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/src/locale/en-US.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019 - David Conran (@crankyoldgit) 2 | // Locale/language file for English / United States of America. 3 | // This file will override the default values located in `defaults.h`. 4 | #ifndef LOCALE_EN_US_H_ 5 | #define LOCALE_EN_US_H_ 6 | // Not much should really need to be set here, as English is the default 7 | // locale/language. 8 | 9 | // Overrides to the default. 10 | #define D_STR_CENTRE "Center" 11 | #define D_STR_MOULD "Mold" 12 | 13 | #endif // LOCALE_EN_US_H__ 14 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/test/IRrecv_test.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 David Conran 2 | 3 | #ifndef TEST_IRRECV_TEST_H_ 4 | #define TEST_IRRECV_TEST_H_ 5 | 6 | #include 7 | #include 8 | #include 9 | #include "IRutils.h" 10 | 11 | #define EXPECT_STATE_EQ(a, b, c) \ 12 | for (uint8_t i = 0; i < c / 8; ++i) { \ 13 | EXPECT_EQ(a[i], b[i]) << "Expected state " \ 14 | "differs at i = " \ 15 | << uint64ToString(i); \ 16 | } 17 | #endif // TEST_IRRECV_TEST_H_ 18 | -------------------------------------------------------------------------------- /lib/IRremoteESP8266-2.7.1/tools/generate_irtext_h.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export INPUT="IRtext.cpp" 3 | export OUTPUT="IRtext.h" 4 | 5 | if [[ ! -f ${INPUT} ]]; then 6 | echo "Can't read file '${INPUT}'. Aborting!" 7 | exit 1 8 | fi 9 | 10 | # Header 11 | cat >${OUTPUT} << EOF 12 | // Copyright 2019 - David Conran (@crankyoldgit) 13 | // This header file is to be included in files **other than** 'IRtext.cpp'. 14 | // 15 | // WARNING: Do not edit this file! This file is automatically generated by 16 | // 'tools/generate_irtext_h.sh'. 17 | 18 | #ifndef IRTEXT_H_ 19 | #define IRTEXT_H_ 20 | 21 | #include "i18n.h" 22 | 23 | // Constant text to be shared across all object files. 24 | // This means there is only one copy of the character/string/text etc. 25 | 26 | EOF 27 | 28 | # Parse and output contents of INPUT file. 29 | sed 's/ PROGMEM//' ${INPUT} | egrep "^(const )?char" | cut -f1 -d= | 30 | sed 's/ $/;/;s/^/extern /' | sort -u >> ${OUTPUT} 31 | 32 | # Footer 33 | cat >> ${OUTPUT} << EOF 34 | 35 | #endif // IRTEXT_H_ 36 | EOF 37 | -------------------------------------------------------------------------------- /lib/JaretBurkett_ILI9488-gemu-1.0/README.md: -------------------------------------------------------------------------------- 1 | ### ILI9488 Arduino Library 2 | This library is for support for the 320x480 tft controller over 4 wire SPI. It is based heavily on the [Adafruit_ILI9341](https://github.com/adafruit/Adafruit_ILI9341) library and is designed to work with the [Adafruit_GFX library](https://github.com/adafruit/Adafruit-GFX-Library). 3 | 4 | I have made some heavy modifications, as the typical Adafruit TFT libraries are designed to work with 16bit color (RGB565), and the ILI9488 can only do 24bit (RGB888) color in 4 wire SPI mode. You can still use the library EXACTLY like you would for 16bit mode color, the colors are converted before sending to the display. What this means is, things will be slower than normal. Not only do you have to write twice as many pixels as a normal 240x320 display, 153,600px (320x480) vs 76,800px (240x320), but you also have to do a lightweight conversion on each color, and write 3 bytes vs 2bytes per pixel. 5 | 6 | For this reason, I do not recommend an AVR based Arduino for this library, although it will still work. I highly recommend a faster microcontroller based on ARM such as the Teensy, [STM32duino](https://github.com/rogerclarkmelbourne/Arduino_STM32), Arduino Zero, or the Arduing Due. 7 | 8 | On the STM32duino, DMA is supported and is therefore much faster. -------------------------------------------------------------------------------- /lib/JaretBurkett_ILI9488-gemu-1.0/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | ILI9488 KEYWORD1 10 | 11 | 12 | ####################################### 13 | # Methods and Functions (KEYWORD2) 14 | ####################################### 15 | 16 | setRotation KEYWORD2 17 | setAddrWindow KEYWORD2 18 | pushColor KEYWORD2 19 | drawPixel KEYWORD2 20 | drawFastVLine KEYWORD2 21 | drawFastHLine KEYWORD2 22 | fillRect KEYWORD2 23 | setRotation KEYWORD2 24 | setRotation KEYWORD2 25 | height KEYWORD2 26 | width KEYWORD2 27 | invertDisplay KEYWORD2 28 | drawImage KEYWORD2 29 | setScrollArea KEYWORD2 30 | scroll KEYWORD2 31 | -------------------------------------------------------------------------------- /lib/JaretBurkett_ILI9488-gemu-1.0/library.properties: -------------------------------------------------------------------------------- 1 | name=ILI9488 2 | version=1.0.2 3 | author=Jaret Burkett 4 | maintainer=Jaret Burkett 5 | sentence=Library for ILI9488 displays 6 | paragraph=Library for ILI9488 displays 7 | category=Display 8 | url=https://github.com/jaretburkett/ILI9488 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Joba_Tsl2561-2.0.10/.gitignore: -------------------------------------------------------------------------------- 1 | .pioenvs 2 | .piolibdeps 3 | .clang_complete 4 | .gcc-flags.json 5 | examples/*/platformio.ini 6 | examples/*/lib 7 | examples/*/.gitignore 8 | examples/*/.travis.yml 9 | -------------------------------------------------------------------------------- /lib/Joba_Tsl2561-2.0.10/.hgignore: -------------------------------------------------------------------------------- 1 | .pioenvs 2 | .piolibdeps 3 | .clang_complete 4 | .gcc-flags.json 5 | -------------------------------------------------------------------------------- /lib/Joba_Tsl2561-2.0.10/README: -------------------------------------------------------------------------------- 1 | This is an Arduino library for the TSL2561 digital luminosity sensors from Ams (Taos). 2 | 3 | Design goals: 4 | * It is modularized so you can use only what you need if space/ram is constrained. 5 | * It does not swallow error codes so you can react on them. 6 | * It doesn't use floats as they are overkill for most IoT stuff. 7 | 8 | Datasheet used: 9 | http://ams.com/eng/Products/Light-Sensors/Ambient-Light-Sensors/TSL2561/TSL2560-TSL2561-Datasheet 10 | http://ams.com/eng/content/download/250094/975485/file/TSL2560-61_DS000110_2-00.pdf 11 | http://ams.com/eng/content/view/download/145438 12 | http://ams.com/eng/content/view/download/181895 13 | 14 | To use the library, just place the folder in your projects lib folder. 15 | For usage, see the examples folder. 16 | 17 | The library has 3 classes: 18 | Tsl2561 All register access as described in the datasheet, except for interrupts 19 | Tsl2561Util Convenience functions like lux calculation or automatic gain 20 | Tsl2561Int TODO, Interrupt related stuff (not needed if int pin unconnected) 21 | 22 | Tested with boards Nano, ESP8266 and ESP32 23 | -------------------------------------------------------------------------------- /lib/Joba_Tsl2561-2.0.10/examples/platformio.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Create platformio.ini templates for all examples, if missing. 4 | # Start this script from within the examples directory. 5 | 6 | for d in *; do 7 | if [ -d "$d" -a -f "$d/$d.ino" -a ! -e "$d/platformio.ini" ] 8 | then 9 | cp -av platformio.ini "$d/" 10 | fi 11 | done 12 | 13 | -------------------------------------------------------------------------------- /lib/Joba_Tsl2561-2.0.10/lib/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | This directory is intended for the project specific (private) libraries. 3 | PlatformIO will compile them to static libraries and link to executable file. 4 | 5 | The source code of each library should be placed in separate directory, like 6 | "lib/private_lib/[here are source files]". 7 | 8 | For example, see how can be organized `Foo` and `Bar` libraries: 9 | 10 | |--lib 11 | | |--Bar 12 | | | |--docs 13 | | | |--examples 14 | | | |--src 15 | | | |- Bar.c 16 | | | |- Bar.h 17 | | |--Foo 18 | | | |- Foo.c 19 | | | |- Foo.h 20 | | |- readme.txt --> THIS FILE 21 | |- platformio.ini 22 | |--src 23 | |- main.c 24 | 25 | Then in `src/main.c` you should use: 26 | 27 | #include 28 | #include 29 | 30 | // rest H/C/CPP code 31 | 32 | PlatformIO will find your libraries automatically, configure preprocessor's 33 | include paths and build them. 34 | 35 | More information about PlatformIO Library Dependency Finder 36 | - http://docs.platformio.org/page/librarymanager/ldf.html 37 | -------------------------------------------------------------------------------- /lib/Joba_Tsl2561-2.0.10/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Joba_Tsl2561", 3 | "version": "2.0.10", 4 | "keywords": "twowire, i2c, bus, sensor, luminosity, illuminance, lux", 5 | "description": "Arduino library for ams (taos) luminance chip Tsl2561 with autogain. Tested with Nano, Esp8266 and Esp32.", 6 | "repository": 7 | { 8 | "type": "git", 9 | "url": "https://github.com/joba-1/Joba_Tsl2561.git" 10 | }, 11 | "frameworks": "arduino", 12 | "platforms": "*" 13 | } 14 | -------------------------------------------------------------------------------- /lib/Joba_Tsl2561-2.0.10/library.properties: -------------------------------------------------------------------------------- 1 | name=Joba Tsl2561 Library 2 | version=2.0.10 3 | author=joba-1 4 | maintainer=joba-1 5 | sentence=IoT library for using the Tsl2561 luminosity sensor 6 | paragraph=Luminosity measurement in lux with autogain. Tested with Nano, Esp8266 and Esp32. 7 | category=Sensors 8 | url=https://github.com/joba-1/Joba_Tsl2561 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/LinkedList-1.2.3/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Ivan Seidel 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/LinkedList-1.2.3/examples/SimpleIntegerList/SimpleIntegerList.pde: -------------------------------------------------------------------------------- 1 | /* 2 | LinkedList Example 3 | Link: http://github.com/ivanseidel/LinkedList 4 | 5 | Example Created by 6 | Tom Stewart, github.com/tastewar 7 | 8 | Edited by: 9 | Ivan Seidel, github.com/ivanseidel 10 | */ 11 | #include 12 | 13 | LinkedList myList = LinkedList(); 14 | 15 | void setup() 16 | { 17 | 18 | Serial.begin(9600); 19 | Serial.println("Hello!"); 20 | 21 | // Add some stuff to the list 22 | int k = -240, 23 | l = 123, 24 | m = -2, 25 | n = 222; 26 | myList.add(n); 27 | myList.add(0); 28 | myList.add(l); 29 | myList.add(17); 30 | myList.add(k); 31 | myList.add(m); 32 | } 33 | 34 | void loop() { 35 | 36 | int listSize = myList.size(); 37 | 38 | Serial.print("There are "); 39 | Serial.print(listSize); 40 | Serial.print(" integers in the list. The negative ones are: "); 41 | 42 | // Print Negative numbers 43 | for (int h = 0; h < listSize; h++) { 44 | 45 | // Get value from list 46 | int val = myList.get(h); 47 | 48 | // If the value is negative, print it 49 | if (val < 0) { 50 | Serial.print(" "); 51 | Serial.print(val); 52 | } 53 | } 54 | 55 | while (true); // nothing else to do, loop forever 56 | } 57 | 58 | 59 | -------------------------------------------------------------------------------- /lib/LinkedList-1.2.3/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | LinkedList KEYWORD1 10 | ListNode KEYWORD1 11 | 12 | ####################################### 13 | # Methods and Functions (KEYWORD2) 14 | ####################################### 15 | 16 | size KEYWORD2 17 | add KEYWORD2 18 | unshift KEYWORD2 19 | set KEYWORD2 20 | remove KEYWORD2 21 | pop KEYWORD2 22 | shift KEYWORD2 23 | get KEYWORD2 24 | clear KEYWORD2 25 | 26 | ####################################### 27 | # Constants (LITERAL1) 28 | ####################################### 29 | -------------------------------------------------------------------------------- /lib/LinkedList-1.2.3/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LinkedList", 3 | "keywords": "pattern", 4 | "description": "A fully implemented LinkedList (int, float, objects, Lists or Wales) made to work with Arduino projects", 5 | "repository": 6 | { 7 | "type": "git", 8 | "url": "https://github.com/ivanseidel/LinkedList.git" 9 | }, 10 | "frameworks": "arduino", 11 | "platforms": "*" 12 | } 13 | -------------------------------------------------------------------------------- /lib/LinkedList-1.2.3/library.properties: -------------------------------------------------------------------------------- 1 | name=LinkedList 2 | version=1.2.3 3 | author=Ivan Seidel 4 | maintainer=Ivan Seidel 5 | sentence=A fully implemented LinkedList made to work with Arduino projects 6 | paragraph=The objective of this library is to create a pattern for projects. If you need to use a List of: int, float, objects, Lists or Wales. This is what you are looking for. 7 | category=Data Processing 8 | url=https://github.com/ivanseidel/LinkedList 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/LiquidCrystal_I2C-1.1.3/LiquidCrystal_I2C.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/LiquidCrystal_I2C-1.1.3/LiquidCrystal_I2C.o -------------------------------------------------------------------------------- /lib/LiquidCrystal_I2C-1.1.3/README.md: -------------------------------------------------------------------------------- 1 | # LiquidCrystal_I2C 2 | LiquidCrystal Arduino library for the DFRobot I2C LCD displays 3 | -------------------------------------------------------------------------------- /lib/LiquidCrystal_I2C-1.1.3/examples/HelloWorld/HelloWorld.pde: -------------------------------------------------------------------------------- 1 | //YWROBOT 2 | //Compatible with the Arduino IDE 1.0 3 | //Library version:1.1 4 | #include 5 | #include 6 | 7 | LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display 8 | 9 | void setup() 10 | { 11 | lcd.init(); // initialize the lcd 12 | lcd.init(); 13 | // Print a message to the LCD. 14 | lcd.backlight(); 15 | lcd.setCursor(3,0); 16 | lcd.print("Hello, world!"); 17 | lcd.setCursor(2,1); 18 | lcd.print("Ywrobot Arduino!"); 19 | lcd.setCursor(0,2); 20 | lcd.print("Arduino LCM IIC 2004"); 21 | lcd.setCursor(2,3); 22 | lcd.print("Power By Ec-yuan!"); 23 | } 24 | 25 | 26 | void loop() 27 | { 28 | } 29 | -------------------------------------------------------------------------------- /lib/LiquidCrystal_I2C-1.1.3/examples/SerialDisplay/SerialDisplay.pde: -------------------------------------------------------------------------------- 1 | /* 2 | * Displays text sent over the serial port (e.g. from the Serial Monitor) on 3 | * an attached LCD. 4 | * YWROBOT 5 | *Compatible with the Arduino IDE 1.0 6 | *Library version:1.1 7 | */ 8 | #include 9 | #include 10 | 11 | LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display 12 | 13 | void setup() 14 | { 15 | lcd.init(); // initialize the lcd 16 | lcd.backlight(); 17 | Serial.begin(9600); 18 | } 19 | 20 | void loop() 21 | { 22 | // when characters arrive over the serial port... 23 | if (Serial.available()) { 24 | // wait a bit for the entire message to arrive 25 | delay(100); 26 | // clear the screen 27 | lcd.clear(); 28 | // read all the available characters 29 | while (Serial.available() > 0) { 30 | // display each character to the LCD 31 | lcd.write(Serial.read()); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/LiquidCrystal_I2C-1.1.3/keywords.txt: -------------------------------------------------------------------------------- 1 | ########################################### 2 | # Syntax Coloring Map For LiquidCrystal_I2C 3 | ########################################### 4 | 5 | ########################################### 6 | # Datatypes (KEYWORD1) 7 | ########################################### 8 | 9 | LiquidCrystal_I2C KEYWORD1 10 | 11 | ########################################### 12 | # Methods and Functions (KEYWORD2) 13 | ########################################### 14 | init KEYWORD2 15 | begin KEYWORD2 16 | clear KEYWORD2 17 | home KEYWORD2 18 | noDisplay KEYWORD2 19 | display KEYWORD2 20 | noBlink KEYWORD2 21 | blink KEYWORD2 22 | noCursor KEYWORD2 23 | cursor KEYWORD2 24 | scrollDisplayLeft KEYWORD2 25 | scrollDisplayRight KEYWORD2 26 | leftToRight KEYWORD2 27 | rightToLeft KEYWORD2 28 | shiftIncrement KEYWORD2 29 | shiftDecrement KEYWORD2 30 | noBacklight KEYWORD2 31 | backlight KEYWORD2 32 | autoscroll KEYWORD2 33 | noAutoscroll KEYWORD2 34 | createChar KEYWORD2 35 | setCursor KEYWORD2 36 | print KEYWORD2 37 | blink_on KEYWORD2 38 | blink_off KEYWORD2 39 | cursor_on KEYWORD2 40 | cursor_off KEYWORD2 41 | setBacklight KEYWORD2 42 | load_custom_character KEYWORD2 43 | printstr KEYWORD2 44 | ########################################### 45 | # Constants (LITERAL1) 46 | ########################################### 47 | -------------------------------------------------------------------------------- /lib/LiquidCrystal_I2C-1.1.3/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LiquidCrystal_I2C", 3 | "keywords": "LCD, liquidcrystal, I2C", 4 | "description": "A library for DFRobot I2C LCD displays", 5 | "repository": 6 | { 7 | "type": "git", 8 | "url": "https://github.com/marcoschwartz/LiquidCrystal_I2C.git" 9 | }, 10 | "frameworks": "arduino", 11 | "platforms": 12 | [ 13 | "atmelavr" 14 | ] 15 | } -------------------------------------------------------------------------------- /lib/LiquidCrystal_I2C-1.1.3/library.properties: -------------------------------------------------------------------------------- 1 | name=LiquidCrystal_I2C 2 | version=1.1.2 3 | author=Frank de Brabander 4 | maintainer=Marco Schwartz 5 | sentence=A library for I2C LCD displays. 6 | paragraph= The library allows to control I2C displays with functions extremely similar to LiquidCrystal library. THIS LIBRARY MIGHT NOT BE COMPATIBLE WITH EXISTING SKETCHES. 7 | category=Display 8 | url=https://github.com/marcoschwartz/LiquidCrystal_I2C 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Mutichannel_Gas_Sensor/License.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Seeed Technology Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /lib/Mutichannel_Gas_Sensor/examples/GetVersion/GetVersion.ino: -------------------------------------------------------------------------------- 1 | // Get firmware version of Grove Multichannel Gas Sensor 2 | #include 3 | #include "MutichannelGasSensor.h" 4 | 5 | #define SENSOR_ADDR 0X04 // default to 0x04 6 | 7 | void setup() 8 | { 9 | Serial.begin(115200); 10 | gas.begin(SENSOR_ADDR); 11 | 12 | unsigned char version = gas.getVersion(); 13 | Serial.print("Version = "); 14 | Serial.println(version); 15 | } 16 | 17 | void loop() 18 | { 19 | // nothing to do 20 | } -------------------------------------------------------------------------------- /lib/Mutichannel_Gas_Sensor/examples/I2C_Address/I2C_Address.ino: -------------------------------------------------------------------------------- 1 | // change i2c address 2 | // Loovee 3 | // 2016-11-10 4 | 5 | #include 6 | #include "MutichannelGasSensor.h" 7 | 8 | #define SENSOR_ADDR_OLD 0x04 // default to 0x04 9 | #define SENSOR_ADDR_NEW 0x19 // change i2c address to 0x19 10 | 11 | void setup() 12 | { 13 | Serial.begin(115200); 14 | gas.begin(SENSOR_ADDR_OLD); // 15 | gas.change_i2c_address(SENSOR_ADDR_NEW); 16 | Serial.print("I2C ADDRESS SET TO 0X");; 17 | Serial.println(SENSOR_ADDR_NEW, HEX); 18 | } 19 | 20 | void loop() 21 | { 22 | 23 | } 24 | 25 | // END FILE 26 | -------------------------------------------------------------------------------- /lib/Mutichannel_Gas_Sensor/examples/calibration/calibration.ino: -------------------------------------------------------------------------------- 1 | // Calibration code for Grove - Multichannel Gas Sensor 2 | // Note that it need 10 minutes pre-heat before calibration 3 | // This code is writen by Loovee@2016-5-18 4 | 5 | #include 6 | #include "MutichannelGasSensor.h" 7 | 8 | #define SENSOR_ADDR 0X04 // default to 0x04 9 | #define PRE_HEAT_TIME 0 // pre-heat time, 10-30 minutes is recommended 10 | 11 | void setup() 12 | { 13 | Serial.begin(115200); 14 | gas.begin(SENSOR_ADDR); // 15 | Serial.println("power on, and pre-heat"); 16 | 17 | for(int i=60*PRE_HEAT_TIME; i>=0; i--) 18 | { 19 | Serial.print(i/60); 20 | Serial.print(":"); 21 | Serial.println(i%60); 22 | delay(1000); 23 | } 24 | 25 | Serial.println("Begin to calibrate..."); 26 | gas.doCalibrate(); 27 | Serial.println("Calibration ok"); 28 | 29 | gas.display_eeprom(); 30 | } 31 | 32 | void loop() 33 | { 34 | 35 | } 36 | -------------------------------------------------------------------------------- /lib/Mutichannel_Gas_Sensor/examples/factory_setting/factory_setting.ino: -------------------------------------------------------------------------------- 1 | // factory setting 2 | // Loovee 3 | // 2016-11-10 4 | 5 | #include 6 | #include "MutichannelGasSensor.h" 7 | 8 | #define SENSOR_ADDR 0X04 // default to 0x04 9 | 10 | void setup() 11 | { 12 | Serial.begin(115200); 13 | Serial.println("Please input something to continue"); 14 | while(!Serial.available()); 15 | 16 | gas.begin(SENSOR_ADDR); // 17 | 18 | Serial.println("FACTORY SETTING OK"); 19 | 20 | float R0_NH3, R0_CO, R0_NO2; 21 | 22 | R0_NH3 = gas.getR0(0); 23 | R0_CO = gas.getR0(1); 24 | R0_NO2 = gas.getR0(2); 25 | 26 | Serial.print("R0_NH3 = "); 27 | Serial.println(R0_NH3); 28 | Serial.print("R0_CO = "); 29 | Serial.println(R0_CO); 30 | Serial.print("R0_NO2 = "); 31 | Serial.println(R0_NO2); 32 | } 33 | 34 | void loop() 35 | { 36 | } 37 | -------------------------------------------------------------------------------- /lib/Mutichannel_Gas_Sensor/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mutichannel_Gas_Sensor", 3 | "keywords": "Gas Sensor", 4 | "description": "Grove - Multichannel Gas Sensor", 5 | "homepage": "http://wiki.seeed.cc/Grove-Multichannel_Gas_Sensor/", 6 | "repository": 7 | { 8 | "type": "git", 9 | "url": "https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor.git" 10 | }, 11 | "version": "0.0.1", 12 | "frameworks": "arduino", 13 | "platforms": "*" 14 | } 15 | -------------------------------------------------------------------------------- /lib/Mutichannel_Gas_Sensor/library.properties: -------------------------------------------------------------------------------- 1 | name=Grove - Multichannel Gas Sensor 2 | version=0.0.1 3 | author=WEMOS.CC 4 | maintainer=WEMOS.CC 5 | sentence=Library for the Grove - Multichannel Gas Sensor. 6 | paragraph=Library for the Grove - Multichannel Gas Sensor. 7 | category=Device Control 8 | url=https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor.git 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **NOTE: If you are seeking help or have questions, this is NOT the place to do it.** For questions and support, jump on Gitter and ask away. 8 | [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Makuna/NeoPixelBus?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # ========================= 18 | # Operating System Files 19 | # ========================= 20 | 21 | # OSX 22 | # ========================= 23 | 24 | .DS_Store 25 | .AppleDouble 26 | .LSOverride 27 | 28 | # Icon must ends with two \r. 29 | Icon 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/examples/bitmaps/NeoPixelBitmap/Strings.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/examples/bitmaps/NeoPixelBitmap/Strings.bmp -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/examples/bitmaps/NeoPixelBitmap/StringsW.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/examples/bitmaps/NeoPixelBitmap/StringsW.bmp -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/examples/bitmaps/NeoPixelBufferCylon/Cylon.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/examples/bitmaps/NeoPixelBufferCylon/Cylon.pdn -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/circular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/circular.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/cubic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/cubic.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/different.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/different.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/exponential.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/exponential.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/gamma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/gamma.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/pronounced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/pronounced.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/quadratic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/quadratic.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/quintic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/quintic.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/extras/curves/sinusoidal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/NeoPixelBus-2.5.0.09/extras/curves/sinusoidal.png -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NeoPixelBus", 3 | "keywords": "NeoPixel, WS2811, WS2812, WS2813, SK6812, DotStar, APA102, RGB, RGBW", 4 | "description": "A library that makes controlling NeoPixels (WS2811, WS2812, WS2813 & SK6812) and DotStars (APA102) easy. Supports most Arduino platforms. Support for RGBW pixels. Includes seperate RgbColor, RgbwColor, HslColor, and HsbColor objects. Includes an animator class that helps create asyncronous animations. For Esp8266 it has three methods of sending NeoPixel data, DMA, UART, and Bit Bang. For Esp32 it has two base methods of sending NeoPixel data, i2s and RMT. For all platforms, there are two methods of sending DotStar data, hardware SPI and software SPI.", 5 | "homepage": "https://github.com/Makuna/NeoPixelBus/wiki", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/Makuna/NeoPixelBus" 9 | }, 10 | "version": "2.5.0", 11 | "frameworks": "arduino", 12 | "platforms": "*" 13 | } 14 | 15 | -------------------------------------------------------------------------------- /lib/NeoPixelBus-2.5.0.09/library.properties: -------------------------------------------------------------------------------- 1 | name=NeoPixelBus by Makuna 2 | version=2.5.0 3 | author=Michael C. Miller (makuna@live.com) 4 | maintainer=Michael C. Miller (makuna@live.com) 5 | sentence=A library that makes controlling NeoPixels (WS2811, WS2812, WS2813 & SK6812) and DotStars (APA102) easy. 6 | paragraph=Supports most Arduino platforms, including Esp8266 and Esp32. Support for RGBW pixels. Includes seperate RgbColor, RgbwColor, HslColor, and HsbColor objects. Includes an animator class that helps create asyncronous animations. Supports Matrix layout of pixels. Includes Gamma corretion object. For Esp8266 it has three methods of sending NeoPixel data, DMA, UART, and Bit Bang. For Esp32 it has two base methods of sending NeoPixel data, i2s and RMT. For all platforms, there are two methods of sending DotStar data, hardware SPI and software SPI. 7 | category=Display 8 | url=https://github.com/Makuna/NeoPixelBus/wiki 9 | architectures=* -------------------------------------------------------------------------------- /lib/NewPing-1.9.1/README.md: -------------------------------------------------------------------------------- 1 | # NewPing Arduino Library for Arduino 2 | 3 | ## See the [NewPing Wiki](https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home) for documentation 4 | -------------------------------------------------------------------------------- /lib/NewPing-1.9.1/examples/NewPing3Sensors/NewPing3Sensors.pde: -------------------------------------------------------------------------------- 1 | // --------------------------------------------------------------------------- 2 | // Example NewPing library sketch that pings 3 sensors 20 times a second. 3 | // --------------------------------------------------------------------------- 4 | 5 | #include 6 | 7 | #define SONAR_NUM 3 // Number of sensors. 8 | #define MAX_DISTANCE 200 // Maximum distance (in cm) to ping. 9 | 10 | NewPing sonar[SONAR_NUM] = { // Sensor object array. 11 | NewPing(4, 5, MAX_DISTANCE), // Each sensor's trigger pin, echo pin, and max distance to ping. 12 | NewPing(6, 7, MAX_DISTANCE), 13 | NewPing(8, 9, MAX_DISTANCE) 14 | }; 15 | 16 | void setup() { 17 | Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results. 18 | } 19 | 20 | void loop() { 21 | for (uint8_t i = 0; i < SONAR_NUM; i++) { // Loop through each sensor and display results. 22 | delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings. 23 | Serial.print(i); 24 | Serial.print("="); 25 | Serial.print(sonar[i].ping_cm()); 26 | Serial.print("cm "); 27 | } 28 | Serial.println(); 29 | } 30 | -------------------------------------------------------------------------------- /lib/NewPing-1.9.1/examples/NewPingExample/NewPingExample.pde: -------------------------------------------------------------------------------- 1 | // --------------------------------------------------------------------------- 2 | // Example NewPing library sketch that does a ping about 20 times per second. 3 | // --------------------------------------------------------------------------- 4 | 5 | #include 6 | 7 | #define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor. 8 | #define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor. 9 | #define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm. 10 | 11 | NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance. 12 | 13 | void setup() { 14 | Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results. 15 | } 16 | 17 | void loop() { 18 | delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings. 19 | Serial.print("Ping: "); 20 | Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range) 21 | Serial.println("cm"); 22 | } -------------------------------------------------------------------------------- /lib/NewPing-1.9.1/examples/TimerExample/TimerExample.pde: -------------------------------------------------------------------------------- 1 | // --------------------------------------------------------------------------- 2 | // While the NewPing library's primary goal is to interface with ultrasonic sensors, interfacing with 3 | // the Timer2 interrupt was a result of creating an interrupt-based ping method. Since these Timer2 4 | // interrupt methods were built, the library may as well provide the functionality to use these methods 5 | // in your sketches. This shows how simple it is (no ultrasonic sensor required). Keep in mind that 6 | // these methods use Timer2, as does NewPing's ping_timer method for using ultrasonic sensors. You 7 | // can't use ping_timer at the same time you're using timer_ms or timer_us as all use the same timer. 8 | // --------------------------------------------------------------------------- 9 | 10 | #include 11 | 12 | #define LED_PIN 13 // Pin with LED attached. 13 | 14 | void setup() { 15 | pinMode(LED_PIN, OUTPUT); 16 | NewPing::timer_ms(500, toggleLED); // Create a Timer2 interrupt that calls toggleLED in your sketch once every 500 milliseconds. 17 | } 18 | 19 | void loop() { 20 | // Do anything here, the Timer2 interrupt will take care of the flashing LED without your intervention. 21 | } 22 | 23 | void toggleLED() { 24 | digitalWrite(LED_PIN, !digitalRead(LED_PIN)); // Toggle the LED. 25 | } 26 | -------------------------------------------------------------------------------- /lib/NewPing-1.9.1/keywords.txt: -------------------------------------------------------------------------------- 1 | ################################### 2 | # Syntax Coloring Map For NewPing 3 | ################################### 4 | 5 | ################################### 6 | # Datatypes (KEYWORD1) 7 | ################################### 8 | 9 | NewPing KEYWORD1 10 | 11 | ################################### 12 | # Methods and Functions (KEYWORD2) 13 | ################################### 14 | 15 | ping KEYWORD2 16 | ping_in KEYWORD2 17 | ping_cm KEYWORD2 18 | ping_median KEYWORD2 19 | ping_timer KEYWORD2 20 | check_timer KEYWORD2 21 | ping_result KEYWORD2 22 | timer_us KEYWORD2 23 | timer_ms KEYWORD2 24 | timer_stop KEYWORD2 25 | convert_in KEYWORD2 26 | convert_cm KEYWORD2 27 | 28 | ################################### 29 | # Constants (LITERAL1) 30 | ################################### 31 | -------------------------------------------------------------------------------- /lib/NewPing-1.9.1/library.properties: -------------------------------------------------------------------------------- 1 | name=NewPing 2 | version=1.9.1 3 | author=Tim Eckel 4 | maintainer=Tim Eckel 5 | sentence=A library that makes working with ultrasonic sensors easy. 6 | paragraph=When I first received an ultrasonic sensor I was not happy with how poorly it performed. I soon realized the problem was not the sensor, it was the available ping and ultrasonic libraries causing the problem. The NewPing library totally fixes these problems, adds many new features, and breathes new life into these very affordable distance sensors. 7 | category=Sensors 8 | url=https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home 9 | architectures=avr,arm,esp8266 10 | includes=NewPing.h 11 | -------------------------------------------------------------------------------- /lib/OneWire-2.3.3.06/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For OneWire 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | OneWire KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | reset KEYWORD2 16 | write_bit KEYWORD2 17 | read_bit KEYWORD2 18 | write KEYWORD2 19 | write_bytes KEYWORD2 20 | read KEYWORD2 21 | read_bytes KEYWORD2 22 | select KEYWORD2 23 | skip KEYWORD2 24 | depower KEYWORD2 25 | reset_search KEYWORD2 26 | search KEYWORD2 27 | crc8 KEYWORD2 28 | crc16 KEYWORD2 29 | check_crc16 KEYWORD2 30 | 31 | ####################################### 32 | # Instances (KEYWORD2) 33 | ####################################### 34 | 35 | 36 | ####################################### 37 | # Constants (LITERAL1) 38 | ####################################### 39 | -------------------------------------------------------------------------------- /lib/OneWire-2.3.3.06/library.properties: -------------------------------------------------------------------------------- 1 | name=OneWire 2 | version=2.3.3 3 | author=Jim Studt, Tom Pollard, Robin James, Glenn Trewitt, Jason Dangel, Guillermo Lovato, Paul Stoffregen, Scott Roberts, Bertrik Sikken, Mark Tillotson, Ken Butcher, Roger Clark, Love Nystrom 4 | maintainer=Paul Stoffregen 5 | sentence=Access 1-wire temperature sensors, memory and other chips. 6 | paragraph= 7 | category=Communication 8 | url=http://www.pjrc.com/teensy/td_libs_OneWire.html 9 | architectures=* 10 | 11 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/.gitignore: -------------------------------------------------------------------------------- 1 | tests/bin 2 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: cpp 3 | compiler: 4 | - g++ 5 | script: cd tests && make && make test 6 | os: 7 | - linux 8 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2015 Nicholas O'Leary 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/examples/mqtt_auth/mqtt_auth.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Basic MQTT example with Authentication 3 | 4 | - connects to an MQTT server, providing username 5 | and password 6 | - publishes "hello world" to the topic "outTopic" 7 | - subscribes to the topic "inTopic" 8 | */ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | // Update these with values suitable for your network. 15 | byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED }; 16 | IPAddress ip(172, 16, 0, 100); 17 | IPAddress server(172, 16, 0, 2); 18 | 19 | void callback(char* topic, byte* payload, unsigned int length) { 20 | // handle message arrived 21 | } 22 | 23 | EthernetClient ethClient; 24 | PubSubClient client(server, 1883, callback, ethClient); 25 | 26 | void setup() 27 | { 28 | Ethernet.begin(mac, ip); 29 | // Note - the default maximum packet size is 128 bytes. If the 30 | // combined length of clientId, username and password exceed this, 31 | // you will need to increase the value of MQTT_MAX_PACKET_SIZE in 32 | // PubSubClient.h 33 | 34 | if (client.connect("arduinoClient", "testuser", "testpass")) { 35 | client.publish("outTopic","hello world"); 36 | client.subscribe("inTopic"); 37 | } 38 | } 39 | 40 | void loop() 41 | { 42 | client.loop(); 43 | } 44 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For PubSubClient 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | PubSubClient KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | connect KEYWORD2 16 | disconnect KEYWORD2 17 | publish KEYWORD2 18 | publish_P KEYWORD2 19 | beginPublish KEYWORD2 20 | endPublish KEYWORD2 21 | write KEYWORD2 22 | subscribe KEYWORD2 23 | unsubscribe KEYWORD2 24 | loop KEYWORD2 25 | connected KEYWORD2 26 | setServer KEYWORD2 27 | setCallback KEYWORD2 28 | setClient KEYWORD2 29 | setStream KEYWORD2 30 | 31 | ####################################### 32 | # Constants (LITERAL1) 33 | ####################################### 34 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PubSubClient", 3 | "keywords": "ethernet, mqtt, m2m, iot", 4 | "description": "A client library for MQTT messaging. MQTT is a lightweight messaging protocol ideal for small devices. This library allows you to send and receive MQTT messages. It supports the latest MQTT 3.1.1 protocol and can be configured to use the older MQTT 3.1 if needed. It supports all Arduino Ethernet Client compatible hardware, including the Intel Galileo/Edison, ESP8266 and TI CC3000.", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/knolleary/pubsubclient.git" 8 | }, 9 | "version": "2.7", 10 | "exclude": "tests", 11 | "examples": "examples/*/*.ino", 12 | "frameworks": "arduino", 13 | "platforms": [ 14 | "atmelavr", 15 | "espressif" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/library.properties: -------------------------------------------------------------------------------- 1 | name=PubSubClient 2 | version=2.7 3 | author=Nick O'Leary 4 | maintainer=Nick O'Leary 5 | sentence=A client library for MQTT messaging. 6 | paragraph=MQTT is a lightweight messaging protocol ideal for small devices. This library allows you to send and receive MQTT messages. It supports the latest MQTT 3.1.1 protocol and can be configured to use the older MQTT 3.1 if needed. It supports all Arduino Ethernet Client compatible hardware, including the Intel Galileo/Edison, ESP8266 and TI CC3000. 7 | category=Communication 8 | url=http://pubsubclient.knolleary.net 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/.gitignore: -------------------------------------------------------------------------------- 1 | .build 2 | tmpbin 3 | logs 4 | *.pyc 5 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/Makefile: -------------------------------------------------------------------------------- 1 | SRC_PATH=./src 2 | OUT_PATH=./bin 3 | TEST_SRC=$(wildcard ${SRC_PATH}/*_spec.cpp) 4 | TEST_BIN= $(TEST_SRC:${SRC_PATH}/%.cpp=${OUT_PATH}/%) 5 | VPATH=${SRC_PATH} 6 | SHIM_FILES=${SRC_PATH}/lib/*.cpp 7 | PSC_FILE=../src/PubSubClient.cpp 8 | CC=g++ 9 | CFLAGS=-I${SRC_PATH}/lib -I../src 10 | 11 | all: $(TEST_BIN) 12 | 13 | ${OUT_PATH}/%: ${SRC_PATH}/%.cpp ${PSC_FILE} ${SHIM_FILES} 14 | mkdir -p ${OUT_PATH} 15 | ${CC} ${CFLAGS} $^ -o $@ 16 | 17 | clean: 18 | @rm -rf ${OUT_PATH} 19 | 20 | test: 21 | @bin/connect_spec 22 | @bin/publish_spec 23 | @bin/receive_spec 24 | @bin/subscribe_spec 25 | @bin/keepalive_spec 26 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/Arduino.h: -------------------------------------------------------------------------------- 1 | #ifndef Arduino_h 2 | #define Arduino_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include "Print.h" 9 | 10 | 11 | extern "C"{ 12 | typedef uint8_t byte ; 13 | typedef uint8_t boolean ; 14 | 15 | /* sketch */ 16 | extern void setup( void ) ; 17 | extern void loop( void ) ; 18 | uint32_t millis( void ); 19 | } 20 | 21 | #define PROGMEM 22 | #define pgm_read_byte_near(x) *(x) 23 | 24 | #define yield(x) {} 25 | 26 | #endif // Arduino_h 27 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/BDDTest.cpp: -------------------------------------------------------------------------------- 1 | #include "BDDTest.h" 2 | #include "trace.h" 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int testCount = 0; 9 | int testPasses = 0; 10 | const char* testDescription; 11 | 12 | std::list failureList; 13 | 14 | void bddtest_suite(const char* name) { 15 | LOG(name << "\n"); 16 | } 17 | 18 | int bddtest_test(const char* file, int line, const char* assertion, int result) { 19 | if (!result) { 20 | LOG("✗\n"); 21 | std::ostringstream os; 22 | os << " ! "<::iterator it = failureList.begin(); it != failureList.end(); it++) { 40 | LOG("\n"); 41 | LOG(*it); 42 | LOG("\n"); 43 | } 44 | 45 | LOG(std::dec << testPasses << "/" << testCount << " tests passed\n\n"); 46 | if (testPasses == testCount) { 47 | return 0; 48 | } 49 | return 1; 50 | } 51 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/BDDTest.h: -------------------------------------------------------------------------------- 1 | #ifndef bddtest_h 2 | #define bddtest_h 3 | 4 | void bddtest_suite(const char* name); 5 | int bddtest_test(const char*, int, const char*, int); 6 | void bddtest_start(const char*); 7 | void bddtest_end(); 8 | int bddtest_summary(); 9 | 10 | #define SUITE(x) { bddtest_suite(x); } 11 | #define TEST(x) { if (!bddtest_test(__FILE__, __LINE__, #x, (x))) return false; } 12 | 13 | #define IT(x) { bddtest_start(x); } 14 | #define END_IT { bddtest_end();return true;} 15 | 16 | #define FINISH { return bddtest_summary(); } 17 | 18 | #define IS_TRUE(x) TEST(x) 19 | #define IS_FALSE(x) TEST(!(x)) 20 | #define IS_EQUAL(x,y) TEST(x==y) 21 | #define IS_NOT_EQUAL(x,y) TEST(x!=y) 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/Buffer.cpp: -------------------------------------------------------------------------------- 1 | #include "Buffer.h" 2 | #include "Arduino.h" 3 | 4 | Buffer::Buffer() { 5 | this->pos = 0; 6 | this->length = 0; 7 | } 8 | 9 | Buffer::Buffer(uint8_t* buf, size_t size) { 10 | this->pos = 0; 11 | this->length = 0; 12 | this->add(buf,size); 13 | } 14 | bool Buffer::available() { 15 | return this->pos < this->length; 16 | } 17 | 18 | uint8_t Buffer::next() { 19 | if (this->available()) { 20 | return this->buffer[this->pos++]; 21 | } 22 | return 0; 23 | } 24 | 25 | void Buffer::reset() { 26 | this->pos = 0; 27 | } 28 | 29 | void Buffer::add(uint8_t* buf, size_t size) { 30 | uint16_t i = 0; 31 | for (;ibuffer[this->length++] = buf[i]; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/Buffer.h: -------------------------------------------------------------------------------- 1 | #ifndef buffer_h 2 | #define buffer_h 3 | 4 | #include "Arduino.h" 5 | 6 | class Buffer { 7 | private: 8 | uint8_t buffer[1024]; 9 | uint16_t pos; 10 | uint16_t length; 11 | 12 | public: 13 | Buffer(); 14 | Buffer(uint8_t* buf, size_t size); 15 | 16 | virtual bool available(); 17 | virtual uint8_t next(); 18 | virtual void reset(); 19 | 20 | virtual void add(uint8_t* buf, size_t size); 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/Client.h: -------------------------------------------------------------------------------- 1 | #ifndef client_h 2 | #define client_h 3 | #include "IPAddress.h" 4 | 5 | class Client { 6 | public: 7 | virtual int connect(IPAddress ip, uint16_t port) =0; 8 | virtual int connect(const char *host, uint16_t port) =0; 9 | virtual size_t write(uint8_t) =0; 10 | virtual size_t write(const uint8_t *buf, size_t size) =0; 11 | virtual int available() = 0; 12 | virtual int read() = 0; 13 | virtual int read(uint8_t *buf, size_t size) = 0; 14 | virtual int peek() = 0; 15 | virtual void flush() = 0; 16 | virtual void stop() = 0; 17 | virtual uint8_t connected() = 0; 18 | virtual operator bool() = 0; 19 | }; 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/IPAddress.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | 5 | IPAddress::IPAddress() 6 | { 7 | memset(_address, 0, sizeof(_address)); 8 | } 9 | 10 | IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) 11 | { 12 | _address[0] = first_octet; 13 | _address[1] = second_octet; 14 | _address[2] = third_octet; 15 | _address[3] = fourth_octet; 16 | } 17 | 18 | IPAddress::IPAddress(uint32_t address) 19 | { 20 | memcpy(_address, &address, sizeof(_address)); 21 | } 22 | 23 | IPAddress::IPAddress(const uint8_t *address) 24 | { 25 | memcpy(_address, address, sizeof(_address)); 26 | } 27 | 28 | IPAddress& IPAddress::operator=(const uint8_t *address) 29 | { 30 | memcpy(_address, address, sizeof(_address)); 31 | return *this; 32 | } 33 | 34 | IPAddress& IPAddress::operator=(uint32_t address) 35 | { 36 | memcpy(_address, (const uint8_t *)&address, sizeof(_address)); 37 | return *this; 38 | } 39 | 40 | bool IPAddress::operator==(const uint8_t* addr) 41 | { 42 | return memcmp(addr, _address, sizeof(_address)) == 0; 43 | } 44 | 45 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/Print.h: -------------------------------------------------------------------------------- 1 | /* 2 | Print.h - Base class that provides print() and println() 3 | Copyright (c) 2008 David A. Mellis. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef Print_h 21 | #define Print_h 22 | 23 | class Print { 24 | public: 25 | virtual size_t write(uint8_t) = 0; 26 | }; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/Stream.cpp: -------------------------------------------------------------------------------- 1 | #include "Stream.h" 2 | #include "trace.h" 3 | #include 4 | #include 5 | 6 | Stream::Stream() { 7 | this->expectBuffer = new Buffer(); 8 | this->_error = false; 9 | this->_written = 0; 10 | } 11 | 12 | size_t Stream::write(uint8_t b) { 13 | this->_written++; 14 | TRACE(std::hex << (unsigned int)b); 15 | if (this->expectBuffer->available()) { 16 | uint8_t expected = this->expectBuffer->next(); 17 | if (expected != b) { 18 | this->_error = true; 19 | TRACE("!=" << (unsigned int)expected); 20 | } 21 | } else { 22 | this->_error = true; 23 | } 24 | TRACE("\n"<< std::dec); 25 | return 1; 26 | } 27 | 28 | 29 | bool Stream::error() { 30 | return this->_error; 31 | } 32 | 33 | void Stream::expect(uint8_t *buf, size_t size) { 34 | this->expectBuffer->add(buf,size); 35 | } 36 | 37 | uint16_t Stream::length() { 38 | return this->_written; 39 | } 40 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/Stream.h: -------------------------------------------------------------------------------- 1 | #ifndef Stream_h 2 | #define Stream_h 3 | 4 | #include "Arduino.h" 5 | #include "Buffer.h" 6 | 7 | class Stream { 8 | private: 9 | Buffer* expectBuffer; 10 | bool _error; 11 | uint16_t _written; 12 | 13 | public: 14 | Stream(); 15 | virtual size_t write(uint8_t); 16 | 17 | virtual bool error(); 18 | virtual void expect(uint8_t *buf, size_t size); 19 | virtual uint16_t length(); 20 | }; 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/src/lib/trace.h: -------------------------------------------------------------------------------- 1 | #ifndef trace_h 2 | #define trace_h 3 | #include 4 | 5 | #include 6 | 7 | #define LOG(x) {std::cout << x << std::flush; } 8 | #define TRACE(x) {if (getenv("TRACE")) { std::cout << x << std::flush; }} 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/testcases/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/PubSubClient-EspEasy-2.7.12/tests/testcases/__init__.py -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/testcases/mqtt_basic.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | import settings 3 | import time 4 | import mosquitto 5 | 6 | 7 | def on_message(mosq, obj, msg): 8 | obj.message_queue.append(msg) 9 | 10 | 11 | class mqtt_basic(unittest.TestCase): 12 | 13 | message_queue = [] 14 | 15 | @classmethod 16 | def setUpClass(self): 17 | self.client = mosquitto.Mosquitto("pubsubclient_ut", clean_session=True, obj=self) 18 | self.client.connect(settings.server_ip) 19 | self.client.on_message = on_message 20 | self.client.subscribe("outTopic", 0) 21 | 22 | @classmethod 23 | def tearDownClass(self): 24 | self.client.disconnect() 25 | 26 | def test_one(self): 27 | i = 30 28 | while len(self.message_queue) == 0 and i > 0: 29 | self.client.loop() 30 | time.sleep(0.5) 31 | i -= 1 32 | self.assertTrue(i > 0, "message receive timed-out") 33 | self.assertEqual(len(self.message_queue), 1, "unexpected number of messages received") 34 | msg = self.message_queue[0] 35 | self.assertEqual(msg.mid, 0, "message id not 0") 36 | self.assertEqual(msg.topic, "outTopic", "message topic incorrect") 37 | self.assertEqual(msg.payload, "hello world") 38 | self.assertEqual(msg.qos, 0, "message qos not 0") 39 | self.assertEqual(msg.retain, False, "message retain flag incorrect") 40 | -------------------------------------------------------------------------------- /lib/PubSubClient-EspEasy-2.7.12/tests/testcases/settings.py: -------------------------------------------------------------------------------- 1 | server_ip = "172.16.0.2" 2 | arduino_ip = "172.16.0.100" 3 | -------------------------------------------------------------------------------- /lib/TasmotaModbus-1.2.0/README.md: -------------------------------------------------------------------------------- 1 | # TasmotaSerial 2 | 3 | Implementation of software serial with hardware serial fallback library for the ESP8266 4 | 5 | Allows for several instances to be active at the same time. 6 | 7 | Please note that due to the fact that the ESP always have other activities ongoing, there will be some inexactness in interrupt timings. This may lead to bit errors when having heavy data traffic. 8 | -------------------------------------------------------------------------------- /lib/TasmotaModbus-1.2.0/examples/modbustest/modbustest.ino: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | TasmotaModbus Modbus(14, 12); 5 | 6 | void setup() { 7 | Serial.begin(115200); 8 | Modbus.Begin(9600); 9 | 10 | Serial.println("\nTasmotaModbus test started"); 11 | 12 | Modbus.Send(0x01, 0x04, 0, 8); 13 | } 14 | 15 | void loop() { 16 | if (Modbus.ReceiveReady()) { 17 | uint8_t buffer[26]; 18 | 19 | uint8_t error = Modbus.ReceiveBuffer(buffer, 8); 20 | if (error) { 21 | Serial.print("Modbus response error "); 22 | Serial.println(error); 23 | } else { 24 | Serial.print("Modbus received:"); 25 | for (int i = 0; i < (buffer[2]) ? buffer[2] +5 : sizeof(buffer); i++) { 26 | Serial.print(" "); 27 | Serial.print(buffer[i], HEX); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lib/TasmotaModbus-1.2.0/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map for TasmotaModbus 3 | # (esp8266) 4 | ####################################### 5 | 6 | ####################################### 7 | # Datatypes (KEYWORD1) 8 | ####################################### 9 | 10 | TasmotaModbus KEYWORD1 11 | 12 | ####################################### 13 | # Methods and Functions (KEYWORD2) 14 | ####################################### 15 | 16 | Begin KEYWORD2 17 | Send KEYWORD2 18 | ReceiveReady KEYWORD2 19 | ReceiveBuffer KEYWORD2 20 | Receive16BitRegister KEYWORD2 21 | Receive32BitRegister KEYWORD2 22 | 23 | ####################################### 24 | # Constants (LITERAL1) 25 | ####################################### 26 | 27 | -------------------------------------------------------------------------------- /lib/TasmotaModbus-1.2.0/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TasmotaModbus", 3 | "version": "1.2.0", 4 | "keywords": [ 5 | "serial", "io", "TasmotaModbus" 6 | ], 7 | "description": "Basic modbus wrapper for TasmotaSerial for ESP8266.", 8 | "repository": 9 | { 10 | "type": "git", 11 | "url": "https://github.com/arendst/Tasmota/lib/TasmotaModbus" 12 | }, 13 | "frameworks": "arduino", 14 | "platforms": "espressif8266" 15 | } 16 | -------------------------------------------------------------------------------- /lib/TasmotaModbus-1.2.0/library.properties: -------------------------------------------------------------------------------- 1 | name=TasmotaModbus 2 | version=1.2.0 3 | author=Theo Arends 4 | maintainer=Theo Arends 5 | sentence=Basic modbus wrapper for TasmotaSerial for ESP8266. 6 | paragraph= 7 | category=Signal Input/Output 8 | url= 9 | architectures=esp8266 10 | -------------------------------------------------------------------------------- /lib/TasmotaSerial-2.4.1/README.md: -------------------------------------------------------------------------------- 1 | # TasmotaSerial 2 | 3 | Implementation of software serial with hardware serial fallback library for the ESP8266 4 | 5 | Allows for several instances to be active at the same time. 6 | 7 | Please note that due to the fact that the ESP always have other activities ongoing, there will be some inexactness in interrupt timings. This may lead to bit errors when having heavy data traffic. 8 | -------------------------------------------------------------------------------- /lib/TasmotaSerial-2.4.1/examples/swsertest/swsertest.ino: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | TasmotaSerial swSer(14, 12); 5 | 6 | void setup() { 7 | Serial.begin(115200); 8 | swSer.begin(); 9 | 10 | Serial.println("\nTasmota serial test started"); 11 | 12 | for (char ch = ' '; ch <= 'z'; ch++) { 13 | swSer.write(ch); 14 | } 15 | swSer.println(""); 16 | 17 | } 18 | 19 | void loop() { 20 | while (swSer.available() > 0) { 21 | Serial.write(swSer.read()); 22 | } 23 | while (Serial.available() > 0) { 24 | swSer.write(Serial.read()); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /lib/TasmotaSerial-2.4.1/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map for TasmotaSerial 3 | # (esp8266) 4 | ####################################### 5 | 6 | ####################################### 7 | # Datatypes (KEYWORD1) 8 | ####################################### 9 | 10 | TasmotaSerial KEYWORD1 11 | 12 | ####################################### 13 | # Methods and Functions (KEYWORD2) 14 | ####################################### 15 | 16 | begin KEYWORD2 17 | hardwareSerial KEYWORD2 18 | read KEYWORD2 19 | write KEYWORD2 20 | available KEYWORD2 21 | flush KEYWORD2 22 | peek KEYWORD2 23 | 24 | ####################################### 25 | # Constants (LITERAL1) 26 | ####################################### 27 | 28 | -------------------------------------------------------------------------------- /lib/TasmotaSerial-2.4.1/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TasmotaSerial", 3 | "version": "2.4.1", 4 | "keywords": [ 5 | "serial", "io", "TasmotaSerial" 6 | ], 7 | "description": "Implementation of software serial with hardware serial fallback for ESP8266.", 8 | "repository": 9 | { 10 | "type": "git", 11 | "url": "https://github.com/arendst/Tasmota/lib/TasmotaSerial" 12 | }, 13 | "frameworks": "arduino", 14 | "platforms": "espressif8266" 15 | } 16 | -------------------------------------------------------------------------------- /lib/TasmotaSerial-2.4.1/library.properties: -------------------------------------------------------------------------------- 1 | name=TasmotaSerial 2 | version=2.4.1 3 | author=Theo Arends 4 | maintainer=Theo Arends 5 | sentence=Implementation of software serial with hardware serial fallback for ESP8266. 6 | paragraph= 7 | category=Signal Input/Output 8 | url= 9 | architectures=esp8266 10 | -------------------------------------------------------------------------------- /lib/Xlatb_RA8876-gemu-1.0/README.md: -------------------------------------------------------------------------------- 1 | ### RA8876 Arduino Library 2 | This library is for support for the 1024x600 tft controller over 3 wire SPI. It is based heavily on the [Adafruit_ILI9341](https://github.com/adafruit/Adafruit_ILI9341) library and is designed to work with the [Adafruit_GFX library](https://github.com/adafruit/Adafruit-GFX-Library). 3 | 4 | I have made some heavy modifications, as the typical Adafruit TFT libraries are designed to work with 16bit color (RGB565), and the RA8876 can only do 24bit (RGB888) color in 4 wire SPI mode. You can still use the library EXACTLY like you would for 16bit mode color, the colors are converted before sending to the display. What this means is, things will be slower than normal. Not only do you have to write twice as many pixels as a normal 240x320 display, 153,600px (320x480) vs 76,800px (240x320), but you also have to do a lightweight conversion on each color, and write 3 bytes vs 2bytes per pixel. 5 | 6 | For this reason, I do not recommend an AVR based Arduino for this library, although it will still work. I highly recommend a faster microcontroller based on ARM such as the Teensy, [STM32duino](https://github.com/rogerclarkmelbourne/Arduino_STM32), Arduino Zero, or the Arduing Due. 7 | 8 | On the STM32duino, DMA is supported and is therefore much faster. 9 | -------------------------------------------------------------------------------- /lib/Xlatb_RA8876-gemu-1.0/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | RA8876 KEYWORD1 10 | 11 | 12 | ####################################### 13 | # Methods and Functions (KEYWORD2) 14 | ####################################### 15 | 16 | setRotation KEYWORD2 17 | setAddrWindow KEYWORD2 18 | pushColor KEYWORD2 19 | drawPixel KEYWORD2 20 | drawFastVLine KEYWORD2 21 | drawFastHLine KEYWORD2 22 | fillRect KEYWORD2 23 | setRotation KEYWORD2 24 | setRotation KEYWORD2 25 | height KEYWORD2 26 | width KEYWORD2 27 | invertDisplay KEYWORD2 28 | drawImage KEYWORD2 29 | setScrollArea KEYWORD2 30 | scroll KEYWORD2 31 | -------------------------------------------------------------------------------- /lib/Xlatb_RA8876-gemu-1.0/library.properties: -------------------------------------------------------------------------------- 1 | name=RA8876 2 | version=1.0.2 3 | author=Jaret Burkett 4 | maintainer=Jaret Burkett 5 | sentence=Library for RA8876 displays 6 | paragraph=Library for RA8876 displays 7 | category=Display 8 | url=https://github.com/jaretburkett/ILI9488 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/base64-1.1.1/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Densaugeo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/base64-1.1.1/Makefile: -------------------------------------------------------------------------------- 1 | CXX ?= g++ 2 | CFLAGS ?= -Wall -I src 3 | 4 | test: catch.cpp catch.hpp src/base64.hpp 5 | $(CXX) $(CFLAGS) catch.cpp -o catch 6 | ./catch 7 | 8 | clean: 9 | rm catch 10 | -------------------------------------------------------------------------------- /lib/base64-1.1.1/library.properties: -------------------------------------------------------------------------------- 1 | name=base64 2 | version=1.1.1 3 | author=Densaugeo 4 | maintainer=Densaugeo 5 | sentence=Base64 encoder/decoder for arduino repo 6 | paragraph=Uses common web conventions - '+' for 62, '/' for 63, '=' for padding. Note that invalid base64 characters are interpreted as padding. 7 | category=Communication 8 | url=https://github.com/Densaugeo/base64_arduino 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/bearssl-esp8266/bearssl_esp8266-customized.txt: -------------------------------------------------------------------------------- 1 | This library is adapted from bearssl-esp8266 to avoid conflict with the 2 | BearSSL headers in Arduino Core. 3 | 4 | To recreate, copy all original 'src/' and 'inc/' into 'src/' lib. 5 | 6 | Then rename the following: 7 | - "bearssl with "t_bearssl 8 | - "inner with "t_inner 9 | - "config with "t_config 10 | 11 | Add the customized files in src/: 12 | - t_bearssl_tasmota_config.h 13 | - pgmspace_bearssl.h 14 | -------------------------------------------------------------------------------- /lib/bearssl-esp8266/conf/esp8266.mk: -------------------------------------------------------------------------------- 1 | # Configuration for compiling to an ESP8266 from a UNIX system 2 | 3 | # We are on a Unix system so we assume a Single Unix compatible 'make' 4 | # utility, and Unix defaults. 5 | include conf/Unix.mk 6 | 7 | # We override the build directory. 8 | BUILD = esp8266 9 | 10 | # C compiler, linker, and static library builder. 11 | TOOLCHAIN_PREFIX := xtensa-lx106-elf- 12 | CC := $(TOOLCHAIN_PREFIX)gcc 13 | CFLAGS = -W -Wall -g -O2 -Wpointer-arith -Wl,-EL -nostdlib -mlongcalls -mno-text-section-literals -ffunction-sections -fdata-sections -Werror 14 | CFLAGS += -D__ets__ -DICACHE_FLASH -DESP8266 -DBR_SLOW_MUL15=1 15 | LD := $(TOOLCHAIN_PREFIX)ld 16 | AR := $(TOOLCHAIN_PREFIX)ar 17 | 18 | # We compile only the static library. 19 | DLL = no 20 | TOOLS = no 21 | TESTS = no 22 | -------------------------------------------------------------------------------- /lib/bearssl-esp8266/library.properties: -------------------------------------------------------------------------------- 1 | name=BearSSL 2 | version=0.6 3 | author=Thomas Pornin 4 | maintainer=Earle F. Philhower, III 5 | sentence=BearSSL implementation of the SSL/TLS protocol optimized for ESP8266 by Earle F. Philhower, optimized for Tamota by Stephan Hadinger 6 | paragraph= 7 | category=Other 8 | url=https://github.com/earlephilhower/bearssl-esp8266.git 9 | architectures=esp8266 10 | -------------------------------------------------------------------------------- /lib/bearssl-esp8266/src/t_bearssl_tasmota_config.h: -------------------------------------------------------------------------------- 1 | // do not delete 2 | 3 | #ifndef BEARSSL_TASMOTA_CONFIG 4 | #define BEARSSL_TASMOTA_CONFIG 5 | 6 | #ifndef __ets__ 7 | #define __ets__ 8 | #endif 9 | 10 | #ifndef ICACHE_FLASH 11 | #define ICACHE_FLASH 12 | #endif 13 | 14 | #ifndef ESP8266 15 | #define ESP8266 16 | #endif 17 | 18 | #ifndef BR_SLOW_MUL15 19 | #define BR_SLOW_MUL15 1 // shrinks EC code by 8.5k 20 | #endif 21 | 22 | #ifndef BR_MAX_RSA_SIZE 23 | #ifdef USE_4K_RSA 24 | #define BR_MAX_RSA_SIZE 4096 // max 4096 bits RSA keys 25 | #else 26 | #define BR_MAX_RSA_SIZE 2048 // max 2048 bits RSA keys 27 | #endif 28 | #endif 29 | 30 | #ifndef BR_MAX_EC_SIZE 31 | #define BR_MAX_EC_SIZE 256 // max 256 bits EC keys 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/.gitignore: -------------------------------------------------------------------------------- 1 | sdkconfig* 2 | .cproject 3 | .project 4 | .settings/* 5 | build/* 6 | doxygen_sqlite3.db 7 | docs/_build 8 | docs/man 9 | docs/xml 10 | docs/doxygen-warning-log.txt 11 | docs/sphinx-warning-log.txt 12 | *.pyc 13 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/Arduino/libraries/readme.txt: -------------------------------------------------------------------------------- 1 | For information on installing libraries, see: http://www.arduino.cc/en/Guide/Libraries 2 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # This is a project Makefile. It is assumed the directory this Makefile resides in is a 3 | # project subdirectory. 4 | # 5 | 6 | PROJECT_NAME := esp-epaper-29-ws 7 | 8 | include $(IDF_PATH)/make/project.mk 9 | 10 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/components/epaper-29-ws/component.mk: -------------------------------------------------------------------------------- 1 | COMPONENT_ADD_INCLUDEDIRS := . 2 | 3 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/components/epaper-29-ws/epaper_fonts.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-2017 Espressif Systems (Shanghai) PTE LTD 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | 16 | #ifndef _IOT_EPAPER_FONTS_H_ 17 | #define _IOT_EPAPER_FONTS_H_ 18 | 19 | #ifdef __cplusplus 20 | extern "C" 21 | { 22 | #endif 23 | #include 24 | #include "epaper-29-ws.h" 25 | 26 | extern epaper_font_t epaper_font_24; 27 | extern epaper_font_t epaper_font_20; 28 | extern epaper_font_t epaper_font_16; 29 | extern epaper_font_t epaper_font_12; 30 | extern epaper_font_t epaper_font_8; 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/docs/README.md: -------------------------------------------------------------------------------- 1 | # Documentation Source Folder 2 | 3 | This folder contains source files of [documentation](https://esp-epaper-29-ws.readthedocs.io/). 4 | 5 | The sources do not render well in GitHub and some information is not visible at all. 6 | 7 | Use actual the link above to access documentation generated instantly on each commit: 8 | 9 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/docs/index.rst: -------------------------------------------------------------------------------- 1 | ESP-IDF Component Documentation 2 | =============================== 3 | 4 | Component: epaper-29-ws 5 | ----------------------- 6 | 7 | This component and documentation is based almost entirely on `epaper `_ component for another type of display developed by `esp-iot-solution `_ team. 8 | 9 | .. include:: _build/inc/epaper-29-ws.inc 10 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/docs/repo_util.py: -------------------------------------------------------------------------------- 1 | import re 2 | import os 3 | 4 | def run_cmd_get_output(cmd): 5 | return os.popen(cmd).read().strip() 6 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/docs/requirements.txt: -------------------------------------------------------------------------------- 1 | # This is a list of python packages used to generate documentation. This file is used with pip: 2 | # pip install -r requirements.txt 3 | # 4 | sphinx==1.6.5 5 | sphinx-rtd-theme 6 | breathe==4.7.3 7 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/library.properties: -------------------------------------------------------------------------------- 1 | name=Waveshare esp 2.9 inch e-paper display driver 2 | version=1.0 3 | author=Gerhard Mutz 4 | maintainer=Gerhard Mutz 5 | sentence=ESP8266 library for Waveshare e-paper display. 6 | paragraph= 7 | category=Display 8 | url=https://github.com/gemu2015/Sonoff-Tasmota/tree/displays/lib/esp-epaper-29-ws-20171230-gemu-1.0# 9 | architectures=esp8266 10 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/main/component.mk: -------------------------------------------------------------------------------- 1 | # 2 | # "main" pseudo-component makefile. 3 | # 4 | # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) 5 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/main/imagedata.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-2017 Espressif Systems (Shanghai) PTE LTD 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | extern const unsigned char IMAGE_DATA[]; 16 | 17 | /* FILE END */ 18 | 19 | -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/2.9inch_e-Paper_Datasheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/2.9inch_e-Paper_Datasheet.pdf -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/e-paper-and-esp-sample-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/e-paper-and-esp-sample-image.jpg -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/e-paper-and-esp-sample-text.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/e-paper-and-esp-sample-text.jpg -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/espresif-logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/espresif-logo.bmp -------------------------------------------------------------------------------- /lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/image-conversion-setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arendst/Tasmota-Playground/c860f909e0a5cde3f3e3ef7d611047851bce2f1e/lib/esp-epaper-29-ws-20171230-gemu-1.1/pictures/image-conversion-setup.png -------------------------------------------------------------------------------- /lib/esp-knx-ip-0.5.2/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Nico Weichbrodt 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /lib/esp-knx-ip-0.5.2/library.properties: -------------------------------------------------------------------------------- 1 | name=ESP KNX IP Library 2 | version=0.5.2 3 | author=Nico Weichbrodt 4 | maintainer=Nico Weichbrodt 5 | sentence=ESP8266 library for KNX/IP communication. 6 | paragraph=Build your own IoT devices with KNX/IP connectivity! 7 | category=Communication 8 | url=https://github.com/envy/esp-knx-ip 9 | architectures=esp8266 10 | includes=esp-knx-ip.h 11 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/.gitignore: -------------------------------------------------------------------------------- 1 | # Mac stuff 2 | .DS_Store 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | 9 | # Compiled Dynamic libraries 10 | *.so 11 | *.dylib 12 | 13 | # Compiled Static libraries 14 | *.lai 15 | *.la 16 | *.a 17 | 18 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/examples/ReceiveDemo_Advanced/ReceiveDemo_Advanced.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Example for receiving 3 | 4 | https://github.com/sui77/rc-switch/ 5 | 6 | If you want to visualize a telegram copy the raw data and 7 | paste it into http://test.sui.li/oszi/ 8 | */ 9 | 10 | #include 11 | 12 | RCSwitch mySwitch = RCSwitch(); 13 | 14 | void setup() { 15 | Serial.begin(9600); 16 | mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2 17 | } 18 | 19 | void loop() { 20 | if (mySwitch.available()) { 21 | output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol()); 22 | mySwitch.resetAvailable(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/examples/ReceiveDemo_Simple/ReceiveDemo_Simple.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Simple example for receiving 3 | 4 | https://github.com/sui77/rc-switch/ 5 | */ 6 | 7 | #include 8 | 9 | RCSwitch mySwitch = RCSwitch(); 10 | 11 | void setup() { 12 | Serial.begin(9600); 13 | mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2 14 | } 15 | 16 | void loop() { 17 | if (mySwitch.available()) { 18 | 19 | Serial.print("Received "); 20 | Serial.print( mySwitch.getReceivedValue() ); 21 | Serial.print(" / "); 22 | Serial.print( mySwitch.getReceivedBitlength() ); 23 | Serial.print("bit "); 24 | Serial.print("Protocol: "); 25 | Serial.println( mySwitch.getReceivedProtocol() ); 26 | 27 | mySwitch.resetAvailable(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/examples/TypeA_WithDIPSwitches/TypeA_WithDIPSwitches.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Example for outlets which are configured with a 10 pole DIP switch. 3 | 4 | https://github.com/sui77/rc-switch/ 5 | */ 6 | 7 | #include 8 | 9 | RCSwitch mySwitch = RCSwitch(); 10 | 11 | void setup() { 12 | 13 | // Transmitter is connected to Arduino Pin #10 14 | mySwitch.enableTransmit(10); 15 | 16 | // Optional set pulse length. 17 | // mySwitch.setPulseLength(320); 18 | 19 | } 20 | 21 | void loop() { 22 | 23 | // Switch on: 24 | // The first parameter represents the setting of the first 5 DIP switches. 25 | // In this example it's ON-ON-OFF-OFF-ON. 26 | // 27 | // The second parameter represents the setting of the last 5 DIP switches. 28 | // In this example the last 5 DIP switches are OFF-ON-OFF-ON-OFF. 29 | mySwitch.switchOn("11001", "01010"); 30 | 31 | // Wait a second 32 | delay(1000); 33 | 34 | // Switch off 35 | mySwitch.switchOff("11001", "01010"); 36 | 37 | // Wait another second 38 | delay(1000); 39 | 40 | } 41 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/examples/TypeA_WithDIPSwitches_Lightweight/TypeA_WithDIPSwitches_Lightweight.ino: -------------------------------------------------------------------------------- 1 | /* 2 | This is a minimal sketch without using the library at all but only works for 3 | the 10 pole dip switch sockets. It saves a lot of memory and thus might be 4 | very useful to use with ATTinys :) 5 | 6 | https://github.com/sui77/rc-switch/ 7 | */ 8 | 9 | int RCLpin = 7; 10 | 11 | void setup() { 12 | pinMode(RCLpin, OUTPUT); 13 | } 14 | 15 | void loop() { 16 | RCLswitch(0b010001000001); // DIPs an Steckdose: 0100010000 An:01 17 | delay(2000); 18 | 19 | RCLswitch(0b010001000010); // DIPs an Steckdose: 0100010000 Aus:10 20 | delay(2000); 21 | } 22 | 23 | void RCLswitch(uint16_t code) { 24 | for (int nRepeat=0; nRepeat<6; nRepeat++) { 25 | for (int i=4; i<16; i++) { 26 | RCLtransmit(1,3); 27 | if (((code << (i-4)) & 2048) > 0) { 28 | RCLtransmit(1,3); 29 | } else { 30 | RCLtransmit(3,1); 31 | } 32 | } 33 | RCLtransmit(1,31); 34 | } 35 | } 36 | 37 | void RCLtransmit(int nHighPulses, int nLowPulses) { 38 | digitalWrite(RCLpin, HIGH); 39 | delayMicroseconds( 350 * nHighPulses); 40 | digitalWrite(RCLpin, LOW); 41 | delayMicroseconds( 350 * nLowPulses); 42 | } 43 | 44 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/examples/TypeB_WithRotaryOrSlidingSwitches/TypeB_WithRotaryOrSlidingSwitches.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Example for outlets which are configured with two rotary/sliding switches. 3 | 4 | https://github.com/sui77/rc-switch/ 5 | */ 6 | 7 | #include 8 | 9 | RCSwitch mySwitch = RCSwitch(); 10 | 11 | void setup() { 12 | 13 | // Transmitter is connected to Arduino Pin #10 14 | mySwitch.enableTransmit(10); 15 | 16 | // Optional set pulse length. 17 | // mySwitch.setPulseLength(320); 18 | 19 | } 20 | 21 | void loop() { 22 | 23 | // Switch on: 24 | // The first parameter represents the setting of the first rotary switch. 25 | // In this example it's switched to "1" or "A" or "I". 26 | // 27 | // The second parameter represents the setting of the second rotary switch. 28 | // In this example it's switched to "4" or "D" or "IV". 29 | mySwitch.switchOn(1, 4); 30 | 31 | // Wait a second 32 | delay(1000); 33 | 34 | // Switch off 35 | mySwitch.switchOff(1, 4); 36 | 37 | // Wait another second 38 | delay(1000); 39 | 40 | } 41 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/examples/TypeC_Intertechno/TypeC_Intertechno.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Example for Intertechno outlets 3 | 4 | https://github.com/sui77/rc-switch/ 5 | */ 6 | 7 | #include 8 | 9 | RCSwitch mySwitch = RCSwitch(); 10 | 11 | void setup() { 12 | 13 | // Transmitter is connected to Arduino Pin #10 14 | mySwitch.enableTransmit(10); 15 | 16 | // Optional set pulse length. 17 | // mySwitch.setPulseLength(320); 18 | 19 | } 20 | 21 | void loop() { 22 | 23 | // Switch on: 24 | // The first parameter represents the familycode (a, b, c, ... f) 25 | // The second parameter represents the group number 26 | // The third parameter represents the device number 27 | // 28 | // In this example it's family 'b', group #3, device #2 29 | mySwitch.switchOn('b', 3, 2); 30 | 31 | // Wait a second 32 | delay(1000); 33 | 34 | // Switch off 35 | mySwitch.switchOff('b', 3, 2); 36 | 37 | // Wait another second 38 | delay(1000); 39 | 40 | } -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/examples/TypeD_REV/TypeD_REV.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Example for REV outlets (e.g. 8342L) 3 | 4 | https://github.com/sui77/rc-switch/ 5 | 6 | Need help? http://forum.ardumote.com 7 | */ 8 | 9 | #include 10 | 11 | RCSwitch mySwitch = RCSwitch(); 12 | 13 | void setup() { 14 | 15 | // Transmitter is connected to Arduino Pin #10 16 | mySwitch.enableTransmit(10); 17 | 18 | // set pulse length. 19 | mySwitch.setPulseLength(360); 20 | 21 | } 22 | 23 | void loop() { 24 | 25 | // Switch on: 26 | // The first parameter represents the channel (a, b, c, d) 27 | // The second parameter represents the device number 28 | // 29 | // In this example it's family 'd', device #2 30 | mySwitch.switchOn('d', 2); 31 | 32 | // Wait a second 33 | delay(1000); 34 | 35 | // Switch off 36 | mySwitch.switchOff('d', 2); 37 | 38 | // Wait another second 39 | delay(1000); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For RCSwitch 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | RCSwitch KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | ########## 16 | #SENDS Begin 17 | ########## 18 | switchOn KEYWORD2 19 | switchOff KEYWORD2 20 | sendTriState KEYWORD2 21 | send KEYWORD2 22 | ########## 23 | #SENDS End 24 | ########## 25 | 26 | ########## 27 | #RECEIVE Begin 28 | ########## 29 | enableReceive KEYWORD2 30 | disableReceive KEYWORD2 31 | available KEYWORD2 32 | resetAvailable KEYWORD2 33 | setReceiveTolerance KEYWORD2 34 | getReceivedValue KEYWORD2 35 | getReceivedBitlength KEYWORD2 36 | getReceivedDelay KEYWORD2 37 | getReceivedProtocol KEYWORD2 38 | getReceivedRawdata KEYWORD2 39 | ########## 40 | #RECEIVE End 41 | ########## 42 | 43 | ########## 44 | #OTHERS Begin 45 | ########## 46 | enableTransmit KEYWORD2 47 | disableTransmit KEYWORD2 48 | setPulseLength KEYWORD2 49 | setProtocol KEYWORD2 50 | setRepeatTransmit KEYWORD2 51 | ########## 52 | #OTHERS End 53 | ########## 54 | 55 | ####################################### 56 | # Constants (LITERAL1) 57 | ####################################### 58 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rc-switch", 3 | "description": "Use your Arduino or Raspberry Pi to operate remote radio controlled devices", 4 | "keywords": "rf, radio, wireless", 5 | "authors": 6 | { 7 | "name": "Suat Ozgur" 8 | }, 9 | "repository": 10 | { 11 | "type": "git", 12 | "url": "https://github.com/sui77/rc-switch.git" 13 | }, 14 | "version": "2.6.2", 15 | "frameworks": [ 16 | "arduino", 17 | "energia", 18 | "wiringpi" 19 | ], 20 | "platforms": "*" 21 | } 22 | -------------------------------------------------------------------------------- /lib/rc-switch-2.6.2.13/library.properties: -------------------------------------------------------------------------------- 1 | name=rc-switch 2 | version=2.6.2 3 | author=sui77 4 | maintainer=sui77,fingolfin 5 | sentence=Operate 433/315Mhz devices. 6 | paragraph=Use your Arduino, ESP8266/ESP32 or Raspberry Pi to operate remote radio controlled devices. This will most likely work with all popular low cost power outlet sockets. 7 | category=Device Control 8 | url=https://github.com/sui77/rc-switch 9 | architectures=avr,esp8266,esp32 10 | includes=RCSwitch.h 11 | -------------------------------------------------------------------------------- /lib/vl53l0x-arduino-1.02/.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | 3 | cache: 4 | directories: 5 | - "~/.platformio" 6 | 7 | install: 8 | - pip install -U platformio 9 | 10 | env: 11 | - BOARD=uno 12 | - BOARD=leonardo 13 | - BOARD=micro 14 | - BOARD=megaatmega2560 15 | - BOARD=due 16 | - BOARD=yun 17 | - BOARD=genuino101 18 | - BOARD=zero 19 | 20 | script: 21 | - set -eo pipefail; 22 | for e in examples/*; do 23 | platformio ci --board=$BOARD --lib=. $e/*; 24 | done 25 | -------------------------------------------------------------------------------- /lib/vl53l0x-arduino-1.02/examples/Continuous/Continuous.ino: -------------------------------------------------------------------------------- 1 | /* This example shows how to use continuous mode to take 2 | range measurements with the VL53L0X. It is based on 3 | vl53l0x_ContinuousRanging_Example.c from the VL53L0X API. 4 | 5 | The range readings are in units of mm. */ 6 | 7 | #include 8 | #include 9 | 10 | VL53L0X sensor; 11 | 12 | void setup() 13 | { 14 | Serial.begin(9600); 15 | Wire.begin(); 16 | 17 | sensor.init(); 18 | sensor.setTimeout(500); 19 | 20 | // Start continuous back-to-back mode (take readings as 21 | // fast as possible). To use continuous timed mode 22 | // instead, provide a desired inter-measurement period in 23 | // ms (e.g. sensor.startContinuous(100)). 24 | sensor.startContinuous(); 25 | } 26 | 27 | void loop() 28 | { 29 | Serial.print(sensor.readRangeContinuousMillimeters()); 30 | if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); } 31 | 32 | Serial.println(); 33 | } 34 | -------------------------------------------------------------------------------- /lib/vl53l0x-arduino-1.02/library.properties: -------------------------------------------------------------------------------- 1 | name=VL53L0X 2 | version=1.0.2 3 | author=Pololu 4 | maintainer=Pololu 5 | sentence=VL53L0X distance sensor library 6 | paragraph=This is a library for the Arduino IDE that helps interface with ST's VL53L0X distance sensor. 7 | category=Sensors 8 | url=https://github.com/pololu/vl53l0x-arduino 9 | architectures=* 10 | -------------------------------------------------------------------------------- /pio/http-uploader.py: -------------------------------------------------------------------------------- 1 | Import("env") 2 | 3 | # pio < 4.0.0 4 | # from base64 import b64decode 5 | # env.Replace(UPLOADER="pio\espupload.py") 6 | # env.Replace(UPLOADERFLAGS="") 7 | # env.Replace(UPLOADCMD="$UPLOADER -u " + b64decode(ARGUMENTS.get("UPLOAD_PORT")) + " -f $SOURCES") 8 | 9 | # pio >= 4.0.0 10 | env.Replace(UPLOADER="pio\espupload.py") 11 | env.Replace(UPLOADERFLAGS="") 12 | env.Replace(UPLOADCMD="$UPLOADER -u $UPLOAD_PORT -f $SOURCES") 13 | 14 | ''' 15 | env.Replace(UPLOADCMD="pio\espupload.py -f $SOURCES") # Windows 16 | env.Replace(UPLOADCMD="pio/espupload.py -f $SOURCES") # Linux 17 | ''' -------------------------------------------------------------------------------- /pio/name-firmware.py: -------------------------------------------------------------------------------- 1 | Import('env') 2 | import os 3 | import shutil 4 | 5 | OUTPUT_DIR = "build_output{}".format(os.path.sep) 6 | 7 | def bin_map_copy(source, target, env): 8 | variant = str(target[0]).split(os.path.sep)[1] 9 | 10 | # check if output directories exist and create if necessary 11 | if not os.path.isdir(OUTPUT_DIR): 12 | os.mkdir(OUTPUT_DIR) 13 | 14 | for d in ['firmware', 'map']: 15 | if not os.path.isdir("{}{}".format(OUTPUT_DIR, d)): 16 | os.mkdir("{}{}".format(OUTPUT_DIR, d)) 17 | 18 | # create string with location and file names based on variant 19 | map_file = "{}map{}{}.map".format(OUTPUT_DIR, os.path.sep, variant) 20 | bin_file = "{}firmware{}{}.bin".format(OUTPUT_DIR, os.path.sep, variant) 21 | 22 | # check if new target files exist and remove if necessary 23 | for f in [map_file, bin_file]: 24 | if os.path.isfile(f): 25 | os.remove(f) 26 | 27 | # copy firmware.bin to firmware/.bin 28 | shutil.copy(str(target[0]), bin_file) 29 | 30 | # copy firmware.map to map/.map 31 | shutil.copy("firmware.map", map_file) 32 | 33 | env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", [bin_map_copy]) 34 | -------------------------------------------------------------------------------- /pio/obj-dump.py: -------------------------------------------------------------------------------- 1 | # Little convenience script to get an object dump 2 | 3 | Import('env') 4 | 5 | def obj_dump_after_elf(source, target, env): 6 | print("Create firmware.asm") 7 | env.Execute("xtensa-lx106-elf-objdump "+ "-D " + str(target[0]) + " > "+ "${PROGNAME}.asm") 8 | 9 | env.AddPostAction("$BUILD_DIR/${PROGNAME}.elf", [obj_dump_after_elf]) 10 | -------------------------------------------------------------------------------- /pio/sftp-uploader.py: -------------------------------------------------------------------------------- 1 | Import("env") 2 | 3 | # pio < 4.0.0 4 | # from base64 import b64decode 5 | # env.Replace(UPLOADER="scp") 6 | # env.Replace(UPLOADERFLAGS="") 7 | # env.Replace(UPLOADCMD="$UPLOADER $SOURCES " + b64decode(ARGUMENTS.get("UPLOAD_PORT")) + "/" + b64decode(ARGUMENTS.get("PIOENV")) + ".bin") 8 | 9 | # pio >= 4.0.0 10 | env.Replace(UPLOADER="scp") 11 | env.Replace(UPLOADERFLAGS="") 12 | env.Replace(UPLOADCMD='$UPLOADER $SOURCES "$UPLOAD_PORT/${PIOENV}.bin"') 13 | -------------------------------------------------------------------------------- /pio/strip-floats.py: -------------------------------------------------------------------------------- 1 | Import('env') 2 | 3 | # 4 | # Dump build environment (for debug) 5 | #print env.Dump() 6 | # 7 | 8 | flags = " ".join(env['LINKFLAGS']) 9 | flags = flags.replace("-u _printf_float", "") 10 | flags = flags.replace("-u _scanf_float", "") 11 | newflags = flags.split() 12 | 13 | env.Replace( 14 | LINKFLAGS=newflags 15 | ) -------------------------------------------------------------------------------- /tasmota/sendemail.h: -------------------------------------------------------------------------------- 1 | #ifndef __SENDEMAIL_H 2 | #define __SENDEMAIL_H 3 | 4 | //#define DEBUG_EMAIL_PORT 5 | 6 | //#include 7 | //#include 8 | #include 9 | //#include 10 | 11 | #include "WiFiClientSecureLightBearSSL.h" 12 | 13 | class SendEmail 14 | { 15 | private: 16 | const String host; 17 | const int port; 18 | const String user; 19 | const String passwd; 20 | const int timeout; 21 | const bool ssl; 22 | const int auth_used; 23 | #if defined(ARDUINO_ESP8266_RELEASE_2_3_0) || defined(ARDUINO_ESP8266_RELEASE_2_4_2) 24 | WiFiClient* client; 25 | #else 26 | // use bear ssl 27 | BearSSL::WiFiClientSecure_light *client; 28 | #endif 29 | String readClient(); 30 | void a3_to_a4(unsigned char * a4, unsigned char * a3); 31 | int base64_encode(char *output, const char *input, int inputLen); 32 | public: 33 | SendEmail(const String& host, const int port, const String& user, const String& passwd, const int timeout, const int auth_used); 34 | bool send(const String& from, const String& to, const String& subject, const char *msg); 35 | ~SendEmail() {client->stop(); delete client;} 36 | }; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /tasmota/tasmota_version.h: -------------------------------------------------------------------------------- 1 | /* 2 | tasmota_version.h - Version header file for Tasmota 3 | 4 | Copyright (C) 2019 Theo Arends 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see . 18 | */ 19 | 20 | #ifndef _TASMOTA_VERSION_H_ 21 | #define _TASMOTA_VERSION_H_ 22 | 23 | const uint32_t VERSION = 0x07010101; 24 | 25 | #endif // _TASMOTA_VERSION_H_ 26 | -------------------------------------------------------------------------------- /tools/Esptool/EraseFlash.bat: -------------------------------------------------------------------------------- 1 | esptool.py --baud 115200 erase_flash 2 | -------------------------------------------------------------------------------- /tools/Esptool/ReadFlash.bat: -------------------------------------------------------------------------------- 1 | esptool.py --baud 115200 read_flash 0x000000 0x100000 backup.bin 2 | -------------------------------------------------------------------------------- /tools/Esptool/VerifyFlash.bat: -------------------------------------------------------------------------------- 1 | esptool.py --baud 115200 verify_flash -fs 1MB -fm dout 0x000000 firmware.bin 2 | -------------------------------------------------------------------------------- /tools/Esptool/WriteFlash.bat: -------------------------------------------------------------------------------- 1 | esptool.py --baud 115200 write_flash -fs 1MB -fm dout 0x000000 firmware.bin 2 | -------------------------------------------------------------------------------- /tools/decode-config.md: -------------------------------------------------------------------------------- 1 | A tool to backup and restore the configuration of [Tasmota](http://tasmota.com/)-devices. 2 | 3 | ## decode-config has moved to [https://github.com/tasmota/decode-config](https://github.com/tasmota/decode-config) 4 | -------------------------------------------------------------------------------- /tools/fw_server/fw/README: -------------------------------------------------------------------------------- 1 | Copy Tasmota firmware binary files in this directory. 2 | A set of prebuilt files can be downloaded by Tasmota release page: 3 | https://github.com/arendst/Tasmota/releases -------------------------------------------------------------------------------- /tools/logo/TASMOTA_Symbol_Vector.svg: -------------------------------------------------------------------------------- 1 | Element 1 -------------------------------------------------------------------------------- /tools/theov2_attiny85/info.txt: -------------------------------------------------------------------------------- 1 | These files provide Arduino code for ATTiny85 battery powered sensor hardware. 2 | 3 | Tasmota can receive and decode them when defines USE_RF_SENSOR and USE_THEO_V2 are enabled 4 | 5 | 6 | TheoV2Sensor1 - Light and Temperature 7 | Uses BH1750 and DS18B20 8 | Uses 1 x 3.6V Lithium battery lasting at least 3 years 9 | See https://sidweb.nl/cms3/en/projects/mcs51/attiny85-lichtsensor 10 | 11 | 12 | TheoV2Sensor2 - Temperature and Humidity 13 | Uses DHT22 14 | Uses 3 x AAA battery lasting at least 3 years 15 | See https://sidweb.nl/cms3/en/projects/mcs51/vocht-en-tempsensor -------------------------------------------------------------------------------- /updateDocs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | SCRIPTPATH="$(readlink -f "$0")" 4 | SCRIPTPATH="${SCRIPTPATH%/*}" 5 | 6 | rm -rf "$SCRIPTPATH/html" 7 | echo -e "\n\n\n\n" 8 | #cd "$SCRIPTPATH/" && doxygen && git add $DOCDIR && git commit -a -m "Documentation update." 9 | cd "$SCRIPTPATH/" && doxygen 10 | --------------------------------------------------------------------------------