diff --git a/.github/workflows/Tasmota_build_master.yml b/.github/workflows/Tasmota_build_master.yml index c80e3d61e..36536799f 100644 --- a/.github/workflows/Tasmota_build_master.yml +++ b/.github/workflows/Tasmota_build_master.yml @@ -1395,8 +1395,16 @@ jobs: name: firmware path: ./mv_firmware - name: Display structure of downloaded files - run: ls -R - working-directory: ./mv_firmware + run: ls -R ./mv_firmware/ + - name: Release + uses: softprops/action-gh-release@v1 + #if: startsWith(github.ref, 'refs/tags/') + with: + tag_name: ${{ github.run_number }} + files: ./mv_firmware/firmware/* + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Move firmware files in sub-folders run: | mkdir -p ./firmware/tasmota/languages diff --git a/CHANGELOG.md b/CHANGELOG.md index fc7601559..810ba4166 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,48 @@ # Changelog All notable changes to this project will be documented in this file. -## [Released] +## [Released] + +## [9.5.0] 20210617 +- Release Michael + +## [9.4.0.5] +### Added +- Preliminary support for Esp32C3 - RiscV based + +### Changed +- NeoPixelBus library from v2.6.1.4 to v2.6.3 stage +- Allow longer MQTT response messages by removing fixed memory buffer with size 1040 to heap allocated buffer +- Command ``Timers`` layout of JSON message changed to single line +- Command ``Gpio`` layout of JSON message changed to single line +- Command ``Modules`` layout of JSON message changed to single line +- I2C extended MPU6886 to also support MPU9250 (found in Legacy M5Stack Fire) +- ESP32 increase log buffer from 4k to 6k to support longer messages +- Move Settings from DRAM to heap + +## [9.4.0.4] +### Added +- Version bump to signal new features to Hass +- Support for BM8563 RTC chip (I2C) found in M5Stack Core2 and M5StickC +- Command ``Status0`` providing all status information on a single line + +### Changed +- IRremoteESP8266 library from v2.7.16 to v2.7.18 + +## [9.4.0.3] 20210515 +### Added +- Make Telegram command ``TmState`` persistent (#11965) +- Zigbee firmware for Tube's Zigbee coordinator based on EFR32 and ESP32 +- Zigbee firmware 6.7.9 for Sonoff ZBBridge +- Defines ``USER_RULE1``, ``USER_RULE2`` and ``USER_RULE3`` to store rules at compile time +- Define ``USER_BACKLOG`` to store commands at compile time to be executed at firmware load or when executing command ``reset`` +- LVGL support for TrueType fonts via FreeType library + +## [9.4.0.2] 20210430 +### Added +- Initial support for optional ``Template`` JSON fieldpair ``"CMND":"||..."`` (#11788) +- ESP32 pulldown buttons ``Button_d`` and ``Button_id`` and switches ``Switch_d`` (#10814) +- Support for MQTT using Azure IoT Hub by Kevin Saye (#11906) ## [9.4.0] 20210423 - Release Leslie diff --git a/FIRMWARE.md b/FIRMWARE.md index ece91f1fd..cc03ba3a8 100644 --- a/FIRMWARE.md +++ b/FIRMWARE.md @@ -18,7 +18,7 @@ See [CHANGELOG.md](https://github.com/arendst/Tasmota/blob/development/tasmota/C ## Development -[![Dev Version](https://img.shields.io/badge/development%20version-v9.4.x.x-blue.svg)](https://github.com/arendst/Tasmota) +[![Dev Version](https://img.shields.io/badge/development%20version-v9.5.x.x-blue.svg)](https://github.com/arendst/Tasmota) [![Download Dev](https://img.shields.io/badge/download-development-yellow.svg)](http://ota.tasmota.com/tasmota/) [![Tasmota CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+CI%22) [![Tasmota ESP32 CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20ESP32%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+ESP32+CI%22) diff --git a/I2CDEVICES.md b/I2CDEVICES.md index 8d5e34459..84dac460b 100644 --- a/I2CDEVICES.md +++ b/I2CDEVICES.md @@ -91,4 +91,5 @@ Index | Define | Driver | Device | Address(es) | Description 55 | USE_EZOPMP | xsns_78 | EZOPMP | 0x61 - 0x70 | Peristaltic Pump 56 | USE_SEESAW_SOIL | xsns_81 | SEESOIL | 0x36 - 0x39 | Adafruit seesaw soil moisture sensor 57 | USE_TOF10120 | xsns_84 | TOF10120 | 0x52 | Time-of-flight (ToF) distance sensor - 58 | USE_MPU6886 | xsns_85 | MPU6886 | 0x68 | MPU6886 M5Stack \ No newline at end of file + 58 | USE_MPU_ACCEL | xsns_85 | MPU_ACCEL| 0x68 | MPU6886/MPU9250 6-axis MotionTracking sensor from M5Stack + 59 | USE_BM8563 | xdrv_56 | BM8563 | 0x51 | BM8563 RTC from M5Stack \ No newline at end of file diff --git a/MODULES.md b/MODULES.md index 160bb0346..721ccafbf 100644 --- a/MODULES.md +++ b/MODULES.md @@ -1,6 +1,7 @@ ## Supported Modules -The following hardware modules are supported. +### ESP8266 based +The following ESP8266 based hardware modules are supported. Module | LCode | Description -------------------|-------|----------------------- @@ -80,4 +81,17 @@ Module | LCode | Description 74 Sonoff D1 | x | Sonoff D1 Wifi and RF Dimmer 75 Sonoff ZbBridge | x | Sonoff Zigbee bridge -Over 1940 additional devices are supported using [templates](TEMPLATES.md). +### ESP32 based +The following ESP32 based hardware modules are supported. + +Module | LCode | Description +-------------------|-------|----------------------- +01 ESP32-DevKit | x | Any ESP32 device +02 ESP32-Cam | x | ESP32 webcam +03 Odroid Go | x | Odroid Go +04 ESP32-Solo | x | ESP32-Solo +05 WT32-Eth01 | x | WT32-Eth01 ethernet +06 TTGO Watch | x | TTGO Watch +07 M5Stack Core2 | x | M5Stack Core2 + +Over 2000 additional devices are supported using [templates](TEMPLATES.md). diff --git a/README.md b/README.md index 307274e5d..027541b14 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Alternative firmware for [ESP8266](https://en.wikipedia.org/wiki/ESP8266) and [ESP32](https://en.wikipedia.org/wiki/ESP32) based devices with **easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX**. _Written for PlatformIO with limited support for Arduino IDE._ -[![GitHub version](https://img.shields.io/github/release/arendst/Tasmota.svg)](https://github.com/arendst/Tasmota/releases/latest) +[![GitHub version](https://img.shields.io/github/release/arendst/Tasmota.svg)](http://ota.tasmota.com/tasmota/release) [![GitHub download](https://img.shields.io/github/downloads/arendst/Tasmota/total.svg)](https://github.com/arendst/Tasmota/releases/latest) [![License](https://img.shields.io/github/license/arendst/Tasmota.svg)](LICENSE.txt) [![Chat](https://img.shields.io/discord/479389167382691863.svg)](https://discord.gg/Ks2Kzd4) @@ -17,11 +17,11 @@ If you like **Tasmota**, give it a star, or fork it and contribute! See [RELEASENOTES.md](https://github.com/arendst/Tasmota/blob/master/RELEASENOTES.md) for release information. -In addition to the [release webpage](https://github.com/arendst/Tasmota/releases/latest) the binaries can also be downloaded from http://ota.tasmota.com/tasmota/release/ +Firmware binaries can be downloaded from http://ota.tasmota.com/tasmota/release/ or http://ota.tasmota.com/tasmota32/release/ for ESP32 binaries. ## Development -[![Dev Version](https://img.shields.io/badge/development%20version-v9.4.x.x-blue.svg)](https://github.com/arendst/Tasmota) +[![Dev Version](https://img.shields.io/badge/development%20version-v9.5.x.x-blue.svg)](https://github.com/arendst/Tasmota) [![Download Dev](https://img.shields.io/badge/download-development-yellow.svg)](http://ota.tasmota.com/tasmota/) [![Tasmota CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+CI%22) [![Tasmota ESP32 CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20ESP32%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+ESP32+CI%22) @@ -31,7 +31,7 @@ See [CHANGELOG.md](CHANGELOG.md) for detailed change information. Unless your Tasmota powered device exhibits a problem or you need to make use of a feature that is not available in the Tasmota version currently installed on your device, leave your device alone - it works so don't make unnecessary changes! If the release version (i.e., the master branch) exhibits unexpected behaviour for your device and configuration, you should upgrade to the latest development version instead to see if your problem is resolved as some bugs in previous releases or development builds may already have been resolved. -Every commit made to the development branch, which is compiling successfuly, will post new binary files at http://ota.tasmota.com/tasmota/ (this web address can be used for OTA updates too). It is important to note that these binaries are based on the current development codebase. These commits are tested as much as is possible and are typically quite stable. However, it is infeasible to test on the hundreds of different types of devices with all the available configuration options permitted. +Every commit made to the development branch, which is compiling successfuly, will post new binary files at http://ota.tasmota.com/tasmota/ (this web address can be used for OTA updates too). It is important to note that these binaries are based on the current development codebase. These commits are tested as much as is possible and are typically quite stable. However, it is infeasible to test on the hundreds of different types of devices with all the available configuration options permitted. Note that there is a chance, as with any upgrade, that the device may not function as expected. You must always account for the possibility that you may need to flash the device via the serial programming interface if the OTA upgrade fails. Even with the master release, you should always attempt to test the device or a similar prototype before upgrading a device which is in production or is hard to reach. And, as always, make a backup of the device configuration before beginning any firmware update. @@ -45,10 +45,10 @@ We don't take any responsibility nor liability for using this software nor for t ## Note -Please do not ask to add new devices unless it requires additional code for new features. If the device is not listed as a module, try using [Templates](https://tasmota.github.io/docs/Templates) first. If it is not listed in the [Tasmota Device Templates Repository](http://blakadder.github.io/templates) create your own [Template](https://tasmota.github.io/docs/Templates#creating-your-template). +Please do not ask to add new devices unless it requires additional code for new features. If the device is not listed as a module, try using [Templates](https://tasmota.github.io/docs/Templates) first. If it is not listed in the [Tasmota Device Templates Repository](http://templates.blakadder.com) create your own [Template](https://tasmota.github.io/docs/Templates#creating-your-template). ## Quick Install -Download one of the released binaries from https://github.com/arendst/Tasmota/releases and flash it to your hardware [using our installation guide](https://tasmota.github.io/docs/Getting-Started). +Download one of the released binaries from http://ota.tasmota.com/tasmota/release/ or http://ota.tasmota.com/tasmota32/release/ and flash it to your hardware [using our installation guide](https://tasmota.github.io/docs/Getting-Started). ## Important User Compilation Information If you want to compile Tasmota yourself keep in mind the following: @@ -141,7 +141,7 @@ People helping to keep the show on the road: - Frogmore42 for providing many issue answers - Jason2866 for platformio support and providing many issue answers - Blakadder for managing the new document site and providing template management -- Stephan Hadinger for refactoring light driver, enhancing HueEmulation and Zigbee support +- Stephan Hadinger for refactoring light driver, enhancing HueEmulation, Zigbee and Berry support - tmo for designing the official Tasmota logo - Stefan Bode for his Shutter and Deep sleep drivers - Jacek Ziółkowski for his [TDM](https://github.com/jziolkowski/tdm) management tool and [Tasmotizer](https://github.com/tasmota/tasmotizer) flashing tool diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 13a5f20aa..f640ba406 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -55,7 +55,7 @@ The following binary downloads have been compiled with ESP8266/Arduino library c Above binaries are also available as gzipped version allowing faster uploads. -The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota/release. The links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz`` +The binaries can be downloaded from either https://github.com/arendst/Tasmota/tree/release-firmware or http://ota.tasmota.com/tasmota/release. The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz`` ### ESP32 based The following binary downloads have been compiled with ESP32/Arduino library core version **1.0.6**. @@ -70,84 +70,41 @@ The following binary downloads have been compiled with ESP32/Arduino library cor - **tasmota32-odroidgo.bin** = The Odroid-Go version is specifically tailored to Odroid_go hardware. - **tasmota32-core2.bin** = The Core2 version is specifically tailored to M5Stack Core2 hardware. -The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota32/release. The links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota32/release/tasmota32.bin`` +The binaries can be downloaded from either https://github.com/arendst/Tasmota/tree/release-firmware or http://ota.tasmota.com/tasmota32/release. The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota32/release/tasmota32.bin`` [List](MODULES.md) of embedded modules. [Complete list](BUILDS.md) of available feature and sensors. -## Changelog v9.4.0 Leslie +## Changelog v9.5.0 Michael ### Added -- Command ``Sensor80 1 <0..7>`` to control MFRC522 RFID antenna gain from 18dB (0) to 48dB (7) [#11073](https://github.com/arendst/Tasmota/issues/11073) -- Command ``SerialBuffer 256..520`` to change hardware serial receive buffer size from default (256) to max local buffer size (520) [#11448](https://github.com/arendst/Tasmota/issues/11448) -- Command ``SetOption126 1`` to enable DS18x20 arithmetic mean over teleperiod for JSON temperature based on [#11472](https://github.com/arendst/Tasmota/issues/11472) -- Command ``Backlog0`` to allow execution of following commands without delay -- Command ``TuyaTempSetRes 0..3`` to control Tuya Temperature Set Resolution [#11781](https://github.com/arendst/Tasmota/issues/11781) -- Command ``Wifi 0/1`` for ESP8266 to turn wifi Off and On. When wifi is Off it is always returned On after a restart except for a wake-up from deepsleep [#11839](https://github.com/arendst/Tasmota/issues/11839) -- Commands ``MqttKeepAlive 1..100`` to set Mqtt Keep Alive timer (default 30) and ``MqttTimeout 1..100`` to set Mqtt Socket Timeout (default 4) [#5341](https://github.com/arendst/Tasmota/issues/5341) -- Commands ``DisplayType`` to select sub-modules where implemented and ``DisplayInvert`` to select inverted display where implemented -- Support for SML VBUS [#11125](https://github.com/arendst/Tasmota/issues/11125) -- Support for NEC and OPTOMA LCD/DLP Projector serial power control by Jan Bubík [#11145](https://github.com/arendst/Tasmota/issues/11145) -- Support for XPT2046 touch screen digitizer on ILI9341 display by nonix [#11159](https://github.com/arendst/Tasmota/issues/11159) -- Support for zigbee lumi.sensor_wleak [#11200](https://github.com/arendst/Tasmota/issues/11200) -- Support for dummy energy monitor using user values set by commands ``VoltageSet``, ``CurrentSet``, ``PowerSet`` and ``FrequencySet``. Enable by selecting any GPIO as ``Option A2`` [#10640](https://github.com/arendst/Tasmota/issues/10640) -- Support for CSE7761 energy monitor as used in ESP32 based Sonoff Dual R3 Pow [#10793](https://github.com/arendst/Tasmota/issues/10793) -- Support for Frequency monitoring and zero-cross detection on CSE7761 (Sonoff Dual R3) -- Support for TM1638 seven segment display by Ajith Vasudevan [#11031](https://github.com/arendst/Tasmota/issues/11031) -- Support for MAX7219 seven segment display by Ajith Vasudevan [#11387](https://github.com/arendst/Tasmota/issues/11387) -- Support for MPU6886 on primary or secondary I2C bus -- Support for multiple CCS811 sensors with baseline control (USE_CCS811_V2) by clanganke [#10858](https://github.com/arendst/Tasmota/issues/10858) -- Allow MCP230xx pinmode from output to input [#11104](https://github.com/arendst/Tasmota/issues/11104) -- Berry improvements [#11163](https://github.com/arendst/Tasmota/issues/11163) -- Extent compile time SetOptions support [#11204](https://github.com/arendst/Tasmota/issues/11204) -- Tasmota discovery as alternative to Home Assistant discovery using define ``USE_TASMOTA_DISCOVERY`` -- Optional GUI file editor enabled with define ``GUI_EDIT_FILE`` by barbudor [#11668](https://github.com/arendst/Tasmota/issues/11668) -- Initial support for universal display driver UDisplay by Gerhard Mutz. Enable by selecting any GPIO as ``Option A3`` [#11665](https://github.com/arendst/Tasmota/issues/11665) -- ESP32 Extent BLE [#11212](https://github.com/arendst/Tasmota/issues/11212) -- ESP32 support for WS2812 hardware driver via RMT or I2S -- ESP32 support for secondary I2C controller -- ESP32 support for internal Hall Effect sensor connected to both GPIO36 and GPIO39 only -- ESP32 support for LVGL 7.11 with Berry binding by Stephan Hadinger [#11789](https://github.com/arendst/Tasmota/issues/11789) +- Command ``Status0`` providing all status information on a single line +- Initial support for optional ``Template`` JSON fieldpair ``"CMND":"||..."`` [#11788](https://github.com/arendst/Tasmota/issues/11788) +- ESP32 pulldown buttons ``Button_d`` and ``Button_id`` and switches ``Switch_d`` [#10814](https://github.com/arendst/Tasmota/issues/10814) +- Support for MQTT using Azure IoT Hub by Kevin Saye [#11906](https://github.com/arendst/Tasmota/issues/11906) +- Make Telegram command ``TmState`` persistent [#11965](https://github.com/arendst/Tasmota/issues/11965) +- Zigbee firmware for Tube's Zigbee coordinator based on EFR32 and ESP32 +- Zigbee firmware 6.7.9 for Sonoff ZBBridge +- Defines ``USER_RULE1``, ``USER_RULE2`` and ``USER_RULE3`` to store rules at compile time +- Define ``USER_BACKLOG`` to store commands at compile time to be executed at firmware load or when executing command ``reset`` +- LVGL support for TrueType fonts via FreeType library +- Support for BM8563 RTC chip (I2C) found in M5Stack Core2 and M5StickC +- Preliminary support for Esp32C3 - RiscV based ### Breaking Changed - ESP32 partition layout changed to accomodate more file space on most and more code space on core2 and odroid-go [#11746](https://github.com/arendst/Tasmota/issues/11746) ### Changed -- TasmotaSerial library from v3.2.0 to v3.3.0 -- PubSubClient library from EspEasy v2.7.12 to Tasmota v2.8.12 -- IRremoteESP8266 library from v2.7.15 to v2.7.16 -- ESP32 core library from v1.0.5-rc6 to v1.0.6 -- TuyaMcu dimmer timeout [#11121](https://github.com/arendst/Tasmota/issues/11121) -- Rename epaper 42 commands [#11222](https://github.com/arendst/Tasmota/issues/11222) -- DeepSleep announcement topic [#11223](https://github.com/arendst/Tasmota/issues/11223) -- Limit number of relay/button columns in GUI to 8 [#11546](https://github.com/arendst/Tasmota/issues/11546) -- ADC range result from int to float using command ``FreqRes`` for decimal resolution selection [#11545](https://github.com/arendst/Tasmota/issues/11545) -- Removed overtemp detection on external energy monitoring devices [#11628](https://github.com/arendst/Tasmota/issues/11628) -- Redesigned initial GUI wifi configuration by Adrian Scillato [#11693](https://github.com/arendst/Tasmota/issues/11693) -- Redesigned GUI by moving non-configuration buttons from ``Configuration`` to new submenu ``Consoles`` -- In tasmota-sensors.bin enabled support for VL53L0X and disabled TSL2561 [#11711](https://github.com/arendst/Tasmota/issues/11711) -- Add HLW8012/BL0937 average pulse calculation by Alex Lovett [#11722](https://github.com/arendst/Tasmota/issues/11722) -- Zigbee refactored storage for device configuration and device last known data [#11838](https://github.com/arendst/Tasmota/issues/11838) +- IRremoteESP8266 library from v2.7.16 to v2.7.18 +- NeoPixelBus library from v2.6.1.4 to v2.6.3 stage +- Allow longer MQTT response messages by removing fixed memory buffer with size 1040 to heap allocated buffer +- Command ``Timers`` layout of JSON message changed to single line +- Command ``Gpio`` layout of JSON message changed to single line +- Command ``Modules`` layout of JSON message changed to single line +- ESP32 increase log buffer from 4k to 6k to support longer messages +- Move Settings from DRAM to heap ### Fixed -- PN532 on ESP32 Serial flush both Tx and Rx buffers [#10910](https://github.com/arendst/Tasmota/issues/10910) -- Light scheme related color changes [#11041](https://github.com/arendst/Tasmota/issues/11041) -- Refactor acceleration function for shutter stepper and servo [#11088](https://github.com/arendst/Tasmota/issues/11088) -- LM75AD detection on different addresses [#11096](https://github.com/arendst/Tasmota/issues/11096) -- Timer loop when console is scrolled up regression from v9.3.0 [#11108](https://github.com/arendst/Tasmota/issues/11108) -- Display exception when no file system is present [#11125](https://github.com/arendst/Tasmota/issues/11125) -- Scripter and SML fixes [#11150](https://github.com/arendst/Tasmota/issues/11150) -- Zigbee exception when bad frame is received [#11192](https://github.com/arendst/Tasmota/issues/11192) -- ESP32 flash script for Odroid and Core2 [#11227](https://github.com/arendst/Tasmota/issues/11227) -- ESP32 WS2812 bitbang support [#11248](https://github.com/arendst/Tasmota/issues/11248) -- DS18x20 driver timing issue [#11270](https://github.com/arendst/Tasmota/issues/11270) -- Alexa discovery in hue emulation [#11415](https://github.com/arendst/Tasmota/issues/11415) -- HC-SR04 on ESP32 release serial interface if not used [#11507](https://github.com/arendst/Tasmota/issues/11507) -- Alexa discovery for ZBBridge [#11576](https://github.com/arendst/Tasmota/issues/11576) -- Telegram chat id incorrect size [#11660](https://github.com/arendst/Tasmota/issues/11660) -- KNX energy yesterday [#11718](https://github.com/arendst/Tasmota/issues/11718) -- Command ``Power`` should not reset pulsetime [#11805](https://github.com/arendst/Tasmota/issues/11805) -- Teleperiod rule handling regression from v9.3.1.2 [#11851](https://github.com/arendst/Tasmota/issues/11851) ### Noted - ESP32 single core **tasmota32solo1.bin** binary can only be uploaded using the GUI as OTA upload will trigger the watchdog timer diff --git a/TEMPLATES.md b/TEMPLATES.md index 00c12bc02..11c37d715 100644 --- a/TEMPLATES.md +++ b/TEMPLATES.md @@ -2,7 +2,7 @@ # Templates -Find below the available templates as of April 2021. More template information can be found in the [Tasmota Device Templates Repository](http://blakadder.github.io/templates) +Find below the available templates as of June 2021. More template information can be found in the [Tasmota Device Templates Repository](http://blakadder.github.io/templates) ## Addressable LED Controller ``` @@ -12,33 +12,25 @@ ESP01 NeoPixel Ring {"NAME":"ESP-01S-RGB-LED-v1.0","GPIO":[1,1,1376,1,0 SP501E WS2812B {"NAME":"SP501E","GPIO":[0,32,0,1376,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} ``` -## Aromatherapy Diffuser +## Aroma Diffuser ``` Asakuki 500ml {"NAME":"Oil Diffuser","GPIO":[1,1,1,1,1,1,0,0,1,1,1,224,225,0],"FLAG":0,"BASE":18} -BlitzWolf BW-FUN3 400ml {"NAME":"Generic","GPIO":[1,1,1,1,1,1,1,1,1,1,1,1,1,0],"FLAG":0,"BASE":54} -Brilex 400ml Oil Diffuser {"NAME":"BrilexDiffuser","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} -Essential Oil 400ml {"NAME":"XD800W","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} -GD-30W 300ml {"NAME":"GD-30W","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} -Kbaybo 300ml {"NAME":"K-H25","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} +BlitzWolf 400ml {"NAME":"BW-FUN3","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +Brilex 400ml {"NAME":"BrilexDiffuser","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} +Essential Oil 400ml {"NAME":"XD800W","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +GD-30W 300ml {"NAME":"GD-30W","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +Kbaybo 300ml {"NAME":"K-H25","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Kogan 500ml {"NAME":"Kogan Difuser","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} Maxcio 400ml {"NAME":"MaxcioDiffuser","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} -Mirabella Genio Glass Aroma Diffuser 250ml {"NAME":"Genio Diffuser","GPIO":[0,0,0,0,416,417,0,0,0,480,225,418,224,1],"FLAG":0,"BASE":18} -Wood Grain 550ML {"NAME":"MY-KCL01800FB","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} +Mirabella Genio 250ml Glass {"NAME":"Genio Diffuser","GPIO":[0,0,0,0,416,417,0,0,0,480,225,418,224,1],"FLAG":0,"BASE":18} +Wood Grain 550ML {"NAME":"MY-KCL01800FB","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} ``` -## Bluetooth Bridge +## Bluetooth Gateway ``` Arlec Smart Home Hub {"NAME":"Arlec Hub","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} ``` -## Bulb Socket -``` -Blitzwolf E27 {"NAME":"BlitzWolf BW-LT30","GPIO":[0,0,0,0,320,224,0,0,0,96,0,0,0,0],"FLAG":0,"BASE":18} -Elegant Choice E27/E26 {"NAME":"name","GPIO":[0,0,0,0,0,0,0,0,0,0,0,224,0,0],"FLAG":0,"BASE":18} -Slampher {"NAME":"Slampher","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":9} -SmartBase E0260 {"NAME":"SmartBaseE0260","GPIO":[0,0,0,0,320,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} -``` - ## CCT ``` AICase 800lm {"NAME":"AICase Smart L","GPIO":[0,0,0,0,0,416,0,0,0,417,0,0,0,0],"FLAG":0,"BASE":18} @@ -52,6 +44,7 @@ Arlec Smart R80 9.5W 806lm {"NAME":"Arlec GLD115HA","GPIO":[0,0,0,0,0,416,0,0, BlitzWolf A70 9W 900lm {"NAME":"BW-LT29","GPIO":[0,0,0,0,0,0,0,0,0,449,0,416,0,0],"FLAG":0,"BASE":18} BrilliantSmart 20696 9W 900lm {"NAME":"Brilliant20696","GPIO":[0,0,0,0,0,0,0,0,417,0,416,0,0,0],"FLAG":0,"BASE":18} BrilliantSmart 20697 9W 900lm {"NAME":"Brilliant20696","GPIO":[0,0,0,0,0,0,0,0,417,0,416,0,0,0],"FLAG":0,"BASE":18} +BrilliantSmart 4.5W 400lm {"NAME":"Brilliant20764","GPIO":[0,0,0,0,0,416,0,0,417,0,0,0,0,0],"FLAG":0,"BASE":18} BrilliantSmart 4.5W 400lm {"NAME":"BS-GU10-20887","GPIO":[0,0,0,0,0,416,0,0,417,0,0,0,0,0],"FLAG":0,"BASE":18} Bulbrite Solana A19 Edison Filament {"NAME":"BulbBrite01","GPIO":[0,0,0,0,0,0,0,0,416,0,417,0,0,0],"FLAG":0,"BASE":18} Bulbrite Solana G25 5.5W 600lm Filament {"NAME":"BulbBrite01","GPIO":[0,0,0,0,0,0,0,0,417,0,416,0,0,0],"FLAG":0,"BASE":18} @@ -119,6 +112,7 @@ Prokord 10W 1050lm {"NAME":"PSH-E2745-CCT","GPIO":[0,0,0,0,0,416,0,0,4 Prokord 5W 1050lm {"NAME":"Prokord-PSH-GU1045-CCT","GPIO":[0,0,0,0,0,0,0,0,417,0,416,0,0,0],"FLAG":0,"BASE":18} Shelly DUO 800lm {"NAME":"Shelly DUO","GPIO":[0,0,0,0,417,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} SmartDGM L-WT9W1 9W 800lm {"NAME":"L-WT9W1","GPIO":[0,0,0,0,0,416,0,0,160,417,0,0,0,0],"FLAG":0,"BASE":18} +Smitch 10W {"NAME":"Smitch SB0310 - B22","GPIO":[0,0,0,0,0,416,0,0,0,417,0,0,0,0],"FLAG":0,"BASE":18} Solimo 12W 1080lm {"NAME":"Solimo WCCT 12","GPIO":[0,0,0,0,160,416,0,0,161,417,162,0,0,0],"FLAG":0,"BASE":18} Spectrum Smart 5W 410lm Candle {"NAME":"lightbulb","GPIO":[0,0,0,0,0,0,0,0,417,0,416,0,0,0],"FLAG":0,"BASE":18} Status 9W 806lm {"NAME":"Status Smart","GPIO":[0,0,0,0,0,0,0,0,417,0,416,0,0,0],"FLAG":0,"BASE":18} @@ -133,7 +127,6 @@ Wyze A19 800lm {"NAME":"Wyze Bulb","GPIO":[5728,0,0,0,0,0,0,0,0,41 ## Camera ``` Ai-Thinker DIY Kit {"NAME":"AITHINKER CAM","GPIO":[4992,1,672,1,416,5088,1,1,1,6720,736,704,1,1,5089,5090,0,5091,5184,5152,0,5120,5024,5056,0,0,0,0,4928,576,5094,5095,5092,0,0,5093],"FLAG":0,"BASE":2} -TTGO ESP32 {"NAME":"TTGO T-Journal ESP32 Camera","GPIO":[4928,1,1,1,1,5091,1,1,1,608,640,4960,1,5088,5093,5095,0,5184,5120,5056,0,5024,5152,4992,0,0,0,0,1,1,5090,5089,5094,0,0,5092],"FLAG":0,"BASE":1} Wireles Tag DIY Kit {"NAME":"WT-ESP32-CAM","GPIO":[4992,1,1,1,1,5088,0,0,1,1,1,1,1,0,5089,5090,0,5091,5184,5152,0,5120,5024,5056,0,0,0,0,4928,0,5094,5095,5092,0,0,5093],"FLAG":0,"BASE":2} ``` @@ -154,6 +147,7 @@ LSC 20W 1400lm White Ambiance {"NAME":"LSC RGBCW LED","GPIO":[0,0,0,0,0,0,0,0,4 Luminea 24W CCT {"NAME":"Luminea NX6205-944","GPIO":[0,0,0,0,0,0,0,0,449,0,416,0,0,0],"FLAG":0,"BASE":48} LVL 300mm Round {"NAME":"LVL 300m Round 24W Ceiling LED","GPIO":[0,0,0,0,0,416,0,0,0,449,0,0,0,0],"FLAG":0,"BASE":48} Oeegoo 15W RGBCCT {"NAME":"Oeegoo RGBCCT","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} +Offdarks Star Fine RGBCCT 60W 40mm {"NAME":"Offdarks","GPIO":[0,0,0,0,417,416,0,0,419,420,418,0,0,0],"FLAG":0,"BASE":18} SMRTLite LED Panel {"NAME":"SMRTLite","GPIO":[0,0,0,0,417,416,0,0,420,418,419,0,0,0],"FLAG":0,"BASE":18} Spectrum Smart Nymphea 36W CCT {"NAME":"Nymphea_36w","GPIO":[0,0,0,0,0,416,0,0,0,417,0,0,0,0],"FLAG":0,"BASE":18} Taloya 12" 24W CCT Main and RGB Ambient {"NAME":"Taloya GA300-24W-AI-WEMG","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} @@ -204,29 +198,14 @@ WF-CS02 {"NAME":"WF-CS02 Tuya","GPIO":[544,0,289,162,226,33 Zemismart {"NAME":"Zemismart","GPIO":[544,0,0,162,290,161,0,0,160,224,226,225,0,0],"FLAG":0,"BASE":18} ``` -## DIY +## DIN Relay ``` -Adafruit HUZZAH {"NAME":"Huzzah","GPIO":[32,0,320,0,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":18} -ESP-01 Module {"NAME":"ESP01","GPIO":[1,1,1,1,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} -ESP-01D Module {"NAME":"ESP-01D","GPIO":[1,1,0,1,1,0,0,0,1,0,1,0,0,0],"FLAG":0,"BASE":18} -ESP-15F Module {"NAME":"ESP-15F","GPIO":[1,1,0,1,1,1,0,0,0,544,0,0,0,0],"FLAG":0,"BASE":18} -ESP-M3 Module {"NAME":"ESP-M3","GPIO":[1,1,1,1,1,0,0,0,0,1,1,0,1,0],"FLAG":0,"BASE":18} -ESP32 Lite V1.0.0. Development Board {"NAME":"ESP32 Lite V1.0.0","GPIO":[1,0,1,0,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0],"FLAG":0,"BASE":1} -Heltec WiFi Kit 8 {"NAME":"HTIT-W8266","GPIO":[1,1,1,1,640,608,0,0,1,1,1,1,1024,1],"FLAG":0,"BASE":18} -LC Tech relay and PZEM-004T {"NAME":"HW-655 PZEM","GPIO":[0,1504,0,1472,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} -LC Technology PSF-B04 Ewelink 4 Channel Switch Module {"NAME":"LC-EWL-B04-MB","GPIO":[1,1,1,1,1,1,0,0,1,288,1,1,0,0],"FLAG":0,"BASE":18} -LilyGO TTGO T-Internet-POE {"NAME":"LilyGO T-Internet-POE","GPIO":[0,1,1,1,1,1,1,1,1,1,1,1,1,1,5600,1,0,1,1,5568,0,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1} -LilyGO TTGO TO ESP8266 OLED SH1106 Weather Station {"NAME":"TTGO T12","GPIO":[1,1,1,1,608,640,0,0,32,34,33,1,1,1],"FLAG":0,"BASE":18} -M5Stack Atom Lite ESP32 {"NAME":"M5Stack Atom Lite","GPIO":[1,1,1,1,1,1,1,1,1056,1,1,1,1,1,1,1,0,1,1,1,0,1,640,1376,0,0,0,0,608,1,1,1,1,0,0,32],"FLAG":0,"BASE":1} -Olimex ESP32-POE {"NAME":"Olimex ESP32-PoE","GPIO":[1,1,1,1,1,1,0,0,5536,1,1,1,1,0,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1} -QuinLED 2 Channel {"NAME":"QuinLED 2 channel","GPIO":[416,0,417,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} -Shelly UNI {"NAME":"Shelly Uni","GPIO":[320,0,0,0,225,1216,0,0,192,193,0,224,0,4864],"FLAG":0,"BASE":18} -Silicognition wESP32 {"NAME":"wESP32","GPIO":[0,0,1,0,1,1,0,0,1,1,1,1,5568,5600,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1} -TZT ESP8266 Weather Station Kit {"NAME":"TZT Weather Station","GPIO":[32,0,640,0,1,1184,0,0,1,1,608,1,1,1],"FLAG":0,"BASE":18} -WifInfo - Teleinfo Server {"NAME":"WifInfo","GPIO":[1376,1,1,5152,640,608,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18} -Wireless Tag ESP32 Ethernet Board {"NAME":"WT32-ETH01","GPIO":[1,1,1,1,1,1,0,0,1,0,1,1,3840,576,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1],"FLAG":0,"BASE":1} -Witty Cloud {"NAME":"Witty Cloud","GPIO":[1,1,320,1,32,1,0,0,417,418,1,416,1,4704],"FLAG":0,"BASE":32} -Yison ESP-01/ESP-202 Development Board {"NAME":"Yison Dev Board","GPIO":[259,544,258,1,260,261,1,1,416,418,257,417,256,1],"FLAG":0,"BASE":18} +Hoch Circuit Breaker 1P {"NAME":"HOCH ZJSB9","GPIO":[32,1,1,1,1,1,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} +OpenEnergyMonitor WiFi MQTT Thermostat {"NAME":"MQTT-RELAY","GPIO":[32,0,1,0,0,224,0,0,0,0,0,0,320,0],"FLAG":0,"BASE":18} +Sinotimer {"NAME":"TM608","GPIO":[32,0,0,0,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18} +Sinotimer {"NAME":"Sinotimer TM60","GPIO":[0,0,0,0,0,288,0,0,224,160,0,0,0,0],"FLAG":0,"BASE":18} +Sohan DIN Circuit Breaker 1P 50A {"NAME":"RDCBC-1P","GPIO":[32,0,0,0,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} +TOMZN 2P 63/80A Circuit Breaker {"NAME":"TOMZN","GPIO":[0,0,0,0,0,0,0,0,64,224,0,0,288,0],"FLAG":0,"BASE":18} ``` ## Dehumidifier @@ -235,6 +214,23 @@ electriQ 12L Portable {"NAME":"electriQ CD12PW","GPIO":[0,2272,0,2304,0,0 Vacplus 50 Pint {"NAME":"VacPlus Dehumidifier","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} ``` +## Development Board +``` +Adafruit HUZZAH {"NAME":"Huzzah","GPIO":[32,0,320,0,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":18} +AZ-Envy Environmental Sensor {"NAME":"AZ Envy","GPIO":[32,0,320,0,640,608,0,0,0,0,0,0,0,4704],"FLAG":0,"BASE":18} +ESP32 Lite V1.0.0. {"NAME":"ESP32 Lite V1.0.0","GPIO":[1,0,1,0,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0],"FLAG":0,"BASE":1} +LilyGO TTGO T-Internet-POE {"NAME":"LilyGO T-Internet-POE","GPIO":[0,1,1,1,1,1,1,1,1,1,1,1,1,1,5600,1,0,1,1,5568,0,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1} +M5Stack Atom Lite ESP32 {"NAME":"M5Stack Atom Lite","GPIO":[1,1,1,1,1,1,1,1,1056,1,1,1,1,1,1,1,0,1,1,1,0,1,640,1376,0,0,0,0,608,1,1,1,1,0,0,32],"FLAG":0,"BASE":1} +Olimex ESP32-POE {"NAME":"Olimex ESP32-PoE","GPIO":[1,1,1,1,1,1,0,0,5536,1,1,1,1,0,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1} +QuinLED 2 Channel {"NAME":"QuinLED 2 channel","GPIO":[416,0,417,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +Silicognition wESP32 {"NAME":"wESP32","GPIO":[0,0,1,0,1,1,0,0,1,1,1,1,5568,5600,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1} +TZT ESP8266 Weather Station Kit {"NAME":"TZT Weather Station","GPIO":[32,0,640,0,1,1184,0,0,1,1,608,1,1,1],"FLAG":0,"BASE":18} +WifInfo - Teleinfo Server {"NAME":"WifInfo","GPIO":[1376,1,1,5152,640,608,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18} +Wireless Tag ESP32 Ethernet {"NAME":"WT32-ETH01","GPIO":[1,1,1,1,1,1,0,0,1,0,1,1,3840,576,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1],"FLAG":0,"BASE":1} +Witty Cloud {"NAME":"Witty Cloud","GPIO":[1,1,320,1,32,1,0,0,417,418,1,416,1,4704],"FLAG":0,"BASE":32} +Yison ESP-01/ESP-202 {"NAME":"Yison Dev Board","GPIO":[259,544,258,1,260,261,1,1,416,418,257,417,256,1],"FLAG":0,"BASE":18} +``` + ## Dimmable ``` Aisirer 9W 806lm {"NAME":"Aisirer 9W","GPIO":[0,0,0,0,0,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} @@ -298,13 +294,14 @@ Nedis G125 Filament {"NAME":"WIFILF10GDG125","GPIO":[0,0,0,0,0,0,0,0,0, Nedis PAR16 330lm {"NAME":"Nedis WIFILW31","GPIO":[0,0,0,0,0,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} Nedis ST64 5W 500lm Filament {"NAME":"WIFILF10GDST64","GPIO":[0,0,0,0,0,0,0,0,0,0,416,0,0,0],"FLAG":0,"BASE":18} NiteBird 8W 800lm 2700k {"NAME":"Nitebird-smart28k","GPIO":[0,0,0,0,416,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +Positivo Smart Lampada Retro {"NAME":"POSITIVO SMART LAMPADA RETRO","GPIO":[0,0,0,0,0,0,0,0,0,0,416,0,0,0],"FLAG":0,"BASE":18} Sealight Vintage Edison A19 {"NAME":"SealightEdison","GPIO":[0,0,0,0,0,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} Shelly Vintage 4W 260lm 2700k {"NAME":"Shelly Vintage","GPIO":[0,0,0,0,416,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} Shelly Vintage 7W 750lm 2700k {"NAME":"Shelly Vintage","GPIO":[0,0,0,0,416,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} Shelly Vintage 7W 750lm 2700k {"NAME":"Shelly Vintage","GPIO":[0,0,0,0,416,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} SmartDGM 9W 806lm {"NAME":"L-WB9W1","GPIO":[0,0,0,0,0,416,0,0,160,0,0,0,0,0],"FLAG":0,"BASE":18} -Smitch 10W 6500K {"NAME":"Smitch Ambience SB-0110","GPIO":[0,0,0,0,0,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} -Smitch 10W 6500K {"NAME":"Smitch Ambience SB-0110","GPIO":[0,0,0,0,0,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +Smitch 10W 6500K {"NAME":"Smitch Ambience SB-0110","GPIO":[0,0,0,0,416,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +Smitch 10W 6500K {"NAME":"Smitch Ambience SB-0110","GPIO":[0,0,0,0,416,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} TCP Smart 806lm Warm White {"NAME":"TCP Smart Clas","GPIO":[0,0,0,0,0,0,0,0,0,416,0,0,0,0],"FLAG":0,"BASE":1} TCP Smart 810lm Filament {"NAME":"TCP Filament","GPIO":[0,0,0,0,0,0,0,0,0,0,448,0,0,0],"FLAG":0,"BASE":18} TCP Smart 810lm Filament {"NAME":"TCP Filament","GPIO":[0,0,0,0,0,0,0,0,0,0,448,0,0,0],"FLAG":0,"BASE":18} @@ -315,17 +312,12 @@ Xiaomi Philips MUE4088RT {"NAME":"Xiaomi Philips","GPIO":[0,0,0,0,0,0,0,0,0, ``` 3A Smart Home HGZB-04D {"NAME":"HGZB-4D","GPIO":[1,1,1,1,1,1,0,0,1,1,290,1,1,0],"FLAG":0,"BASE":54} Acenx SD03 {"NAME":"SD03","GPIO":[34,33,0,323,576,322,0,0,321,416,320,96,256,0],"FLAG":0,"BASE":73} -Armtronix AC Dimmer 1-Triac {"NAME":"ARMTR Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":56} -Armtronix AC Dimmer 2-Triac {"NAME":"ARMTR Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":56} -BrilliantSmart D350W {"NAME":"Generic","GPIO":[1,2272,1,2304,1,1,0,0,1,0,1,0,1,0],"FLAG":0,"BASE":54} -BrilliantSmart Jupiter {"NAME":"BrSm Jupiter","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} CE Smart Home {"NAME":"CE-WF500D","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} CE Smart Home CFW500D-3W 3 Way {"NAME":"CE-WF500D-3W","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} CNSKOU Touch {"NAME":"CNSKOU Dimmer Switch","GPIO":[0,0,0,0,0,0,0,0,0,0,290,0,0,0],"FLAG":0,"BASE":54} Eva Logik {"NAME":"WF31 Dimmer","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} Eva Logik 3 Way {"NAME":"EL WF31T","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} -EX-Store 2 Kanal RS232 V4 {"NAME":"EXS Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,4128,0,0,0,0],"FLAG":0,"BASE":72} -Feit Electric Smart {"NAME":"Generic","GPIO":[1,2272,1,2304,1,1,0,0,1,0,1,0,1,0],"FLAG":0,"BASE":54} +Feit Electric Smart {"NAME":"Feit DIM/WIFI","GPIO":[1,2272,1,2304,1,1,0,0,1,0,1,0,1,0],"FLAG":0,"BASE":54} Gosund SW2 {"NAME":"Gosund Dimmer","GPIO":[1,3200,1,3232,32,0,1,1,320,576,416,1,1,0],"FLAG":0,"BASE":18} iSwitch Touch Switch {"NAME":"iSwitchOZ Dimmer","GPIO":[0,0,0,0,0,0,0,0,0,0,290,0,0,0],"FLAG":0,"BASE":54} Martin Jerry SD01 {"NAME":"MJ-SD01 Dimmer","GPIO":[34,33,0,323,576,322,0,0,321,416,320,96,256],"FLAG":0,"BASE":73} @@ -333,13 +325,7 @@ Martin Jerry Single Pole {"NAME":"MJ-KN01 Dimmer","GPIO":[0,2272,0,2304,0,0, Maxcio Rotary {"NAME":"EDM-1WAA-EU","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} Minoston 3-Way {"NAME":"MS10W","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} Moes DS01-1 {"NAME":"MOES DS01","GPIO":[1,1,1,1,1,1,0,0,1,2304,1,2272,1,0],"FLAG":0,"BASE":54} -Moes MS-105-1 v2 {"NAME":"MS-105","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} PS-16-DZ {"NAME":"PS-16-DZ","GPIO":[1,3200,1,3232,1,1,0,0,1,288,1,1,1,0],"FLAG":0,"BASE":58} -QS-WiFi-D01-TRIAC 150W {"NAME":"WiFi-Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,352,416,0,0,0],"FLAG":0,"BASE":18} -RJWF-02A {"NAME":"RJWF-02A","GPIO":[32,2272,0,2304,0,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":54} -Shelly Dimmer {"NAME":"Shelly Dimmer 1","GPIO":[0,3200,0,3232,5568,5600,0,0,192,0,193,288,0,4736],"FLAG":0,"BASE":18} -Shelly Dimmer 2 {"NAME":"Shelly Dimmer 2","GPIO":[0,3200,0,3232,5568,5600,0,0,193,0,192,0,320,4736],"FLAG":0,"BASE":18} -Sonoff D1 {"NAME":"Sonoff D1","GPIO":[1,3200,0,3232,0,0,0,0,0,320,0,0,0,0],"FLAG":0,"BASE":74} Teekar UIW001-1 {"NAME":"Teekar UIW001-","GPIO":[0,3232,416,3200,640,608,0,0,160,0,0,0,0,0],"FLAG":0,"BASE":18} Tessan MJ-SD02 {"NAME":"MJ-SD02","GPIO":[34,33,0,323,576,322,0,0,321,416,320,96,256,0],"FLAG":0,"BASE":73} TopGreener TGWF500D {"NAME":"TopGreener-Dimmer","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} @@ -351,14 +337,34 @@ WiFi Dimmer Switch {"NAME":"PS-16-DZ","GPIO":[0,3200,0,3232,0,0,0,0,0, Zemismart KS-7011 {"NAME":"KS-7011 Dimmer","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} ``` +## Dimmer Module +``` +Armtronix AC Dimmer 1-Triac {"NAME":"ARMTR Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":56} +Armtronix AC Dimmer 2-Triac {"NAME":"ARMTR Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":56} +BrilliantSmart D350W {"NAME":"Generic","GPIO":[1,2272,1,2304,1,1,0,0,1,0,1,0,1,0],"FLAG":0,"BASE":54} +BrilliantSmart Jupiter {"NAME":"BrSm Jupiter","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +EX-Store 2 Kanal RS232 V4 {"NAME":"EXS Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,4128,0,0,0,0],"FLAG":0,"BASE":72} +Moes MS-105-1 v2 {"NAME":"MS-105","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +QS-WiFi-D01-TRIAC 150W {"NAME":"WiFi-Dimmer","GPIO":[0,3200,0,3232,0,0,0,0,0,352,416,0,0,0],"FLAG":0,"BASE":18} +RJWF-02A {"NAME":"RJWF-02A","GPIO":[32,2272,0,2304,0,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":54} +Shelly Dimmer {"NAME":"Shelly Dimmer 1","GPIO":[0,3200,0,3232,5568,5600,0,0,192,0,193,288,0,4736],"FLAG":0,"BASE":18} +Shelly Dimmer 2 {"NAME":"Shelly Dimmer 2","GPIO":[0,3200,0,3232,5568,5600,0,0,193,0,192,0,320,4736],"FLAG":0,"BASE":18} +Sonoff D1 {"NAME":"Sonoff D1","GPIO":[1,3200,0,3232,0,0,0,0,0,320,0,0,0,0],"FLAG":0,"BASE":74} +``` + ## Display ``` +Heltec WiFi Kit 8 {"NAME":"HTIT-W8266","GPIO":[1,1,1,1,640,608,0,0,1,1,1,1,1024,1],"FLAG":0,"BASE":18} +LilyGO TTGO ESP8266 0.91 inch OLED SSD1306 {"NAME":"TTGO-0.91","GPIO":[1,1,640,1,1024,0,0,0,1,1,608,1,0,1],"FLAG":0,"BASE":18} LilyGO TTGO T-Camera {"NAME":"TasmotaCAM","GPIO":[1,1,1,1,4992,5120,1,1,1,5089,5090,64,1,1,5024,65,0,640,608,5056,0,5184,1,5152,0,0,0,0,1,1,5088,5091,5095,5094,5093,5092],"FLAG":0,"BASE":1} LilyGO TTGO T-Display 1.14in {"NAME":"ESP32-ttgo-display","GPIO":[0,1,1,1,992,6592,1,1,1,1,1,1,6624,1,896,864,0,1,1,1024,0,1,1,1,0,0,0,0,1,1,1,33,1,0,0,1],"FLAG":0,"BASE":1} LilyGO TTGO T-Watcher {"NAME":"TTGO T4 v1.3","GPIO":[35,1,672,1,992,1024,1,1,832,768,736,704,1,1,896,0,0,640,608,864,0,0,1,928,0,0,0,0,960,1,1,4704,1,32,33,34],"FLAG":0,"BASE":1} +LilyGO TTGO TO ESP8266 OLED SH1106 Weather Station {"NAME":"TTGO T12","GPIO":[1,1,1,1,608,640,0,0,32,34,33,1,1,1],"FLAG":0,"BASE":18} M5Stack Core2 {"NAME":"M5Stack Core2","GPIO":[1,1,1,1,6720,6368,0,0,0,1,1,6400,0,0,736,1,0,0,0,704,0,1,1,1,0,0,0,0,640,608,1,1,1,0,672,0],"FLAG":0,"BASE":7} +M5Stack M5StickC {"NAME":"M5StickC","GPIO":[1,0,0,0,0,768,1056,576,0,736,0,704,0,0,1024,0,0,0,0,800,0,0,1,0,0,0,0,0,640,608,1,0,1,32,6210,33],"FLAG":0,"BASE":7} ODROID-GO Game Kit {"NAME":"Odroid","GPIO":[0,1,0,1,1,768,1,1,1,0,416,1,1,1,736,672,0,800,1,704,0,1,1,0,0,0,0,0,0,0,4704,3329,4866,0,0,0],"FLAG":0,"BASE":1} OLED Display Module 0.66" for Wemos D1 Mini {"NAME":"OLED 64x48","GPIO":[1,1,1,1,640,608,0,0,1,1,1,1,1024,1],"FLAG":0,"BASE":18} +TTGO ESP32 {"NAME":"TTGO T-Journal ESP32 Camera","GPIO":[4928,1,1,1,1,5091,1,1,1,608,640,4960,1,5088,5093,5095,0,5184,5120,5056,0,5024,5152,4992,0,0,0,0,1,1,5090,5089,5094,0,0,5092],"FLAG":0,"BASE":1} ``` ## Downlight @@ -368,7 +374,7 @@ Arlec Smart 9W CCT {"NAME":"Arlec ALD092CHA","GPIO":[0,0,0,0,416,417,0 Arlec Smart 9W RGB+CCT {"NAME":"Arlec ALD092RHA","GPIO":[0,0,0,0,419,420,0,0,416,418,417,0,0,0],"FLAG":0,"BASE":18} Atom 10W RGBCCT {"NAME":"Atom AT9017/WH/WIZ/TR","GPIO":[0,0,420,0,419,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,416,417,418,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1} BrilliantSmart Prism 10W RGBCCT {"NAME":"Prism","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} -BrilliantSmart Trilogy 9W CCT {"NAME":"SmartCCTDwnLgt","GPIO":[0,0,0,0,0,416,0,0,0,417,0,0,0,0],"FLAG":0,"BASE":48} +BrilliantSmart Trilogy 9W CCT {"NAME":"SmartCCTDwnLgt","GPIO":[0,0,0,0,0,416,0,0,0,449,0,0,0,0],"FLAG":0,"BASE":48} Connect SmartHome RGB {"NAME":"CSH-240RGB10W","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Deta 10W RGBCCT {"NAME":"Deta DownLight","GPIO":[0,0,0,0,417,416,0,0,420,418,419,0,0,0],"FLAG":0,"BASE":18} Deta 7W 660lm LED {"NAME":"Deta DownLight","GPIO":[0,0,0,0,417,416,0,0,420,418,419,0,0,0],"FLAG":0,"BASE":18} @@ -392,7 +398,8 @@ Zemismart 6" 14W RGBCCT {"NAME":"ZemiDownLight6","GPIO":[0,0,0,0,416,419,0, ## Energy Meter ``` -Hiking Single Phase 65A Din Rail {"NAME":"hiking dds2382wifi","GPIO":[0,2272,0,2304,0,0,0,0,0,0,320,0,32,0],"FLAG":0,"BASE":1} +DIY ESP-01 and PZEM-004T {"NAME":"HW-655 PZEM","GPIO":[0,1504,0,1472,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +Hiking Single Phase 65A DIN Rail {"NAME":"Hiking DDS238-2 WIFI","GPIO":[0,2272,0,2304,0,0,0,0,0,0,320,0,32,0],"FLAG":0,"BASE":54} ZMAi-90 Digital {"NAME":"ZMAi-90","GPIO":[0,3200,0,3232,0,0,0,0,224,64,0,0,0,0],"FLAG":0,"BASE":18} ``` @@ -400,17 +407,24 @@ ZMAi-90 Digital {"NAME":"ZMAi-90","GPIO":[0,3200,0,3232,0,0,0,0,224 ``` Anko HEGSM40 {"NAME":"Anko HEGSM40","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} Arlec Smart 45cm Smart DC Wall {"NAME":"Arlec 45cm Fan","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} -BrilliantSmart 99111 {"NAME":"Brilliant Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +BrilliantSmart {"NAME":"Brilliant Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Geek Aire AF1s {"NAME":"Geek Aire Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Goldair SleepSmart GCPF315 {"NAME":"Goldair Fan","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} Lucci Connect Remote Control {"NAME":"Lucci Fan","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} Sichler Haushaltsgeraete Column {"NAME":"Sichler Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Sonoff IFan02 {"NAME":"Sonoff iFan02","GPIO":[32,1,0,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":44} Sonoff IFan03 {"NAME":"SonoffiFan03","GPIO":[32,3200,0,3232,0,0,256,512,226,320,225,227,0,0],"FLAG":0,"BASE":71} -Technical Pro FXA16 {"NAME":"FXA16 Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +Technical Pro {"NAME":"FXA16 Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Zemismart Bladeless {"NAME":"Bladeless Fan","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} ``` +## Fan Switch +``` +Avatto Light and {"NAME":"AVATTO SYS-FL01","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +Deta Light and {"NAME":"Deta Fan Speed and Light Controller","GPIO":[33,0,0,576,226,34,0,0,0,225,224,227,32,0],"FLAG":0,"BASE":18} +iSwitch Light and {"NAME":"iSwitchOZ Light Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +``` + ## Garage Door Opener ``` MS-102 {"NAME":"Garage Opener","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} @@ -428,38 +442,47 @@ Natural Gas (CH4) Alarm {"NAME":"PA-210WYS","GPIO":[1,2272,1,2304,1,1,0,0,1 Devola Designer Glass Panel {"NAME":"Devola Heater","GPIO":[0,0,0,0,224,1,0,0,0,1824,0,1792,0,0],"FLAG":0,"BASE":18} Klarstein Bornholm Smart 2000W {"NAME":"Klarstein Bornholm","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Kogan 1500W Panel {"NAME":"Kogan Panel Heater","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} +SmartMi Electric Air {"NAME":"ZNNFJ07ZM","GPIO":[0,0,0,0,0,0,0,0,0,0,0,0,0,3200,3232,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1} ``` -## IR Bridge +## Humidifier ``` -A1 Universal Remote Control {"NAME":"A1 IR Bridge","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +Duux Beam {"NAME":"Duux Beam","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +Proscenic {"NAME":"Generic","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} +``` + +## IR Controller +``` +A1 Universal Remote Control {"NAME":"A1 IR Controller","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +AI Universal Remote {"NAME":"YTF IR Controller","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} Alfawise KS1 {"NAME":"KS1","GPIO":[1,1792,32,1824,32,1088,0,0,320,0,1056,0,0,4704],"FLAG":0,"BASE":62} Antsig Universal Remote Controller {"NAME":"Antsig Smart Wi-Fi IR","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} auvisio S06 {"NAME":"NX-4519-675","GPIO":[0,0,0,0,288,1088,0,0,0,0,1056,0,0,0],"FLAG":0,"BASE":18} -BlitzWolf BW-RC1 Smart IR Controller {"NAME":"BW-RC1","GPIO":[0,0,0,0,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -Connect SmartHome Universal Smart IR Remote {"NAME":"CSH IR Bridge","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -Cusam CS-IRC-1 {"NAME":"YTF IR Bridge","GPIO":[1,1,1,1,288,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +BlitzWolf BW-RC1 {"NAME":"BW-RC1","GPIO":[0,0,0,0,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +Connect SmartHome Universal Remote {"NAME":"CSH IR Controller","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +Cusam CS-IRC-1 {"NAME":"YTF IR Controller","GPIO":[1,1,1,1,288,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} Eachen IR DC6 {"NAME":"Eachen IR","GPIO":[0,0,0,0,320,1088,0,0,1,32,1056,0,0,0],"FLAG":0,"BASE":18} Frankever Smart Remote {"NAME":"FK-UFO-R4","GPIO":[1,1,1,1,288,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} Geeklink GK01 {"NAME":"GL IR Blaster","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -Jinvoo AC/TV Box Controller {"NAME":"Jinvoo IR Bridge","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +Jinvoo AC/TV Box {"NAME":"Jinvoo IR Controller","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} JS-IR1 Universal Remote {"NAME":"JS-IR1","GPIO":[1,1,1,1,288,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":18} -Lenovo SE-741C IR Controller {"NAME":"Lenovo IR","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +Lenovo SE-741C {"NAME":"Lenovo IR","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} Mirabella Genio I002577 {"NAME":"Genio IR TxRx","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -Nedis Universal Remote Control {"NAME":"Nedis IR Bridge","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +Nedis Universal Remote Control {"NAME":"Nedis IR Controller","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} NEO Coolcam Remote Controller {"NAME":"Neo Coolcam IR","GPIO":[1,3200,1,3232,576,1088,0,0,320,32,1056,0,0,0],"FLAG":0,"BASE":62} Orvibo Magic Cube {"NAME":"Orvibo CT10W","GPIO":[0,0,0,0,32,1088,0,0,288,0,1056,289,0,0],"FLAG":0,"BASE":18} +Remote Control {"NAME":"DC-QRA2","GPIO":[0,0,0,0,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} RM mini {"NAME":"RM mini","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} STITCH {"NAME":"Stitch 35753","GPIO":[0,0,0,0,288,1088,0,0,0,64,1056,0,0,0],"FLAG":0,"BASE":18} SZMDLX IR Remote Controller {"NAME":"SZMDLX WiFi IR","GPIO":[0,0,0,0,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -Tuya Smart Remote {"NAME":"IR Bridge","GPIO":[1,1,1,1,1,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -TY-IR-01 {"NAME":"TY-IR-01 IR Bridge","GPIO":[1,1,1,1,288,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -YTF Universal Remote {"NAME":"YTF IR Bridge","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +Tuya Smart Remote {"NAME":"IR Controller","GPIO":[1,1,1,1,1,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +TY-IR-01 {"NAME":"TY-IR-01 IR Controller","GPIO":[1,1,1,1,288,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} +YTF Universal Remote {"NAME":"YTF IR Controller","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} ``` ## Illuminance Sensor ``` -Lightsensor {"NAME":"Lightsensor","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +Tuya {"NAME":"Lightsensor","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} ``` ## Kettle @@ -508,6 +531,7 @@ Music 12A 288W RGBW Led Controller {"NAME":"*WS04","GPIO":[0,0,0,0,0,0,0,0,417, Nexlux {"NAME":"MagicHome V1.1","GPIO":[0,0,0,0,1088,416,0,0,417,418,0,0,0,0],"FLAG":0,"BASE":34} Powertech RGB {"NAME":"Powertech RGB ","GPIO":[0,0,0,0,416,419,0,0,418,420,417,0,0,0],"FLAG":0,"BASE":18} QS-WIFI-RGBCW {"NAME":"QS-WIFI-RGBCW","GPIO":[0,0,32,0,544,417,0,0,418,0,289,416,0,0],"FLAG":0,"BASE":18} +RGB {"NAME":"WS03","GPIO":[0,0,0,0,0,0,0,0,418,417,416,0,0,0],"FLAG":0,"BASE":18} RGB+CCT {"NAME":"WS05","GPIO":[0,0,0,0,0,420,0,0,418,417,416,419,0,0],"FLAG":0,"BASE":18} Shelly RGBW2 {"NAME":"Shelly RGBW2","GPIO":[0,0,288,0,419,1,0,0,416,32,418,417,0,0],"FLAG":0,"BASE":18} ZJ-WF-ESP-A v1.1 {"NAME":"RGB2","GPIO":[0,0,0,0,0,0,0,0,417,416,418,0,0,0],"FLAG":0,"BASE":18} @@ -541,6 +565,7 @@ LE LampUX 2m RGB TV Backlight {"NAME":"LE 904102","GPIO":[0,32,33,0,0,417,0,0,4 LE LampUX 5m RGB {"NAME":"LampUX","GPIO":[32,0,0,0,0,417,0,0,418,0,0,416,0,0],"FLAG":0,"BASE":18} LE LampUX 5m RGB {"NAME":"LE LampUx","GPIO":[0,0,0,0,0,417,0,0,418,0,0,416,0,0],"FLAG":0,"BASE":34} LE lampUX 5m RGBW {"NAME":"LampUX","GPIO":[0,0,32,0,0,417,0,0,418,0,419,416,0,0],"FLAG":0,"BASE":18} +Lenovo 5m RGBW {"NAME":"Lenovo LED Strip 5m","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Lohas ZN022 5m RGBW {"NAME":"LOHAS M5-022","GPIO":[0,0,0,0,417,416,0,0,32,418,0,0,0,0],"FLAG":0,"BASE":18} LSC RGBW {"NAME":"LSC RGBW Strip","GPIO":[1088,0,0,0,416,0,0,0,417,419,418,0,0,0],"FLAG":0,"BASE":18} Lumary RGBCCT {"NAME":"Lumary LED","GPIO":[32,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} @@ -554,8 +579,10 @@ Polux RGB+NW 2m {"NAME":"Polux Wi-Fi SM","GPIO":[32,0,0,0,416,419,0 Polux RGBCCT 20W 1700lm 5m {"NAME":"Polux LED 5m","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} Powertech 5m RGBW {"NAME":"Jaycar ST3992 LED Strip","GPIO":[0,0,0,0,416,419,0,0,418,420,417,0,0,0],"FLAG":0,"BASE":18} Reafoo RGBW 5m {"NAME":"REAFOO RGBW LS","GPIO":[32,0,0,0,416,419,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":18} +Simfonio 5m RGB {"NAME":"SimfonioLEDStrip","GPIO":[32,0,1088,0,416,419,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":18} Sonoff L1 {"NAME":"SonoffL1","GPIO":[0,3200,0,3232,0,0,0,0,0,320,0,0,0,0],"FLAG":0,"BASE":70} Sonoff L1 Lite RGB {"NAME":"Sonoff L1 Lite","GPIO":[0,3200,0,3232,0,0,0,0,0,320,0,0,0,0],"FLAG":0,"BASE":70} +TBI Pro RGB {"NAME":"TBI-PRO RGB Strip Light","GPIO":[32,0,0,0,416,0,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":18} Techvilla TE001 {"NAME":"TE-TE001","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Teckin SL02 {"NAME":"Teckin SL02","GPIO":[1088,0,0,0,416,0,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":52} Teckin SL07 32.8ft RGB {"NAME":"WIFI RGB","GPIO":[1088,0,0,0,416,0,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":18} @@ -574,6 +601,7 @@ Arlec Smart 15W Security Floodlight {"NAME":"ArlecFlood","GPIO":[0,0,0,0,0,0,0, Arlec Smart 20W Movement Activated Security {"NAME":"Arlec MAL300HA","GPIO":[0,0,0,0,224,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} Arlec Smart 40W 4000lm LED Batten {"NAME":"Arlec Batten","GPIO":[0,0,0,0,0,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} Arlec Smart Portable Floodlight 10.5W {"NAME":"Arlec GLD301HA","GPIO":[0,0,0,0,0,416,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +Arlec Smart Security Light {"NAME":"Arlec MAL315HA","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Arlec Smart Up & Down LED Wall {"NAME":"Arlec Up Down CCT","GPIO":[0,0,0,0,0,416,0,0,0,417,0,0,0,0],"FLAG":0,"BASE":18} BAZZ 4 in. RGB Recessed Fixture {"NAME":"SLMR4RGBWWFW","GPIO":[0,0,0,0,417,416,0,0,420,418,419,0,0,0],"FLAG":0,"BASE":18} BAZZ 6 in. CCT Recessed Fixture {"NAME":"SLDSK6TNWWF","GPIO":[0,0,0,0,0,416,0,0,0,417,0,0,0,0],"FLAG":0,"BASE":18} @@ -596,6 +624,7 @@ Novostella UT88835 20W Flood {"NAME":"Novo 20W Flood","GPIO":[0,0,0,0,416,419,0 Novostella UT88836 20W Flood {"NAME":"Novo 20W Flood","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Sonoff BN-SZ01 {"NAME":"Sonoff BN-SZ","GPIO":[0,0,0,0,0,0,0,0,416,320,0,0,0,0],"FLAG":0,"BASE":22} Spotlight 9cm RGB+W 7W {"NAME":"Spotlight RGBW","GPIO":[0,0,0,0,0,0,0,0,0,3008,0,3040,0,0],"FLAG":0,"BASE":27} +TCP WPAN Square 600X600mm 36W CCT Panel {"NAME":"TCPsmart LED Panel","GPIO":[0,0,0,0,0,416,0,0,0,449,0,0,0,0],"FLAG":0,"BASE":18} Teckin FL41 {"NAME":"Teckin FL41","GPIO":[0,0,0,0,0,32,0,0,0,0,416,0,0,0],"FLAG":0,"BASE":18} Wipro Next Smart Batten 20W CCT {"NAME":"WIPROBatten","GPIO":[0,0,0,0,0,416,0,0,0,449,0,0,0,4704],"FLAG":0,"BASE":18} Zemismart Moonlamp {"NAME":"Zemismart Moonlamp","GPIO":[1,1,1,1,416,419,1,1,417,420,418,1,1,1],"FLAG":0,"BASE":18} @@ -606,8 +635,8 @@ Zemismart Moonlamp {"NAME":"Zemismart Moonlamp","GPIO":[1,1,1,1,416,41 Alfawise Air Purifier {"NAME":"alfawise P2","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} BlitzWolf Air Fryer {"NAME":"Bw-AF1","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Blitzwolf UV Pet Water Fountain {"NAME":"BW-SPF1","GPIO":[0,0,0,0,224,416,0,0,0,32,0,0,576,0],"FLAG":0,"BASE":18} -Connex Smart Indoor Siren {"NAME":"Connex Siren","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Dealdig Robvaccum 8 Vacuum {"NAME":"WhiteVacuum","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +Digital Body Fat Scale {"NAME":"TuyaScale","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} EaryKong Doorbell {"NAME":"Doorbell","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} iLONDA Fish Feeder {"NAME":"Feeder","GPIO":[0,0,0,0,32,320,0,0,352,0,224,0,0,0],"FLAG":0,"BASE":18} Kogan 4.1kW Portable Air Conditioner (Reverse Cycle) {"NAME":"Kogan Panel Heater","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} @@ -615,8 +644,18 @@ Kogan Pet Fountain {"NAME":"Pet Fountain","GPIO":[0,2272,0,2304,0,0,0, LED Starry Sky Projector Light {"NAME":"STAR PROJECTOR","GPIO":[0,0,0,0,416,0,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":18} Mosquito Killer Lamp {"NAME":"MosquitoKiller","GPIO":[32,0,0,0,0,0,0,0,416,320,0,0,0,0],"FLAG":0,"BASE":18} NEO Coolcam Mouse Trap {"NAME":"Neo Mouse Trap","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} -Proscenic 807C Humidifier {"NAME":"Generic","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} -Sonoff RM433 RF Remote Controller {"NAME":"REQUIRES RF DEVICE"} +PCI-e Desktop PC Remote Control {"NAME":"PC-Switch-01","GPIO":[32,0,0,0,0,0,0,0,224,544,0,0,0,0],"FLAG":0,"BASE":18} +Proscenic T21 Air Fryer {"NAME":"Proscenic T21","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +``` + +## Module +``` +ESP-01 {"NAME":"ESP01","GPIO":[1,1,1,1,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} +ESP-01D {"NAME":"ESP-01D","GPIO":[1,1,0,1,1,0,0,0,1,0,1,0,0,0],"FLAG":0,"BASE":18} +ESP-15F {"NAME":"ESP-15F","GPIO":[1,1,0,1,1,1,0,0,0,544,0,0,0,0],"FLAG":0,"BASE":18} +ESP-M3 {"NAME":"ESP-M3","GPIO":[1,1,1,1,1,0,0,0,0,1,1,0,1,0],"FLAG":0,"BASE":18} +LC Technology PSF-B04 Ewelink 4 Channel Switch {"NAME":"LC-EWL-B04-MB","GPIO":[1,1,1,1,1,1,0,0,1,288,1,1,0,0],"FLAG":0,"BASE":18} +Shelly UNI {"NAME":"Shelly Uni","GPIO":[320,0,0,0,225,1216,0,0,192,193,0,224,0,4864],"FLAG":0,"BASE":18} ``` ## Motion Sensor @@ -638,17 +677,9 @@ Zemismart Updated RF Remote Roller Shade {"NAME":"Zemismart M515EGB","GPIO":[1, ## Multisensor ``` -AZ-Envy Environmental Development Board {"NAME":"AZ Envy","GPIO":[32,0,320,0,640,608,0,0,0,0,0,0,0,4704],"FLAG":0,"BASE":18} -NEO Coolcam Siren with Temperature and Humidity {"NAME":"Neo Siren 3in1","GPIO":[1,2272,1,2304,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} Sonoff SC {"NAME":"Sonoff SC","GPIO":[32,3200,1,3232,0,0,0,0,0,320,0,0,0,0],"FLAG":0,"BASE":21} ``` -## Other -``` -AI Universal Remote {"NAME":"YTF IR Bridge","GPIO":[1,1,1,1,320,1088,0,0,0,32,1056,0,0,0],"FLAG":0,"BASE":62} -Digital Body Fat Scale {"NAME":"TuyaScale","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} -``` - ## Outdoor Plug ``` Acenx SOP04-US Dual {"NAME":"SOP04-US Dual","GPIO":[1,1,1,1,320,321,0,0,224,32,225,1,1,0],"FLAG":0,"BASE":18} @@ -672,6 +703,7 @@ Emax IP44 {"NAME":"Emax Smart Socket","GPIO":[0,0,0,0,320,0,0 Etekcity {"NAME":"ES015-TB","GPIO":[0,0,0,0,224,225,288,0,2656,2688,32,2592,289,0],"FLAG":0,"BASE":18} Feit Electric PLUG/WIFI/WP {"NAME":"Prime Smart ou","GPIO":[0,1,0,1,544,320,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} Forrinx SH-18EU-A {"NAME":"SH-18EU-A","GPIO":[0,0,0,0,225,288,224,321,32,0,0,0,0,0],"FLAG":0,"BASE":18} +Foxnovo IP44 Dual {"NAME":"SOP06-US","GPIO":[0,0,0,0,320,321,0,0,224,32,225,0,0,0],"FLAG":0,"BASE":18} Geeni Outdoor DUO Dual Outlet {"NAME":"Geeni Dual Out","GPIO":[32,0,0,0,0,321,0,0,0,320,224,0,225,0],"FLAG":0,"BASE":18} Globe 2-Outlet {"NAME":"Globe 50029","GPIO":[0,0,0,321,225,544,0,0,32,224,320,0,0,0],"FLAG":0,"BASE":18} HA109US {"NAME":"HA109US","GPIO":[32,0,0,0,288,289,0,0,224,0,225,0,0,0],"FLAG":0,"BASE":18} @@ -713,7 +745,7 @@ Treatlife Dimmer {"NAME":"DP10 Dimmer","GPIO":[0,2272,0,2304,0,0,0,0 Ucomen PA-GEBA-01SWP {"NAME":"PA-GEBA-01SWP","GPIO":[0,0,0,0,288,321,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} WOOX R4051 {"NAME":"WOOX R4051","GPIO":[32,0,0,0,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} WOOX R4052 {"NAME":"WOOX R4052","GPIO":[32,0,0,0,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} -Wyze Plug {"NAME":"Wyze Plug Outdoor","GPIO":[1,1,1,1,1,576,1,1,1,1,1,224,321,1,1,320,0,1,1,1,0,2624,2656,2720,0,0,0,0,225,1,1,1,1,0,0,1],"FLAG":0,"BASE":1} +Wyze {"NAME":"Wyze Plug Outdoor","GPIO":[0,0,0,0,0,576,0,0,0,0,0,224,320,0,0,320,0,0,0,0,0,2624,2656,2720,0,0,0,0,225,0,0,0,0,0,0,0],"FLAG":0,"BASE":1} ``` ## Plug @@ -757,9 +789,9 @@ Aquiv S1 {"NAME":"Aquiv S1","GPIO":[0,0,544,0,320,0,0,0,224, Arlec 10m Smart Extension Lead {"NAME":"Arlec Ext Cord","GPIO":[0,32,0,0,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} Arlec Heavy Duty 20m Extension Lead {"NAME":"Arlec Ext Cord","GPIO":[0,32,0,0,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} Arlec Smart {"NAME":"Arlec-PC190HA","GPIO":[0,0,0,0,320,0,0,0,224,576,32,0,0,0],"FLAG":0,"BASE":18} +Arlec Smart {"NAME":"PC399HA","GPIO":[0,0,0,32,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":52} Arlec Smart 2.1A USB Charger {"NAME":"Arlec Single","GPIO":[0,0,0,0,321,0,0,0,224,0,64,0,0,0],"FLAG":0,"BASE":18} Arlec Smart PC189HA {"NAME":"Arlec Single","GPIO":[0,0,0,0,321,0,0,0,224,0,64,0,0,0],"FLAG":0,"BASE":18} -Arlec Smart PC399HA Plug {"NAME":"PC399HA","GPIO":[0,0,0,32,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":52} Arlec Twin PC288HA {"NAME":"Arlec Twin","GPIO":[0,32,0,225,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} Athom 16A {"NAME":"Athom PG01EU16A","GPIO":[0,0,0,32,2720,2656,0,0,2624,544,224,0,0,0],"FLAG":0,"BASE":1} Athom 16A AU {"NAME":"Athom PG05-IT16A","GPIO":[0,0,0,32,2720,2656,0,0,2624,544,224,0,0,0],"FLAG":0,"BASE":1} @@ -810,7 +842,7 @@ BlitzWolf BW-SHP6 10A {"NAME":"BW-SHP6 10A","GPIO":[576,1,320,1,0,2720,0, BlitzWolf BW-SHP6 15A {"NAME":"BlitzWolf SHP6","GPIO":[320,1,576,1,2656,2720,0,0,2624,32,0,224,0,0],"FLAG":0,"BASE":45} BlitzWolf BW-SHP7 {"NAME":"SHP7","GPIO":[32,576,321,2624,2720,2656,0,0,33,320,224,0,225,0],"FLAG":0,"BASE":45} BlitzWolf SHP1 {"NAME":"BlitzWolf-SHP1","GPIO":[320,0,321,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} -Blitzwolf SHP11 16A {"NAME":"BlitzWolf-SHP11","GPIO":[320,0,321,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} +Blitzwolf SHP11 16A {"NAME":"BlitzWolf-SHP11","GPIO":[320,0,0,2624,0,2720,0,0,0,32,2656,224,0,0],"FLAG":0,"BASE":18} Bluemyth 16A {"NAME":"SWA11","GPIO":[0,0,0,0,288,224,0,0,0,32,0,0,0,0],"FLAG":0,"BASE":18} BN-Link {"NAME":"BNC-60/U133TJ","GPIO":[0,288,0,32,2720,2656,0,0,2624,289,224,0,0,0],"FLAG":0,"BASE":18} BNETA IoT {"NAME":"BNETA WifiPlug","GPIO":[32,288,0,0,2688,2656,0,0,2624,544,224,0,0,0],"FLAG":0,"BASE":18} @@ -820,8 +852,8 @@ Brennenstuhl WA 3000 {"NAME":"WA 3000 XS01","GPIO":[0,0,0,0,224,32,0,0,5 Bright {"NAME":"Bright Wi-Fi Smart Plug","GPIO":[0,0,0,0,320,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} Brilliant {"NAME":"HK17654S05","GPIO":[32,1,1,1,2688,2656,1,1,2624,320,224,1,1,0],"FLAG":0,"BASE":18} Brilliant Lighting BL20925 {"NAME":"BL20925","GPIO":[0,0,0,32,2688,2656,0,0,2624,576,224,0,0,0],"FLAG":0,"BASE":52} -Brilliant Smart Double Adaptor {"NAME":"Brilliant_2Plg","GPIO":[0,0,0,288,224,225,1,1,544,32,33,0,0,0],"FLAG":0,"BASE":18} BrilliantSmart 20676 USB Charger {"NAME":"Brilliant","GPIO":[0,0,0,0,0,224,0,0,0,288,64,0,0,0],"FLAG":0,"BASE":18} +BrilliantSmart Double Adaptor {"NAME":"Brilliant_2Plg","GPIO":[0,0,0,288,224,225,1,1,544,32,33,0,0,0],"FLAG":0,"BASE":18} BSD01 {"NAME":"BSD01","GPIO":[1,320,1,1,1,1,0,0,224,32,321,1,1,0],"FLAG":0,"BASE":18} BSD13 {"NAME":"TuyaPlugBSD13","GPIO":[0,321,0,0,0,0,0,0,224,32,288,0,0,0],"FLAG":0,"BASE":18} BSD15 {"NAME":"TuyaPlugBSD15","GPIO":[1,1,1,1,1,1,0,0,224,32,320,1,1,4704],"FLAG":0,"BASE":18} @@ -875,6 +907,7 @@ eFamilyCloud ASDFEE174 {"NAME":"eFamily Plug","GPIO":[0,0,0,0,288,224,0,0, EFUN SH330W {"NAME":"EFUNPlug","GPIO":[320,1,1,1,1,1,1,1,1,32,1,224,1,1],"FLAG":0,"BASE":18} EFUN SH331W {"NAME":"Efun-Plug","GPIO":[320,0,576,0,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":18} Elehot 16A {"NAME":"ELEHOT AWP16L","GPIO":[0,0,320,0,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":45} +EleLight {"NAME":"EleLight PE1004T","GPIO":[0,0,0,0,288,289,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} EletecPro 2 {"NAME":"EletecPro-2","GPIO":[1,1,1,1,32,1,0,0,289,288,224,1,1,4704],"FLAG":0,"BASE":18} Emporia {"NAME":"Emporia EMS01","GPIO":[0,0,0,289,224,2720,0,0,2624,32,2656,288,0,0],"FLAG":0,"BASE":18} Ener-J {"NAME":"ENER-J SHA5264","GPIO":[32,0,0,0,2720,2656,0,0,2624,288,224,0,0,0],"FLAG":0,"BASE":18} @@ -921,9 +954,9 @@ Gosund 2 in 1 {"NAME":"Gosund WP212","GPIO":[321,288,544,0,224,27 Gosund Dual {"NAME":"Gosund SP211","GPIO":[33,576,320,2624,2720,2656,0,0,32,321,224,0,225,0],"FLAG":0,"BASE":18} Gosund SP1 {"NAME":"Gosund SP1 v23","GPIO":[0,321,0,32,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":55} Gosund SP111 {"NAME":"Gosund SP111","GPIO":[320,0,321,0,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":18} -Gosund SP111 v1.1 {"NAME":"SP111 v1.1","GPIO":[320,0,576,0,2656,2720,0,0,2624,32,0,224,0,0],"FLAG":0,"BASE":45} -Gosund SP111 v1.4 {"NAME":"Gosund SP111","GPIO":[321,1,320,1,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":45} -Gosund SP112 {"NAME":"SP112","GPIO":[321,0,320,0,2656,2720,0,0,2624,257,224,0,0,4800],"FLAG":0,"BASE":18} +Gosund SP111 v1.1 {"NAME":"Gosund SP111 v1.1","GPIO":[320,0,576,0,2656,2720,0,0,2624,32,0,224,0,0],"FLAG":0,"BASE":45} +Gosund SP111 v1.4 {"NAME":"Gosund SP111 v1.4","GPIO":[321,1,320,1,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":45} +Gosund SP112 {"NAME":"SHP5","GPIO":[321,3072,320,3104,1,225,0,0,1,1,224,1,32,0],"FLAG":0,"BASE":18} Gosund SP112 {"NAME":"Gosund 112v3.4","GPIO":[320,0,321,0,2656,2720,0,0,2624,257,224,0,0,4800],"FLAG":0,"BASE":18} Gosund WP1 {"NAME":"Gosund WP1-1","GPIO":[0,0,320,0,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":45} Gosund WP2 {"NAME":"Gosund WP2","GPIO":[32,576,321,0,33,0,0,0,225,320,224,0,0,0],"FLAG":0,"BASE":18} @@ -951,7 +984,7 @@ HLT-309 {"NAME":"HLT-309","GPIO":[0,0,0,0,0,0,0,0,0,32,0,22 Hoin 10A {"NAME":"NIOH XS-SSC01","GPIO":[0,32,0,0,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} Hombli Socket Duo {"NAME":"HombliSocketDuo","GPIO":[33,0,0,0,0,0,0,0,0,544,224,225,32,0],"FLAG":0,"BASE":18} HomeMate 16A Heavy Duty {"NAME":"HMLPG16","GPIO":[0,288,0,32,2720,2656,0,0,2624,544,224,0,0,0],"FLAG":0,"BASE":18} -Houzetek AWP07L {"NAME":"AWP07L","GPIO":[320,0,0,2592,0,2720,0,0,0,32,2656,224,0,0],"FLAG":0,"BASE":18} +Houzetek {"NAME":"AWP07L","GPIO":[320,0,0,0,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":18} HS108 {"NAME":"HS108","GPIO":[0,32,0,0,0,0,0,0,0,320,224,0,0,4704],"FLAG":0,"BASE":18} HS108A {"NAME":"HS108A","GPIO":[0,0,0,0,288,0,0,0,224,32,0,0,0,4704],"FLAG":0,"BASE":18} HuaFan QinLu {"NAME":"Huafan SS","GPIO":[320,0,0,321,32,256,0,0,2656,2592,2688,0,0,0],"FLAG":0,"BASE":24} @@ -997,8 +1030,10 @@ KMC 4AC {"NAME":"KMC 4 Outlet","GPIO":[0,320,0,0,2688,2656, KMC 70011 {"NAME":"KMC 70011","GPIO":[32,0,0,0,2688,2656,0,0,2592,320,224,0,0,0],"FLAG":0,"BASE":36} Kogan Energy Meter {"NAME":"Kogan Smart Sw","GPIO":[32,0,0,0,2688,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18} Kogan Energy Meter & USB {"NAME":"KoganPOW","GPIO":[0,0,0,32,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":52} +Konlen USB {"NAME":"KONLEN","GPIO":[0,0,0,0,419,416,0,0,418,32,417,224,0,0],"FLAG":0,"BASE":18} Konyks Priska EU {"NAME":"Konyks Priska EU","GPIO":[0,0,320,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} Konyks Priska Mini 10A {"NAME":"Konyks 10A","GPIO":[0,0,0,0,320,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} +Konyks Priska+ Mini 16A {"NAME":"Konyks PRISKA+ MINI","GPIO":[32,0,0,0,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":49} Koogeek {"NAME":"Koogeek KLSP1","GPIO":[0,0,0,32,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} Koogeek {"NAME":"Koogeek-KLUP1","GPIO":[0,0,0,32,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18} Koogeek KLSP1 {"NAME":"Koogeek-KLSP1","GPIO":[0,320,0,32,2720,2656,0,0,2624,576,224,0,0,0],"FLAG":0,"BASE":18} @@ -1062,6 +1097,7 @@ NEO Coolcam 10A {"NAME":"Neo Coolcam 10","GPIO":[32,0,0,0,2720,2656 NEO Coolcam 16A {"NAME":"Lonsonho NAS-WR07W-16A","GPIO":[32,0,0,0,0,0,1,1,0,320,224,0,0,1],"FLAG":0,"BASE":18} NEO Coolcam NAS-WR01W {"NAME":"NAS-WR01W","GPIO":[0,0,0,0,288,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} NEO Coolcam NAS-WR01W 16A {"NAME":"Neo Coolcam 16","GPIO":[32,0,0,0,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":49} +Nestler-matho {"NAME":"N-m 485-1","GPIO":[0,0,0,32,2688,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18} NETVIP XS-SSA01 {"NAME":"XS-SSA01","GPIO":[0,0,0,0,0,0,0,0,320,32,0,224,0,0],"FLAG":0,"BASE":18} Nightlight and AC Outlet {"NAME":"SWN03","GPIO":[32,0,0,0,0,0,1,1,416,0,0,224,0,0],"FLAG":0,"BASE":18} Nishica SM-PW701I {"NAME":"SM-PW701I","GPIO":[1,1,1,1,1,1,1,1,224,288,32,1,1,1],"FLAG":0,"BASE":18} @@ -1075,6 +1111,7 @@ Obi Stecker {"NAME":"OBI Socket","GPIO":[1,1,0,1,288,224,0,0,29 Obi Stecker 2 {"NAME":"OBI Socket 2","GPIO":[0,0,0,0,224,32,0,0,320,289,0,0,0,0],"FLAG":0,"BASE":61} Oittm Smart {"NAME":"Oittm","GPIO":[0,0,0,0,224,320,0,0,32,0,0,0,0,0],"FLAG":0,"BASE":1} Olliwon {"NAME":"Olliwon","GPIO":[0,0,320,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} +Onearz Connect Smart {"NAME":"Onearz Power Plug Wifi","GPIO":[0,0,0,0,288,224,0,0,0,32,0,0,0,0],"FLAG":0,"BASE":18} Onestyle SD-WL-02 {"NAME":"JH-G01B1","GPIO":[0,3072,0,3104,0,0,0,0,32,320,224,0,0,0],"FLAG":0,"BASE":41} Orbecco W-US009 {"NAME":"Orbecco Plug","GPIO":[0,32,0,0,0,0,0,0,0,288,224,0,0,0],"FLAG":0,"BASE":18} Orvibo B25 {"NAME":"Orvibo B25","GPIO":[0,0,0,0,289,224,0,0,288,0,32,0,0,0],"FLAG":0,"BASE":18} @@ -1107,6 +1144,7 @@ RSH-WS005 {"NAME":"RSH-WS005 Energy Monitor","GPIO":[320,0,57 RSH-WS007-EU {"NAME":"RSH-WS007","GPIO":[0,0,0,32,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18} S126 {"NAME":"tuya-plug","GPIO":[0,0,0,0,0,0,0,0,224,35,0,0,0,0],"FLAG":0,"BASE":8} SA-001 {"NAME":"SA-001","GPIO":[32,3072,0,3104,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":41} +SA-P202A {"NAME":"SA-P202A","GPIO":[0,0,0,0,0,320,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} SA-P202C 16A {"NAME":"Elivco 202C-G","GPIO":[0,0,0,32,2688,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18} SA-P302A {"NAME":"KinCam SA-P302A","GPIO":[0,0,0,0,0,320,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} Sansui {"NAME":"Sansui YSP-1","GPIO":[288,0,289,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} @@ -1166,13 +1204,14 @@ Teckin SP22 {"NAME":"Teckin","GPIO":[0,32,0,321,2720,2656,0,0,2 Teckin SP23 {"NAME":"Teckin SP23","GPIO":[320,1,321,1,0,2720,0,0,2624,32,2656,224,0,0],"FLAG":0,"BASE":45} Teckin SP25 {"NAME":"Teckin SP25","GPIO":[320,1,1,1,1,1,0,0,225,32,1,224,1,4704],"FLAG":0,"BASE":18} Teckin SP27 {"NAME":"Teckin SP27","GPIO":[320,1,1,1,1,1,0,0,1,32,1,224,1,0],"FLAG":0,"BASE":18} -Tellur 16A 2 Ports {"NAME":"Tellur WiFi Smart Socket","GPIO":[33,0,0,2624,2720,2656,0,0,544,224,225,0,32,0],"FLAG":0,"BASE":18} +Tellur 16A 2 Ports {"NAME":"Tellur WiFi Smart Socket","GPIO":[0,0,0,2624,32,2688,0,0,224,33,2656,225,0,0],"FLAG":0,"BASE":18} Tellur 1USB 10A {"NAME":"Tellur TTL331021","GPIO":[0,0,544,0,288,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} Tflag NX-SM100 {"NAME":"NX-SM100","GPIO":[320,0,0,0,0,2720,0,0,224,32,2656,321,2624,0],"FLAG":0,"BASE":18} TikLok TL650 {"NAME":"TikLok Mini","GPIO":[0,0,0,0,321,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} Timethinker C338 {"NAME":"C338","GPIO":[32,0,1,0,0,0,0,0,224,288,1,0,0,0],"FLAG":0,"BASE":1} Timethinker TK04 {"NAME":"TimethinkerEU","GPIO":[1,1,1,1,32,1,0,0,1,288,224,1,0,0],"FLAG":0,"BASE":18} TimeThinker WS2 {"NAME":"TimeThinkerWS2","GPIO":[0,0,0,0,32,0,0,0,0,288,224,0,0,0],"FLAG":0,"BASE":18} +Tomada KaBuM! Smart {"NAME":"TOMADA KABUM! SMART","GPIO":[0,0,0,32,2720,2656,0,0,2624,544,224,0,0,0],"FLAG":0,"BASE":18} TomaxUSA {"NAME":"HKWL-SO07W","GPIO":[32,1,1,1,1,1,0,0,1,1,224,1,320,0],"FLAG":0,"BASE":18} Topersun {"NAME":"Topersun ","GPIO":[0,0,0,0,288,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} TopGreener {"NAME":"TGWF115PRM","GPIO":[0,320,0,32,2720,2656,0,0,2624,321,224,0,0,0],"FLAG":0,"BASE":18} @@ -1236,6 +1275,7 @@ Yuanguo KS-501 {"NAME":"Yuanguo_KS-501","GPIO":[32,0,0,0,0,0,0,0,2 YX-DE01 {"NAME":"YX-DE01","GPIO":[0,32,0,0,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} YX-WS02 {"NAME":"Amysen YX-WS02","GPIO":[1,32,1,1,1,1,0,0,1,320,224,1,1,4704],"FLAG":0,"BASE":18} ZBR-001 {"NAME":"ZBR-001","GPIO":[32,1,1,1,2688,2656,0,0,2592,320,224,1,321,4704],"FLAG":0,"BASE":18} +ZettaGuard {"NAME":"ZettaGuard S25","GPIO":[0,0,0,0,289,224,0,0,288,0,32,0,0,0],"FLAG":0,"BASE":18} ZooZee SA101 {"NAME":"ZooZee","GPIO":[321,1,320,1,1,1,0,0,1,32,1,224,1,0],"FLAG":0,"BASE":18} ZooZee SA102 {"NAME":"ZooZee","GPIO":[321,1,320,1,224,2688,0,0,2624,32,2656,1,1,0],"FLAG":0,"BASE":18} ZooZee SE131 {"NAME":"ZOOZEE_SF131","GPIO":[0,0,320,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} @@ -1263,6 +1303,7 @@ Arlec Smart 3 Outlet Power Cube {"NAME":"Arlec Cube","GPIO":[0,32,0,0,0,0,0,0,0 Bauhn ASPBU-1019 {"NAME":"Bauhn 3AC+3USB","GPIO":[0,544,0,0,225,224,0,0,0,226,32,0,0,0],"FLAG":0,"BASE":18} BlitzWolf BW-SHP9 {"NAME":"BlitzWolf SHP9","GPIO":[576,1,0,1,0,226,0,0,224,32,225,227,0,0],"FLAG":0,"BASE":45} Brennenstuhl Connect Eco-Line {"NAME":"WS EL01 DE","GPIO":[34,33,0,32,224,225,0,0,288,0,0,289,576,0],"FLAG":0,"BASE":18} +Brennenstuhl Connect Premium-Line {"NAME":"WS PL01 DE","GPIO":[34,33,0,32,224,225,0,0,288,0,35,289,576,0],"FLAG":0,"BASE":18} BrilliantSmart 20691 Powerboard with USB Chargers {"NAME":"B_WiFi-4","GPIO":[320,0,0,321,256,32,0,0,258,257,259,0,228,4704],"FLAG":0,"BASE":18} CE Smart Home {"NAME":"CE Power Strip","GPIO":[288,0,0,0,225,224,0,0,227,226,228,229,32,0],"FLAG":0,"BASE":18} CE Smart Home Garden Stake {"NAME":"CE Power Stake","GPIO":[0,0,0,0,320,321,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} @@ -1275,7 +1316,7 @@ Forrinx 3AC 4USB {"NAME":"SH-20","GPIO":[0,320,0,321,225,224,0,0,32, Geekbes 4AC+4USB {"NAME":"Geekbes 4xStri","GPIO":[0,320,0,32,225,224,0,0,226,227,228,0,0,4704],"FLAG":0,"BASE":18} Geeni Surge {"NAME":"Geeni GNCSW003","GPIO":[288,0,0,0,225,224,0,0,227,228,226,229,32,0],"FLAG":0,"BASE":18} Geeni Surge + Charge 2 USB {"NAME":"Geeni GN-SW023","GPIO":[288,0,0,0,225,224,0,0,226,227,228,0,32,0],"FLAG":0,"BASE":18} -Geeni SURGE 6-Outlet Surge Protector {"NAME":"Geeni 6 Strip","GPIO":[320,0,0,0,225,224,0,0,227,228,226,229,0,0],"FLAG":0,"BASE":18} +Geeni SURGE 6-Outlet Surge Protector {"NAME":"Geeni 6 Strip","GPIO":[320,0,0,0,225,224,0,0,227,228,226,229,32,0],"FLAG":0,"BASE":18} Geeni Surge Mini {"NAME":"Geeni-GN-SW004","GPIO":[320,0,0,32,0,0,0,0,225,224,226,0,0,1],"FLAG":0,"BASE":18} Globe 4 Outlet 2 USB {"NAME":"PowerBar","GPIO":[320,0,0,0,227,32,0,0,225,226,224,0,0,1],"FLAG":0,"BASE":18} Gosund P1 {"NAME":"Gosund_P1","GPIO":[0,3072,544,3104,0,259,0,0,225,226,224,0,32,4704],"FLAG":0,"BASE":18} @@ -1319,6 +1360,7 @@ Prokord 4AC 4USB {"NAME":"PSH-WT003-EU","GPIO":[0,320,0,32,226,227,0 S2199EU {"NAME":"S2199EU","GPIO":[0,32,0,288,226,228,0,0,224,227,225,0,0,4704],"FLAG":0,"BASE":18} SA-P402A {"NAME":"SA-P402A","GPIO":[0,32,0,320,226,228,224,227,225,0,0,0,0,4704],"FLAG":0,"BASE":18} STITCH 4 AC, 2 Always-On USB {"NAME":"MP Stitch 34082","GPIO":[320,0,0,0,227,32,0,0,225,226,224,0,0,0],"FLAG":0,"BASE":18} +Surge Protector 3AC 2USB {"NAME":"C158","GPIO":[260,0,0,0,261,230,0,0,224,0,225,226,259,0],"FLAG":0,"BASE":18} SWB1 {"NAME":"SWB1","GPIO":[288,0,0,0,0,227,0,0,224,32,225,226,0,0],"FLAG":0,"BASE":18} SWB2 3AC + 2USB {"NAME":"SWB2","GPIO":[576,1,0,1,0,226,0,0,224,32,225,227,0,0],"FLAG":0,"BASE":18} TCP Smart 4AC+USB {"NAME":"TCP WPS4WUK","GPIO":[1,320,0,32,226,227,0,0,225,224,228,0,0,1],"FLAG":0,"BASE":18} @@ -1353,9 +1395,9 @@ ZLD-44USA-W {"NAME":"ZLD-44USA-W","GPIO":[0,320,0,32,225,224,0, ZLD64-EU-W {"NAME":"ZLD64-EU-W","GPIO":[0,320,0,32,225,224,0,0,0,0,226,0,0,0],"FLAG":0,"BASE":18} ``` -## RF Bridge +## RF Gateway ``` -Sonoff RF Bridge 433 {"NAME":"Sonoff Bridge","GPIO":[32,3200,1,3232,1,1,0,0,1,320,1,0,0,0],"FLAG":0,"BASE":25} +Sonoff RF Gateway 433 {"NAME":"Sonoff Bridge","GPIO":[32,3200,1,3232,1,1,0,0,1,320,1,0,0,0],"FLAG":0,"BASE":25} ``` ## RGB @@ -1368,6 +1410,7 @@ Lyasi PT-BW09 {"NAME":"Lyasi PT-BW09","GPIO":[32,0,0,0,3008,3040, MoKo YX-L01C-E27 810lm {"NAME":"MOKO","GPIO":[32,0,0,0,3008,3040,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":27} muvit IO miobulb001 600lm {"NAME":"miobulb001","GPIO":[0,0,0,0,419,0,0,0,417,418,416,0,0,1],"FLAG":0,"BASE":18} Oobest ZN93028 11W {"NAME":"RGB Bulb 11W","GPIO":[0,0,0,0,419,0,0,0,417,418,416,0,0,4704],"FLAG":0,"BASE":18} +SuperBrightLEDs 3W 70lm 12V {"NAME":"G4-RGB3W","GPIO":[0,0,0,0,417,0,0,0,418,0,416,0,0,0],"FLAG":0,"BASE":18} V-Tac P45 4.5W 300lm {"NAME":"V-TAC VT-5154","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} Wipro Garnet NS7001 480lm {"NAME":"WiproSmartBulb","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} ``` @@ -1382,6 +1425,7 @@ Aoycocr Q10CWM BR30 9W 720lm {"NAME":"AoycocrBR30","GPIO":[0,0,0,0,0,418,0,0,41 Arlec Smart 9.5W 806lm {"NAME":"Arlec RGBWW","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Arlec Smart 9.5W 806lm {"NAME":"Arlec RGBWW","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Athom 15W 1400lm {"NAME":"Athom LB017W","GPIO":[0,0,0,0,416,419,0,0,417,452,418,0,0,0],"FLAG":0,"BASE":1} +Athom 4.5W 700lm {"NAME":"Athom LB10-5W-TAS","GPIO":[0,0,0,0,416,419,0,0,417,452,418,0,0,0],"FLAG":0,"BASE":18} Athom 7W 600lm {"NAME":"Athom LB017W","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":1} Aunics 7W 600lm {"NAME":"Aunics RGBW","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Avatar 8W 800lm {"NAME":"Avatar 8W RGBCW","GPIO":[1,1,1,1,416,419,1,1,417,420,418,1,1,1],"FLAG":0,"BASE":18} @@ -1399,6 +1443,7 @@ Boxlood 9W 900lm {"NAME":"Boxlood 9w 900lm RGBCCT","GPIO":[0,0,0,0,4 Calex 429004 A60 806lm {"NAME":"Calex E27 RGB ","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Calex 429008 B35 5W 470lm {"NAME":"Calex E14 RGBW","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} Calex 5W 350lm Reflector {"NAME":"Calex RGBW","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} +Candle 5W 450lm {"NAME":"Candela","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Cleverio 51395 806lm {"NAME":"CleverioE27RGB","GPIO":[0,0,0,0,2944,2912,0,0,417,2976,416,0,0,0],"FLAG":0,"BASE":18} CMARS 4W Reflector {"NAME":"RGBWW GU10","GPIO":[0,0,0,0,419,420,0,0,417,418,416,0,0,1],"FLAG":0,"BASE":18} Connect SmartHome 5W GU5.3 {"NAME":"CSH-GU53RGB5W","GPIO":[0,0,0,0,419,420,0,0,417,418,416,0,0,0],"FLAG":0,"BASE":18} @@ -1419,6 +1464,7 @@ Feit Electric A19 800lm {"NAME":"FE-OM60-15K-AG","GPIO":[0,0,0,0,2944,2912, Feit Electric BR30 700lm {"NAME":"Feit BR30/RGBW","GPIO":[0,0,0,417,2944,2912,0,0,0,2976,416,0,0,0],"FLAG":0,"BASE":18} Feit Electric OM60/RGBW/CA/AG A19 800lm {"NAME":"OM60/RGBW","GPIO":[0,0,0,0,2912,416,0,0,417,2976,2944,0,0,0],"FLAG":0,"BASE":18} Feit OM60/RGBW/CA/AG(P) 9W 800lm {"NAME":"OM60/RGBW/CA/AG/P","GPIO":[0,0,0,0,2944,2912,0,0,416,2976,417,0,0,0],"FLAG":0,"BASE":18} +Fitop 10W {"NAME":"Fitop 10W RGBCW","GPIO":[0,0,0,0,0,0,0,0,0,4032,4064,0,0,0],"FLAG":0,"BASE":18} Fitop 9W {"NAME":"E27RGBCCT9w","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,1],"FLAG":0,"BASE":18} Fulighture 9W 810lm {"NAME":"Fulighture 9W","GPIO":[0,0,0,0,417,416,0,0,420,418,419,0,0,0],"FLAG":0,"BASE":18} Geeni Prisma 10W 1050lm {"NAME":"Geeni Prisma 1050 RGB","GPIO":[0,0,0,0,2944,2912,0,416,417,2976,0,0,0,0],"FLAG":0,"BASE":18} @@ -1491,6 +1537,7 @@ Polux 5.5W 400lm {"NAME":"Polux GU10","GPIO":[0,0,0,0,0,0,0,0,4064,0 Polux A65 11W 1055lm {"NAME":"A65 SMDWWCW+RG","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Polux G45 5,5W 475lm {"NAME":"Polux G45 E14","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} Positivo 10W 806lm {"NAME":"Positivo Bulb","GPIO":[0,0,0,0,416,419,0,0,417,452,418,0,0,0],"FLAG":0,"BASE":18} +Powercase 10W 1050lm {"NAME":"Powercase A95BU22-S","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Powertech SL225X 800lm {"NAME":"Jaycar SL225X","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Qualitel ALS08L 1100lm {"NAME":"Qualitel ALS08","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Reafoo A26 9W {"NAME":"ReaFooE26","GPIO":[0,0,0,0,420,417,0,0,418,0,419,416,0,0],"FLAG":0,"BASE":18} @@ -1502,6 +1549,7 @@ Slitinto 5W Candle {"NAME":"Slitinto RGBWW","GPIO":[0,0,0,0,40,41,0,0, Slitinto TB95 9W 1000lm {"NAME":"Slitinto 9W","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Smart 9W 800lm {"NAME":"SmartLED ","GPIO":[0,0,0,0,420,417,0,0,418,0,419,416,0,0],"FLAG":0,"BASE":18} SmartLED 9W 400lm {"NAME":"SmartLED","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} +Smitch 10W {"NAME":"Smitch SB161001 - B22","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Sonoff B1 (R2) {"NAME":"Sonoff B1","GPIO":[32,0,0,0,0,0,0,0,3008,0,3040,0,0,0],"FLAG":0,"BASE":26} Spectrum Smart 13W 1500lm {"NAME":"LED 13W E-27 Spectrum SMART","GPIO":[0,0,0,0,416,419,0,0,417,452,418,0,0,0],"FLAG":0,"BASE":18} Spectrum Smart GLS 9W 850lm {"NAME":"SPECTR. RGBCCT","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} @@ -1517,11 +1565,13 @@ Treatlife A19 8W 650lm {"NAME":"Treatlife RGBW","GPIO":[0,0,0,0,417,416,0, V-TAC 10W 806lm {"NAME":"V-TAC VT-5119","GPIO":[0,0,0,0,4032,0,0,0,0,0,4064,0,0,0],"FLAG":0,"BASE":18} V-Tac PAR16 4.5W 400lm 100 {"NAME":"V-TAC VT5164","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} Vizia 5W GU10 {"NAME":"Vizia RGBWW","GPIO":[0,0,0,0,419,420,0,0,417,418,416,0,0,1],"FLAG":0,"BASE":18} +WdtPro 8W 800lm {"NAME":"WdtPro","GPIO":[0,0,0,0,419,420,0,0,417,418,416,0,0,0],"FLAG":0,"BASE":18} Wipro Garnet 9W 810lm {"NAME":"Wipro","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} WiZ BR30 13.8W 750lm {"NAME":"WiZ RGBCCT PAR30","GPIO":[0,0,0,0,419,0,0,0,417,420,418,416,0,0],"FLAG":0,"BASE":48} Xtricity A19 10W 800lm {"NAME":"XTRICITY A19 10W 800LM RGBCCT BULB","GPIO":[0,0,0,0,416,419,0,0,417,452,418,2304,2272,0],"FLAG":0,"BASE":48} Zemismart 5W 480lm {"NAME":"Zemismart 5W","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Zemismart 5W 480lm {"NAME":"Zemismart-E27-RGBCW","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} +ZunPulse 9W {"NAME":"ZunPulse B22 9W","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} ZZHXON 600lm {"NAME":"E27_RGB_Bulb","GPIO":[0,0,0,0,419,420,0,0,417,418,416,0,0,0],"FLAG":0,"BASE":18} ``` @@ -1535,6 +1585,7 @@ AL Above Lights 810lm {"NAME":"AL 810LM","GPIO":[0,0,0,0,416,419,0,0,417, Aoycocr Q0 750lm {"NAME":"AoycocrA19","GPIO":[0,0,0,0,0,418,0,0,417,0,416,419,0,0],"FLAG":0,"BASE":18} Aoycocr Q3CM 230lm {"NAME":"Aoycocr_GU10","GPIO":[0,0,0,0,0,0,0,0,3008,0,3040,0,0,0],"FLAG":0,"BASE":27} Aoycocr Q9WM A21 10W 900lm {"NAME":"Aoycocr Q9WM","GPIO":[0,0,0,0,0,418,0,0,417,419,416,420,0,0],"FLAG":0,"BASE":18} +Authometion 9W 850lm {"NAME":"LYT8266","GPIO":[1,1,419,1,1,1,1,1,417,416,418,224,1,1],"FLAG":0,"BASE":18} Avatar ALS08L A19 910lm {"NAME":"Avatar E27 7W","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":20} Avatar ALS09L A60 900lm {"NAME":"Avatar E14 9W","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":20} Avatar ALS11L PAR16 500lm {"NAME":"Avatar_GU10","GPIO":[0,0,0,0,0,0,0,0,0,3008,0,3040,0,0],"FLAG":0,"BASE":27} @@ -1636,6 +1687,7 @@ Merkury MI-BW904-999W 1050lm {"NAME":"MI-BW904-999W","GPIO":[0,0,0,0,2912,416,0 Merkury MI-BW904-999W v2 1050lm {"NAME":"MI-BW210-999W","GPIO":[0,0,0,0,417,416,0,0,2944,2976,2912,0,0,0],"FLAG":0,"BASE":48} Merkury MI-BW904-999W v3 {"NAME":"MI-BW904-999W","GPIO":[0,0,0,0,416,417,0,0,2944,2976,2912,0,0,0],"FLAG":0,"BASE":69} Mimoodz A19 6.5W {"NAME":"Miimoodz RGBCW LED","GPIO":[0,0,0,0,4032,0,0,0,0,0,4064,0,0,0],"FLAG":0,"BASE":18} +Mirabella 9W 800lm {"NAME":"MiraBellaGenio","GPIO":[0,0,0,0,0,0,0,0,4066,0,4032,0,0,0],"FLAG":0,"BASE":18} Mirabella Genio 9W 800lm {"NAME":"GenioBulbRGB","GPIO":[0,0,0,0,416,419,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":18} Mirabella Genio 9W 800lm {"NAME":"MiraBellaGenio","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} Mirabella Genio 9W 800lm {"NAME":"MiraBellaGenio","GPIO":[0,0,0,0,0,0,0,0,4064,0,4032,0,0,0],"FLAG":0,"BASE":18} @@ -1664,6 +1716,7 @@ Smartyfi 600lm {"NAME":"SMARTYFI 9W","GPIO":[0,0,0,0,416,419,0,0,4 Smitch 7W {"NAME":"Smitch RGB 7W SB-1602","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} Solimo 12W {"NAME":"Solimo RGBCCT 12","GPIO":[0,0,0,0,416,420,0,0,417,419,418,0,0,0],"FLAG":0,"BASE":18} Solimo 810lm {"NAME":"Solimo RGBWW 9","GPIO":[0,0,0,0,416,419,0,0,417,420,418,0,0,0],"FLAG":0,"BASE":18} +SPC Sirius 380 {"NAME":"SPC Sirius 380","GPIO":[0,0,0,0,2912,416,0,0,417,2976,2944,0,0,0],"FLAG":0,"BASE":18} Swisstone 350lm {"NAME":"SH 320","GPIO":[0,0,0,0,416,419,0,0,417,0,418,0,0,0],"FLAG":0,"BASE":18} SwissTone 4.5W 380lm {"NAME":"SH 360","GPIO":[0,0,0,0,2912,416,0,0,0,2976,2944,0,0,1],"FLAG":0,"BASE":18} Swisstone 806lm {"NAME":"SH 340","GPIO":[0,0,0,0,2912,416,0,0,0,2976,2944,0,0,1],"FLAG":0,"BASE":18} @@ -1692,11 +1745,11 @@ Zemismart A19 10W {"NAME":"Zemism_E27_A19","GPIO":[0,0,0,0,0,0,0,0,0, Zilotek A19 800lm {"NAME":"Zilotek RGBW","GPIO":[0,0,0,0,2912,416,0,0,417,2976,2944,0,0,0],"FLAG":0,"BASE":18} ``` -## Relay +## Relay Board ``` Anmbest 2 Channel Inching Self-locking Switch Module {"NAME":"Generic","GPIO":[32,1,1,1,1,225,33,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} -Athom 10A {"NAME":"Athom CB0110A","GPIO":[0,0,0,0,320,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":1} -BH OnOfre Dual Rev5 Silent Edition {"NAME":"bhonofre","GPIO":[0,0,0,0,225,224,0,0,160,161,0,0,0,0],"FLAG":0,"BASE":18} +Athom 1Ch Inching/Self-locking {"NAME":"Athom R01","GPIO":[1,1,1,1,1,224,1,1,1,1,1,1,576,0],"FLAG":0,"BASE":18} +Athom 8Ch Inching/Self-locking 10A {"NAME":"Athom R08","GPIO":[229,1,1,1,230,231,1,1,226,227,225,228,224,0],"FLAG":0,"BASE":18} Claudy 5V {"NAME":"CLAUDY","GPIO":[0,0,225,0,0,0,0,0,0,0,0,224,0,0],"FLAG":0,"BASE":18} DoHome HomeKit DIY Switch {"NAME":"DoHome DIY","GPIO":[1,1,0,1,1,544,0,0,224,0,0,0,0,0],"FLAG":0,"BASE":1} Eachen ST-DC2 {"NAME":"Garage Control","GPIO":[162,0,0,0,226,225,33,0,224,288,163,227,0,4704],"FLAG":0,"BASE":18} @@ -1704,15 +1757,13 @@ Eachen ST-DC4 {"NAME":"Eachen_ST-DC4","GPIO":[160,1,1,1,226,225,1 Eachen ST-UDC1 {"NAME":"ST-UDC1","GPIO":[160,0,0,0,0,0,0,0,224,320,0,0,0,4704],"FLAG":0,"BASE":18} Electrodragon Board SPDT {"NAME":"ED Relay Board","GPIO":[1,1,1,1,1,1,0,0,224,225,1,1,288,4704],"FLAG":0,"BASE":18} Electrodragon ESP8266 {"NAME":"ElectroDragon","GPIO":[33,1,32,1,1,1,0,0,225,224,1,1,288,4704],"FLAG":0,"BASE":15} -eMylo Single Channel Switch {"NAME":"eMylo XL9251WI","GPIO":[0,1,0,0,320,0,0,0,224,0,35,0,0,0],"FLAG":0,"BASE":18} -Ener-J Outdoor Switch {"NAME":"Ener-J Smart WiFi Outdoor Relay","GPIO":[32,0,0,0,0,0,0,0,224,544,0,0,0,0],"FLAG":0,"BASE":18} ESP-01 Relay V4.0 {"NAME":"ESP01v4","GPIO":[256,320,0,32,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} ESP-01S 5V Relay Module V1.0 {"NAME":"ESP-01S Relay","GPIO":[256,288,1,1,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} ESP-12F 2 Channel {"NAME":"ESP12F_Relay_X2","GPIO":[1,1,1,1,224,225,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18} ESP-12F 4 Channel {"NAME":"ESP12F_Relay_X4","GPIO":[1,1,1,1,1,1,1,1,226,227,225,1,224,1],"FLAG":0,"BASE":18} ESP-12F 8 Channel {"NAME":"ESP12F_Relay_X8","GPIO":[229,1,1,1,230,231,0,0,226,227,225,228,224,1],"FLAG":0,"BASE":18} ESP12F 220V 10A 7V-30V DC {"NAME":"Yunshan 10A","GPIO":[32,1,288,1,224,161,0,0,225,0,0,0,0,0],"FLAG":0,"BASE":18} -eWelink No Neutral {"NAME":"SA-018","GPIO":[0,0,0,0,160,0,0,0,224,288,0,0,0,0],"FLAG":0,"BASE":18} +eWeLink PSF-B04 5V 7-32V 4 Channel {"NAME":"eWeLink 4CH","GPIO":[160,0,0,0,226,225,161,162,224,288,163,227,0,0],"FLAG":0,"BASE":18} Geekcreit 5V DIY 4 Channel Jog Inching Self-Locking {"NAME":"Geekcreit-4ch","GPIO":[160,0,0,0,226,225,161,162,224,288,163,227,0,0],"FLAG":0,"BASE":18} Geekcreit Module 220V 10A {"NAME":"DIY ESP8266 Re","GPIO":[0,0,544,0,224,32,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} HW-622 ESP8266 {"NAME":"HW-622","GPIO":[0,0,544,0,224,32,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} @@ -1724,20 +1775,20 @@ LC Technology DC8V-80V/5V 1 Channel ESP-12F Dev Board {"NAME":"LC Relay-ESP12-1 LC Technology ESP8266 5V {"NAME":"ESP8266-01S","GPIO":[224,3200,0,3232,0,0,0,0,0,0,0,0,0,4704],"FLAG":0,"BASE":18} LinkNode R4 {"NAME":"LinkNode R4","GPIO":[0,0,0,0,0,0,0,0,224,225,226,0,227,0],"FLAG":0,"BASE":18} LinkNode R8 {"NAME":"LinkNode R8","GPIO":[0,0,0,0,228,229,0,231,226,227,225,230,224,0],"FLAG":0,"BASE":18} -LoveAnna AC85-250V 10A {"NAME":"2xSwitch No RF LoveAnna","GPIO":[32,0,0,0,0,225,33,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} Mhcozy 5V {"NAME":"Portail","GPIO":[160,0,0,0,0,0,0,0,224,320,0,0,0,4704],"FLAG":0,"BASE":18} -Milfra Smart Module {"NAME":"Milfra Smart Module TB41","GPIO":[576,0,0,225,2688,2656,0,0,2592,193,480,224,192,0],"FLAG":0,"BASE":18} Sinilink DC6V-36V Module {"NAME":"Sinilink XY-WF5V","GPIO":[0,0,0,0,224,1,0,0,32,288,0,0,1,0],"FLAG":0,"BASE":18} Sinilink MOS {"NAME":"Sinilink MOS","GPIO":[0,0,0,0,224,1,0,0,32,288,0,0,1,0],"FLAG":0,"BASE":18} -Sinotimer DIN {"NAME":"Sinotimer TM60","GPIO":[0,0,0,0,0,288,0,0,224,160,0,0,0,0],"FLAG":0,"BASE":18} -Sinotimer Single Phase Digital Timer {"NAME":"TM608","GPIO":[32,0,0,0,2720,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18} -Sohan DIN Circuit Breaker 1P 50A {"NAME":"RDCBC-1P","GPIO":[32,0,0,0,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} Sonoff 1 Channel Inching/Self-Locking {"NAME":"1 Channel","GPIO":[32,0,0,0,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":12} -Sonoff DUALR3 {"NAME":"Sonoff Dual R3","GPIO":[32,0,0,0,0,0,0,0,0,576,225,0,0,0,0,0,0,0,0,0,0,7296,7328,224,0,0,0,0,160,161,0,0,0,0,0,0],"FLAG":0,"BASE":1} Sonoff RE5V1C 5V Inching/Selflock {"NAME":"Sonoff RE5V1C","GPIO":[32,1,1,1,1,1,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} Sonoff SV {"NAME":"Sonoff SV","GPIO":[32,1,0,1,1,1,0,0,224,320,1,0,0,4704],"FLAG":0,"BASE":3} ``` +## Siren +``` +Connex Smart Indoor {"NAME":"Connex Siren","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +NEO Coolcam Temperature and Humidity 3in1 Alarm {"NAME":"Neo Siren 3in1","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +``` + ## Smoke Sensor ``` Nedis Smoke Detector {"NAME":"Nedis Smoke","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} @@ -1745,15 +1796,20 @@ Smoke Alarm {"NAME":"YG400A","GPIO":[1,2272,1,2304,1,1,0,0,1,1, VisorTech {"NAME":"VisorTech RWM-200","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} ``` +## Socket Adapter +``` +Blitzwolf E27 {"NAME":"BlitzWolf LT-30","GPIO":[0,0,0,0,320,224,0,0,0,32,0,0,0,0],"FLAG":0,"BASE":18} +Elegant Choice E27/E26 {"NAME":"name","GPIO":[0,0,0,0,0,0,0,0,0,0,0,224,0,0],"FLAG":0,"BASE":18} +Slampher {"NAME":"Slampher","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":9} +SmartBase E0260 {"NAME":"SmartBaseE0260","GPIO":[0,0,0,0,320,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} +``` + ## Switch ``` 3 Way Smart Light {"NAME":"Nexete KS-602F 3-Way","GPIO":[1,1,1,1,1,1,0,0,1,1,1,1,1,0],"FLAG":0,"BASE":54} 3A Smart Home {"NAME":"3A Smart Home ","GPIO":[288,0,291,33,225,34,0,0,32,224,290,226,289,0],"FLAG":0,"BASE":18} -433Mhz 4 Gang Touch {"NAME":"TMW4-01(EU)","GPIO":[0,0,0,33,35,32,0,0,34,224,225,226,227,0],"FLAG":0,"BASE":18} AGL 2 Gang {"NAME":"AGL WiFi 02","GPIO":[0,0,544,0,0,33,0,0,225,224,0,0,32,0],"FLAG":0,"BASE":18} AGL 3 Gang {"NAME":"AGL WiFi 03","GPIO":[0,0,544,0,34,33,0,0,225,224,226,0,32,0],"FLAG":0,"BASE":18} -AGL Modulo Relay 01 Canal {"NAME":"AGL-Basic","GPIO":[0,1,0,0,224,32,0,0,0,0,320,0,0,0],"FLAG":0,"BASE":18} -Albohes 2 Channel {"NAME":"Albohes SH-08","GPIO":[0,3200,33,3232,321,320,0,0,224,544,32,0,225,1],"FLAG":0,"BASE":18} Aoycocr SW1 {"NAME":"Aoycocr SW1","GPIO":[576,1,321,1,1,1,1,1,320,32,1,224,1,1],"FLAG":0,"BASE":18} Athom 1 Gang {"NAME":"Athom SW011EU","GPIO":[576,0,0,32,0,0,0,0,0,224,288,0,0,0],"FLAG":0,"BASE":1} Athom 1 Gang {"NAME":"Athom SW031US","GPIO":[576,0,0,32,0,0,0,0,0,224,288,0,0,0],"FLAG":0,"BASE":1} @@ -1767,37 +1823,26 @@ Athom 3 Gang Touch {"NAME":"Athom SW11-TAS-3EU","GPIO":[576,290,1,33,2 Athom 4 Gang Touch {"NAME":"Athom SW03-TAS-4US","GPIO":[576,0,0,33,225,34,0,0,32,224,227,226,35,0],"FLAG":0,"BASE":18} Athom 4 Gang Touch {"NAME":"Athom SW11-TAS-4EU","GPIO":[576,0,0,33,225,34,0,0,32,224,227,226,35,0],"FLAG":0,"BASE":18} Athom US Key Switch 1 Gang {"NAME":"Athom SW13","GPIO":[576,0,0,32,0,0,0,0,0,224,288,0,0,0],"FLAG":0,"BASE":1} -ATMS1601 230VAC DIN Timer/Switch {"NAME":"ATMS1601","GPIO":[1,1,1,1,544,320,1,1,224,32,1,1,1,1],"FLAG":0,"BASE":18} Avatto 1 Gang {"NAME":"AVATTO 1 Gang","GPIO":[0,320,576,0,0,32,0,0,320,0,0,224,0,0],"FLAG":0,"BASE":18} Avatto 2 Gang {"NAME":"Avatto Wifi - ","GPIO":[0,0,288,0,0,32,0,0,224,225,0,0,33,0],"FLAG":0,"BASE":18} Avatto 3 Gang {"NAME":"AVATTO 3 Gang","GPIO":[0,321,576,34,226,33,0,0,320,224,322,225,32,0],"FLAG":0,"BASE":18} Avatto 4 Gang {"NAME":"AVATTO 4 Gang","GPIO":[576,0,0,32,224,33,0,0,34,226,227,225,35,0],"FLAG":0,"BASE":18} -Avatto Fan Light {"NAME":"AVATTO Smart Wifi Fan Light","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Bakeey 10A RGB Scene {"NAME":"RGB Switch","GPIO":[0,0,320,0,417,418,0,0,289,32,416,224,0,0],"FLAG":0,"BASE":18} Bardi Smart Wallswitch 1 {"NAME":"Bardi 1 Gang","GPIO":[321,320,544,0,0,32,0,0,0,0,0,224,0,0],"FLAG":0,"BASE":18} Bardi Smart Wallswitch 2 {"NAME":"BARDI 2 Gang","GPIO":[320,0,544,33,225,0,0,0,288,224,321,0,32,0],"FLAG":0,"BASE":18} Bardi Smart Wallswitch 3 {"NAME":"BARDI 3 Gang","GPIO":[320,321,544,34,226,33,0,0,288,224,322,225,32,0],"FLAG":0,"BASE":18} BAZZ SWTCHWFW1 {"NAME":"BAZZ KS-602S","GPIO":[32,0,0,0,0,0,224,288,256,320,0,0,0,0],"FLAG":0,"BASE":18} -BlitzWolf BW-SS1 {"NAME":"BW-SS1","GPIO":[1,1,1,1,544,224,0,0,1,32,1,1,0,0],"FLAG":0,"BASE":18} BlitzWolf BW-SS3 1 Gang {"NAME":"BW-SS3-1G-EU","GPIO":[288,0,0,32,0,0,0,0,0,224,0,0,0,0],"FLAG":0,"BASE":18} BlitzWolf BW-SS3 2 Gang {"NAME":"BW-SS3-2G-EU","GPIO":[544,1,1,1,225,33,1,1,32,224,1,1,1,1],"FLAG":0,"BASE":18} BlitzWolf BW-SS3 3 Gang {"NAME":"BlitzWolf SS3","GPIO":[576,0,0,161,225,162,0,0,160,224,0,226,0,0],"FLAG":0,"BASE":18} -BlitzWolf BW-SS5 1 Gang {"NAME":"BlitzWolf SS5 1 Gang","GPIO":[0,0,0,0,288,0,0,0,160,224,0,0,0,0],"FLAG":0,"BASE":18} -BlitzWolf BW-SS5 2 Gang {"NAME":"BlitzWolf SS5 2 Gang","GPIO":[0,0,32,0,480,0,0,0,161,160,224,225,0,0],"FLAG":0,"BASE":18} -BlitzWolf SS4 {"NAME":"BlitzWolf SS4 Two Gang","GPIO":[0,0,0,0,320,224,0,0,225,32,0,0,0,0],"FLAG":0,"BASE":18} BSEED 2 Gang 1 Way {"NAME":"BSEED Switch 2Ch","GPIO":[0,0,0,33,225,0,0,0,32,224,0,288,289,0],"FLAG":0,"BASE":18} -Canwing CW-001 {"NAME":"Canwing CW-001","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} CD303 3 Gang Touch {"NAME":"Touch Switch 3","GPIO":[290,321,1,34,226,33,1,1,32,224,1,225,288,1],"FLAG":0,"BASE":18} -Century Aoke Smart Switch {"NAME":"CenturyAoke","GPIO":[0,1,0,1,224,0,0,0,32,320,1,0,0,0],"FLAG":0,"BASE":18} Cinlinele 4 Gang {"NAME":"Cinlinele","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Connect SmartHome 2 Gang Wall {"NAME":"CSH-SWTCH2","GPIO":[0,0,288,0,0,33,0,0,225,224,0,0,32,0],"FLAG":0,"BASE":18} Deta 1 Gang {"NAME":"Deta 1G Switch","GPIO":[0,0,0,0,544,0,0,0,0,224,0,0,64,0],"FLAG":0,"BASE":18} Deta 2 Gang {"NAME":"DETA 2G Switch","GPIO":[0,0,0,0,544,0,0,0,65,224,225,0,64,0],"FLAG":0,"BASE":18} Deta 3 Gang {"NAME":"DETA 3G Switch","GPIO":[544,0,0,66,65,224,0,0,226,0,225,0,64,0],"FLAG":0,"BASE":18} Deta 4 Gang {"NAME":"Deta 4G Switch","GPIO":[576,0,0,34,33,224,0,0,226,35,225,227,32,0],"FLAG":0,"BASE":18} -Deta 6000HA Smart Inline Switch {"NAME":"DETA-6000HA","GPIO":[0,32,0,0,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} -Deta Fan Speed Controller with Light {"NAME":"Deta Fan Speed and Light Controller","GPIO":[33,0,0,576,226,34,0,0,0,225,224,227,32,0],"FLAG":0,"BASE":18} -dewenwils Outdoor Timer Box {"NAME":"Dewenwils50054","GPIO":[0,0,290,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} Dierya Touch Panel 2 Gang {"NAME":"CD301","GPIO":[0,0,0,0,544,320,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} Dierya Touch Panel 2 Gang {"NAME":"CD302","GPIO":[544,0,0,33,225,0,0,0,32,224,321,0,320,0],"FLAG":0,"BASE":18} Dierya Touch Panel 3 Gang {"NAME":"CD303","GPIO":[576,289,0,34,226,33,0,0,32,224,290,225,288,0],"FLAG":0,"BASE":18} @@ -1813,18 +1858,13 @@ DS-121 2 Gang No Neutral {"NAME":"2 Gang Switch","GPIO":[576,321,0,32,225,33 DS-121 4 Gang No Neutral {"NAME":"2 Gang Switch","GPIO":[576,321,0,32,225,33,0,0,0,224,320,0,0,0],"FLAG":0,"BASE":18} Eachen CD303 3 Gang {"NAME":"ID Components","GPIO":[544,289,0,162,224,161,0,0,160,225,290,226,288,1],"FLAG":0,"BASE":18} Eachen SWT-2Gang {"NAME":"ID Components","GPIO":[544,1,1,1,1,161,1,1,160,224,289,225,288,1],"FLAG":0,"BASE":18} -eMylo 2 Channel {"NAME":"eMylo XL9252WI","GPIO":[0,1,0,0,320,225,0,0,224,0,163,0,0,0],"FLAG":0,"BASE":18} -eMylo SS-8839-02 {"NAME":"SS-8839-02","GPIO":[0,1,0,1,320,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} -eMylo SS-8839-03 {"NAME":"SS-8839-03","GPIO":[0,1,0,1,288,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} Enjowi WF-SK301 {"NAME":"Tuya 3 Channel","GPIO":[0,0,0,0,226,33,0,0,32,224,34,225,544,0],"FLAG":0,"BASE":18} Esmlfe 3 Gang {"NAME":"Esmlfe DS-122","GPIO":[321,0,0,32,0,0,0,0,0,224,288,0,0,0],"FLAG":0,"BASE":18} Etekcity ESWL01 {"NAME":"EtekCityESWL01","GPIO":[0,1,0,1,288,289,0,0,0,224,96,0,0,4704],"FLAG":0,"BASE":18} Etekcity ESWL03 3-way {"NAME":"Etekcity 3Way","GPIO":[0,0,0,0,226,256,0,0,192,225,161,0,0,0],"FLAG":0,"BASE":18} Eva Logik 3-Way {"NAME":"WF30 Switch","GPIO":[0,0,0,0,33,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} -EX Store 2 Kanal V5 {"NAME":"EXS Relay V5","GPIO":[1,1,1,1,1,1,0,0,224,225,258,288,259,0],"FLAG":0,"BASE":16} FrankEver 4 Gang {"NAME":"FrankEver Wifi Smart Switch","GPIO":[0,0,0,32,224,33,1,1,34,226,227,225,35,0],"FLAG":0,"BASE":18} Freecube {"NAME":"Freecube","GPIO":[288,0,289,0,0,0,0,0,290,32,0,224,0,0],"FLAG":0,"BASE":18} -Geekcreit 2 Channel AC 85V-250V {"NAME":"Geekcreit 2ch","GPIO":[32,0,0,0,0,225,33,0,224,288,0,0,0,4704],"FLAG":0,"BASE":18} Geeni TAP 3-Way {"NAME":"Geeni 3-Way","GPIO":[544,0,0,0,0,0,0,0,32,224,0,0,0,0],"FLAG":0,"BASE":18} Generic 2 Gang {"NAME":"KING-Tuya-key","GPIO":[0,0,0,0,0,225,0,0,224,32,0,0,33,0],"FLAG":0,"BASE":18} Girier 3 Gang Touch {"NAME":"Girier JR-DES01","GPIO":[576,290,0,32,225,34,0,0,33,224,288,226,288,0],"FLAG":0,"BASE":18} @@ -1836,7 +1876,6 @@ Girier JRSWR-US01 No Neutral 3 Gang {"NAME":"Girier JRSWR-U","GPIO":[0,0,0,0,22 Girier RF433 1 Gang No Neutral {"NAME":"Girier","GPIO":[0,544,0,0,0,32,0,0,224,0,0,0,0,0],"FLAG":0,"BASE":18} Girier RF433 2 Gang No Neutral {"NAME":"W602","GPIO":[0,0,0,0,225,0,0,0,32,224,33,0,544,0],"FLAG":0,"BASE":18} Girier RF433 3 Gang No Neutral {"NAME":"W603","GPIO":[0,0,0,0,226,33,0,0,32,224,34,225,544,1],"FLAG":0,"BASE":18} -Gocomma Wi-Fi Smart Switch {"NAME":"GoCommaSmartSw","GPIO":[32,1,1,1,224,0,0,0,1,320,0,0,0,0],"FLAG":0,"BASE":18} GoKlug Glass Touch 1 Gang {"NAME":"GoKlug 1x","GPIO":[320,321,0,0,0,160,0,0,0,0,0,224,0,0],"FLAG":0,"BASE":18} GoKlug Glass Touch 2 Gang {"NAME":"GoKlug 2x","GPIO":[576,0,0,193,224,0,0,0,320,225,321,0,192,1],"FLAG":0,"BASE":18} Gosund 2 Gang {"NAME":"GosundSW9","GPIO":[160,0,0,0,0,161,0,0,225,288,224,0,0,0],"FLAG":0,"BASE":18} @@ -1846,11 +1885,8 @@ Gosund SW1 {"NAME":"Gosund SW1","GPIO":[32,0,321,0,0,0,0,0,0,0 Gosund SW6 3-Way {"NAME":"Gosund SW6","GPIO":[32,0,320,0,160,0,0,0,0,0,225,224,576,0],"FLAG":0,"BASE":18} Hama Flush-mounted 2 Gang {"NAME":"Hama WiFiTouch","GPIO":[544,0,0,0,0,33,0,0,32,225,0,224,0,0],"FLAG":0,"BASE":45} HBN Wall-Mounted Timer {"NAME":"HBN Timer Switch","GPIO":[0,0,0,0,290,321,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} -Hoch Circuit Breaker 1P {"NAME":"HOCH ZJSB9","GPIO":[32,1,1,1,1,1,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} -HomeMate 4 Node In-wall Smart Switch {"NAME":"HomeMate Wifi 4N ","GPIO":[1,1,1,160,224,163,1,1,161,225,226,227,162,1],"FLAG":0,"BASE":18} Innens 1 Gang 1 Way {"NAME":"Innens 1 Gang 1 Way","GPIO":[0,0,0,32,224,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":18} Innens RF433 2 Gang 1 Way {"NAME":"Innens Light Switch 2G","GPIO":[0,0,289,0,0,33,0,0,32,225,0,224,0,0],"FLAG":0,"BASE":18} -iSwitch Light & Fan {"NAME":"iSwitchOZ Light Fan","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Jinvoo SM-SW101-1 {"NAME":"SM-SW101-1","GPIO":[288,0,0,33,0,0,0,0,32,224,0,0,0,4704],"FLAG":0,"BASE":18} Jinvoo SM-SW101-2 {"NAME":"SM-SW101-2","GPIO":[288,0,0,33,225,0,0,0,32,224,0,0,0,4704],"FLAG":0,"BASE":18} Jinvoo SM-SW101-3 {"NAME":"Jinvoo Wall Sw","GPIO":[288,0,0,33,225,34,0,0,32,224,0,226,0,4704],"FLAG":0,"BASE":18} @@ -1867,7 +1903,6 @@ KTNN-KG-T100 2 Gang Switch {"NAME":"Sonoff T1 2CH","GPIO":[32,1,1,1,0,225,33,0 Kuled K36 {"NAME":"KULED-B","GPIO":[160,1,1,1,1,1,224,288,256,320,1,1,1,0],"FLAG":0,"BASE":18} Kuled KS602S {"NAME":"KULED","GPIO":[32,1,1,1,1,1,0,0,224,320,1,1,1,0],"FLAG":0,"BASE":18} Kygne CD-301 {"NAME":"KYGNE Touch","GPIO":[0,0,0,0,288,289,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":10} -L-5A01 {"NAME":"L-5A01","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} Laghten SS02S {"NAME":"Laghten SS02S","GPIO":[0,0,0,0,288,321,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} Lanbon L8 5 in 1 LCD Touch {"NAME":"Lanbon L8","GPIO":[0,0,0,0,0,992,0,0,224,0,225,0,0,0,1024,896,0,6624,6592,864,0,832,416,226,0,0,0,0,417,418,0,352,0,0,0,4736],"FLAG":0,"BASE":1} LCARE Modular 2 Gang {"NAME":"2SW1-In","GPIO":[32,1,1,1,0,225,33,0,224,320,0,0,0,0],"FLAG":0,"BASE":29} @@ -1880,10 +1915,7 @@ Lightstory WT02S {"NAME":"WT02S","GPIO":[0,0,0,0,321,320,0,0,224,32, Lonsonho SK3-01 {"NAME":"Tuya 1 Channel","GPIO":[0,0,0,0,0,32,0,0,0,0,0,224,288,0],"FLAG":0,"BASE":18} Lonsonho SK3-02 {"NAME":"Tuya 2 Channel","GPIO":[0,0,0,0,225,0,0,0,32,224,33,0,288,0],"FLAG":0,"BASE":18} Lonsonho SK3-03 {"NAME":"Tuya 3-ch v2","GPIO":[544,322,0,33,225,34,0,0,32,224,321,226,320,0],"FLAG":0,"BASE":18} -LoraTap 10A {"NAME":"LoraTap RR400W","GPIO":[0,0,0,0,544,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} -LoraTap RR500W {"NAME":"LoraTap RR500W","GPIO":[544,0,0,0,160,0,0,0,32,224,0,0,320,0],"FLAG":0,"BASE":18} LoraTap WH100W-US 20A {"NAME":"LoraTap Boiler","GPIO":[0,0,0,0,0,0,0,0,32,224,0,0,320,0],"FLAG":0,"BASE":18} -Luani HVIO {"NAME":"Luani HVIO","GPIO":[0,1,1,1,224,225,0,0,160,161,1,288,0,4704],"FLAG":0,"BASE":35} Luminea LHC-101.on {"NAME":"LHC-101.on","GPIO":[544,0,0,32,224,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":18} Luminea LHC-102.on {"NAME":"LHC-102.on","GPIO":[544,0,289,0,0,33,0,0,32,224,0,225,288,0],"FLAG":0,"BASE":18} LX-WIFI-00M 4 Gang {"NAME":"LX-WIFI-00M","GPIO":[32,228,1,1,226,225,33,34,224,0,35,227,0,0],"FLAG":0,"BASE":7} @@ -1907,7 +1939,6 @@ Moes 2-Way Multi-Control 1 Gang {"NAME":"Moes WS-EU-SK1-W","GPIO":[544,0,0,32,2 Moes 3 Gang {"NAME":"Moes WS-EU3-W","GPIO":[544,0,290,33,225,34,0,0,32,224,289,226,288,1],"FLAG":0,"BASE":18} Moes 3-Way {"NAME":"Moes 3-Way","GPIO":[1,1,1,1,224,321,0,0,257,161,160,1,1,0],"FLAG":0,"BASE":18} Moes BS-US-W Boiler {"NAME":"BS-US-W","GPIO":[290,0,0,32,224,0,0,0,0,0,288,0,291,0],"FLAG":0,"BASE":18} -Moes MS-104B-1 {"NAME":"Moes MS-104B","GPIO":[0,0,32,0,480,0,0,0,161,160,224,225,0,0],"FLAG":0,"BASE":18} Moes RF433 2 Gang Switch {"NAME":"WS-EUB2-WR","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Moes RF433 3 Gang {"NAME":"WS-EUB3-WR","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Moes SS01S-1 {"NAME":"Moes Switch","GPIO":[1,1,1,1,320,0,0,0,224,32,1,1,1,0],"FLAG":0,"BASE":18} @@ -1917,29 +1948,22 @@ Moes WS-EU2-LW 2 Gang No Neutral {"NAME":"Tuya 2 Channel","GPIO":[0,0,0,0,225,0 Moes WS-EU3-LW 3 Gang No Neutral {"NAME":"Tuya 3 Channel","GPIO":[0,0,0,0,224,34,0,0,33,225,32,226,544,0],"FLAG":0,"BASE":18} Moes WS-EUY1 1 Gang {"NAME":"WS-EUY1-W","GPIO":[544,0,0,32,224,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":18} Moes WS-EUY2 2 Gang {"NAME":"WS-EUY2-W","GPIO":[544,0,289,0,0,33,0,0,32,224,0,225,288,0],"FLAG":0,"BASE":18} -Moes WS-EUY3 3 Gang {"NAME":"WS-EUY3-W","GPIO":[544,0,322,33,225,34,0,0,32,224,321,226,320,0],"FLAG":0,"BASE":18} +Moes WS-EUY3 3 Gang {"NAME":"WS-EUY3-W","GPIO":[544,0,290,33,225,34,0,0,32,224,289,226,288,0],"FLAG":0,"BASE":18} Moes WS-US1-W 1 Gang {"NAME":"WS-US1-W","GPIO":[290,0,0,32,224,0,0,0,0,0,288,0,291,0],"FLAG":0,"BASE":18} Moes WS-US2-W 2 Gang {"NAME":"WS-US2-W ","GPIO":[288,0,289,0,0,33,0,0,32,224,0,225,290,0],"FLAG":0,"BASE":18} Moes WS-US3-W 3 Gang {"NAME":"Tuya Moes 3 Ch","GPIO":[544,0,290,33,225,34,0,0,32,224,289,226,288,0],"FLAG":0,"BASE":18} Moes WT02S {"NAME":"Moes WT02S","GPIO":[0,0,0,0,320,576,0,0,224,160,0,0,0,1],"FLAG":0,"BASE":18} MoKo Scene Life {"NAME":"Moko Smart Swi","GPIO":[576,0,0,0,418,417,0,0,320,32,416,224,0,0],"FLAG":0,"BASE":18} MoKo Smart Life {"NAME":"Moko Switch (Single)","GPIO":[544,0,0,32,224,0,0,0,0,0,320,0,0,0],"FLAG":0,"BASE":59} -MoKo Smart Life Double {"NAME":"Moko Switch (Double)","GPIO":[544,0,321,0,0,33,0,0,32,224,0,225,320,0],"FLAG":0,"BASE":59} -MoKo Smart Life Triple {"NAME":"Moko Switch (Triple)","GPIO":[544,0,322,33,225,34,0,0,32,224,321,226,320,0],"FLAG":0,"BASE":59} NaamaSmart KS602 {"NAME":"KS-602","GPIO":[32,0,0,0,0,0,0,0,224,576,0,0,0,0],"FLAG":0,"BASE":18} Nedis Dual {"NAME":"SM-SW102U-2","GPIO":[576,0,0,33,225,0,0,0,32,224,0,0,0,4704],"FLAG":0,"BASE":18} Nexete DS-123 {"NAME":"DS-123","GPIO":[544,321,1,32,224,33,0,0,1,225,320,1,1,0],"FLAG":0,"BASE":18} Nexete DS-123 Single {"NAME":"DS-123","GPIO":[544,0,1,33,0,32,0,0,1,224,320,1,1,0],"FLAG":0,"BASE":18} -Nova Digital Basic 1 MS101 {"NAME":"NovaDigBasic1","GPIO":[0,1,0,1,320,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} -OpenEnergyMonitor WiFi MQTT Thermostat {"NAME":"MQTT-RELAY","GPIO":[32,0,1,0,0,224,0,0,0,0,0,0,320,0],"FLAG":0,"BASE":18} -PS-1604 16A {"NAME":"PS-1604 16A","GPIO":[32,1,1,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":1} +Novadigital Interruptor Touch Led 1 Boto {"NAME":"Nova Digital Switch 1 Gang","GPIO":[544,0,0,32,224,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":18} Q-touch 1 Gang {"NAME":"Qtouch","GPIO":[289,0,0,32,0,0,0,0,224,0,0,0,0,0],"FLAG":0,"BASE":1} -QS-WIFI-S03 Module {"NAME":"QS-WIFI-S03","GPIO":[32,1,1,1,1,0,0,0,192,224,0,0,0,0],"FLAG":0,"BASE":1} -QS-WIFI-S05 {"NAME":"QS-WIFI-S05","GPIO":[32,1,1,1,1,0,0,0,192,224,0,0,0,0],"FLAG":0,"BASE":1} Qualitel 1 Gang {"NAME":"Qualitel 1 Gang","GPIO":[544,0,0,160,224,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":18} Qualitel 2-Gang {"NAME":"Qualitel 2 Gang","GPIO":[544,0,289,0,0,161,0,0,160,224,0,225,288,0],"FLAG":0,"BASE":18} Qualitel 3 Gang {"NAME":"Qualitel 3 Gang","GPIO":[544,0,290,161,225,162,0,0,160,224,289,226,288,0],"FLAG":0,"BASE":18} -Qualitel Breaker {"NAME":"Qualitel Smart Switch","GPIO":[0,0,0,0,224,0,0,0,32,321,288,0,0,0],"FLAG":0,"BASE":18} RY-RSM104 Light Touch {"NAME":"RY-RSM104","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} Sainko 1-Way {"NAME":"SAINKO 1CH","GPIO":[32,1,1,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":28} Sainko 2 Way {"NAME":"Sainko 2-Way","GPIO":[0,1,320,0,0,32,0,0,224,225,0,0,33,0],"FLAG":0,"BASE":18} @@ -1953,33 +1977,13 @@ Sesoo WIFI-EU-SK3-02 {"NAME":"Sesoo SK3-02","GPIO":[0,0,321,0,225,0,0,0, Sesoo WIFI-US-SK3-04 {"NAME":"Tuya 4 Channel","GPIO":[288,1,1,34,226,32,0,0,35,227,225,224,33,0],"FLAG":0,"BASE":18} Shawader 1Ch Touch Light {"NAME":"ShawaderTuya1C","GPIO":[0,0,0,0,0,32,0,0,0,0,0,224,288,0],"FLAG":0,"BASE":18} Shawader 2Ch Touch Light {"NAME":"ShawaderTuya2C","GPIO":[0,0,0,0,224,0,0,0,33,225,32,0,288,0],"FLAG":0,"BASE":18} -Shelly 1 {"NAME":"Shelly 1","GPIO":[0,0,0,0,224,192,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":46} -Shelly 1L No Neutral {"NAME":"Shelly 1L","GPIO":[320,0,0,0,192,224,0,0,0,0,193,0,0,4736],"FLAG":0,"BASE":18} -Shelly 1PM {"NAME":"Shelly 1PM","GPIO":[320,0,0,0,192,2720,0,0,0,0,0,224,0,4736],"FLAG":0,"BASE":18} -Shelly 2 {"NAME":"Shelly 2","GPIO":[0,2752,0,2784,224,225,0,0,160,0,161,2816,0,0],"FLAG":0,"BASE":47} -Shelly 2.5 {"NAME":"Shelly 2.5","GPIO":[320,0,32,0,224,193,0,0,640,192,608,225,3456,4736],"FLAG":0,"BASE":18} -Shelly EM {"NAME":"Shelly EM","GPIO":[0,0,0,0,0,0,0,0,640,3456,608,224,0,1],"FLAG":0,"BASE":18} -Shelly i3 Action and Scenes Activation Device {"NAME":"Shelly i3","GPIO":[0,0,0,0,0,0,0,0,193,194,192,0,0,4736],"FLAG":0,"BASE":18} -Sinilink USB {"NAME":"XY-WFUSB","GPIO":[1,1,0,1,32,224,0,0,0,0,320,0,544,0],"FLAG":0,"BASE":18} SK-A801-01-US 1 Gang {"NAME":"jsankou US Switch 1 Gang","GPIO":[544,0,0,0,0,0,0,0,32,256,0,0,0,0],"FLAG":0,"BASE":18} SK-W803-01-US 3 Gang {"NAME":"jsankou US Switch 3 Gang","GPIO":[544,0,0,33,257,34,0,0,32,256,0,258,0,0],"FLAG":0,"BASE":18} -Smart Home SS-8839-01 {"NAME":"SS-8839-01","GPIO":[0,1,0,1,224,0,0,0,32,321,0,320,0,0],"FLAG":0,"BASE":18} Smartlife Opard CD302 {"NAME":"CD302","GPIO":[0,0,0,0,288,321,0,0,256,32,0,0,0,0],"FLAG":0,"BASE":18} SmartPlex 3 Gang {"NAME":"Tuya 3 Channel","GPIO":[1,1,1,1,224,33,0,0,34,226,32,225,1,0],"FLAG":0,"BASE":18} -Sonoff 4CH (R2) {"NAME":"Sonoff 4CH","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":7} -Sonoff 4CH Pro (R2) {"NAME":"Sonoff 4CH Pro","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":23} -Sonoff 4CHPROR3 {"NAME":"Sonoff 4CHPROR3","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":23} -Sonoff 4CHR3 {"NAME":"Sonoff 4CHR3","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":7} -Sonoff Basic {"NAME":"Sonoff Basic","GPIO":[32,1,1,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":1} -Sonoff Basic R3 {"NAME":"Basic R3","GPIO":[32,1,0,1,1,0,1,1,224,320,0,0,1,0],"FLAG":0,"BASE":1} -Sonoff Dual {"NAME":"Sonoff Dual","GPIO":[0,3200,0,3232,1,0,0,0,0,320,1,0,0,0],"FLAG":0,"BASE":5} -Sonoff Dual R2 {"NAME":"Sonoff Dual R2","GPIO":[1,1,0,1,0,225,1,32,224,320,0,0,0,0],"FLAG":0,"BASE":39} +Smatrul 5A RF433Mhz 1 Gang Touch {"NAME":"TMC01-EU","GPIO":[0,320,0,0,0,160,0,0,224,0,0,0,0,0],"FLAG":0,"BASE":18} +Smatrul 5A RF433Mhz 4 Gang Touch {"NAME":"TMW4-01(EU)","GPIO":[0,0,0,33,35,32,0,0,34,224,225,226,227,0],"FLAG":0,"BASE":18} Sonoff IW101 {"NAME":"Sonoff IW101","GPIO":[32,3072,0,3104,0,0,0,0,224,544,0,0,0,0],"FLAG":0,"BASE":41} -Sonoff Mini {"NAME":"Sonoff Mini","GPIO":[32,0,0,0,160,0,0,0,224,320,0,0,1,0],"FLAG":0,"BASE":1} -Sonoff MINIR2 {"NAME":"Sonoff MINIR2","GPIO":[32,0,0,0,160,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} -Sonoff Pow {"NAME":"Sonoff Pow","GPIO":[32,0,0,0,0,2592,0,0,224,2656,2688,288,0,0],"FLAG":0,"BASE":6} -Sonoff Pow R2 {"NAME":"Sonoff Pow R2","GPIO":[32,3072,0,3104,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":43} -Sonoff RF {"NAME":"Sonoff RF","GPIO":[32,1,1,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":2} Sonoff T1 EU 1 Gang {"NAME":"Sonoff T1 1CH","GPIO":[32,1,1,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":28} Sonoff T1 EU 2 Gang {"NAME":"Sonoff T1 2CH","GPIO":[32,1,1,1,0,225,33,0,224,320,0,0,0,0],"FLAG":0,"BASE":29} Sonoff T1 UK 1 Gang {"NAME":"Sonoff T1 1CH","GPIO":[32,1,1,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":28} @@ -1988,7 +1992,6 @@ Sonoff T1 UK 3 Gang {"NAME":"Sonoff T1 3CH","GPIO":[32,1,1,1,226,225,33 Sonoff T1 US 1 Gang {"NAME":"Sonoff T1 1CH","GPIO":[32,1,1,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":28} Sonoff T1 US 2 Gang {"NAME":"Sonoff T1 2CH","GPIO":[32,1,1,1,0,225,33,0,224,320,0,0,0,0],"FLAG":0,"BASE":29} Sonoff T1 US 3 Gang {"NAME":"Sonoff T1 3CH","GPIO":[32,1,1,1,226,225,33,34,224,320,0,0,0,0],"FLAG":0,"BASE":30} -Sonoff TH10/TH16 {"NAME":"Sonoff TH","GPIO":[32,1,0,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":4} Sonoff Touch EU {"NAME":"Sonoff Touch","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":10} Sonoff Touch US {"NAME":"Sonoff Touch","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":10} Sonoff TX T0 EU 1 Gang {"NAME":"Sonoff T0 TX 1CH","GPIO":[32,1,1,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":28} @@ -2004,21 +2007,15 @@ Sonoff TX T3 EU 3 Gang {"NAME":"TX T3EU3C","GPIO":[32,1,0,1,226,225,33,34, Sonoff TX T3 US 3 Gang {"NAME":"TX T3US3C","GPIO":[32,1,0,1,226,225,33,34,224,576,0,0,0,0],"FLAG":0,"BASE":30} Sonoff TX T4 EU No Neutral 1 Gang {"NAME":"Sonoff T4 1CH","GPIO":[32,1,1,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":28} SPC Hera {"NAME":"SPC HERA","GPIO":[544,0,0,32,224,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":18} -Splatura USB Device Power Switch {"NAME":"Splatura USB","GPIO":[0,0,288,0,0,0,0,0,0,224,0,96,0,0],"FLAG":0,"BASE":18} SRL 2 Gang {"NAME":"SRL 4WW Switch","GPIO":[0,0,0,0,0,33,0,0,32,224,0,225,0,0],"FLAG":0,"BASE":18} SRL 4 Gang {"NAME":"SRL 4WW Switch","GPIO":[0,0,0,34,226,33,0,0,32,224,227,225,35,0],"FLAG":0,"BASE":18} -SS-8839-02 {"NAME":"SS-8839-02","GPIO":[0,1,0,1,320,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} SS118-01K1 {"NAME":"SS118-01K1","GPIO":[1,1,1,32,224,1,0,0,1,1,320,1,1,0],"FLAG":0,"BASE":18} -SS311KWS RF Kinetic Switch and WiFi {"NAME":"SS311KWS","GPIO":[0,0,0,0,288,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} SS86-AI 3-Gang {"NAME":"SS86-AI 3 Gang","GPIO":[544,0,322,33,225,34,0,0,32,224,321,226,320,0],"FLAG":0,"BASE":18} SSMS118-01A1 Scene Light Smart {"NAME":"RGB Switch","GPIO":[257,0,259,161,418,417,0,0,258,160,416,224,0,0],"FLAG":0,"BASE":18} Steren Apagador {"NAME":"SHOME-115","GPIO":[32,0,0,0,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} Steren Apagador Doble {"NAME":"STEREN SHOME-116","GPIO":[0,0,288,0,0,32,0,0,224,225,0,0,33,0],"FLAG":0,"BASE":18} Steren Apagador Triple {"NAME":"STEREN SHOME-117","GPIO":[0,0,288,0,34,32,0,0,224,225,226,0,33,0],"FLAG":0,"BASE":18} STITCH {"NAME":"Tuya WF15S ","GPIO":[1,1,0,0,1,1,0,0,1,2304,1,2272,0,0],"FLAG":0,"BASE":54} -SUPLA inCan by Espablo {"NAME":"Supla Espablo","GPIO":[0,1,1312,1,32,224,0,0,1,225,1,0,288,4704],"FLAG":0,"BASE":31} -SW-R03 {"NAME":"SW-R03","GPIO":[0,0,0,0,0,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} -Switch Module 2x5A {"NAME":"QS-WIFI-S04-2C","GPIO":[1,1,32,1,480,0,0,0,161,160,224,225,0,0],"FLAG":0,"BASE":18} TCP Smart 1 Gang {"NAME":"TCP 1 Gang 1 Way","GPIO":[544,0,0,32,224,0,0,0,0,0,320,0,0,0],"FLAG":0,"BASE":18} Teckin 2 Gang {"NAME":"Teckin SR43","GPIO":[0,0,288,0,0,32,0,0,224,225,0,0,33,0],"FLAG":0,"BASE":18} Teckin SR-41 Single Pole {"NAME":"Teckin SR-41","GPIO":[32,0,0,0,0,0,0,0,224,576,0,0,0,0],"FLAG":0,"BASE":18} @@ -2030,6 +2027,7 @@ Tellur 2 Ports 1800W 10A {"NAME":"Tellur 2CH","GPIO":[0,0,0,0,225,0,0,0,32,2 Tonbux AMZ180648-2 {"NAME":"Tonbux","GPIO":[32,1,1,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":1} TopGreener TGWF15S {"NAME":"TopGreener-Switch","GPIO":[0,0,0,0,0,0,0,0,0,2304,0,2272,0,0],"FLAG":0,"BASE":54} Touch 3 Gang {"NAME":"Switch 3-Gang","GPIO":[0,0,0,0,226,33,0,0,32,224,34,225,544,0],"FLAG":0,"BASE":18} +Touch Light Switch 1 Gang {"NAME":"Smart Touch Light Switch ","GPIO":[0,0,0,0,0,32,1,1,0,0,0,224,320,0],"FLAG":0,"BASE":18} TreatLife 3-Way {"NAME":"Treatlife 3-Way","GPIO":[0,0,0,0,224,576,0,0,225,33,160,0,0,0],"FLAG":0,"BASE":18} Treatlife SS01 3-Way {"NAME":"Treatlife SS01 3-Way","GPIO":[0,0,0,0,224,576,0,0,225,33,160,0,0,0],"FLAG":0,"BASE":18} TreatLife SS01S {"NAME":"TL SS01S Swtch","GPIO":[0,0,0,0,288,576,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} @@ -2044,11 +2042,10 @@ Vaticas 1 {"NAME":"Vaticas","GPIO":[0,0,0,32,224,0,0,0,0,0,28 VHome RF433 1 Gang {"NAME":"VH-TW-CL-01","GPIO":[0,0,0,0,0,32,0,0,0,0,0,224,544,1],"FLAG":0,"BASE":18} VHome RF433 2 Gang {"NAME":"VX-TW-CL-002","GPIO":[0,0,0,0,224,0,0,0,33,225,32,0,544,1],"FLAG":0,"BASE":18} vhome RF433 3 Gang {"NAME":"VH-TB-US-003","GPIO":[0,0,0,0,224,33,0,0,34,226,32,225,576,1],"FLAG":0,"BASE":18} +Wall Touch Switch 2 Gang {"NAME":"VOVOWAY 120-WIFI-RF 2GANG","GPIO":[0,0,289,0,225,0,0,0,32,224,33,0,288,0],"FLAG":0,"BASE":18} Welaik 2-Gang 1-Way "Not available" WiFi Smart Switch 2 Gang {"NAME":"Kingart N2","GPIO":[32,1,0,1,0,225,33,0,224,0,0,0,0,1],"FLAG":0,"BASE":18} WiFi Smart Switch 3 Gang {"NAME":"KingArt-3CH","GPIO":[32,1,0,1,226,225,33,34,224,288,0,0,0,1],"FLAG":0,"BASE":18} -WL-SW01_10 {"NAME":"WL-SW01_10","GPIO":[32,3232,0,3200,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} -Woox Integrational Switch {"NAME":"WOOXR4967","GPIO":[0,0,0,1,320,224,0,0,0,32,0,0,0,0],"FLAG":0,"BASE":18} WS-US-03 {"NAME":"WS-US-03","GPIO":[32,1,1,1,226,225,33,34,224,320,0,0,0,0],"FLAG":0,"BASE":30} Xenon SM-SW102U 2 Gang {"NAME":"SM-SW102U-2","GPIO":[288,0,0,33,225,0,0,0,32,224,0,0,0,4704],"FLAG":0,"BASE":18} Xenon SM-SW202 {"NAME":"SM-SW202","GPIO":[0,0,0,32,224,0,0,0,0,0,288,0,0,0],"FLAG":0,"BASE":18} @@ -2057,8 +2054,6 @@ Yagusmart 3 Gang {"NAME":"DS-101 3 gang","GPIO":[576,290,0,33,225,34 Yapmor 1-gang {"NAME":"YAPMOR 1CH","GPIO":[32,1,1,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":28} Youngzuth 2in1 {"NAME":"SW02 2W","GPIO":[288,0,0,32,224,0,0,0,33,225,0,0,0,0],"FLAG":0,"BASE":18} Youngzuth 3in1 {"NAME":"SW02 3W","GPIO":[320,0,0,34,226,33,0,0,32,224,0,225,0,0],"FLAG":0,"BASE":18} -Yuntong Smart {"NAME":"Yuntong Smart","GPIO":[0,0,0,0,224,0,0,0,96,320,0,576,0,0],"FLAG":0,"BASE":1} -Zemismart ERC309 Kinetic {"NAME":"Kinetic Switch","GPIO":[1,1,1,1,1,1,0,0,1,2304,1,2272,1,0],"FLAG":0,"BASE":54} Zemismart KS-811 1 Gang {"NAME":"KS-811 Single","GPIO":[32,0,0,0,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} Zemismart KS-811 2 Gang {"NAME":"KS-811 Dual","GPIO":[0,0,576,0,0,33,0,0,225,224,0,0,32,0],"FLAG":0,"BASE":18} Zemismart KS-811 3 Gang {"NAME":"KS-811 Triple","GPIO":[0,0,320,0,34,33,0,0,225,224,226,0,32,0],"FLAG":0,"BASE":18} @@ -2073,6 +2068,82 @@ ZUCZUG 2 Gang {"NAME":"2ph105626a x2","GPIO":[0,288,0,32,33,0,0,0 ZUCZUG 3 Gang {"NAME":"2ph105626a x3","GPIO":[0,288,0,32,34,33,0,0,225,224,226,0,0,0],"FLAG":0,"BASE":1} ``` +## Switch Module +``` +AGL Modulo Relay 01 Canal {"NAME":"AGL-Basic","GPIO":[0,1,0,0,224,32,0,0,0,0,320,0,0,0],"FLAG":0,"BASE":18} +Albohes 2 Channel {"NAME":"Albohes SH-08","GPIO":[0,3200,33,3232,321,320,0,0,224,544,32,0,225,1],"FLAG":0,"BASE":18} +Athom 10A {"NAME":"Athom CB0110A","GPIO":[0,0,0,0,320,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":1} +Athom 2Ch Inching/Self-locking {"NAME":"Athom R02","GPIO":[1,1,1,1,225,224,1,1,1,1,1,1,576,0],"FLAG":0,"BASE":18} +Athom 4Ch Inching/Self-locking 10A {"NAME":"Athom R04","GPIO":[1,1,1,1,32,576,1,1,226,227,225,1,224,0],"FLAG":0,"BASE":18} +Athom 4Ch Inching/Self-locking 30A {"NAME":"Athom R04-30A","GPIO":[1,1,1,1,32,576,1,1,226,227,225,1,224,0],"FLAG":0,"BASE":18} +ATMS1601 230VAC DIN Timer/Switch {"NAME":"ATMS1601","GPIO":[1,1,1,1,544,320,1,1,224,32,1,1,1,1],"FLAG":0,"BASE":18} +BH OnOfre Dual Rev5 Silent Edition {"NAME":"bhonofre","GPIO":[0,0,0,0,225,224,0,0,160,161,0,0,0,0],"FLAG":0,"BASE":18} +BlitzWolf BW-SS1 {"NAME":"BW-SS1","GPIO":[1,1,1,1,544,224,0,0,1,32,1,1,0,0],"FLAG":0,"BASE":18} +BlitzWolf BW-SS5 1 Gang {"NAME":"BlitzWolf SS5 1 Gang","GPIO":[0,0,0,0,288,0,0,0,160,224,0,0,0,0],"FLAG":0,"BASE":18} +BlitzWolf BW-SS5 2 Gang {"NAME":"BlitzWolf SS5 2 Gang","GPIO":[0,0,32,0,480,0,0,0,161,160,224,225,0,0],"FLAG":0,"BASE":18} +BlitzWolf SS4 {"NAME":"BlitzWolf SS4 Two Gang","GPIO":[0,0,0,0,320,224,0,0,225,32,0,0,0,0],"FLAG":0,"BASE":18} +Canwing CW-001 {"NAME":"Canwing CW-001","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} +Century Aoke Smart Switch {"NAME":"CenturyAoke","GPIO":[0,1,0,1,224,0,0,0,32,320,1,0,0,0],"FLAG":0,"BASE":18} +Deta 6000HA Smart Inline Switch {"NAME":"DETA-6000HA","GPIO":[0,32,0,0,0,0,0,0,0,320,224,0,0,0],"FLAG":0,"BASE":18} +dewenwils Outdoor Timer Box {"NAME":"Dewenwils50054","GPIO":[0,0,290,0,0,0,0,0,0,32,0,224,0,0],"FLAG":0,"BASE":18} +eMylo 2 Channel {"NAME":"eMylo XL9252WI","GPIO":[0,1,0,0,320,225,0,0,224,0,163,0,0,0],"FLAG":0,"BASE":18} +eMylo Single Channel Switch {"NAME":"eMylo XL9251WI","GPIO":[0,1,0,0,320,0,0,0,224,0,35,0,0,0],"FLAG":0,"BASE":18} +eMylo SS-8839-02 {"NAME":"SS-8839-02","GPIO":[0,1,0,1,320,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} +eMylo SS-8839-03 {"NAME":"SS-8839-03","GPIO":[0,1,0,1,288,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} +Ener-J Outdoor Switch {"NAME":"Ener-J Smart WiFi Outdoor Relay","GPIO":[32,0,0,0,0,0,0,0,224,544,0,0,0,0],"FLAG":0,"BASE":18} +eWelink No Neutral {"NAME":"SA-018","GPIO":[0,0,0,0,160,0,0,0,224,288,0,0,0,0],"FLAG":0,"BASE":18} +EX Store 2 Kanal V5 {"NAME":"EXS Relay V5","GPIO":[1,1,1,1,1,1,0,0,224,225,258,288,259,0],"FLAG":0,"BASE":16} +Geekcreit 2 Channel AC 85V-250V {"NAME":"Geekcreit 2ch","GPIO":[32,0,0,0,0,225,33,0,224,288,0,0,0,4704],"FLAG":0,"BASE":18} +Gocomma Wi-Fi Smart Switch {"NAME":"GoCommaSmartSw","GPIO":[32,1,1,1,224,0,0,0,1,320,0,0,0,0],"FLAG":0,"BASE":18} +HomeMate 4 Node In-wall {"NAME":"HomeMate Wifi 4N ","GPIO":[1,1,1,160,224,163,1,1,161,225,226,227,162,1],"FLAG":0,"BASE":18} +L-5A01 {"NAME":"L-5A01","GPIO":[32,1,0,1,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} +LoraTap 10A {"NAME":"LoraTap RR400W","GPIO":[0,0,0,0,544,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} +LoraTap RR500W {"NAME":"LoraTap RR500W","GPIO":[544,0,0,0,160,0,0,0,32,224,0,0,320,0],"FLAG":0,"BASE":18} +LoveAnna AC85-250V 10A {"NAME":"2xSwitch No RF LoveAnna","GPIO":[32,0,0,0,0,225,33,0,224,320,0,0,0,0],"FLAG":0,"BASE":18} +Luani HVIO {"NAME":"Luani HVIO","GPIO":[0,1,1,1,224,225,0,0,160,161,1,288,0,4704],"FLAG":0,"BASE":35} +Milfra Smart {"NAME":"Milfra Smart Module TB41","GPIO":[576,0,0,225,2688,2656,0,0,2592,193,480,224,192,0],"FLAG":0,"BASE":18} +Moes MS-104B-1 {"NAME":"Moes MS-104B","GPIO":[0,0,32,0,480,0,0,0,161,160,224,225,0,0],"FLAG":0,"BASE":18} +Nova Digital Basic 1 MS101 {"NAME":"NovaDigBasic1","GPIO":[0,1,0,1,320,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} +PS-1604 16A {"NAME":"PS-1604 16A","GPIO":[32,1,1,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":1} +QS-WIFI-S03 {"NAME":"QS-WIFI-S03","GPIO":[32,1,1,1,1,0,0,0,192,224,0,0,0,0],"FLAG":0,"BASE":1} +QS-WIFI-S05 {"NAME":"QS-WIFI-S05","GPIO":[32,1,1,1,1,0,0,0,192,224,0,0,0,0],"FLAG":0,"BASE":1} +Qualitel Breaker {"NAME":"Qualitel Smart Switch","GPIO":[0,0,0,0,224,0,0,0,32,321,288,0,0,0],"FLAG":0,"BASE":18} +Shelly 1 {"NAME":"Shelly 1","GPIO":[0,0,0,0,224,192,0,0,0,0,0,0,0,4736],"FLAG":0,"BASE":46} +Shelly 1L No Neutral {"NAME":"Shelly 1L","GPIO":[320,0,0,0,192,224,0,0,0,0,193,0,0,4736],"FLAG":0,"BASE":18} +Shelly 1PM {"NAME":"Shelly 1PM","GPIO":[320,0,0,0,192,2720,0,0,0,0,0,224,0,4736],"FLAG":0,"BASE":18} +Shelly 2 {"NAME":"Shelly 2","GPIO":[0,2752,0,2784,224,225,0,0,160,0,161,2816,0,0],"FLAG":0,"BASE":47} +Shelly 2.5 {"NAME":"Shelly 2.5","GPIO":[320,0,32,0,224,193,0,0,640,192,608,225,3456,4736],"FLAG":0,"BASE":18} +Shelly EM {"NAME":"Shelly EM","GPIO":[0,0,0,0,0,0,0,0,640,3456,608,224,0,1],"FLAG":0,"BASE":18} +Shelly i3 Action and Scenes Activation Device {"NAME":"Shelly i3","GPIO":[0,0,0,0,0,0,0,0,193,194,192,0,0,4736],"FLAG":0,"BASE":18} +Sinilink USB {"NAME":"XY-WFUSB","GPIO":[1,1,0,1,32,224,0,0,0,0,320,0,544,0],"FLAG":0,"BASE":18} +Smart Home SS-8839-01 {"NAME":"SS-8839-01","GPIO":[0,1,0,1,224,0,0,0,32,321,0,320,0,0],"FLAG":0,"BASE":18} +Sonoff 4CH (R2) {"NAME":"Sonoff 4CH","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":7} +Sonoff 4CH Pro (R2) {"NAME":"Sonoff 4CH Pro","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":23} +Sonoff 4CHPROR3 {"NAME":"Sonoff 4CHPROR3","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":23} +Sonoff 4CHR3 {"NAME":"Sonoff 4CHR3","GPIO":[32,1,1,1,226,225,33,34,224,320,35,227,0,0],"FLAG":0,"BASE":7} +Sonoff Basic {"NAME":"Sonoff Basic","GPIO":[32,1,1,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":1} +Sonoff Basic R3 {"NAME":"Basic R3","GPIO":[32,1,0,1,1,0,1,1,224,320,0,0,1,0],"FLAG":0,"BASE":1} +Sonoff Dual {"NAME":"Sonoff Dual","GPIO":[0,3200,0,3232,1,0,0,0,0,320,1,0,0,0],"FLAG":0,"BASE":5} +Sonoff Dual R2 {"NAME":"Sonoff Dual R2","GPIO":[1,1,0,1,0,225,1,32,224,320,0,0,0,0],"FLAG":0,"BASE":39} +Sonoff DUALR3 {"NAME":"Sonoff Dual R3","GPIO":[32,0,0,0,0,0,0,0,0,576,225,0,0,0,0,0,0,0,0,0,0,7296,7328,224,0,0,0,0,160,161,0,0,0,0,0,0],"FLAG":0,"BASE":1} +Sonoff Mini {"NAME":"Sonoff Mini","GPIO":[32,0,0,0,160,0,0,0,224,320,0,0,1,0],"FLAG":0,"BASE":1} +Sonoff MINIR2 {"NAME":"Sonoff MINIR2","GPIO":[32,0,0,0,160,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} +Sonoff Pow {"NAME":"Sonoff Pow","GPIO":[32,0,0,0,0,2592,0,0,224,2656,2688,288,0,0],"FLAG":0,"BASE":6} +Sonoff Pow R2 {"NAME":"Sonoff Pow R2","GPIO":[32,3072,0,3104,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":43} +Sonoff RF {"NAME":"Sonoff RF","GPIO":[32,1,1,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":2} +Sonoff TH10/TH16 {"NAME":"Sonoff TH","GPIO":[32,1,0,1,1,0,0,0,224,320,1,0,0,0],"FLAG":0,"BASE":4} +Splatura USB Device Power Switch {"NAME":"Splatura USB","GPIO":[0,0,288,0,0,0,0,0,0,224,0,96,0,0],"FLAG":0,"BASE":18} +SS-8839-02 {"NAME":"SS-8839-02","GPIO":[0,1,0,1,320,0,0,0,224,0,32,0,0,0],"FLAG":0,"BASE":18} +SS311KWS RF Kinetic Switch and WiFi {"NAME":"SS311KWS","GPIO":[0,0,0,0,288,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} +SUPLA inCan by Espablo {"NAME":"Supla Espablo","GPIO":[0,1,1312,1,32,224,0,0,1,225,1,0,288,4704],"FLAG":0,"BASE":31} +SW-R03 {"NAME":"SW-R03","GPIO":[0,0,0,0,0,0,0,0,224,32,0,0,0,0],"FLAG":0,"BASE":18} +Switch Module 2x5A {"NAME":"QS-WIFI-S04-2C","GPIO":[1,1,32,1,480,0,0,0,161,160,224,225,0,0],"FLAG":0,"BASE":18} +WL-SW01_10 {"NAME":"WL-SW01_10","GPIO":[32,3232,0,3200,0,0,0,0,224,320,0,0,0,0],"FLAG":0,"BASE":1} +Woox Integrational Switch {"NAME":"WOOXR4967","GPIO":[0,0,0,1,320,224,0,0,0,32,0,0,0,0],"FLAG":0,"BASE":18} +Yuntong Smart {"NAME":"Yuntong Smart","GPIO":[0,0,0,0,224,0,0,0,96,320,0,576,0,0],"FLAG":0,"BASE":1} +Zemismart ERC309 Kinetic {"NAME":"Kinetic Switch","GPIO":[1,1,1,1,1,1,0,0,1,2304,1,2272,1,0],"FLAG":0,"BASE":54} +``` + ## Temperature Sensor ``` DS18B20 ESP01 DIY {"NAME":"ESP-01-01S-DS18B20-v1.0","GPIO":[1,1,1312,1,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} @@ -2098,6 +2169,7 @@ Owfeel EN71 {"NAME":"SmartValve","GPIO":[224,0,0,0,0,0,0,0,32,2 ## Wall Outlet ``` +2AC 1USB {"NAME":"SM-SW801U","GPIO":[0,0,0,0,288,32,0,0,224,0,225,0,226,0],"FLAG":0,"BASE":18} Aseer THWFS01 {"NAME":"ASEER-THWFS01","GPIO":[320,33,544,323,2720,2656,0,0,2624,225,321,224,32,0],"FLAG":0,"BASE":18} Bestten LO-2-W {"NAME":"BESTTEN LO-2-W","GPIO":[0,0,0,0,576,32,0,0,224,0,0,0,0,0],"FLAG":0,"BASE":18} BingoElec 16A {"NAME":"BingoElecPower","GPIO":[0,0,0,0,288,289,1,1,224,32,0,0,1,1],"FLAG":0,"BASE":18} @@ -2128,17 +2200,24 @@ Teckin SR40 {"NAME":"RF-SR40-US","GPIO":[576,0,0,32,320,33,0,0, TopGreener Dual USB {"NAME":"TGWF215U2A","GPIO":[0,320,0,32,2720,2656,0,0,2624,225,224,321,0,0],"FLAG":0,"BASE":18} TopGreener TGWF15RM {"NAME":"TGWF15RM","GPIO":[0,320,0,32,2720,2656,0,0,2624,321,224,0,0,0],"FLAG":0,"BASE":55} Vigica VGSPK00815 {"NAME":"VIGICA outlet","GPIO":[32,1,1,1,1,225,33,1,224,1,1,1,1,4704],"FLAG":0,"BASE":18} +Woox Dual {"NAME":"Woox R4053","GPIO":[33,0,0,0,0,224,32,0,225,320,0,0,0,0],"FLAG":0,"BASE":18} Xenon 2AC 1USB {"NAME":"Xenon SM-PW801-U1","GPIO":[0,0,0,0,288,32,0,0,224,0,225,0,0,0],"FLAG":0,"BASE":18} ``` +## Wall Switch +``` +TopGreener Scene Controller {"NAME":"TGWF15RM","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} +``` + ## Water Sensor ``` W06 {"NAME":"W06 Water Sensor","GPIO":[0,3200,0,3232,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18} Y09 {"NAME":"Y09","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54} ``` -## Zigbee Bridge +## Zigbee Gateway ``` Sonoff ZBBridge {"NAME":"Sonoff ZbBridge","GPIO":[320,3552,0,3584,5312,0,0,0,640,576,608,0,32,0],"FLAG":0,"BASE":75} -Tube's CC2652P2 Ethernet to {"NAME":"Tube ZB CC2652","GPIO":[0,0,0,3840,0,3584,0,0,0,0,0,0,5536,3552,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,3840,5792,0,0,0,0,0,0],"FLAG":0,"BASE":1} +Tube's CC2652P2 Ethernet {"NAME":"Tube ZB CC2652","GPIO":[0,0,0,3840,0,3584,0,0,0,0,0,0,5536,3552,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,3840,5792,0,0,0,0,0,0],"FLAG":0,"BASE":1} +Tube's EFR32 Ethernet {"NAME":"Tube ZB EFR32","GPIO":[0,0,0,3840,0,3552,1,0,0,0,0,0,5536,3584,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,5793,5792,0,0,0,0,0,0],"FLAG":0,"BASE":1} ``` diff --git a/boards/esp32-cam.json b/boards/esp32-cam.json new file mode 100644 index 000000000..b49fb0d4d --- /dev/null +++ b/boards/esp32-cam.json @@ -0,0 +1,38 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue", + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32", + "partitions": "esp32_partition_app1856k_spiffs320k.csv" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_board": "esp-wroom-32.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "AI Thinker ESP32-CAM, 4M Flash 4MB PSRAM, Tasmota 1856k Code/OTA, 320k SPIFFS", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://wiki.ai-thinker.com/esp32-cam", + "vendor": "AI Thinker" +} diff --git a/boards/esp32-m5core2.json b/boards/esp32-m5core2.json new file mode 100644 index 000000000..99d42a6ab --- /dev/null +++ b/boards/esp32-m5core2.json @@ -0,0 +1,35 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_M5STACK_Core2 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue", + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "m5stack_core2", + "partitions": "esp32_partition_app2944k_spiffs10M.csv" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "frameworks": [ + "arduino", + "espidf" + ], + "name": "M5Stack Core2 16M Flash, 4MB PSRAM, Tasmota 2944k Code/OTA, 10M SPIFFS", + "upload": { + "flash_size": "16MB", + "maximum_ram_size": 327680, + "maximum_size": 16777216, + "require_upload_port": true, + "speed": 2000000 + }, + "url": "http://www.m5stack.com", + "vendor": "M5Stack" +} diff --git a/boards/esp32-odroid.json b/boards/esp32-odroid.json new file mode 100644 index 000000000..ea782c034 --- /dev/null +++ b/boards/esp32-odroid.json @@ -0,0 +1,35 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ODROID_ESP32 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue", + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "odroid_esp32", + "partitions": "esp32_partition_app2944k_spiffs10M.csv" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "frameworks": [ + "arduino", + "espidf" + ], + "name": "ESP32 ODROID-GO 16M Flash, 4MB PSRAM, Tasmota 2944k Code/OTA, 10M SPIFFS", + "upload": { + "flash_size": "16MB", + "maximum_ram_size": 327680, + "maximum_size": 16777216, + "require_upload_port": true, + "speed": 2000000 + }, + "url": "https://www.hardkernel.com/main/products/prdt_info.php?g_code=G152875062626", + "vendor": "Hardkernel" +} diff --git a/boards/esp32_16M.json b/boards/esp32_16M.json new file mode 100644 index 000000000..24eb490a7 --- /dev/null +++ b/boards/esp32_16M.json @@ -0,0 +1,38 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_DEV", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32", + "partitions": "esp32_partition_app2944k_spiffs10M.csv" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_board": "esp-wroom-32.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Espressif Generic ESP32 16M Flash, Tasmota 2944k Code/OTA, 10M SPIFFS", + "upload": { + "flash_size": "16MB", + "maximum_ram_size": 327680, + "maximum_size": 16777216, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://en.wikipedia.org/wiki/ESP32", + "vendor": "Espressif" +} diff --git a/boards/esp32_4M.json b/boards/esp32_4M.json new file mode 100644 index 000000000..53afbd219 --- /dev/null +++ b/boards/esp32_4M.json @@ -0,0 +1,38 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_DEV", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32", + "partitions": "esp32_partition_app1856k_spiffs320k.csv" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_board": "esp-wroom-32.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Espressif Generic ESP32 4M Flash, Tasmota 1856k Code/OTA, 320k SPIFFS", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://en.wikipedia.org/wiki/ESP32", + "vendor": "Espressif" +} diff --git a/boards/esp32_8M.json b/boards/esp32_8M.json new file mode 100644 index 000000000..b390ebdf5 --- /dev/null +++ b/boards/esp32_8M.json @@ -0,0 +1,38 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_DEV", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32", + "partitions": "esp32_partition_app2944k_spiffs2M.csv" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_board": "esp-wroom-32.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Espressif Generic ESP32 8M Flash, Tasmota 2944k Code/OTA, 2112k SPIFFS", + "upload": { + "flash_size": "8MB", + "maximum_ram_size": 327680, + "maximum_size": 8388608, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://en.wikipedia.org/wiki/ESP32", + "vendor": "Espressif" +} diff --git a/boards/esp32c3.json b/boards/esp32c3.json index bc703484c..9e75d1d96 100644 --- a/boards/esp32c3.json +++ b/boards/esp32c3.json @@ -8,7 +8,8 @@ "f_flash": "80000000L", "flash_mode": "dio", "mcu": "esp32c3", - "variant": "esp32c3" + "variant": "esp32c3", + "partitions": "esp32_partition_app1856k_spiffs320k.csv" }, "connectivity": [ "wifi" @@ -16,7 +17,7 @@ "frameworks": [ "arduino" ], - "name": "Espressif ESP32-C3", + "name": "Espressif Generic ESP32-C3 4M Flash, Tasmota 1856k Code/OTA, 320k SPIFFS", "upload": { "flash_size": "4MB", "maximum_ram_size": 327680, diff --git a/boards/esp32s2.json b/boards/esp32s2.json index d53adefc6..7a714892a 100644 --- a/boards/esp32s2.json +++ b/boards/esp32s2.json @@ -8,7 +8,8 @@ "f_flash": "80000000L", "flash_mode": "dio", "mcu": "esp32s2", - "variant": "esp32s2" + "variant": "esp32s2", + "partitions": "esp32_partition_app1856k_spiffs320k.csv" }, "connectivity": [ "wifi" @@ -20,7 +21,7 @@ "espidf", "arduino" ], - "name": "Espressif ESP32-S2-Saola-1", + "name": "Espressif Generic ESP32-S2 4M Flash, Tasmota 1856k Code/OTA, 320k SPIFFS", "upload": { "flash_size": "4MB", "maximum_ram_size": 327680, diff --git a/boards/esp8266_1M.json b/boards/esp8266_1M.json index b4683b076..6c2287c6a 100644 --- a/boards/esp8266_1M.json +++ b/boards/esp8266_1M.json @@ -19,10 +19,10 @@ "esp8266-rtos-sdk", "esp8266-nonos-sdk" ], - "name": "Espressif Generic ESP8266 1M sketch NO SPIFFS", + "name": "Espressif Generic ESP8266 Tasmota 1M sketch NO SPIFFS", "upload": { "maximum_ram_size": 81920, - "maximum_size": 1048576, + "maximum_size": 995326, "require_upload_port": true, "resetmethod": "ck", "speed": 115200 diff --git a/boards/esp8266_2M1M.json b/boards/esp8266_2M1M.json index 30ec5331f..e659a3f90 100644 --- a/boards/esp8266_2M1M.json +++ b/boards/esp8266_2M1M.json @@ -19,10 +19,10 @@ "esp8266-rtos-sdk", "esp8266-nonos-sdk" ], - "name": "Espressif Generic ESP8266 1M sketch 1M SPIFFS", + "name": "Espressif Generic ESP8266 Tasmota 1M sketch 1M SPIFFS", "upload": { "maximum_ram_size": 81920, - "maximum_size": 1048576, + "maximum_size": 995326, "require_upload_port": true, "resetmethod": "ck", "speed": 115200 diff --git a/boards/esp8266_2M256.json b/boards/esp8266_2M256.json new file mode 100644 index 000000000..24a3ced47 --- /dev/null +++ b/boards/esp8266_2M256.json @@ -0,0 +1,32 @@ +{ + "build": { + "arduino": { + "ldscript": "eagle.flash.2m256.ld" + }, + "core": "esp8266", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dout", + "mcu": "esp8266", + "variant": "generic" + }, + "connectivity": [ + "wifi" + ], + "frameworks": [ + "arduino", + "esp8266-rtos-sdk", + "esp8266-nonos-sdk" + ], + "name": "Espressif Generic ESP8266 Tasmota 1M sketch 772k OTA 256k SPIFFS", + "upload": { + "maximum_ram_size": 81920, + "maximum_size": 995326, + "require_upload_port": true, + "resetmethod": "ck", + "speed": 115200 + }, + "url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family", + "vendor": "Espressif" +} diff --git a/boards/esp8266_4M2M.json b/boards/esp8266_4M2M.json index 5a77b597d..616384b40 100644 --- a/boards/esp8266_4M2M.json +++ b/boards/esp8266_4M2M.json @@ -19,10 +19,10 @@ "esp8266-rtos-sdk", "esp8266-nonos-sdk" ], - "name": "Espressif Generic ESP8266 1M sketch 1M OTA 2M SPIFFS", + "name": "Espressif Generic ESP8266 Tasmota 1M sketch 1M OTA 2M SPIFFS", "upload": { "maximum_ram_size": 81920, - "maximum_size": 1048576, + "maximum_size": 995326, "require_upload_port": true, "resetmethod": "ck", "speed": 115200 diff --git a/boards/esp8266_4M3M.json b/boards/esp8266_4M3M.json index f6d8a185b..efca2d7e2 100644 --- a/boards/esp8266_4M3M.json +++ b/boards/esp8266_4M3M.json @@ -19,10 +19,10 @@ "esp8266-rtos-sdk", "esp8266-nonos-sdk" ], - "name": "Espressif Generic ESP8266 1M sketch 3M SPIFFS", + "name": "Espressif Generic ESP8266 Tasmota 1M sketch 3M SPIFFS", "upload": { "maximum_ram_size": 81920, - "maximum_size": 1048576, + "maximum_size": 995326, "require_upload_port": true, "resetmethod": "ck", "speed": 115200 diff --git a/esp32_partition_app1984k_spiffs12M.csv b/esp32_partition_app1984k_spiffs12M.csv deleted file mode 100644 index 3ffb831ba..000000000 --- a/esp32_partition_app1984k_spiffs12M.csv +++ /dev/null @@ -1,6 +0,0 @@ -# Name, Type, SubType, Offset, Size, Flags -nvs, data, nvs, 0x9000, 0x5000, -otadata, data, ota, 0xe000, 0x2000, -app0, app, ota_0, 0x10000, 0x1F0000, -app1, app, ota_1, 0x200000, 0x1F0000, -spiffs, data, spiffs, 0x3F0000,0xC10000, diff --git a/esp32_partition_app1984k_spiffs64k.csv b/esp32_partition_app1984k_spiffs64k.csv deleted file mode 100644 index 3b428f9a9..000000000 --- a/esp32_partition_app1984k_spiffs64k.csv +++ /dev/null @@ -1,6 +0,0 @@ -# Name, Type, SubType, Offset, Size, Flags -nvs, data, nvs, 0x9000, 0x5000, -otadata, data, ota, 0xe000, 0x2000, -app0, app, ota_0, 0x10000, 0x1F0000, -app1, app, ota_1, 0x200000, 0x1F0000, -spiffs, data, spiffs, 0x3F0000,0x10000, diff --git a/esp32_partition_app2944k_spiffs2M.csv b/esp32_partition_app2944k_spiffs2M.csv new file mode 100644 index 000000000..9c0897d51 --- /dev/null +++ b/esp32_partition_app2944k_spiffs2M.csv @@ -0,0 +1,6 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 0x5000, +otadata, data, ota, 0xe000, 0x2000, +app0, app, ota_0, 0x10000, 0x2F0000, +app1, app, ota_1, 0x300000, 0x2F0000, +spiffs, data, spiffs, 0x5F0000,0x210000, diff --git a/include/fix_esp32c3.h b/include/esp32x_fixes.h similarity index 65% rename from include/fix_esp32c3.h rename to include/esp32x_fixes.h index 1964eb354..dbf512a6a 100644 --- a/include/fix_esp32c3.h +++ b/include/esp32x_fixes.h @@ -1,5 +1,5 @@ /* - fix_esp32c3.h - fix esp32c3 toolchain + esp32x_fixes.h - fix esp32x toolchain Copyright (C) 2021 Theo Arends @@ -27,7 +27,7 @@ * * You need to add the following lines in `build_flags`: * -I$PROJECT_DIR/include - * -include "fix_esp32c3.h" + * -include "esp32x_fixes.h" */ #ifdef __riscv @@ -38,3 +38,17 @@ #define __UINT32_TYPE__ unsigned int #endif // __riscv + +// fix a bug in esp-idf 4.4 for esp32c3 +#ifndef REG_SPI_BASE +#define REG_SPI_BASE(i) (DR_REG_SPI1_BASE + (((i)>1) ? (((i)* 0x1000) + 0x20000) : (((~(i)) & 1)* 0x1000 ))) +#endif + +#if CONFIG_IDF_TARGET_ESP32C3 +// SPI_MOSI_DLEN_REG is not defined anymore in esp32c3, instead use SPI_MS_DLEN_REG +#define SPI_MOSI_DLEN_REG(x) SPI_MS_DLEN_REG(x) +//alias for different chips, deprecated for the chips after esp32s2 +#define SPI_HOST SPI1_HOST +#define HSPI_HOST SPI2_HOST +#define VSPI_HOST SPI2_HOST /* No SPI3_host on C3 */ +#endif diff --git a/include/tasmota_options.h b/include/tasmota_options.h new file mode 100644 index 000000000..840daf379 --- /dev/null +++ b/include/tasmota_options.h @@ -0,0 +1,26 @@ +/* + tasmota_include.h - header to be included in libs for external configuration via Tasmota ifdefs + + Copyright (C) 2021 Theo Arends + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef __TASMOTA_INCLUDE__ +#define __TASMOTA_INCLUDE__ + +#include "../tasmota/my_user_config.h" +#include "../tasmota/tasmota_configurations.h" + +#endif // __TASMOTA_INCLUDE__ \ No newline at end of file diff --git a/lib/default/Ext-printf/src/ext_printf.cpp b/lib/default/Ext-printf/src/ext_printf.cpp index 243c7b4b4..cb2e4d0d8 100644 --- a/lib/default/Ext-printf/src/ext_printf.cpp +++ b/lib/default/Ext-printf/src/ext_printf.cpp @@ -202,6 +202,8 @@ char* ToHex_P(const unsigned char * in, size_t insz, char * out, size_t outsz, c /*********************************************************************************************\ * snprintf extended * + * New: if the provided buffer is nullptr, a buffer is allocated on the heap (malloc) + * and returned as a pointer instead of the length of the output (needs casting) \*********************************************************************************************/ // get a fresh malloc allocated string based on the current pointer (can be in PROGMEM) @@ -216,7 +218,7 @@ char * copyStr(const char * str) { const char ext_invalid_mem[] PROGMEM = "<--INVALID-->"; const uint32_t min_valid_ptr = 0x3F000000; // addresses below this line are invalid -int32_t ext_vsnprintf_P(char * buf, size_t buf_len, const char * fmt_P, va_list va) { +int32_t ext_vsnprintf_P(char * out_buf, size_t buf_len, const char * fmt_P, va_list va) { va_list va_cpy; va_copy(va_cpy, va); @@ -242,7 +244,6 @@ int32_t ext_vsnprintf_P(char * buf, size_t buf_len, const char * fmt_P, va_list if (*fmt == '*') { decimals = va_arg(va, int32_t); // skip width argument as int decimals_ptr = va_cur_ptr4(va, int32_t); // pointer to value on stack - const char ** cur_val_ptr = va_cur_ptr4(va, const char*); // pointer to value on stack fmt++; // Serial.printf("> decimals=%d, decimals_ptr=0x%08X\n", decimals, decimals_ptr); } @@ -390,7 +391,24 @@ int32_t ext_vsnprintf_P(char * buf, size_t buf_len, const char * fmt_P, va_list } } // Serial.printf("> format_final=%s\n", fmt_cpy); Serial.flush(); - int32_t ret = vsnprintf_P(buf, buf_len, fmt_cpy, va_cpy); + int32_t ret = 0; // return 0 if unsuccessful + if (out_buf != nullptr) { + ret = vsnprintf_P(out_buf, buf_len, fmt_cpy, va_cpy); + } else { + // if there is no output buffer, we allocate one on the heap + // first we do a dry-run to know the target size + char dummy[2]; + int32_t target_len = vsnprintf_P(dummy, 1, fmt_cpy, va_cpy); + if (target_len >= 0) { + // successful + char * allocated_buf = (char*) malloc(target_len + 1); + if (allocated_buf != nullptr) { + allocated_buf[0] = 0; // default to empty string + vsnprintf_P(allocated_buf, target_len + 1, fmt_cpy, va_cpy); + ret = (int32_t) allocated_buf; + } + } + } va_end(va_cpy); @@ -403,11 +421,25 @@ int32_t ext_vsnprintf_P(char * buf, size_t buf_len, const char * fmt_P, va_list return ret; } -int32_t ext_snprintf_P(char * buf, size_t buf_len, const char * fmt, ...) { +char * ext_vsnprintf_malloc_P(const char * fmt_P, va_list va) { + int32_t ret = ext_vsnprintf_P(nullptr, 0, fmt_P, va); + return (char*) ret; +} + +int32_t ext_snprintf_P(char * out_buf, size_t buf_len, const char * fmt, ...) { va_list va; va_start(va, fmt); - int32_t ret = ext_vsnprintf_P(buf, buf_len, fmt, va); + int32_t ret = ext_vsnprintf_P(out_buf, buf_len, fmt, va); va_end(va); return ret; } + +char * ext_snprintf_malloc_P(const char * fmt, ...) { + va_list va; + va_start(va, fmt); + + int32_t ret = ext_vsnprintf_P(nullptr, 0, fmt, va); + va_end(va); + return (char*) ret; +} diff --git a/lib/default/Ext-printf/src/ext_printf.h b/lib/default/Ext-printf/src/ext_printf.h index 82313cfc7..b3b8585ee 100644 --- a/lib/default/Ext-printf/src/ext_printf.h +++ b/lib/default/Ext-printf/src/ext_printf.h @@ -26,6 +26,8 @@ int32_t ext_vsnprintf_P(char * buf, size_t buf_len, const char * fmt_P, va_list va); int32_t ext_snprintf_P(char * buf, size_t buf_len, const char * fmt, ...); +char * ext_snprintf_malloc_P(const char * fmt, ...); +char * ext_vsnprintf_malloc_P(const char * fmt_P, va_list va); char* ToHex_P(const unsigned char * in, size_t insz, char * out, size_t outsz, char inbetween); diff --git a/lib/lib_ssl/base64-1.1.1/LICENSE b/lib/default/base64-1.1.1/LICENSE similarity index 100% rename from lib/lib_ssl/base64-1.1.1/LICENSE rename to lib/default/base64-1.1.1/LICENSE diff --git a/lib/lib_ssl/base64-1.1.1/Makefile b/lib/default/base64-1.1.1/Makefile similarity index 100% rename from lib/lib_ssl/base64-1.1.1/Makefile rename to lib/default/base64-1.1.1/Makefile diff --git a/lib/lib_ssl/base64-1.1.1/README.md b/lib/default/base64-1.1.1/README.md similarity index 100% rename from lib/lib_ssl/base64-1.1.1/README.md rename to lib/default/base64-1.1.1/README.md diff --git a/lib/lib_ssl/base64-1.1.1/catch.cpp b/lib/default/base64-1.1.1/catch.cpp similarity index 100% rename from lib/lib_ssl/base64-1.1.1/catch.cpp rename to lib/default/base64-1.1.1/catch.cpp diff --git a/lib/lib_ssl/base64-1.1.1/catch.hpp b/lib/default/base64-1.1.1/catch.hpp similarity index 100% rename from lib/lib_ssl/base64-1.1.1/catch.hpp rename to lib/default/base64-1.1.1/catch.hpp diff --git a/lib/lib_ssl/base64-1.1.1/library.properties b/lib/default/base64-1.1.1/library.properties similarity index 100% rename from lib/lib_ssl/base64-1.1.1/library.properties rename to lib/default/base64-1.1.1/library.properties diff --git a/lib/lib_ssl/base64-1.1.1/src/base64.hpp b/lib/default/base64-1.1.1/src/base64.hpp similarity index 100% rename from lib/lib_ssl/base64-1.1.1/src/base64.hpp rename to lib/default/base64-1.1.1/src/base64.hpp diff --git a/lib/lib_basic/IRremoteESP8266/README.md b/lib/lib_basic/IRremoteESP8266/README.md index 5498e3fd9..9c21f22e6 100644 --- a/lib/lib_basic/IRremoteESP8266/README.md +++ b/lib/lib_basic/IRremoteESP8266/README.md @@ -9,8 +9,8 @@ This library enables you to **send _and_ receive** infra-red signals on an [ESP8266](https://github.com/esp8266/Arduino) or an [ESP32](https://github.com/espressif/arduino-esp32) using the [Arduino framework](https://www.arduino.cc/) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc. -## v2.7.16 Now Available -Version 2.7.16 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. +## v2.7.18 Now Available +Version 2.7.18 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. #### Upgrading from pre-v2.0 Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/lib/lib_basic/IRremoteESP8266/README_de.md b/lib/lib_basic/IRremoteESP8266/README_de.md index adf6363d5..d666a4a43 100644 --- a/lib/lib_basic/IRremoteESP8266/README_de.md +++ b/lib/lib_basic/IRremoteESP8266/README_de.md @@ -9,8 +9,8 @@ Diese Programmbibliothek ermöglicht das **Senden _und_ Empfangen** von Infrarotsignalen mit [ESP8266](https://github.com/esp8266/Arduino)- und [ESP32](https://github.com/espressif/arduino-esp32)-Mikrocontrollern mithilfe des [Arduino-Frameworks](https://www.arduino.cc/) und handelsüblichen 940nm Infrarot-LEDs undIR-Empfängermodulen, wie zum Beispiel TSOP{17,22,24,36,38,44,48}*-Demodulatoren. -## v2.7.16 jetzt verfügbar -Version 2.7.16 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.7.18 jetzt verfügbar +Version 2.7.18 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. #### Hinweis für Nutzer von Versionen vor v2.0 Die Benutzung der Bibliothek hat sich mit Version 2.0 leicht geändert. Einige Anpassungen im aufrufenden Code werden nötig sein, um mit Version ab 2.0 korrekt zu funktionieren. Mehr zu den Anpassungen finden sich auf unserer [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0)-Seite. diff --git a/lib/lib_basic/IRremoteESP8266/README_fr.md b/lib/lib_basic/IRremoteESP8266/README_fr.md index 58c06eb9d..7cfe2a58f 100644 --- a/lib/lib_basic/IRremoteESP8266/README_fr.md +++ b/lib/lib_basic/IRremoteESP8266/README_fr.md @@ -9,8 +9,8 @@ Cette librairie vous permetra de **recevoir et d'envoyer des signaux** infrarouge sur le protocole [ESP8266](https://github.com/esp8266/Arduino) ou sur le protocole [ESP32](https://github.com/espressif/arduino-esp32) en utilisant le [Arduino framework](https://www.arduino.cc/) qui utilise la norme 940nm IR LEDs et le module basique de reception d'onde IR. Exemple : TSOP{17,22,24,36,38,44,48}* modules etc. -## v2.7.16 disponible -Version 2.7.16 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. +## v2.7.18 disponible +Version 2.7.18 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. #### mise à jour depuis pre-v2.0 L'utilisation de la librairie à un peu changer depuis la version in v2.0. Si vous voulez l'utiliser vous devrez changer votre utilisation aussi. Vous pouvez vous renseigner sur les précondition d'utilisation ici : [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md b/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md index 451df9ced..318790e60 100644 --- a/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md +++ b/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md @@ -1,5 +1,31 @@ # Release Notes +## _v2.7.18 (20210420)_ + +**[Misc]** +- Attempt to fix issues with installing the library under the Arduino IDE on Win10 & OSX (#1451 #1464) +- Reduce the library's github zip download size. (#1451 #1463) +- An experiment in using Github Actions to do some of the CI work. (#1462) + + +## _v2.7.17 (20210418)_ + +**[News]** +- The library now supports 100 IR protocols! \o/ + +**[Bug Fixes]** +- Fix `IRAcUtils::decodeToState()` for different length Samsung msgs (#1447 #1448) + +**[Features]** +- Fujitsu: Add support for `ARREW4E` model. (#1455 #1456) +- Experimental detailed support for Truma A/Cs. (#1440 #1449) + +**[Misc]** +- Fix Arduino library linter issues. (#1451 #1452 #1453 #1460) +- Reduce the library's zip download size. (#1451 #1463) +- An experiment in using Github Actions to do some of the CI work. (#1462) + + ## _v2.7.16 (20210324)_ **[Features]** diff --git a/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md b/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md index eb16650fc..f150f8b4d 100644 --- a/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md +++ b/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Sat 17 Apr 2021 22:14:32 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -28,8 +28,8 @@ | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Elite Screens** | CineTension2 / CineTension3 series
Home2 / Home3 series
Spectrum series
VMAX Plus4 series
VMAX2 / VMAX2 Plus series
ZSP-IR-B / ZSP-IR-W remote | | - | | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Lumene Screens** | Embassy | | - | | [Epson](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Epson.cpp) | **Epson** | EN-TW9100W Projector | | - | -| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AGTV14LAC A/C (ARRAH2E)
AR-DB1 remote (ARDB1)
AR-DL10 remote (ARDB1)
AR-RAC1E remote (ARRAH2E)
AR-RAE1E remote (ARRAH2E)
AR-RAH1U remote (ARREB1E)
AR-RAH2E remote (ARRAH2E)
AR-REB1E remote (ARREB1E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASU12RLF A/C (ARREB1E)
ASU30C1 A/C (ARDB1)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARRY4 | Yes | -| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu General](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AOHG09LLC A/C (ARRAH2E)
AR-JW2 remote (ARJW2)
AR-RCE1E remote (ARRAH2E)
ASHG09LLCA A/C (ARRAH2E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARRY4 | Yes | +| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AGTV14LAC A/C (ARRAH2E)
AR-DB1 remote (ARDB1)
AR-DL10 remote (ARDB1)
AR-RAC1E remote (ARRAH2E)
AR-RAE1E remote (ARRAH2E)
AR-RAH1U remote (ARREB1E)
AR-RAH2E remote (ARRAH2E)
AR-REB1E remote (ARREB1E)
AR-REW4E remote (ARREW4E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASU12RLF A/C (ARREB1E)
ASU30C1 A/C (ARDB1)
ASYG09KETA-B A/C (ARREW4E)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARREW4E
ARRY4 | Yes | +| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu General](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AOHG09LLC A/C (ARRAH2E)
AR-JW2 remote (ARJW2)
AR-RCE1E remote (ARRAH2E)
ASHG09LLCA A/C (ARRAH2E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARREW4E
ARRY4 | Yes | | [GICable](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GICable.cpp) | **G.I. Cable** | XRC-200 remote | | - | | [GlobalCache](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GlobalCache.cpp) | **Global Cache** | Control Tower IR DB | | - | | [Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.cpp) | **[Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.h)** | ZH/JT-03 remote | | Yes | @@ -98,6 +98,7 @@ | [Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.cpp) | **[Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.h)** | M1-F-NO-6 A/C | | Yes | | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Duux](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | Blizzard Smart 10K / DXMA04 A/C | | Yes | | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | PAC 3200 A/C | | Yes | +| [Truma](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Truma.cpp) | **[Truma](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Truma.h)** | 40091-86700 remote
Aventa A/C | | Yes | | [Vestel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Vestel.cpp) | **[Vestel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Vestel.h)** | BIOX CXP-9 A/C (9K BTU) | | Yes | | [Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.cpp) | **[Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.h)** | 122LZF 4011252 Window A/C | 122LZF | Yes | | [Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.cpp) | **[Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.h)** | DG11J1-04 remote
DG11J1-3A remote
DG11J1-91 remote
SPIS409L A/C
SPIS412L A/C
SPIW409L A/C
SPIW412L A/C
SPIW418L A/C | DG11J13A
DG11J191 | Yes | @@ -205,6 +206,7 @@ - TOSHIBA_AC - TRANSCOLD - TROTEC +- TRUMA - VESTEL_AC - VOLTAS - WHIRLPOOL_AC diff --git a/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html b/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html index 9809f9a1e..5b3ba1925 100644 --- a/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html +++ b/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html @@ -109,545 +109,553 @@ $(function() {
38 #include "ir_Toshiba.h"
39 #include "ir_Transcold.h"
40 #include "ir_Trotec.h"
-
41 #include "ir_Vestel.h"
-
42 #include "ir_Voltas.h"
-
43 #include "ir_Whirlpool.h"
-
44 
-
45 // Constants
-
46 const int8_t kGpioUnused = -1;
-
47 
-
48 // Class
-
50 class IRac {
-
51  public:
-
52  explicit IRac(const uint16_t pin, const bool inverted = false,
-
53  const bool use_modulation = true);
-
54  static bool isProtocolSupported(const decode_type_t protocol);
-
55  static void initState(stdAc::state_t *state,
-
56  const decode_type_t vendor, const int16_t model,
-
57  const bool power, const stdAc::opmode_t mode,
-
58  const float degrees, const bool celsius,
-
59  const stdAc::fanspeed_t fan,
-
60  const stdAc::swingv_t swingv,
-
61  const stdAc::swingh_t swingh,
-
62  const bool quiet, const bool turbo, const bool econo,
-
63  const bool light, const bool filter, const bool clean,
-
64  const bool beep, const int16_t sleep,
-
65  const int16_t clock);
-
66  static void initState(stdAc::state_t *state);
-
67  void markAsSent(void);
-
68  bool sendAc(void);
-
69  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
70  bool sendAc(const decode_type_t vendor, const int16_t model,
-
71  const bool power, const stdAc::opmode_t mode, const float degrees,
-
72  const bool celsius, const stdAc::fanspeed_t fan,
-
73  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
74  const bool quiet, const bool turbo, const bool econo,
-
75  const bool light, const bool filter, const bool clean,
-
76  const bool beep, const int16_t sleep = -1,
-
77  const int16_t clock = -1);
-
78  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
79  static bool strToBool(const char *str, const bool def = false);
-
80  static int16_t strToModel(const char *str, const int16_t def = -1);
- -
82  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
- -
84  const char *str,
- - -
87  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
- -
89  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
90  static String boolToString(const bool value);
-
91  static String opmodeToString(const stdAc::opmode_t mode);
-
92  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
93  static String swingvToString(const stdAc::swingv_t swingv);
-
94  static String swinghToString(const stdAc::swingh_t swingh);
- - -
97  bool hasStateChanged(void);
- -
99 #ifndef UNIT_TEST
-
100 
-
101  private:
-
102 #endif
-
103  uint16_t _pin;
-
104  bool _inverted;
-
105  bool _modulation;
- -
107 #if SEND_AIRWELL
-
108  void airwell(IRAirwellAc *ac,
-
109  const bool on, const stdAc::opmode_t mode, const float degrees,
-
110  const stdAc::fanspeed_t fan);
-
111 #endif // SEND_AIRWELL
-
112 #if SEND_AMCOR
-
113  void amcor(IRAmcorAc *ac,
-
114  const bool on, const stdAc::opmode_t mode, const float degrees,
-
115  const stdAc::fanspeed_t fan);
-
116 #endif // SEND_AMCOR
-
117 #if SEND_ARGO
-
118  void argo(IRArgoAC *ac,
-
119  const bool on, const stdAc::opmode_t mode, const float degrees,
-
120  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
121  const bool turbo, const int16_t sleep = -1);
-
122 #endif // SEND_ARGO
-
123 #if SEND_CARRIER_AC64
-
124 void carrier64(IRCarrierAc64 *ac,
-
125  const bool on, const stdAc::opmode_t mode,
-
126  const float degrees, const stdAc::fanspeed_t fan,
-
127  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
128 #endif // SEND_CARRIER_AC64
-
129 #if SEND_COOLIX
-
130  void coolix(IRCoolixAC *ac,
-
131  const bool on, const stdAc::opmode_t mode, const float degrees,
-
132  const stdAc::fanspeed_t fan,
-
133  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
134  const bool turbo, const bool light, const bool clean,
-
135  const int16_t sleep = -1);
-
136 #endif // SEND_COOLIX
-
137 #if SEND_CORONA_AC
-
138  void corona(IRCoronaAc *ac,
-
139  const bool on, const stdAc::opmode_t mode,
-
140  const float degrees, const stdAc::fanspeed_t fan,
-
141  const stdAc::swingv_t swingv, const bool econo);
-
142 #endif // SEND_CORONA_AC
-
143 #if SEND_DAIKIN
-
144  void daikin(IRDaikinESP *ac,
-
145  const bool on, const stdAc::opmode_t mode, const float degrees,
-
146  const stdAc::fanspeed_t fan,
-
147  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
148  const bool quiet, const bool turbo, const bool econo,
-
149  const bool clean);
-
150 #endif // SEND_DAIKIN
-
151 #if SEND_DAIKIN128
-
152  void daikin128(IRDaikin128 *ac,
-
153  const bool on, const stdAc::opmode_t mode,
-
154  const float degrees, const stdAc::fanspeed_t fan,
-
155  const stdAc::swingv_t swingv,
-
156  const bool quiet, const bool turbo, const bool light,
-
157  const bool econo, const int16_t sleep = -1,
-
158  const int16_t clock = -1);
-
159 #endif // SEND_DAIKIN128
-
160 #if SEND_DAIKIN152
-
161  void daikin152(IRDaikin152 *ac,
-
162  const bool on, const stdAc::opmode_t mode,
-
163  const float degrees, const stdAc::fanspeed_t fan,
-
164  const stdAc::swingv_t swingv,
-
165  const bool quiet, const bool turbo, const bool econo);
-
166 #endif // SEND_DAIKIN152
-
167 #if SEND_DAIKIN160
-
168  void daikin160(IRDaikin160 *ac,
-
169  const bool on, const stdAc::opmode_t mode,
-
170  const float degrees, const stdAc::fanspeed_t fan,
-
171  const stdAc::swingv_t swingv);
-
172 #endif // SEND_DAIKIN160
-
173 #if SEND_DAIKIN176
-
174  void daikin176(IRDaikin176 *ac,
-
175  const bool on, const stdAc::opmode_t mode,
-
176  const float degrees, const stdAc::fanspeed_t fan,
-
177  const stdAc::swingh_t swingh);
-
178 #endif // SEND_DAIKIN176
-
179 #if SEND_DAIKIN2
-
180  void daikin2(IRDaikin2 *ac,
-
181  const bool on, const stdAc::opmode_t mode,
-
182  const float degrees, const stdAc::fanspeed_t fan,
-
183  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
184  const bool quiet, const bool turbo, const bool light,
-
185  const bool econo, const bool filter, const bool clean,
-
186  const bool beep, const int16_t sleep = -1,
-
187  const int16_t clock = -1);
-
188 #endif // SEND_DAIKIN2
-
189 #if SEND_DAIKIN216
-
190 void daikin216(IRDaikin216 *ac,
-
191  const bool on, const stdAc::opmode_t mode,
-
192  const float degrees, const stdAc::fanspeed_t fan,
-
193  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
194  const bool quiet, const bool turbo);
-
195 #endif // SEND_DAIKIN216
-
196 #if SEND_DAIKIN64
-
197  void daikin64(IRDaikin64 *ac,
-
198  const bool on, const stdAc::opmode_t mode,
-
199  const float degrees, const stdAc::fanspeed_t fan,
-
200  const stdAc::swingv_t swingv,
-
201  const bool quiet, const bool turbo,
-
202  const int16_t sleep = -1, const int16_t clock = -1);
-
203 #endif // SEND_DAIKIN64
-
204 #if SEND_DELONGHI_AC
-
205  void delonghiac(IRDelonghiAc *ac,
-
206  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
207  const float degrees, const stdAc::fanspeed_t fan,
-
208  const bool turbo, const int16_t sleep = -1);
-
209 #endif // SEND_DELONGHI_AC
-
210 #if SEND_ECOCLIM
-
211 void ecoclim(IREcoclimAc *ac,
-
212  const bool on, const stdAc::opmode_t mode,
-
213  const float degrees, const stdAc::fanspeed_t fan,
-
214  const int16_t sleep = -1, const int16_t clock = -1);
-
215 #endif // SEND_ECOCLIM
-
216 #if SEND_ELECTRA_AC
-
217 void electra(IRElectraAc *ac,
-
218  const bool on, const stdAc::opmode_t mode,
-
219  const float degrees, const stdAc::fanspeed_t fan,
-
220  const stdAc::swingv_t swingv,
-
221  const stdAc::swingh_t swingh, const bool turbo,
-
222  const bool lighttoggle, const bool clean);
-
223 #endif // SEND_ELECTRA_AC
-
224 #if SEND_FUJITSU_AC
-
225  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
226  const bool on, const stdAc::opmode_t mode, const float degrees,
-
227  const stdAc::fanspeed_t fan,
-
228  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
229  const bool quiet, const bool turbo, const bool econo,
-
230  const bool filter, const bool clean, const int16_t sleep = -1);
-
231 #endif // SEND_FUJITSU_AC
-
232 #if SEND_GOODWEATHER
-
233  void goodweather(IRGoodweatherAc *ac,
-
234  const bool on, const stdAc::opmode_t mode,
-
235  const float degrees,
-
236  const stdAc::fanspeed_t fan,
-
237  const stdAc::swingv_t swingv,
-
238  const bool turbo, const bool light,
-
239  const int16_t sleep = -1);
-
240 #endif // SEND_GOODWEATHER
-
241 #if SEND_GREE
-
242  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
243  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
244  const float degrees, const stdAc::fanspeed_t fan,
-
245  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
246  const bool clean, const int16_t sleep = -1);
-
247 #endif // SEND_GREE
-
248 #if SEND_HAIER_AC
-
249  void haier(IRHaierAC *ac,
-
250  const bool on, const stdAc::opmode_t mode, const float degrees,
-
251  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
252  const bool filter, const int16_t sleep = -1,
-
253  const int16_t clock = -1);
-
254 #endif // SEND_HAIER_AC
-
255 #if SEND_HAIER_AC_YRW02
-
256  void haierYrwo2(IRHaierACYRW02 *ac,
-
257  const bool on, const stdAc::opmode_t mode,
-
258  const float degrees, const stdAc::fanspeed_t fan,
-
259  const stdAc::swingv_t swingv,
-
260  const bool turbo, const bool filter,
-
261  const int16_t sleep = -1);
-
262 #endif // SEND_HAIER_AC_YRW02
-
263 #if SEND_HITACHI_AC
-
264  void hitachi(IRHitachiAc *ac,
-
265  const bool on, const stdAc::opmode_t mode,
-
266  const float degrees, const stdAc::fanspeed_t fan,
-
267  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
268 #endif // SEND_HITACHI_AC
-
269 #if SEND_HITACHI_AC1
-
270  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
271  const bool on, const bool power_toggle,
-
272  const stdAc::opmode_t mode,
-
273  const float degrees, const stdAc::fanspeed_t fan,
-
274  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
275  const bool swing_toggle, const int16_t sleep = -1);
-
276 #endif // SEND_HITACHI_AC1
-
277 #if SEND_HITACHI_AC344
-
278  void hitachi344(IRHitachiAc344 *ac,
-
279  const bool on, const stdAc::opmode_t mode,
-
280  const float degrees, const stdAc::fanspeed_t fan,
-
281  const stdAc::swingv_t swingv,
-
282  const stdAc::swingh_t swingh);
-
283 #endif // SEND_HITACHI_AC344
-
284 #if SEND_HITACHI_AC424
-
285  void hitachi424(IRHitachiAc424 *ac,
-
286  const bool on, const stdAc::opmode_t mode,
-
287  const float degrees, const stdAc::fanspeed_t fan,
-
288  const stdAc::swingv_t swingv);
-
289 #endif // SEND_HITACHI_AC424
-
290 #if SEND_KELVINATOR
-
291  void kelvinator(IRKelvinatorAC *ac,
-
292  const bool on, const stdAc::opmode_t mode,
-
293  const float degrees, const stdAc::fanspeed_t fan,
-
294  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
295  const bool quiet, const bool turbo, const bool light,
-
296  const bool filter, const bool clean);
-
297 #endif // SEND_KELVINATOR
-
298 #if SEND_LG
-
299  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
300  const bool on, const stdAc::opmode_t mode,
-
301  const float degrees, const stdAc::fanspeed_t fan);
-
302 #endif // SEND_LG
-
303 #if SEND_MIDEA
-
304  void midea(IRMideaAC *ac,
-
305  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
306  const float degrees, const stdAc::fanspeed_t fan,
-
307  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
-
308  const bool light, const int16_t sleep = -1);
-
309 #endif // SEND_MIDEA
-
310 #if SEND_MITSUBISHI_AC
-
311  void mitsubishi(IRMitsubishiAC *ac,
-
312  const bool on, const stdAc::opmode_t mode,
-
313  const float degrees,
-
314  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
315  const stdAc::swingh_t swingh,
-
316  const bool quiet, const int16_t clock = -1);
-
317 #endif // SEND_MITSUBISHI_AC
-
318 #if SEND_MITSUBISHI112
- -
320  const bool on, const stdAc::opmode_t mode,
-
321  const float degrees, const stdAc::fanspeed_t fan,
-
322  const stdAc::swingv_t swingv,
-
323  const stdAc::swingh_t swingh,
-
324  const bool quiet);
-
325 #endif // SEND_MITSUBISHI112
-
326 #if SEND_MITSUBISHI136
- -
328  const bool on, const stdAc::opmode_t mode,
-
329  const float degrees, const stdAc::fanspeed_t fan,
-
330  const stdAc::swingv_t swingv, const bool quiet);
-
331 #endif // SEND_MITSUBISHI136
-
332 #if SEND_MITSUBISHIHEAVY
- -
334  const bool on, const stdAc::opmode_t mode,
-
335  const float degrees, const stdAc::fanspeed_t fan,
-
336  const stdAc::swingv_t swingv,
-
337  const stdAc::swingh_t swingh,
-
338  const bool turbo, const bool econo, const bool clean);
- -
340  const bool on, const stdAc::opmode_t mode,
-
341  const float degrees, const stdAc::fanspeed_t fan,
-
342  const stdAc::swingv_t swingv,
-
343  const stdAc::swingh_t swingh,
-
344  const bool quiet, const bool turbo, const bool econo,
-
345  const bool filter, const bool clean,
-
346  const int16_t sleep = -1);
-
347 #endif // SEND_MITSUBISHIHEAVY
-
348 #if SEND_NEOCLIMA
-
349  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
350  const bool celsius, const float degrees,
-
351  const stdAc::fanspeed_t fan,
-
352  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
353  const bool turbo, const bool econo, const bool light,
-
354  const bool filter, const int16_t sleep = -1);
-
355 #endif // SEND_NEOCLIMA
-
356 #if SEND_PANASONIC_AC
- -
358  const bool on, const stdAc::opmode_t mode, const float degrees,
-
359  const stdAc::fanspeed_t fan,
-
360  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
361  const bool quiet, const bool turbo, const bool filter,
-
362  const int16_t clock = -1);
-
363 #endif // SEND_PANASONIC_AC
-
364 #if SEND_PANASONIC_AC32
-
365  void panasonic32(IRPanasonicAc32 *ac,
-
366  const bool on, const stdAc::opmode_t mode,
-
367  const float degrees, const stdAc::fanspeed_t fan,
-
368  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
369 #endif // SEND_PANASONIC_AC32
-
370 #if SEND_SAMSUNG_AC
-
371  void samsung(IRSamsungAc *ac,
-
372  const bool on, const stdAc::opmode_t mode, const float degrees,
-
373  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
374  const bool quiet, const bool turbo, const bool light,
-
375  const bool filter, const bool clean,
-
376  const bool beep, const bool prevpower = true,
-
377  const bool forcepower = true);
-
378 #endif // SEND_SAMSUNG_AC
-
379 #if SEND_SANYO_AC
-
380  void sanyo(IRSanyoAc *ac,
-
381  const bool on, const stdAc::opmode_t mode, const float degrees,
-
382  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
383  const bool beep, const int16_t sleep = -1);
-
384 #endif // SEND_SANYO_AC
-
385 #if SEND_SHARP_AC
-
386  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
-
387  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
388  const float degrees, const stdAc::fanspeed_t fan,
-
389  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
390  const bool filter, const bool clean);
-
391 #endif // SEND_SHARP_AC
-
392 #if SEND_TCL112AC
-
393  void tcl112(IRTcl112Ac *ac,
-
394  const bool on, const stdAc::opmode_t mode, const float degrees,
-
395  const stdAc::fanspeed_t fan,
-
396  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
397  const bool turbo, const bool light, const bool econo,
-
398  const bool filter);
-
399 #endif // SEND_TCL112AC
-
400 #if SEND_TECHNIBEL_AC
-
401  void technibel(IRTechnibelAc *ac,
-
402  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
403  const float degrees, const stdAc::fanspeed_t fan,
-
404  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
405 #endif // SEND_TECHNIBEL_AC
-
406 #if SEND_TECO
-
407  void teco(IRTecoAc *ac,
-
408  const bool on, const stdAc::opmode_t mode, const float degrees,
-
409  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
410  const bool light, const int16_t sleep = -1);
-
411 #endif // SEND_TECO
-
412 #if SEND_TOSHIBA_AC
-
413  void toshiba(IRToshibaAC *ac,
-
414  const bool on, const stdAc::opmode_t mode, const float degrees,
-
415  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
416  const bool turbo, const bool econo);
-
417 #endif // SEND_TOSHIBA_AC
-
418 #if SEND_TROTEC
-
419  void trotec(IRTrotecESP *ac,
-
420  const bool on, const stdAc::opmode_t mode, const float degrees,
-
421  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
422 #endif // SEND_TROTEC
-
423 #if SEND_VESTEL_AC
-
424  void vestel(IRVestelAc *ac,
-
425  const bool on, const stdAc::opmode_t mode, const float degrees,
-
426  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
427  const bool turbo, const bool filter,
-
428  const int16_t sleep = -1, const int16_t clock = -1,
-
429  const bool sendNormal = true);
-
430 #endif // SEND_VESTEL_AC
-
431 #if SEND_VOLTAS
-
432  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
-
433  const bool on, const stdAc::opmode_t mode,
-
434  const float degrees, const stdAc::fanspeed_t fan,
-
435  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
436  const bool turbo, const bool econo, const bool light,
-
437  const int16_t sleep = -1);
-
438 #endif // SEND_VOLTAS
-
439 #if SEND_WHIRLPOOL_AC
- -
441  const bool on, const stdAc::opmode_t mode, const float degrees,
-
442  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
443  const bool turbo, const bool light,
-
444  const int16_t sleep = -1, const int16_t clock = -1);
-
445 #endif // SEND_WHIRLPOOL_AC
-
446 #if SEND_TRANSCOLD
-
447  void transcold(IRTranscoldAc *ac,
-
448  const bool on, const stdAc::opmode_t mode, const float degrees,
-
449  const stdAc::fanspeed_t fan,
-
450  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
451 #endif // SEND_TRANSCOLD
-
452 static stdAc::state_t cleanState(const stdAc::state_t state);
-
453 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
454  const stdAc::state_t *prev = NULL);
-
455 }; // IRac class
-
456 
-
458 namespace IRAcUtils {
-
459  String resultAcToString(const decode_results * const results);
-
460  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
461  const stdAc::state_t *prev = NULL);
-
462 } // namespace IRAcUtils
-
463 #endif // IRAC_H_
+
41 #include "ir_Truma.h"
+
42 #include "ir_Vestel.h"
+
43 #include "ir_Voltas.h"
+
44 #include "ir_Whirlpool.h"
+
45 
+
46 // Constants
+
47 const int8_t kGpioUnused = -1;
+
48 
+
49 // Class
+
51 class IRac {
+
52  public:
+
53  explicit IRac(const uint16_t pin, const bool inverted = false,
+
54  const bool use_modulation = true);
+
55  static bool isProtocolSupported(const decode_type_t protocol);
+
56  static void initState(stdAc::state_t *state,
+
57  const decode_type_t vendor, const int16_t model,
+
58  const bool power, const stdAc::opmode_t mode,
+
59  const float degrees, const bool celsius,
+
60  const stdAc::fanspeed_t fan,
+
61  const stdAc::swingv_t swingv,
+
62  const stdAc::swingh_t swingh,
+
63  const bool quiet, const bool turbo, const bool econo,
+
64  const bool light, const bool filter, const bool clean,
+
65  const bool beep, const int16_t sleep,
+
66  const int16_t clock);
+
67  static void initState(stdAc::state_t *state);
+
68  void markAsSent(void);
+
69  bool sendAc(void);
+
70  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
+
71  bool sendAc(const decode_type_t vendor, const int16_t model,
+
72  const bool power, const stdAc::opmode_t mode, const float degrees,
+
73  const bool celsius, const stdAc::fanspeed_t fan,
+
74  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
75  const bool quiet, const bool turbo, const bool econo,
+
76  const bool light, const bool filter, const bool clean,
+
77  const bool beep, const int16_t sleep = -1,
+
78  const int16_t clock = -1);
+
79  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
+
80  static bool strToBool(const char *str, const bool def = false);
+
81  static int16_t strToModel(const char *str, const int16_t def = -1);
+ +
83  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
+ +
85  const char *str,
+ + +
88  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
+ +
90  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
+
91  static String boolToString(const bool value);
+
92  static String opmodeToString(const stdAc::opmode_t mode);
+
93  static String fanspeedToString(const stdAc::fanspeed_t speed);
+
94  static String swingvToString(const stdAc::swingv_t swingv);
+
95  static String swinghToString(const stdAc::swingh_t swingh);
+ + +
98  bool hasStateChanged(void);
+ +
100 #ifndef UNIT_TEST
+
101 
+
102  private:
+
103 #endif
+
104  uint16_t _pin;
+
105  bool _inverted;
+
106  bool _modulation;
+ +
108 #if SEND_AIRWELL
+
109  void airwell(IRAirwellAc *ac,
+
110  const bool on, const stdAc::opmode_t mode, const float degrees,
+
111  const stdAc::fanspeed_t fan);
+
112 #endif // SEND_AIRWELL
+
113 #if SEND_AMCOR
+
114  void amcor(IRAmcorAc *ac,
+
115  const bool on, const stdAc::opmode_t mode, const float degrees,
+
116  const stdAc::fanspeed_t fan);
+
117 #endif // SEND_AMCOR
+
118 #if SEND_ARGO
+
119  void argo(IRArgoAC *ac,
+
120  const bool on, const stdAc::opmode_t mode, const float degrees,
+
121  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
122  const bool turbo, const int16_t sleep = -1);
+
123 #endif // SEND_ARGO
+
124 #if SEND_CARRIER_AC64
+
125 void carrier64(IRCarrierAc64 *ac,
+
126  const bool on, const stdAc::opmode_t mode,
+
127  const float degrees, const stdAc::fanspeed_t fan,
+
128  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
129 #endif // SEND_CARRIER_AC64
+
130 #if SEND_COOLIX
+
131  void coolix(IRCoolixAC *ac,
+
132  const bool on, const stdAc::opmode_t mode, const float degrees,
+
133  const stdAc::fanspeed_t fan,
+
134  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
135  const bool turbo, const bool light, const bool clean,
+
136  const int16_t sleep = -1);
+
137 #endif // SEND_COOLIX
+
138 #if SEND_CORONA_AC
+
139  void corona(IRCoronaAc *ac,
+
140  const bool on, const stdAc::opmode_t mode,
+
141  const float degrees, const stdAc::fanspeed_t fan,
+
142  const stdAc::swingv_t swingv, const bool econo);
+
143 #endif // SEND_CORONA_AC
+
144 #if SEND_DAIKIN
+
145  void daikin(IRDaikinESP *ac,
+
146  const bool on, const stdAc::opmode_t mode, const float degrees,
+
147  const stdAc::fanspeed_t fan,
+
148  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
149  const bool quiet, const bool turbo, const bool econo,
+
150  const bool clean);
+
151 #endif // SEND_DAIKIN
+
152 #if SEND_DAIKIN128
+
153  void daikin128(IRDaikin128 *ac,
+
154  const bool on, const stdAc::opmode_t mode,
+
155  const float degrees, const stdAc::fanspeed_t fan,
+
156  const stdAc::swingv_t swingv,
+
157  const bool quiet, const bool turbo, const bool light,
+
158  const bool econo, const int16_t sleep = -1,
+
159  const int16_t clock = -1);
+
160 #endif // SEND_DAIKIN128
+
161 #if SEND_DAIKIN152
+
162  void daikin152(IRDaikin152 *ac,
+
163  const bool on, const stdAc::opmode_t mode,
+
164  const float degrees, const stdAc::fanspeed_t fan,
+
165  const stdAc::swingv_t swingv,
+
166  const bool quiet, const bool turbo, const bool econo);
+
167 #endif // SEND_DAIKIN152
+
168 #if SEND_DAIKIN160
+
169  void daikin160(IRDaikin160 *ac,
+
170  const bool on, const stdAc::opmode_t mode,
+
171  const float degrees, const stdAc::fanspeed_t fan,
+
172  const stdAc::swingv_t swingv);
+
173 #endif // SEND_DAIKIN160
+
174 #if SEND_DAIKIN176
+
175  void daikin176(IRDaikin176 *ac,
+
176  const bool on, const stdAc::opmode_t mode,
+
177  const float degrees, const stdAc::fanspeed_t fan,
+
178  const stdAc::swingh_t swingh);
+
179 #endif // SEND_DAIKIN176
+
180 #if SEND_DAIKIN2
+
181  void daikin2(IRDaikin2 *ac,
+
182  const bool on, const stdAc::opmode_t mode,
+
183  const float degrees, const stdAc::fanspeed_t fan,
+
184  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
185  const bool quiet, const bool turbo, const bool light,
+
186  const bool econo, const bool filter, const bool clean,
+
187  const bool beep, const int16_t sleep = -1,
+
188  const int16_t clock = -1);
+
189 #endif // SEND_DAIKIN2
+
190 #if SEND_DAIKIN216
+
191 void daikin216(IRDaikin216 *ac,
+
192  const bool on, const stdAc::opmode_t mode,
+
193  const float degrees, const stdAc::fanspeed_t fan,
+
194  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
195  const bool quiet, const bool turbo);
+
196 #endif // SEND_DAIKIN216
+
197 #if SEND_DAIKIN64
+
198  void daikin64(IRDaikin64 *ac,
+
199  const bool on, const stdAc::opmode_t mode,
+
200  const float degrees, const stdAc::fanspeed_t fan,
+
201  const stdAc::swingv_t swingv,
+
202  const bool quiet, const bool turbo,
+
203  const int16_t sleep = -1, const int16_t clock = -1);
+
204 #endif // SEND_DAIKIN64
+
205 #if SEND_DELONGHI_AC
+
206  void delonghiac(IRDelonghiAc *ac,
+
207  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
208  const float degrees, const stdAc::fanspeed_t fan,
+
209  const bool turbo, const int16_t sleep = -1);
+
210 #endif // SEND_DELONGHI_AC
+
211 #if SEND_ECOCLIM
+
212 void ecoclim(IREcoclimAc *ac,
+
213  const bool on, const stdAc::opmode_t mode,
+
214  const float degrees, const stdAc::fanspeed_t fan,
+
215  const int16_t sleep = -1, const int16_t clock = -1);
+
216 #endif // SEND_ECOCLIM
+
217 #if SEND_ELECTRA_AC
+
218 void electra(IRElectraAc *ac,
+
219  const bool on, const stdAc::opmode_t mode,
+
220  const float degrees, const stdAc::fanspeed_t fan,
+
221  const stdAc::swingv_t swingv,
+
222  const stdAc::swingh_t swingh, const bool turbo,
+
223  const bool lighttoggle, const bool clean);
+
224 #endif // SEND_ELECTRA_AC
+
225 #if SEND_FUJITSU_AC
+
226  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
+
227  const bool on, const stdAc::opmode_t mode,
+
228  const bool celsius, const float degrees,
+
229  const stdAc::fanspeed_t fan,
+
230  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
231  const bool quiet, const bool turbo, const bool econo,
+
232  const bool filter, const bool clean, const int16_t sleep = -1);
+
233 #endif // SEND_FUJITSU_AC
+
234 #if SEND_GOODWEATHER
+
235  void goodweather(IRGoodweatherAc *ac,
+
236  const bool on, const stdAc::opmode_t mode,
+
237  const float degrees,
+
238  const stdAc::fanspeed_t fan,
+
239  const stdAc::swingv_t swingv,
+
240  const bool turbo, const bool light,
+
241  const int16_t sleep = -1);
+
242 #endif // SEND_GOODWEATHER
+
243 #if SEND_GREE
+
244  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
+
245  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
246  const float degrees, const stdAc::fanspeed_t fan,
+
247  const stdAc::swingv_t swingv, const bool turbo, const bool light,
+
248  const bool clean, const int16_t sleep = -1);
+
249 #endif // SEND_GREE
+
250 #if SEND_HAIER_AC
+
251  void haier(IRHaierAC *ac,
+
252  const bool on, const stdAc::opmode_t mode, const float degrees,
+
253  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
254  const bool filter, const int16_t sleep = -1,
+
255  const int16_t clock = -1);
+
256 #endif // SEND_HAIER_AC
+
257 #if SEND_HAIER_AC_YRW02
+
258  void haierYrwo2(IRHaierACYRW02 *ac,
+
259  const bool on, const stdAc::opmode_t mode,
+
260  const float degrees, const stdAc::fanspeed_t fan,
+
261  const stdAc::swingv_t swingv,
+
262  const bool turbo, const bool filter,
+
263  const int16_t sleep = -1);
+
264 #endif // SEND_HAIER_AC_YRW02
+
265 #if SEND_HITACHI_AC
+
266  void hitachi(IRHitachiAc *ac,
+
267  const bool on, const stdAc::opmode_t mode,
+
268  const float degrees, const stdAc::fanspeed_t fan,
+
269  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
270 #endif // SEND_HITACHI_AC
+
271 #if SEND_HITACHI_AC1
+
272  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
+
273  const bool on, const bool power_toggle,
+
274  const stdAc::opmode_t mode,
+
275  const float degrees, const stdAc::fanspeed_t fan,
+
276  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
277  const bool swing_toggle, const int16_t sleep = -1);
+
278 #endif // SEND_HITACHI_AC1
+
279 #if SEND_HITACHI_AC344
+
280  void hitachi344(IRHitachiAc344 *ac,
+
281  const bool on, const stdAc::opmode_t mode,
+
282  const float degrees, const stdAc::fanspeed_t fan,
+
283  const stdAc::swingv_t swingv,
+
284  const stdAc::swingh_t swingh);
+
285 #endif // SEND_HITACHI_AC344
+
286 #if SEND_HITACHI_AC424
+
287  void hitachi424(IRHitachiAc424 *ac,
+
288  const bool on, const stdAc::opmode_t mode,
+
289  const float degrees, const stdAc::fanspeed_t fan,
+
290  const stdAc::swingv_t swingv);
+
291 #endif // SEND_HITACHI_AC424
+
292 #if SEND_KELVINATOR
+
293  void kelvinator(IRKelvinatorAC *ac,
+
294  const bool on, const stdAc::opmode_t mode,
+
295  const float degrees, const stdAc::fanspeed_t fan,
+
296  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
297  const bool quiet, const bool turbo, const bool light,
+
298  const bool filter, const bool clean);
+
299 #endif // SEND_KELVINATOR
+
300 #if SEND_LG
+
301  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
+
302  const bool on, const stdAc::opmode_t mode,
+
303  const float degrees, const stdAc::fanspeed_t fan);
+
304 #endif // SEND_LG
+
305 #if SEND_MIDEA
+
306  void midea(IRMideaAC *ac,
+
307  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
308  const float degrees, const stdAc::fanspeed_t fan,
+
309  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
+
310  const bool light, const int16_t sleep = -1);
+
311 #endif // SEND_MIDEA
+
312 #if SEND_MITSUBISHI_AC
+
313  void mitsubishi(IRMitsubishiAC *ac,
+
314  const bool on, const stdAc::opmode_t mode,
+
315  const float degrees,
+
316  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
317  const stdAc::swingh_t swingh,
+
318  const bool quiet, const int16_t clock = -1);
+
319 #endif // SEND_MITSUBISHI_AC
+
320 #if SEND_MITSUBISHI112
+ +
322  const bool on, const stdAc::opmode_t mode,
+
323  const float degrees, const stdAc::fanspeed_t fan,
+
324  const stdAc::swingv_t swingv,
+
325  const stdAc::swingh_t swingh,
+
326  const bool quiet);
+
327 #endif // SEND_MITSUBISHI112
+
328 #if SEND_MITSUBISHI136
+ +
330  const bool on, const stdAc::opmode_t mode,
+
331  const float degrees, const stdAc::fanspeed_t fan,
+
332  const stdAc::swingv_t swingv, const bool quiet);
+
333 #endif // SEND_MITSUBISHI136
+
334 #if SEND_MITSUBISHIHEAVY
+ +
336  const bool on, const stdAc::opmode_t mode,
+
337  const float degrees, const stdAc::fanspeed_t fan,
+
338  const stdAc::swingv_t swingv,
+
339  const stdAc::swingh_t swingh,
+
340  const bool turbo, const bool econo, const bool clean);
+ +
342  const bool on, const stdAc::opmode_t mode,
+
343  const float degrees, const stdAc::fanspeed_t fan,
+
344  const stdAc::swingv_t swingv,
+
345  const stdAc::swingh_t swingh,
+
346  const bool quiet, const bool turbo, const bool econo,
+
347  const bool filter, const bool clean,
+
348  const int16_t sleep = -1);
+
349 #endif // SEND_MITSUBISHIHEAVY
+
350 #if SEND_NEOCLIMA
+
351  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
+
352  const bool celsius, const float degrees,
+
353  const stdAc::fanspeed_t fan,
+
354  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
355  const bool turbo, const bool econo, const bool light,
+
356  const bool filter, const int16_t sleep = -1);
+
357 #endif // SEND_NEOCLIMA
+
358 #if SEND_PANASONIC_AC
+ +
360  const bool on, const stdAc::opmode_t mode, const float degrees,
+
361  const stdAc::fanspeed_t fan,
+
362  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
363  const bool quiet, const bool turbo, const bool filter,
+
364  const int16_t clock = -1);
+
365 #endif // SEND_PANASONIC_AC
+
366 #if SEND_PANASONIC_AC32
+
367  void panasonic32(IRPanasonicAc32 *ac,
+
368  const bool on, const stdAc::opmode_t mode,
+
369  const float degrees, const stdAc::fanspeed_t fan,
+
370  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
371 #endif // SEND_PANASONIC_AC32
+
372 #if SEND_SAMSUNG_AC
+
373  void samsung(IRSamsungAc *ac,
+
374  const bool on, const stdAc::opmode_t mode, const float degrees,
+
375  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
376  const bool quiet, const bool turbo, const bool light,
+
377  const bool filter, const bool clean,
+
378  const bool beep, const bool prevpower = true,
+
379  const bool forcepower = true);
+
380 #endif // SEND_SAMSUNG_AC
+
381 #if SEND_SANYO_AC
+
382  void sanyo(IRSanyoAc *ac,
+
383  const bool on, const stdAc::opmode_t mode, const float degrees,
+
384  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
385  const bool beep, const int16_t sleep = -1);
+
386 #endif // SEND_SANYO_AC
+
387 #if SEND_SHARP_AC
+
388  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
+
389  const bool on, const bool prev_power, const stdAc::opmode_t mode,
+
390  const float degrees, const stdAc::fanspeed_t fan,
+
391  const stdAc::swingv_t swingv, const bool turbo, const bool light,
+
392  const bool filter, const bool clean);
+
393 #endif // SEND_SHARP_AC
+
394 #if SEND_TCL112AC
+
395  void tcl112(IRTcl112Ac *ac,
+
396  const bool on, const stdAc::opmode_t mode, const float degrees,
+
397  const stdAc::fanspeed_t fan,
+
398  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
399  const bool turbo, const bool light, const bool econo,
+
400  const bool filter);
+
401 #endif // SEND_TCL112AC
+
402 #if SEND_TECHNIBEL_AC
+
403  void technibel(IRTechnibelAc *ac,
+
404  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
405  const float degrees, const stdAc::fanspeed_t fan,
+
406  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
407 #endif // SEND_TECHNIBEL_AC
+
408 #if SEND_TECO
+
409  void teco(IRTecoAc *ac,
+
410  const bool on, const stdAc::opmode_t mode, const float degrees,
+
411  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
412  const bool light, const int16_t sleep = -1);
+
413 #endif // SEND_TECO
+
414 #if SEND_TOSHIBA_AC
+
415  void toshiba(IRToshibaAC *ac,
+
416  const bool on, const stdAc::opmode_t mode, const float degrees,
+
417  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
418  const bool turbo, const bool econo);
+
419 #endif // SEND_TOSHIBA_AC
+
420 #if SEND_TROTEC
+
421  void trotec(IRTrotecESP *ac,
+
422  const bool on, const stdAc::opmode_t mode, const float degrees,
+
423  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
+
424 #endif // SEND_TROTEC
+
425 #if SEND_TRUMA
+
426  void truma(IRTrumaAc *ac,
+
427  const bool on, const stdAc::opmode_t mode, const float degrees,
+
428  const stdAc::fanspeed_t fan, const bool quiet);
+
429 #endif // SEND_TRUMA
+
430 #if SEND_VESTEL_AC
+
431  void vestel(IRVestelAc *ac,
+
432  const bool on, const stdAc::opmode_t mode, const float degrees,
+
433  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
434  const bool turbo, const bool filter,
+
435  const int16_t sleep = -1, const int16_t clock = -1,
+
436  const bool sendNormal = true);
+
437 #endif // SEND_VESTEL_AC
+
438 #if SEND_VOLTAS
+
439  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
+
440  const bool on, const stdAc::opmode_t mode,
+
441  const float degrees, const stdAc::fanspeed_t fan,
+
442  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
443  const bool turbo, const bool econo, const bool light,
+
444  const int16_t sleep = -1);
+
445 #endif // SEND_VOLTAS
+
446 #if SEND_WHIRLPOOL_AC
+ +
448  const bool on, const stdAc::opmode_t mode, const float degrees,
+
449  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
450  const bool turbo, const bool light,
+
451  const int16_t sleep = -1, const int16_t clock = -1);
+
452 #endif // SEND_WHIRLPOOL_AC
+
453 #if SEND_TRANSCOLD
+
454  void transcold(IRTranscoldAc *ac,
+
455  const bool on, const stdAc::opmode_t mode, const float degrees,
+
456  const stdAc::fanspeed_t fan,
+
457  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
458 #endif // SEND_TRANSCOLD
+
459 static stdAc::state_t cleanState(const stdAc::state_t state);
+
460 static stdAc::state_t handleToggles(const stdAc::state_t desired,
+
461  const stdAc::state_t *prev = NULL);
+
462 }; // IRac class
+
463 
+
465 namespace IRAcUtils {
+
466  String resultAcToString(const decode_results * const results);
+
467  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
+
468  const stdAc::state_t *prev = NULL);
+
469 } // namespace IRAcUtils
+
470 #endif // IRAC_H_
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:100
-
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:306
+
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:310
Support for Kelvinator A/C protocols.
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:130
-
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1115
+
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1121
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:121
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:792
-
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:134
-
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:129
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:799
+
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:135
+
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:130
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:184
-
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2898
-
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1769
-
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1191
+
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2944
+
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1775
+
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1197
Support for Electra A/C protocols.
-
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:818
-
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2761
+
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:822
+
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2807
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
Airwell "Manchester code" based protocol. Some other Airwell products use the COOLIX protocol.
-
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:695
+
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:699
Support for Trotec protocols.
-
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1725
+
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1731
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:658
-
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1297
+
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1303
Class for handling detailed Delonghi A/C messages.
Definition: ir_Delonghi.h:73
Class for handling detailed Corona A/C messages.
Definition: ir_Corona.h:107
-
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1263
+
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1269
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:740
+
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:907
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1001
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
Support for Sharp protocols.
-
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:3048
-
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:169
+
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:3094
+
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:170
Carrier A/C.
-
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2080
+
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2117
Results returned from the decoder.
Definition: IRrecv.h:92
-
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:764
-
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2039
-
void tcl112(IRTcl112Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1822
-
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2117
-
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2767
-
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2778
+
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:768
+
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2076
+
void tcl112(IRTcl112Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1828
+
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2154
+
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2813
+
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2824
Support for Midea protocols. Midea added by crankyoldgit & bwze.
Support for Daikin A/C protocols.
-
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:133
+
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:134
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1131
Support for Coolix A/C protocols.
-
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:1997
+
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:2034
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:371
-
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:531
-
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:55
+
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:535
+
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:56
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:836
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:90
-
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:139
-
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1684
-
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:571
+
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:140
+
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1690
+
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:575
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:246
-
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:46
-
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3117
+
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:47
+
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3163
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:106
-
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1046
+
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1052
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:459
-
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3019
-
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:98
-
std::string String
Definition: IRremoteESP8266.h:1208
+
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3065
+
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:99
+
std::string String
Definition: IRremoteESP8266.h:1217
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:242
-
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:1960
-
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2938
+
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:1966
+
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2984
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:362
EcoClim A/C protocol.
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:89
-
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:663
+
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:667
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:98
Support for TCL protocols.
-
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2790
-
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1083
-
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:734
+
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2836
+
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1089
+
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:738
Support for Transcold A/C protocols.
Support for Hitachi A/C protocols.
Support for Panasonic protocols.
-
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2166
+
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2203
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:308
-
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:145
+
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:146
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
-
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1409
-
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:3496
+
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1415
+
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:3549
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:303
-
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1225
+
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1231
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
-
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3123
-
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:608
+
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3169
+
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:612
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
Support for Gree A/C protocols.
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:84
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:151
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:121
-
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:104
-
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:157
+
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:105
+
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:169
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:112
-
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1334
-
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1606
-
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3070
+
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1340
+
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1612
+
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3116
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
-
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:50
+
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:51
Support for Teco protocols.
-
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1008
+
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1014
Delonghi A/C.
-
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:860
-
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2153
+
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:864
+
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2190
Support for Argo Ulisse 13 DCI Mobile Split ACs.
-
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1372
-
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:334
+
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1378
+
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:338
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
Class for handling detailed EcoClim A/C 56 bit messages.
Definition: ir_Ecoclim.h:84
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
@@ -656,65 +664,67 @@ $(function() {
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:67
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:244
-
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1565
+
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1571
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:892
-
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3026
+
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3072
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:137
-
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1924
+
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1930
Support for Goodweather compatible HVAC protocols.
-
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:366
-
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:175
-
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1445
+
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:370
+
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:176
+
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1451
-
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:105
-
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:1891
-
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2796
+
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:106
+
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:1897
+
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2842
Support for Sanyo protocols. Sanyo LC7461 support originally by marcosamarinho Sanyo SA 8650B origina...
-
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1152
+
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1158
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
-
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1642
+
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1648
Support for Whirlpool protocols. Decoding help from: @redmusicxd, @josh929800, @raducostea.
-
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3001
-
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:1480
-
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2857
+
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3047
+
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:1486
+
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2903
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:100
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:219
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:91
+
Support for Truma protocol.
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
-
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3094
-
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:902
+
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:1997
+
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3140
+
Class for handling detailed Truma A/C messages.
Definition: ir_Truma.h:69
Support for Technibel protocol.
-
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:794
-
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:106
+
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:798
+
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:107
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:314
-
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:641
-
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:496
-
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:86
-
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:1521
+
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:645
+
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:500
+
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:87
+
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:1527
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:271
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:133
-
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:435
-
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2826
+
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:439
+
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2872
Support for Toshiba protocols.
-
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:966
+
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:972
Structure to hold a common A/C state.
Definition: IRsend.h:97
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:100
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:127
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:120
-
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:139
+
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:140
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:944
Amcor A/C protocol.
-
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:103
-
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:1858
-
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:163
-
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:156
+
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:104
+
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:1864
+
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:164
+
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:157
Support for LG protocols.
-
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:398
+
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:402
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46