Skip to content

Commit

Permalink
hardware: add support for Yagusmart 1, 2 add 3 gang switches (#2488)
Browse files Browse the repository at this point in the history
* Add support for Yagusmart 1, 2 ad 3 gang switches

https://www.amazon.co.uk/gp/product/B086MV5MC8

These don't come with an esp8266 anymore, but can be trivially converted
as the new chip is pin compatible. Note, GPIO15 needs to be connected to
GND on 1 and 2 gang switches in order to enable the ESP to boot.

* Update code/platformio.ini

Co-authored-by: Max Prokhorov <prokhorov.max@outlook.com>

* Adjust build flags and name to be conformant to project culture and conventions

* changelog

* sorting

Co-authored-by: Max Prokhorov <prokhorov.max@outlook.com>
  • Loading branch information
MelanieT and mcspr committed Nov 25, 2021
1 parent 8d4c4a5 commit 0344260
Show file tree
Hide file tree
Showing 3 changed files with 135 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -119,6 +119,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Add support for Gosund P1 Power Strip ([#2391](https://github.com/xoseperez/espurna/issues/2391), thanks to **[@alextircovnicu](https://github.com/alextircovnicu)**)
- Add support for Mirabella Genio White A60 globe ([#2439](https://github.com/xoseperez/espurna/issues/2439], [2fc559fa](https://github.com/xoseperez/espurna/commit/2fc559fa5596c6ae3f3cc906177e287c38c6333e), thanks to **[@andrewleech](https://github.com/andrewleech)**)
- Refactor iFan into a separate module ([a40eca30](https://github.com/xoseperez/espurna/commit/a40eca30ad79315afdb67afa0b0743d4c0087e93))
- Add support for Yagusmart switches ([#2488](https://github.com/xoseperez/espurna/pull/2488), thanks to **[@MelanieT](https://github.com/MelanieT)**)
#### HomeAssistant
- Advertise lights transition support in the discovery message ([4d157ccd5](https://github.com/xoseperez/espurna/commit/4d157ccd5bd5ffefa8b0bca79c4b2196c8a3e5dc))
- Reworked discovery, implement retries and queueing using the MQTT broker ACKs ([59269789](https://github.com/xoseperez/espurna/commit/59269789dc80308e9afc1e4b3051d9d33e13bf8f))
Expand Down
122 changes: 122 additions & 0 deletions code/espurna/config/hardware.h
Expand Up @@ -5013,6 +5013,128 @@
// Light
#define LIGHT_CH1_PIN 14 // WHITE

// -----------------------------------------------------------------------------
// https://www.amazon.co.uk/gp/product/B086MV5MC8
//
// These don't come with an esp8266 anymore, but can be trivially converted
// as the new chip is pin compatible. Note, GPIO15 needs to be connected to
// GND on 1 and 2 gang switches in order to enable the ESP to boot.
//
// Older versions and some US models may still ship with ESP8266.
//
// Caution, do NOT solder a serial port while the board is connected to the mains baseboard,
// it will blow your fuse and your USB!
// If you need to flash with a programmer, use a bench power supply on the logic board only!
// -----------------------------------------------------------------------------

#elif defined(YAGUSMART_TOUCH_HWMOD_1G)
#define MANUFACTURER "YAGUSMART"
#define DEVICE "TOUCH_HWMOD_1G"

#define BUTTON1_CONFIG BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
#define BUTTON1_PIN 3
#define BUTTON1_RELAY 1
#define BUTTON1_PRESS BUTTON_ACTION_TOGGLE
#define BUTTON1_CLICK BUTTON_ACTION_NONE

#define RELAY1_TYPE RELAY_TYPE_NORMAL
#define RELAY1_PIN 13

#define LED2_PIN 14
#define LED2_PIN_INVERSE 1
#define LED2_MODE LED_MODE_FOLLOW
#define LED2_RELAY 1

#define LED1_PIN 0
#define LED1_PIN_INVERSE 1
#define LED1_MODE LED_MODE_WIFI

#define DEBUG_SERIAL_SUPPORT 0

#elif defined(YAGUSMART_TOUCH_HWMOD_2G)
#define MANUFACTURER "YAGUSMART"
#define DEVICE "TOUCH_HWMOD_2G"

#define BUTTON1_CONFIG BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
#define BUTTON1_PIN 3
#define BUTTON1_RELAY 1
#define BUTTON1_PRESS BUTTON_ACTION_TOGGLE
#define BUTTON1_CLICK BUTTON_ACTION_NONE

#define BUTTON2_CONFIG BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
#define BUTTON2_PIN 5
#define BUTTON2_RELAY 2
#define BUTTON2_PRESS BUTTON_ACTION_TOGGLE
#define BUTTON2_CLICK BUTTON_ACTION_NONE

#define RELAY1_TYPE RELAY_TYPE_NORMAL
#define RELAY1_PIN 13
#define RELAY2_TYPE RELAY_TYPE_NORMAL
#define RELAY2_PIN 4

#define LED2_PIN 14
#define LED2_PIN_INVERSE 1
#define LED2_MODE LED_MODE_FOLLOW
#define LED2_RELAY 1

#define LED3_PIN 1
#define LED3_PIN_INVERSE 1
#define LED3_MODE LED_MODE_FOLLOW
#define LED3_RELAY 2

#define LED1_PIN 0
#define LED1_PIN_INVERSE 1
#define LED1_MODE LED_MODE_WIFI

#define DEBUG_SERIAL_SUPPORT 0

#elif defined(YAGUSMART_TOUCH_HWMOD_3G)
#define MANUFACTURER "YAGUSMART"
#define DEVICE "TOUCH_HWMOD_3G"

#define BUTTON1_CONFIG BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH | BUTTON_SET_PULLUP
#define BUTTON1_PIN 12
#define BUTTON1_PRESS BUTTON_ACTION_TOGGLE
#define BUTTON1_CLICK BUTTON_ACTION_NONE

#define BUTTON2_CONFIG BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH | BUTTON_SET_PULLUP
#define BUTTON2_PIN 3
#define BUTTON2_PRESS BUTTON_ACTION_TOGGLE
#define BUTTON2_CLICK BUTTON_ACTION_NONE

#define BUTTON3_CONFIG BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH | BUTTON_SET_PULLUP
#define BUTTON3_PIN 5
#define BUTTON3_PRESS BUTTON_ACTION_TOGGLE
#define BUTTON3_CLICK BUTTON_ACTION_NONE

#define RELAY1_TYPE RELAY_TYPE_NORMAL
#define RELAY1_PIN 13
#define RELAY2_TYPE RELAY_TYPE_NORMAL
#define RELAY2_PIN 4
#define RELAY3_TYPE RELAY_TYPE_NORMAL
#define RELAY3_PIN 15

#define LED2_PIN 16
#define LED2_PIN_INVERSE 1
#define LED2_MODE LED_MODE_FOLLOW
#define LED2_RELAY 1

#define LED3_PIN 14
#define LED3_PIN_INVERSE 1
#define LED3_MODE LED_MODE_FOLLOW
#define LED3_RELAY 2

#define LED4_PIN 1
#define LED4_PIN_INVERSE 1
#define LED4_MODE LED_MODE_FOLLOW
#define LED4_RELAY 3

#define LED1_PIN 0
#define LED1_PIN_INVERSE 1
#define LED1_MODE LED_MODE_WIFI

#define DEBUG_SERIAL_SUPPORT 0

#else

#error "UNSUPPORTED HARDWARE!!"
Expand Down
12 changes: 12 additions & 0 deletions code/platformio.ini
Expand Up @@ -1047,3 +1047,15 @@ src_build_flags = -DLSC_E27_10W_WHITE
extends = env:esp8266-4m-base
board = d1_mini
src_build_flags = -DWEMOS_D1_MINI -DGARLAND_SUPPORT=1

[env:yagusmart-touch-hwmod-1g]
extends = env:esp8266-1m-base
src_build_flags = -DYAGUSMART_TOUCH_HWMOD_1G

[env:yagusmart-touch-hwmod-2g]
extends = env:esp8266-1m-base
src_build_flags = -DYAGUSMART_TOUCH_HWMOD_2G

[env:yagusmart-touch-hwmod-3g]
extends = env:esp8266-1m-base
src_build_flags = -DYAGUSMART_TOUCH_HWMOD_3G

0 comments on commit 0344260

Please sign in to comment.