Trashcan Reminder future dates

I don’t know what your script does, but I doubt it solved your problem. :wink:

Regarding the API, it seems the internal token of HomeyScript also works fine, so I adjusted the script to not require an API token anymore

As said previously I have no experience with HDashboard, but if it is capable to show any device with it’s (text-)capabilities an Advanced Virtual Device may do the trick.
To create an Advanced Virtual Device, you need to install the Device Capabilities app ( Device Capabilities App voor Homey | Homey ).

While adding a new Advanced Virtual Device, you can choose the option to import a TEF file.
You can use this code to add a device with 4 text labels for PMD/GFT/PAPIER/REST:
[tef:AVD:"H4sIAAAAAAACA4WUWZOiMBSF/wuvdlcLCSL9xuIS3HBBxKmprogRo0AQCIJT898Hp3WWLqs7L6k6J/eej7okP4QtKahPkM9i4VXowwxp78vQgDirJMUY6WY7nLvxMkMb0mhCwxswa4YGTqjZ6hgdTNLZTz0LzZBRKJdkesKE2BZbX6Cygg1c7UlROqaz2KhESuR+sRWlfuxvWoW9tOY8upyhPSx4FamrFZ2v9WChzXVE22sTTr3zoOJufCiqk9cID5oSVkvPshbnnTcBpsvTpFpoC3cPS73t0heGGhvITg1vtwcqnNjVmILGugtWy4Ohj70d6+rcPSttc+QnillW5/7eZQhvmnymGN7uRYmKiyXyBABJbA4tFLdcwFdjbyYv5xo6eqV9Al6/BSPgmImm7Zc0Mvhg2p1Eg6XTGzsToI9yFBxWw5jxnEmTTc91hlt4FBdkmHTlE+6zjNCLPOof58hs8tPaoz219PTSUwMaVHYoR1XvNDYGHdR1Ej06RpKB0pnKd9ywzgjIo2nbHw5KD3e9xDNMqtO11qnQaN1Yy7lcNh1uj8/B0hePsVHax0urUuRqe1BfbMtsTweLAO61QNOEJ8HnWc6i69wz4fXHzyeBpTSgMQ7Rtv4R2r4iEZ+QZ7Jpgmfok+0zVqH6LKoqFOXWVtpiqW6SkTyncXDtIJCYpEH1VuCQk7dr2xzHufAa8zB8EmIebUg62S1ImXcpCbd1Cfwrj3/vd6P519AZCwmOHzk8z9kjw8ARSfEDY0iz/B/ZD+tdYPmepPWX5DWYOK5La63XXdwVIyU4J92QnQ2cXgt3OMzIzZyTBKe1beAEb2hIc0o+ntizs3aNyUicsT85t9v2PoI3Ubzp0i3f1mzUmd3FzxCkLxGkxwjS/wiSctPBHWFk3pXP8sGX+eBxPviQD246vOXPOvP7DOBnAPBLAPgYAH6YARDqK/D+Ft4QBiE9svo0Fl6/ff/5C2bi9SwpBQAA":/tef]

After that, make a HomeyScript “Kliko Next Days” with the following content:

const LOCAL_IP = '192.168.2.16';
const localIpDashed = LOCAL_IP.replaceAll('.', '-');
const API_KEY = Homey._token;
const collectingDays = await (await fetch(`https://${localIpDashed}.homey.homeylocal.com/api/manager/apps/app/com.trashchecker/setting/collectingDays`, {
  method: 'GET',
  headers: {
    "Content-Type": "application/json",
    'authorization': `Bearer ${API_KEY}`
  }
})).json();
const today = (new Date()).toJSON().split('T')[0];
const nextCollectingDay = Object.fromEntries(Object.entries(collectingDays).map(([type, days]) => {
  days.sort();
  days = days.filter(day => day > today);
  return [type, days[0].split('-').reverse().join('-')];
}));
tag("nextCollectingDays", JSON.stringify(nextCollectingDay));
return true;

And finally make an advanced flow that runs daily and fills the labels with the right values:


[tef:FLOWS:"H4sIAAAAAAACA8WWW4vbRhTHv0oY8rhTZkZz1VvoJmkpLSHJ22LMmZujxraMrYQ12/3uPSPJu7GjggqGNVi2pZlzzv93LuMH0pH6gYR28wt0X/CK73Q8hH2z6x9sSU1+K7c+DbduhvXbdN/92q7XKXTNdnULx8Np8cSTfg85dHu8QR7xdUOA1HcPpMHbICvFmRI0e1tRCSJQLx2jxvjsnI9WC48Wiuk/1s3X9tVf6ODVLXSpGA7FrcVNjDNOJX6j0hhJXcBLSFILFiOvnCvr7klt2Q05kpqXzyEo2BdRGP4dCTpllmKmTjOgMvhIgTtHY5WENsGLrDVZYPRCK68hVVSr4jVaQa1OQAGM5tyATDqMDpUYPEqGny167PnWG9jCKu3rdbtqAvovJFapWw6QlnnfbpZ/H9rtyA4QZv+jj9NIoUU0gcaAniVwjNjxSEXFUHxl8ZrJoof8QHaYVrTw/t1n3L58Hfftrmu/pu3r5VMwsNvVkwXwz0QyS/ZsUM4CC5gzYakUFUqXmVEvghSecZk8u9BfXVF/ANAWcqCG64xJ5xLxYwzSRZetgaBtutT/4c/b6+mHkIWKFaPRSEZReUW9DpxmcMYL8JCwUM71qyvqdyYYlYWmKUcsP4Ml6qTz1APjVkWeZax+0v/mw+9vP14PQRDSCic4ZR4wBgcWcxAk5T4KDpXMPLgLBPqKCGyqIBmjad+GsgJJPdOMJhU105IBU+YSwce3n67YA7OGxQBAjAD4OYD/dDnC2H87aQ/tNjaj/LYr+qvkvcqeUeFtopJZTa3ShnKhE5PSJI9T86T/eZo3Ea1pHBYaQkVZ9Dg+BLYwSAxfoBKvZFbgoExc2KTLodtrR/Gz3I/i2TgATyMXtsenLM6ZIzPH7cyunFm5ZcrjsoxHENoLDqNLgB1m0LfB/CI1xYKDUeQgcbK8w75PW0lo12zSMt1jJa+PY2ax1le46v+dQGNaizk0wVzN2FCSc+biELCTk2M5pu9NSLUNRqSQEkX+2F0hYRg4YSiGIrnSUUQQo6bvzb77Buth4/KA/dthqVz2bB9vbtI6PlVhWVY9l9kwn2MaarXsqsnnUnQVQWW9zZrc3Q0W63pO5dTIPuH/hLjsYLVYoPlNG4uvbdt9Gf6K3Mw7S8+ZyRdlxp+ZDWf6BDM+yWxOG81iNuv8OWemXpSZ+KHOTufgBDYxiW3OWJmFbdaZdY5Nvyg2+YxtPDsnoMlJaHOG7Axoj4+Lx38BjTPtqqIMAAA=":/tef]

I hope this solution also works with HDashboard or that you can modify it so it does work. (e.g. fill variables if it can show that)