Files
esphome/templates/mystrom.yaml
T
artem ba10ce84ec Improve WiFi reliability, especially on esp32-idf
That is, mystrom devices. BSS transition turned out to cause
issues (as Unifi was suggesting) when not client-supported.
2025-03-22 17:57:01 +00:00

124 lines
2.4 KiB
YAML

substitutions:
# Change this via CLI with:
# $ esphome -s name tools -s friendly_name Tools run mystrom.yaml
name: "spare-power-meter"
friendly_name: "Spare power meter"
esphome:
name: "${name}"
friendly_name: "${friendly_name}"
project:
name: "dasfoo.${name}"
version: "1.0"
esp32:
board: esp32doit-devkit-v1
framework:
type: esp-idf
packages:
mqtt: !include mqtt.yaml
ota: !include ota.yaml
wifi: !include wifi.yaml
uptime: !include uptime.yaml
restart: !include restart.yaml
syslog: !include syslog.yaml
logger:
wifi:
# BSS Transition Management support which we have enabled in APs.
enable_btm: true
i2c:
sda: 22
scl: 19
scan: false
status_led:
# Red LED on the front panel.
pin: GPIO16
binary_sensor:
- platform: gpio
id: mystrom_side
name: "Side button (plus) pressed"
pin:
number: GPIO23
mode:
input: true
pullup: true
inverted: true
- platform: gpio
id: mystrom_bottom
name: "Bottom button (power) pressed"
pin:
number: GPIO18
mode:
input: true
pullup: true
inverted: true
on_press:
then:
- switch.toggle: mystrom_relay
sensor:
- platform: pulse_counter
pin: 4
update_interval: 10s
id: mystrom_power_consumption
name: "Power relay consumption"
device_class: "power"
state_class: "measurement"
unit_of_measurement: "W"
accuracy_decimals: 0
filters:
- multiply: 3.29E-02 # pulse/min -> W
total:
name: "Energy consumption"
unit_of_measurement: "kWh"
device_class: "energy"
state_class: "total_increasing"
accuracy_decimals: 3
filters:
- multiply: 5.48E-07 # pulses -> kWh
- platform: tmp102
id: mystrom_temperature
name: "Internal temperature"
update_interval: 60s
entity_category: diagnostic
address: 0x48
on_value_range:
above: 80
then:
- switch.turn_off: mystrom_relay
- platform: duty_time
id: continuous_on_time
name: Continuous on time
lambda: "return id(mystrom_relay).state;"
accuracy_decimals: 0
switch:
- platform: gpio
name: None # Main entity for the device.
pin: GPIO27
id: mystrom_relay
restore_mode: RESTORE_DEFAULT_ON
device_class: outlet
on_turn_off:
- sensor.duty_time.reset: continuous_on_time
- platform: gpio
# Exposing this as a switch rather than light to avoid
# automations and dashboard picking it up as illuminance
# source.
name: "Identify LED (white)"
restore_mode: ALWAYS_OFF
pin:
number: GPIO17
inverted: true