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 script: - id: power_cycle_relay mode: single then: - if: condition: switch.is_on: mystrom_relay then: - switch.turn_off: mystrom_relay - delay: 7s - switch.turn_on: mystrom_relay button: - platform: template name: "Power cycle relay" icon: "mdi:restart" on_press: - script.execute: power_cycle_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