Slow PWM Output¶
Similar to PWM, the Slow PWM Output platform allows you to control GPIO pins by pulsing them on/off over a longer time period. It could be used to control a heating element through a relay where a fast PWM update cycle would not be appropriate.
Note
This is for slow PWM output. For fast-switching PWM outputs (for example, lights), see these outputs:
ESP32: ESP32 LEDC Output
ESP8266: ESP8266 Software PWM Output
# Example configuration entry
output:
- platform: slow_pwm
pin: D1
id: my_slow_pwm
period: 15s
Configuration variables:¶
id (Required, ID): The id to use for this output component.
period (Required, Time): The duration of each cycle. (i.e. a 10s period at 50% duty would result in the pin being turned on for 5s, then off for 5s)
pin (Optional, Pin Schema): The pin to pulse.
state_change_action (Optional, Automation): An automation to perform when the load is switched. If a lambda is used the boolean
state
parameter holds the new status.turn_on_action (Optional, Automation): An automation to perform when the load is turned on. Can be used to control for example a switch or output component.
turn_off_action (Optional, Automation): An automation to perform when the load is turned off.
turn_on_action
andturn_off_action
must be configured together.restart_cycle_on_state_change (Optional, boolean): Restart a timer of a cycle when new state is set. Defaults to
false
.All other options from Output.
Note
If
pin
is defined the GPIO pin state is writen before any action is executed.state_change_action
andturn_on_action
/turn_off_action
can be used togther.state_change_action
is called beforeturn_on_action
/turn_off_action
. It’s recommended to use eitherstate_change_action
orturn_on_action
/turn_off_action
to change the state of an output. Using both automations together is only recommended for monitoring.
Example:¶
output:
- platform: slow_pwm
id: my_slow_pwm
period: 15s
turn_on_action:
- lambda: |-
auto *out1 = id(output1);
out1->turn_on();
turn_off_action:
- output.turn_off: output1