My Home Assistant Yells at Me Now
I kept forgetting to log hours for work—until I built a Home Assistant integration that checks my entries daily, and sends sarcastic reminders using AI. So, here is the full DIY setup!

At my current workplace, we are using a tool called Clockify for time tracking / as a time sheet. After forgetting to fill it out one too many times, and catching a few well-deserved slaps on the wrist, I've finally had enough! Time to take matters into my own hands!
Enter: Home Assistant. My beloved smart home platform that does way more than just turn on lights and check the temperature. It’s free, open source, and honestly magical. If you haven’t heard of it before, this will be a great showcase of the more advanced use cases possible with it :)
All good things start with an idea
A few days back, a perfect solution to my problem popped into my noggin while aimlessly walking home; What if I made a Home Assistant integration that exposes my daily tracked hours, a DeepSeek integration for creating funny messages, and a Home Assistant automation for making the check & sending the notification (that will yell at me). So here we are now, building it together! Let me take you through devising the idea, designing the implementation, and well, implementing it!
I haven't messed around with Python in a while, and I've never written anything for Home Assistant so far, so I will have to rely on some AI assistance in bridging the gap :)
The Clockify Integration
The core component of the project, and it has a couple of moving parts:
- Handling the configuration flow, which only has one user entry required, the API key for Clockify, and also a configurable poll rate (how often to update the hour count)
- Fetch the current user, and extract the user ID to which the API key belongs to. We need it for the following API calls
- Fetch all workspaces for the just-now-extracted user ID.
- Iterate through all workspaces, calling the GET time entries API endpoint, and collect all the responses. We must make sure to only fetch time entries from the current day.
- Iterate through all the responses and sum up the total value of hours worked today.
- Update the sensor property exposed to Home Assistant.
The Clockify integration's purpose is to only expose the total hours worked in the current day. We will leverage Home Assistant's Automations to carry out the heavy lifting around actually sending the reminder.
We are building the DeepSeek integration separately, since I also plan to use it for other automations, like my Roomba reminder. There is also potential of publishing the DeepSeek package on the Home Assistant Community Store (HACS).
With the Clockify integration complete, let's start work on the DeepSeek integration.
The DeepSeek Integration
This part of the project is pretty straightforward. We are basically building a glorified wrapper around the DeepSeek API.
For my purposes, having researched the available models, I've decided to move forward with DeepSeek-chat, since it's very good for creative and conversational content. If you are wondering why I chose DeepSeek instead of another LLM provider, I honestly opted for it because of the very low price. I can deposit a few dollars and forget about it for a long time. The pricing, at the time of writing, is $0.07 per 1M tokens. We will be using less than 500 tokens for one message, so the price is DIRT cheap.
Back to the point, our integration is going to expose a service. With this service, we will be able to pass an input to it (the prompt), and get the desired message output easily. This makes the integration very flexible, and it can fit well into any future use case I might have.
Putting it all together in Home Assistant
Great! Now that we have the integrations complete and up on GitHub, we can go ahead and add them through HACS. It's as simple as registering the repository in HACS, downloading it, restarting Home Assistant, and installing the integration as any other.
After adding in the necessary API keys, verifying that the Clockify sensor is indeed updating the total time logged, we are ready to make the automation! :)
It is going to be fairly straight forward:
- Trigger: For my use case, I need two triggers. One that runs the automation at 6pm, and one at 8pm (I am forgetful, what can I say)
- Conditions: Similarly, we also need two additional triggers; one checking if today is a workday (mon-fri), and one checking if the current day is not a holiday. We can get the holiday status from the Work Day integration.
- Actions: We have three actions, the first generates the title of the notification, and one that generates the body. The prompts are fairly simple:
// Title
Generate one short, sarcastic title for a push notification reminding
someone to enter their timesheet hours in Clockify. Use Gen Z humor, be
witty, and keep it under 50 characters. Provide ONLY the title text with no introduction or explanation.
Do not use quotation marks.
// Body
Create one funny, sarcastic reminder message about entering
hours in Clockify. The message should be under 100 characters, be slightly dramatic. Provide ONLY the message text with no introduction, explanation, or quotation marks.
With that being done, here is the final automation, in all its glory:

And now, when running the automation manually, just to make sure everything is working as it should, I get the following notification on my phone!

Conclusion
And that's that! I've learned a lot about Home Assistant throughout writing this post and the integrations, and now my eyes are peeled for other problems I could solve with a custom integration.
All code for both integrations will be available on my GitHub, which can be added to your Home Assistant instance fairly easily with HACS! Consider subscribing if you enjoyed my style of writing (or the topic :P), and of course, I would love some feedback on my design choices and implementation!
Peace out <3
Head over to my GitHub profile to view the source code and use it for yourself! (ha-deepseek-integration & ha-clockify-integration).