Le tout nouveau Sonoff DualR3, un interrupteur intelligent Wi-Fi à double relais avec mesure de puissance. Cet interrupteur intelligent permet de commander deux lampes, des appareils électroménagers et des installations motorisées telles que des stores et des volets. Selon Sonoff, il s’agit du premier interrupteur intelligent certifié par le TUV et offrant un haut niveau de qualité et de fiabilité.
![]() |
Sur la boîte, il est indiqué qu’il s’agit d’un interrupteur intelligent DIY DUALR3, 2-gang WIFI. En l’ouvrant, nous avons constaté qu’il y avait en fait un ESP32 à l’intérieur. Cela explique l’option ‹ Bluetooth pairing ›, qui est mentionnée sur le site web de Sonoff. Nous avons constaté qu’il n’y a pas de headers sur la carte pour faciliter la programmation externe de l’ESP, alors espérons que le ‹ DIY › signifie que cette carte a l’architecture DIY qui permet le flashage Over The Air (OTA) du firmware de la carte. Nous avons testé cela, mais après avoir mis le Dual R3 en mode AP, il obtient 192.168.1.1 et non l’adresse IP familière 10.10.7.1. Visiter 192.168.1.1 depuis le navigateur ne donne qu’une chaîne de données JSON inutile 🙁. |
L’appairage Bluetooth à l’aide du logiciel EWlink fonctionne comme un charme, il n’y a rien à redire, mais l’appareil deviendrait certainement beaucoup plus intéressant pour nous, les nerds de la domotique, si nous pouvions flasher le firmware de Tasmota ou d’Esphome 😛.
Nous nous sommes donc frayé un chemin dans ce « truc » et avons soudé quelques fils aux minuscules pastilles de soudure TX-RX, GND et 3V3 sur la carte. Nous avons ensuite connecté une interface UART et appuyé sur le bouton du Sonoff pendant le démarrage… et voilà !

Nous avons mis une configuration esp32 esphome par défaut avec seulement les modules wifi, portail captif, api, OTA et logger actifs et nous avons démarré la « chose » :
INFO Starting log output from sonoff_dualr3.local using esphome API
INFO Connecting to sonoff_dualr3.local:6053 (192.168.207.226)
INFO Successfully connected to sonoff_dualr3.local
[17:58:45][I][app:105]: ESPHome version 1.16.2 compiled on Mar 4 2021, 17:40:36
[17:58:45][C][wifi:443]: WiFi:
[17:58:45][C][wifi:303]: SSID: [redacted]
[17:58:45][C][wifi:304]: IP Address: 192.168.207.226
[17:58:45][C][wifi:306]: BSSID: [redacted]
[17:58:45][C][wifi:307]: Hostname: 'sonoff_dualr3'
[17:58:45][C][wifi:311]: Signal strength: -68 dB ▂▄▆█
[17:58:45][C][wifi:315]: Channel: 1
[17:58:45][C][wifi:316]: Subnet: 255.255.255.0
[17:58:45][C][wifi:317]: Gateway: 192.168.207.1
[17:58:45][C][wifi:318]: DNS1: 192.168.207.101
[17:58:45][C][wifi:319]: DNS2: 0.0.0.0
[17:58:46][C][logger:185]: Logger:
[17:58:46][C][logger:186]: Level: DEBUG
[17:58:46][C][logger:187]: Log Baud Rate: 115200
[17:58:46][C][logger:188]: Hardware UART: UART0
[17:58:46][C][captive_portal:169]: Captive Portal:
[17:58:46][C][web_server:132]: Web Server:
[17:58:46][C][web_server:133]: Address: sonoff_dualr3.local:80
[17:58:46][C][ota:029]: Over-The-Air Updates:
[17:58:46][C][ota:030]: Address: sonoff_dualr3.local:3232
[17:58:46][C][ota:032]: Using Password.
[17:58:46][C][api:095]: API Server:
[17:58:46][C][api:096]: Address: sonoff_dualr3.local:6053
[17:58:46][C][wifi_signal.sensor:009]: WiFi Signal 'WiFi Signal Sonoff DualR3'
[17:58:46][C][wifi_signal.sensor:009]: Unit of Measurement: 'dB'
[17:58:46][C][wifi_signal.sensor:009]: Accuracy Decimals: 0
[17:58:46][C][wifi_signal.sensor:009]: Icon: 'mdi:wifi'
Après quelques essais, nous avons trouvé les GPIO pour la LED. Bouton, relais et interrupteurs.
esphome yaml :
substitutions:
devicename: sonoff-dualr3
long_devicename: Sonoff DualR3
esphome:
name: $devicename
platform: ESP32
board: esp32dev
wifi:
ssid: !secret esphome_wifi_ssid
password: !secret esphome_wifi_password
power_save_mode: light
ap:
ssid: $devicename
password: !secret esphome_ap_password
captive_portal:
api:
password: !secret esphome_api_password
ota:
password: !secret esphome_ota_password
web_server:
port: 80
logger:
baud_rate: 0
# remove # below to enable ble tracking
#esp32_ble_tracker:
uart:
tx_pin: GPIO25
rx_pin: GPIO26
baud_rate: 38400
parity: EVEN
stop_bits: 1
sensor:
- platform: wifi_signal
name: "$long_devicename WiFi Signal"
update_interval: 60s
- platform: cse7761
update_interval: 5s
voltage:
name: "$long_devicename Voltage"
current_1:
name: "$long_devicename Current 1"
current_2:
name: "$long_devicename Current 2"
active_power_1:
name: "$long_devicename Power 1"
active_power_2:
name: "$long_devicename Power 2"
output:
- platform: gpio
pin: GPIO27
id: relay1
- platform: gpio
pin: GPIO14
id: relay2
switch:
- platform: output
name: "$long_devicename - relay 1"
output: relay1
id: sw1
- platform: output
name: "$long_devicename - relay 2"
output: relay2
id: sw2
status_led:
pin:
number: GPIO13
inverted: yes
binary_sensor:
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
name: "$long_devicename button"
on_press:
- logger.log: "$long_devicename button"
- switch.toggle: sw1
- platform: gpio
pin:
number: GPIO32
mode: INPUT_PULLUP
inverted: True
name: "$long_devicename switch 1"
on_press:
- logger.log: "$long_devicename switch 1"
- switch.toggle: sw1
- platform: gpio
pin:
number: GPIO33
mode: INPUT_PULLUP
inverted: True
name: "$long_devicename switch 2"
on_press:
- logger.log: "$long_devicename switch 2"
- switch.toggle: sw2
Le Ble tracking fonctionne également :
[21:08:41][D][esp32_ble_tracker:544]: Found device 54:D2:72:XX:XX:XX RSSI=-89
[21:08:41][D][esp32_ble_tracker:565]: Address Type: PUBLIC
[21:08:41][D][esp32_ble_tracker:567]: Name: 'Nuki_XXXXXXXX' [redacted]
Lien vers Tasmota - comment flasher
