testicle/esphome/device_packages/shelly-plug-series.yaml
2026-01-25 14:30:24 +01:00

110 lines
No EOL
2.6 KiB
YAML

esp8266:
board: esp8285
binary_sensor:
- platform: gpio
pin:
number: GPIO13
inverted: True
name: "${devicename}_button"
on_press:
- switch.toggle: relay
status_led:
pin:
number: GPIO00
inverted: True
output:
- platform: gpio
pin: GPIO02
inverted: true
id: led
switch:
- platform: gpio
pin: GPIO15
id: relay
name: "${channel_1}"
on_turn_on:
- output.turn_on: led
on_turn_off:
- output.turn_off: led
sensor:
# NTC Temperature
- platform: ntc
sensor: temp_resistance_reading
name: ${devicename} temperature
unit_of_measurement: "°C"
accuracy_decimals: 1
icon: "mdi:thermometer"
calibration:
b_constant: 3350
reference_resistance: 10kOhm
reference_temperature: 298.15K
on_value_range:
- above: ${max_temp}
then:
- switch.turn_off: relay
- homeassistant.service:
service: persistent_notification.create
data:
title: Message from ${devicename}
data_template:
message: Switch turned off because temperature exceeded ${max_temp}°C
- platform: resistance
id: temp_resistance_reading
sensor: temp_analog_reading
configuration: DOWNSTREAM
resistor: 32kOhm
- platform: adc
id: temp_analog_reading
pin: A0
- platform: hlw8012
model: BL0937
sel_pin:
number: GPIO12
inverted: true
cf_pin: GPIO05
cf1_pin: GPIO14
current_resistor: ${current_res}
voltage_divider: ${voltage_div}
current:
name: "${channel_1} current"
unit_of_measurement: "A"
accuracy_decimals: 3
icon: mdi:flash-outline
voltage:
name: "${channel_1} voltage"
unit_of_measurement: "V"
icon: mdi:flash-outline
power:
name: "${channel_1} power"
id: power
unit_of_measurement: "W"
filters:
- calibrate_linear:
- 0.0 -> 0.0
- ${power_cal_meas} -> ${power_cal_real}
icon: mdi:flash-outline
on_value_range:
- above: ${max_power}
then:
- switch.turn_off: relay
- homeassistant.service:
service: persistent_notification.create
data:
title: Message from ${devicename}
data_template:
message: Switch turned off because power exceeded ${max_power}W
update_interval: 10s
- platform: total_daily_energy
name: "${channel_1} daily energy"
power_id: power
filters:
# Multiplication factor from W to kW is 0.001
- multiply: 0.001
unit_of_measurement: kWh