Hi all, Total noob to HA so apologies in advance. I’m running HA on Freenas and have been dabbling with yaml and starting to get somewhere but there is a schedule I want to develop that I can’t find a similar example of, which is surprising given how common a scenario it must be. It’s basically an HA equivalent of one of those digital timer power sockets that can be programmed for days of the week.
I am going to get a Zwave power socket that I want to use to control my coffee machine to come on and off at specific times on given days of the week. I want to have a Mon-Fri on and off time schedule, and then a Sat-Sun on and off schedule. I’d also like to be able to override this at any time with a simple virtual switch.
What’s the simplest method to achieve this?
Rather than coming begging as a new forum member, I’ve at least had a crack at it, using Schedy. The idea is that the schedule can change depending on whether I’m working from home or at the office, and there is a means to overide the schedule by switching it to off or on (constant). I have no idea if the below code is correct though (I adapted it from the Schedy tutorial) and I’ve realised I don’t really know how I integrate it with HA and link it to the switch entity. Can someone help me get it over the line please?
## This goes in schedy_coffee.yaml in AppDaemon’s apps directory:
schedy_coffee: # This is our app instance name.
module: hass_apps_loader
class: SchedyApp
actor_type: switch
expression_environment: |
def schedule_mode():
return state("input_select.schedule_mode")
watched_entities:
- input_select.schedule_mode
rooms:
kitchen:
actors:
switch.kitchen_1:
schedule:
- v: "ON"
rules:
- weekdays: 1-5 #Mon-Fri
rules:
- rules:
- x: "Next() if schedule_mode() == 'Normal' else Break()"
- { start: "06:00", end: "08:00" }
- rules:
- x: "Next() if schedule_mode() == 'WFH or on leave' else Break()"
- { start: "06:30", end: "15:00" }
- rules:
- x: "Next() if schedule_mode() == 'Off' else Break()"
- v: "OFF"
- rules:
- x: "Next() if schedule_mode() == 'On (constant)' else Break()"
- v: "ON"
- weekdays: 6-7 #Sat-Sun
rules:
- rules
- x: "Next() if schedule_mode() =! 'Off' else Break()"
- { start: "06:30", end: "10:00" }
- { start: "12:00", end: "15:00" }
- rules
- x: "Next() if schedule_mode() == 'On (constant)' else Break()"
- v: "ON"
- v: "OFF"
## This goes in the HA configuration.yaml
input_select:
schedule_mode:
name: Coffee machine schedule mode
options:
- Normal
- WFH or on leave
- Off
- On (constant)