Re: Toon app: Afvalwijzer
Posted: Mon Jan 06, 2025 6:42 pm
Bestand in /var/volatile/tmp gezet en nu werkt het 

Domotica - Home Automation Forum
https://domoticaforum.eu/
Code: Select all
EGIN:VEVENT^M
DTSTART;VALUE=DATE:20250311^M
SUMMARY:Onbekend^M
BEGIN:VEVENT^M
BEGIN:VEVENT^M
DTSTART;VALUE=DATE:20250311^M
SUMMARY:Onbekend^M
BEGIN:VEVENT^M
BEGIN:VEVENT^M
DTSTART;VALUE=DATE:20250312^M
SUMMARY:GFT^M
BEGIN:VEVENT^M
BEGIN:VEVENT^M
DTSTART;VALUE=DATE:20250314^M
SUMMARY:Onbekend^M
BEGIN:VEVENT^M
BEGIN:VEVENT^M
DTSTART;VALUE=DATE:20250314^M
SUMMARY:Onbekend^M
BEGIN:VEVENT^M
BEGIN:VEVENT^M
DTSTART;VALUE=DATE:20250319^M
SUMMARY:Rest^M
BEGIN:VEVENT^M
BEGIN:VEVENT^M
DTSTART;VALUE=DATE:20250324^M
SUMMARY:Papier^M
BEGIN:VEVENT^M
BEGIN:VEVENT^M
DTSTART;VALUE=DATE:20250326^M
Code: Select all
[{"date":"2025-03-11T00:00:00","name":"Kca","daysTillDate":5,"totalThisYear":null},{"date":"2025-03-11T00:00:00","name":"Textiel","daysTillDate":5,"totalThisYear":null},{"date":"2025-03-12T00:00:00","name":"Gft","daysTillDate":6,"totalThisYear":null},{"date":"2025-03-14T00:00:00","name":"Kca","daysTillDate":8,"totalThisYear":null},{"date":"2025-03-14T00:00:00","name":"Textiel","daysTillDate":8,"totalThisYear":null},{"date":"2025-03-19T00:00:00","name":"Pbd","daysTillDate":13,"totalThisYear":null},{"date":"2025-03-19T00:00:00","name":"Restafval","daysTillDate":13,"totalThisYear":null},{"date":"2025-03-21T00:00:00","name":"Papier","daysTillDate":15,"totalThisYear":null},{"date":"2025-03-26T00:00:00","name":"Gft","daysTillDate":20,"totalThisYear":null},{"date":"2025-03-28T00:00:00","name":"Kca","daysTillDate":22,"totalThisYear":null},{"date":"2025-03-28T00:00:00","name":"Textiel","daysTillDate":22,"totalThisYear":null},{"date":"2025-04-02T00:00:00","name":"Pbd","daysTillDate":27,"totalThisYear":null},{"date":"2025-04-02T00:00:00","name":"Restafval","daysTillDate":27,"totalThisYear":null},{"date":"2025-04-08T00:00:00","name":"Kca","daysTillDate":33,"totalThisYear":null},{"date":"2025-04-08T00:00:00","name":"Textiel","daysTillDate":33,"totalThisYear":null},{"date":"2025-04-09T00:00:00","name":"Gft","daysTillDate":34,"totalThisYear":null},{"date":"2025-04-11T00:00:00","name":"Kca","daysTillDate":36,"totalThisYear":null},{"date":"2025-04-11T00:00:00","name":"Textiel","daysTillDate":36,"totalThisYear":null},{"date":"2025-04-16T00:00:00","name":"Pbd","daysTillDate":41,"totalThisYear":null},{"date":"2025-04-16T00:00:00","name":"Restafval","daysTillDate":41,"totalThisYear":null},{"date":"2025-04-18T00:00:00","name":"Papier","daysTillDate":43,"totalThisYear":null},{"date":"2025-04-23T00:00:00","name":"Gft","daysTillDate":48,"totalThisYear":null},{"date":"2025-04-25T00:00:00","name":"Kca","daysTillDate":50,"totalThisYear":null},{"date":"2025-04-25T00:00:00","name":"Textiel","daysTillDate":50,"totalThisYear":null},{"date":"2025-04-30T00:00:00","name":"Pbd","daysTillDate":55,"totalThisYear":null},{"date":"2025-04-30T00:00:00","name":"Restafval","daysTillDate":55,"totalThisYear":null},{"date":"2025-05-
Code: Select all
Kleine elektrische apparaten zoals een kapotte föhn, tandenborstel, laptop, scheerapparaat, lamp, boormachine of telefoon.
Klein Chemisch Afval (KCA) zoals een verfblik, olie, medicatie, spaarlampen of batterijen.
Harde kunststoffen zoals speelgoed, plantenbakje, opbergkrat of een emmer.
Hout zoals een krukje, fotolijstje, onderzetters, vogelhuisje of plankje.
Metalen zoals een koekenpan, keukengerei, gereedschap, rekje, prullenbak of ijzerdraad.
Karton zoals een doos.
Frituurvet - en oliën
Piepschuim
Textiel
Code: Select all
function wasteTypeCode(shortName) {
switch (shortName) {
case "Restafval": return 0;
case "Gft": return 3;
case "Papier": return 2;
case "Pbd": return 1;
case "Kca": return 7;
case "Textiel": return 5;
default: break;
}
return "?";
}
I assume you are referring to the waste icon in the thermostat panel (above the room temperature) and not the systray icon.madpatrick wrote: ↑Sat Mar 22, 2025 8:41 pm Hi,
Fow sometime i don't see the wastebin icon any more on the homescreen.
Only the aeeow is visible when the wastebin has to return
Code: Select all
//<provider>17</provider><version>1.0.2</version><parms>"zipcode,housenr"</parms>
//provider rd4info testdata:6444GL 10
//provider rd4info via officiële JSON API
function readCalendar(wasteZipcode, wasteHouseNr, extraDates, enableCreateICS, wasteICSId, wasteStreet, wasteStreetName, wasteCity, wasteFullICSUrl) {
var wasteDatesString = "";
var cureAfvalbeheerDates = [];
var xmlhttp = new XMLHttpRequest();
var year = new Date().getFullYear();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === XMLHttpRequest.DONE) {
if (xmlhttp.status === 200) {
var json = JSON.parse(xmlhttp.responseText);
if (json.success && json.data && json.data.items && json.data.items.length > 0) {
var afvalItems = json.data.items[0]; // data.items is een array met 1 object waarin dates zitten
for (var i = 0; i < afvalItems.length; i++) {
var date = afvalItems[i].date; // formaat: yyyy-mm-dd
var type = afvalItems[i].type; // bv: residual_waste
var wasteType = wasteTypeRd4api(type);
if (wasteType !== "?") {
cureAfvalbeheerDates.push(date + "," + wasteType);
}
}
var tmp = sortArray2(cureAfvalbeheerDates, extraDates);
for (var i = 0; i < tmp.length; i++) {
wasteDatesString = wasteDatesString + tmp[i] + "\n";
}
writeWasteDates(wasteDatesString, enableCreateICS);
}
} else {
updateWasteIcon("error");
}
}
}
var url = "https://data.rd4.nl/api/v1/waste-calendar?postal_code=" + encodeURIComponent(wasteZipcode) + "&house_number=" + wasteHouseNr + "&house_number_extension=&year=" + year;
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function wasteTypeRd4api(apiType) {
switch (apiType) {
case "gft": return 3; // Groente/fruit/tuinafval
case "residual_waste": return 0; // Restafval
case "pmd": return 1; // Plastic/Metaal/Drankkartons
case "paper": return 2; // Papier
case "pruning_waste": return 4; // Snoeiafval
case "christmas_trees": return "#";// Kerstbomen
case "best_bag": return "!"; // BEST-tas
default: return "?"; // Onbekend type
}
}
function sortArray2(inputarray, extraDates) {
var newArray = inputarray.concat(extraDates);
newArray.sort();
return newArray;
}
function writeWasteDates(wasteDatesString, enableCreateICS) {
var doc2 = new XMLHttpRequest();
doc2.open("PUT", "file:///var/volatile/tmp/wasteDates.txt");
doc2.onreadystatechange = function () {
if (doc2.readyState === 4) {
if (doc2.status === 0) {
updateWasteIcon("no");
}
}
};
doc2.send(wasteDatesString);
if (enableCreateICS) {
var outputICS = "";
var tmpICS = wasteDatesString.split("\n");
for (var i = 0; i < tmpICS.length; i++) {
if (tmpICS[i].length > 10) {
outputICS += "BEGIN:VEVENT\r\n";
outputICS += "DTSTART;VALUE=DATE:" + tmpICS[i].substring(0, 4) + tmpICS[i].substring(5, 7) + tmpICS[i].substring(8, 10) + "\r\n";
outputICS += "SUMMARY:" + wasteTypeFriendlyName(tmpICS[i].substring(11, 12)) + "\r\n";
outputICS += "END:VEVENT\r\n";
}
}
var doc3 = new XMLHttpRequest();
doc3.open("PUT", "file:///var/volatile/tmp/wasteDates.ics");
doc3.send(outputICS);
}
}
function wasteTypeFriendlyName(typeChar) {
switch (typeChar) {
case "0": return "Restafval";
case "1": return "PMD-afval";
case "2": return "Papier";
case "3": return "GFT";
case "4": return "Snoeiafval";
case "#": return "Kerstboom";
case "!": return "BEST-tas";
default: return "Onbekend";
}
}