I have a Tuya-powered pet feeder that uses a meal_plan encoded in base64. While integrating it with Home Assistant, I found the Smart Life integration to be slow and sometimes unreliable—especially when it came to UI updates. To get around this, I built a custom Lovelace card that interfaces directly with the meal_plan data. This allows me to manage feeding schedules more efficiently and without depending on Smart Life.
So far, I’ve tested this with the Cleverio PF-100 feeder, and it works well. I haven’t tried it with other models yet, but it may be compatible with similar devices that use the same Tuya data point.
What is the Cleverio Feeder Card?
The Cleverio Feeder Card is a custom Lovelace card for Home Assistant designed to work with feeders that expose a base64-encoded meal_plan. Instead of relying on the cloud-based Smart Life integration, this card uses local control via the make-all/tuya-local custom integration, offering better speed and reliability.
With this card, you can:
View the current meal plan directly in Home Assistant
Edit and send updated schedules to the feeder
Avoid sync delays and dependency on the Tuya cloud
Upcoming versions are planned to include support for the official Home Assistant Tuya integration, bringing broader compatibility without requiring custom components.
Here is some images. I hope to setup a gif soon to show it off properly!
I hope this helps others take control of their Tuya-based pet feeders with less reliance on Smart Life and more power through Home Assistant. Feedback and contributions are welcome!
Your welcome! I added support to tuya local. I store the old base64 and only update the schema if a new valid bas64 is received. However, one drawback is during restarts since tuya and card does not persist during restarts but it can be solved with a helper.
Looks like this is fork specific. I’m using different localTuya fork (GitHub - rospogrigio/localtuya: local handling for Tuya devices) and after setting up, it show the below. When I click “add meal” additional menu pops-up, but then quick closes on its own (cannot even take snapshot).
Is there a way to migrate to a different fork without loosing other configs? I have several other tuya devices that I’d prefer not to reconfigure from scratch.
I’ve updated the card to address the odd closing issue and it should no longer close unexpectedly. Thanks for noticing it!
Regarding the issue with local tuya. It appears the project isn’t actively maintained and I’m not aware of a quick way to switch over to tuya local. If you’re able to add the meal_plan logic directly into your existing local tuya setup, you might be able to continue using it without major changes. Otherwise, I don’t see an easy workaround at the moment.
I also noticed that tuya local hasn’t released the 2025.7 version yet, so official support for meal_plan isn’t available just yet. Hopefully it will be released sometime this week or next.
Trying out the suggested fork of the local tuya on the 2025.7, but meal_plan isn’t there yet, even though available in the local tuya device settings. Guess have to wait for the update.
Hi again! There is no 2025.7 yet for tuya local. I also see that you have a honeyGuardian and the mealplan there is nested as extra attribute within manual feed. I made a PR so now it should be part of next release.
I was able to setup the meal plan, but looks like honeyguardian base64 is different, it doesn’t contain days. Essentially, you setup the same schedule for everyday. Not sure if you’d be interested to make this into a universal card.
Your card base4: const [daysBits, hour, minute, portion, status] = bytes.slice(i, i + 5);
This is awesome! Thank you! It picked up my existing schedule that I setup in the app right off the bat!
May I ask what is this new field for? Is this if the meal plan in the attribute of another entity?
Also, not sure if it’s honeyguardian specific, but the number of schedules must always =6.
So, the delete button should really be a clear schedule button.
Ex. I deleted 1 schedule it shifted other schedules around unpredictably.
Before deleting…
I suggest we move the discussion to the GitHub issues page instead of continuing it here in the community thread, so we can better track and resolve the issues.
To answer your question about the new field, it is intended to handle reloads and restarts. Due to limitations in Tuya Local and cases of missing or invalid data, I added a helper to store the data as a fallback.
Regarding the unexpected shifting, it seems the table was sorted by the “enabled” column after pressing delete. I do not think anything is actually wrong, but I will take a closer look to understand why the sorting behaves that way.
About this part:
If the total number of schedules is >6, it will schedule the feeder, but in the app it will only show first 6 schedules.
I am not sure what you mean. Is it required to add more than 6 schedules for it to work correctly?
Ok. I’ll put feature request in the GitHub moving forward.
To elaborate on the >6 schedules. The total # of schedules must always be =6. No less, no more.
In the tuya app it shows only 6 schedules (see below). So if using your card I create for example 7 schedules, the feeder will execute all 7, but the app will never show the 7th schedule, so I will be pulling hair why feeder released food when the app doesn’t show anything scheduled.
Hope this explains.
Good news!
I’ve completed a major overhaul of the project. Your device is now better supported. I also renamed the card to Mealplan Card, as it now supports different profiles based on the manufacturer.
The issue you experienced with removing or adding more schedules should now be resolved.
I just bought a Cleverio PF100 and added it with the Tuya-integration. But I only have two entities
a number entity (for number of portions)
a sensor (that displays amount of portions dispensed)
The card component cant find the number entity, can only use the sensor for the feeder entity in the setup for the card. I then get the error Invalid base 64. Any suggestions what I’m doing wrong?
@mingvas I assume you use the tuya integration provided by home assistant? I am working to implement meal_plan (base64) support but taking a while to get it implemented. Can you migrate to tuya local? That have the best support for meal_plan.
What are the steps to use this with a pet feeder that is not specifically listed in the card settings? Mine is a Wi-Fi pet feeder (Meowmatic). Thanks in advance.
Hi, thanks a lot for this nice card. I was wondering if you have support for encode like
1d194711
My understanding of the encoding is the first two characters is the hexadecimal code for the 7 bits encoding if a day is selected or not. Next four are the time, next one is the number of portions and the last one is enables disabled.
Looking at the git I couldn’t find any matching pattern for this, do you want me to open a PR about this?