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

Maintenance Reminder/Calendar #266

Closed
3 tasks done
Seversonic opened this issue Feb 8, 2023 · 12 comments · Fixed by #362
Closed
3 tasks done

Maintenance Reminder/Calendar #266

Seversonic opened this issue Feb 8, 2023 · 12 comments · Fixed by #362

Comments

@Seversonic
Copy link

What is the problem you are trying to solve with this feature?

I help manage my family farm, as well as my own household and can't keep track of when/what I'm supposed do for recurring maintenance (every spring, every 6 weeks, etc). I have no history of what was done, sometimes I forget what tools and parts I need.

I want a reminder to check my furnace every spring, change the air filter in the car every 6 months, check smoke detector batteries. this way I can preemptively buy parts and keep track of what was done, when.

What is the solution you are proposing?

Allow users to schedule recurring maintenance tasks (change oil filter, replace furnace filter), that appear on a calendar, as well as show the total cost of ownership of an asset over it's life.

Show a calendar on the homepage with the upcoming maintenance items for the month, and send reminders (webhooks? emails?) beforehand.

What alternatives have you considered?

Grocy. It sucks for this purpose.
Calendars work, but miss out on the ability to show total maintenance costs for items, reciepts, notes/tips/tricks for doing the work

Additional context

No response

Contributions

  • I have searched through existing issues and feature requests to see if my idea has already been proposed.
  • If this feature is accepted, I would be willing to help implement and maintain this feature.
  • If this feature is accepted, I'm willing to sponsor the development of this feature.
@hay-kot
Copy link
Owner

hay-kot commented Feb 8, 2023

Related to


I've been doing some thinking about this lately and the overall implementation, and would love some feedback on what I'm envisioning. I'm thinking that the implementation will be a more general "Reminders" feature.

Each item will have a new tab for reminders.

Reminders will have the following fields

  • Name (required)
  • Description (optional, and supports markdown)
  • reoccurring (yes/no)
    • if yes: reoccurring interval (unsure of format)
    • if no: scheduled date
  • Reminder Category
    • Maintenance - Maintenance reminders can/will show up in the maintenance logs
    • ??? - unsure if we should support custom categories
  • State
    • Active/Inactive - reminders that are inactive are filtered from view. one off reminders are automatically set to inactive after their occurrence date

There will also be a /reminders route where you can view all your reminders in a list view, maybe a calendar in the future, but I hate making those.

Something I'm not sure how to implement is how we track completion of reoccurring reminders. For example, if I have a reoccurring reminder for the 1st of every month, what happens if I miss it? I need some way to tell Homebox that I've completed the maintenance. Still thinking on this one.

As for notifications, we can use the https://github.com/containrrr/shoutrrr package to support multiple different notification endpoints. These will be configured in the users profile and shared across the group.

Reminders Tab

CleanShot 2023-02-08 at 08 42 00@2x

Reminders Dashboard

CleanShot 2023-02-08 at 08 48 22@2x

@Seversonic
Copy link
Author

Thanks for pointing out shoutrr, didnt know it existed! Will spin that up tonight.

I like your proposed idea, I think it hits pretty much everything I was thinking of, minus a few fields.

For task completion I was just going to suggest:
Scheduled Date:
Completion Date:
Reminders Start Date:
Reminders End Date: (If you only need to do weekly maintenance for the first year, then monthly after)

Maybe another state for a scheduled log could be Incomplete? Deferred, ignored?

I envision the completing a scheduled log by clicking on a reminder, it brings up the log page and then just submitting it? (not a web developer, just dabbled so I dont know level of effort for implementing a lot of this stuff).

Other fields would be nice, but not necessary like:

Estimated Completion Time:
Actual Completion Time:
Work done by: Person Name (this could be a company frequently used, person)

@hay-kot
Copy link
Owner

hay-kot commented Feb 8, 2023

Those are some good points, maybe we adjust my implementation slights so

Maintenance Entries could have a "status" field that could be "Scheduled", "Completed", "Deferred", "Ignored"

Maintenance Reminders would have a field for something like "Remind me x days before", then when we are x days for the "due" date we create a new Maintenance entry in a "Scheduled" state and have another background process that reminds the group every x days until the task moves from scheduled to complete.

This would also have the added benefit of removing the need for one-off reminders since you could just create a Maintenance Entry in the "Scheduled" status with the appropriate date and the background process would handle notifications accordingly. Then we would only need reminders for reoccurring tasks.

@hay-kot
Copy link
Owner

hay-kot commented Mar 21, 2023

FYI - closes with #362 as an initial implementation. I'd like to get some more feedback with people actually using it and then take another look at implementing some additional features related to scheduled maintenance.

@dmontoya3
Copy link

could you explain a bit more of the shoutrrr implementation? I'm trying to get some notifications to IFTTT but can't seem to get it right. Could you share some examples?

@hay-kot
Copy link
Owner

hay-kot commented Apr 5, 2023

could you explain a bit more of the shoutrrr implementation? I'm trying to get some notifications to IFTTT but can't seem to get it right. Could you share some examples?

Im not sure what to explain.

The shoutrr docs have an example for the url format, https://containrrr.dev/shoutrrr/0.7/services/ifttt/

If you paste a url in it should work. Can you be more specific about your issue?

@dmontoya3
Copy link

dmontoya3 commented Apr 5, 2023

In homebox I place the name and URL
image

When I test it. HomeBox says "Failed to test notifier" but it actually works. IFTTT Gets the web request and process it accordingly (sends me an app notification to me)

I'm trying also with Home Assistant. In this case the test says it was succesful and it did work.
image

But when I submit it, HomeBox says "Failed to create notifier"

image

Logs show this
image

@hay-kot
Copy link
Owner

hay-kot commented Apr 5, 2023

Ohh, That looks like a validation bug, I wrote some custom logic to ensure that the formats of the URLs are correct, but clearly It's not correct. Can you submit a new issue with the info you provided and an example URL so I can track this and get it fixed?

@dmontoya3
Copy link

Sure I'll open up the issue. Thanks for your great work

@dmontoya3
Copy link

Also it would be nice to know what does HomeBox places in the notification so we could now how to handle it. I would like to know if it is just one big message or do we get the Asset, location, scheduled date, maintenance task title, maintenance task body, and cost separately to process them accordingly in IFTTT or HomeAssistant

@erahhal
Copy link

erahhal commented Jan 1, 2024

Trying out HomeBox for the first time today, use case is managing recurring maintenance. I may have missed something but it doesn't appear that scheduling recurring maintenance has been implemented yet. Will it be implemented as part of this ticket or should I open another issue? Thanks!

@erahhal
Copy link

erahhal commented Jan 1, 2024

Ahh, it looks like #516 is tracking recurring schedules. Subscribed.

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

Successfully merging a pull request may close this issue.

4 participants