Hello,
I have two RGB LED’s connected to PCA9685. When even if one of them runs animation (Random), several seconds later, all of the I2C devices stop responding with this warning:
[W][i2c:076]: Unknown transmit error 4 for address 0x20
0x20 is MCP23017. Don’t know how it is related. This only affects I2C devices. ESP8266 is still responsive.
This is my problematic configuration:
esphome:
name: bedroom
platform: ESP8266
board: nodemcuv2
wifi:
ssid: "****"
password: "****"
manual_ip:
static_ip: 192.168.1.198
gateway: 192.168.1.1
subnet: 255.255.255.0
ap:
ssid: "*****"
password: "****"
captive_portal:
uart:
rx_pin: D4
tx_pin: D3
baud_rate: 9600
i2c:
sda: D2
scl: D1
scan: True
mcp23017:
- id: 'mcp23017_hub'
address: 0x20
spi:
clk_pin: D6
mosi_pin: D7
pca9685:
- frequency: 200
output:
- platform: pca9685
id: 'R1R'
channel: 9
- platform: pca9685
id: 'G1G'
channel: 10
- platform: pca9685
id: 'B1B'
channel: 11
- platform: pca9685
id: 'R2R'
channel: 12
- platform: pca9685
id: 'G2G'
max_power: 50%
channel: 13
- platform: pca9685
id: 'B2B'
channel: 14
mqtt:
broker: 192.168.1.200
username: "***"
password: "******"
text_sensor:
- platform: mqtt_subscribe
name: "Data from topic"
id: text
topic: sensor/text
light:
- platform: rgb
name: "Yatak Şerit"
red: "R1R"
green: "G1G"
blue: "B1B"
default_transition_length: 1s
effects:
- random:
- platform: rgb
name: "Mini LED"
red: "R2R"
green: "G2G"
blue: "B2B"
default_transition_length: 300ms
effects:
- random:
display:
- platform: max7219
cs_pin: D8
num_chips: 1
intensity: 1
update_interval: 150ms
lambda: |-
it.print("no VI-FI");
it.printf("%s", id(text).state.c_str());
switch:
- platform: gpio
name: "Yatak Şerit PWR LED"
pin:
mcp23xxx: mcp23017_hub
number: 6
mode: OUTPUT
inverted: False
- platform: gpio
name: "Yatak Şerit Oto LED"
pin:
mcp23xxx: mcp23017_hub
number: 8
mode: OUTPUT
inverted: False
- platform: gpio
name: "Yatak Spot PWR LED"
pin:
mcp23xxx: mcp23017_hub
number: 13
mode: OUTPUT
inverted: False
- platform: gpio
name: "Yatak Spot Oto LED"
pin:
mcp23xxx: mcp23017_hub
number: 11
mode: OUTPUT
inverted: False
- platform: gpio
name: "Yatak Odası Buzzer"
pin:
mcp23xxx: mcp23017_hub
number: 3
mode: OUTPUT
inverted: False
- platform: gpio
name: "Yatak Spot"
pin:
mcp23xxx: mcp23017_hub
number: 4
mode: OUTPUT
inverted: True
- platform: gpio
name: "Duraklat LED"
pin:
mcp23xxx: mcp23017_hub
number: 15
mode: OUTPUT
inverted: False
binary_sensor:
- platform: status
name: "Yatak Odası Wi-Fi"
- platform: gpio
name: "Yatak Hareket"
device_class: motion
pin:
number: D5
mode: INPUT_PULLUP
inverted: False
- platform: gpio
name: "Yatak Spot PWR Düğme"
pin:
mcp23xxx: mcp23017_hub
number: 12
mode: INPUT_PULLUP
inverted: True
- platform: gpio
name: "Yatak Spot Oto Düğme"
pin:
mcp23xxx: mcp23017_hub
number: 10
mode: INPUT_PULLUP
inverted: True
- platform: gpio
name: "Yatak Şerit Mod Düğme"
pin:
mcp23xxx: mcp23017_hub
number: 9
mode: INPUT_PULLUP
inverted: True
- platform: gpio
name: "Yatak Şerit Oto Düğme"
pin:
mcp23xxx: mcp23017_hub
number: 7
mode: INPUT_PULLUP
inverted: True
- platform: gpio
name: "Yatak Şerit PWR Düğme"
pin:
mcp23xxx: mcp23017_hub
number: 5
mode: INPUT_PULLUP
inverted: True
- platform: gpio
name: "Duraklat Düğme"
pin:
mcp23xxx: mcp23017_hub
number: 14
mode: INPUT_PULLUP
inverted: True
sensor:
- platform: mhz19
co2:
name: "Hava Kalitesi"
temperature:
name: "MH-Z19 Temperature"
update_interval: 30s
automatic_baseline_calibration: false
- platform: adc
pin: A0
name: "Yatak Odası Parlaklığı"
update_interval: 1s
- platform: aht10
temperature:
name: "Yatak Odası Sıcaklık"
filters:
- offset: -4
humidity:
name: "Yatak Odası Nem"
filters:
- offset: 5
update_interval: 20s
# Enable logging
logger:
level: WARN
# Enable Home Assistant API
#api:
ota:
If I reduce the transition duration like this, the problem disappears.
light:
- platform: rgb
name: "Yatak Şerit"
red: "R1R"
green: "G1G"
blue: "B1B"
default_transition_length: 1s
effects:
- random:
transition_length: 1s
update_interval: 30s
- platform: rgb
name: "Mini LED"
red: "R2R"
green: "G2G"
blue: "B2B"
default_transition_length: 300ms
effects:
- random:
transition_length: 1s
update_interval: 25s