Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: Best way to implement delay start time #195

Open
TheSimpleZ opened this issue Jan 19, 2025 · 3 comments
Open

Question: Best way to implement delay start time #195

TheSimpleZ opened this issue Jan 19, 2025 · 3 comments

Comments

@TheSimpleZ
Copy link
Contributor

I've been looking at how to implement delay start time for my dishwasher.
I've figured out I need to send an update request with Delay_start_status and Delay_start_time simultaneously.
Delay_start_status needs to be set to 1 and Delay_start_time is set to the number of hours I want to delay the start time by.
My understanding is that the integration doesn't currently support this scenario. So I'd like for some advice on how to best implement it.

I have 2 suggestions:

  1. Create a service called something along the lines of Set_delay_start_time which would set both values.
  2. Extend the YAML to allow for multiple commands to be specified under a select entity. Also add a value property to the commands which would send a static value rather than grabbing the value from the options. All commands would be sent simultaneously when updating the value.

1 would be easier to implement, but wouldn't support other cases where multiple values are needed in the command. It also wouldn't look as nice to have a service send the delay time value and a sensor showing the current delay time.
2 would add more complexity, but is more generic and can cover more cases.

If I go with 2 I would also have to either introduce a new field called commands that accepts a list or do a breaking change and make the command field a list.

I'm leaning towards doing the second option with a new field, but I'd like to check if you have any ideas on how to do this more smoothly.

Thanks!

@oyvindwe
Copy link
Owner

You also need to send two properties to enable auto dose. And other appliances also may need to send multiple properties for other operations. Some of these properties may be write only, i.e. won't have entities generated with the current setup.

I think a device service that sends a map (dict) of properties with values or even just a JSON string is useful for experimenting, so I'd start with that. It would be nice to be able to define services/actions per device in the mapping files, but that looks very complex to me. To shown up in developer tools in HA, it looks like all services also must be registered in services.yaml. Device actions may be worth looking into instead.

@oyvindwe
Copy link
Owner

Thinking a bit more about this - as long as the extra arguments can be hard coded per command, but still different for e.g. on and off, is option 2 is probably fine. There are probably a number of cases where this is needed, so a generic approach will be more useful.

I'm not sure what the best way to set e.g. auto dose is, as enabling auto dose requires the quantity to be set to a different value than 0 in the request, while disabling seems to implicitly set it to 0. In this case, perhaps the switch should be disabled, and quantity 0 should also disable auto dose, while setting any other quantity should include enabling auto dose?

@TheSimpleZ
Copy link
Contributor Author

Sounds good. I'll experiment a bit and see what i can come up with :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants