substitutions: # Change this via CLI with: # $ esphome -s name tools run mystrom.yaml name: "spare-power-meter" esphome: name: "${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 logger: i2c: sda: 22 scl: 19 scan: false status_led: # Red LED on the front panel. pin: GPIO16 light: - platform: binary name: "Identify LED (white)" id: mystrom_led_identify restore_mode: ALWAYS_OFF output: mystrom_led_white output: - id: mystrom_led_white platform: gpio pin: GPIO17 inverted: true 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: # Map from sensor -> measured value (pulse/min -> W), # taken from https://github.com/mightea/esphome-mystrom-devices - calibrate_linear: - 0.0 -> 1.55 - 2698.5 -> 85 - 4397.25 -> 146 - 30900 -> 1005 - 44634.56 -> 1439 - 59643.75 -> 1930 # Correct 1.55W for the power usage of the plug. - offset: -1.55 # Make everything below 1W appear as just 0W. - lambda: if (x < 1) return 0; return x; - platform: integration sensor: mystrom_power_consumption name: "Power consumption total" time_unit: "h" unit_of_measurement: "kWh" device_class: "energy" state_class: "total_increasing" accuracy_decimals: 2 filters: - multiply: 0.001 - 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 switch: - platform: gpio name: None # Main entity for the device. pin: GPIO27 id: mystrom_relay restore_mode: RESTORE_DEFAULT_ON device_class: outlet