NEWS
Abfallkalender Farbe ändern
-
Bein Abfallkalender wird im Skript bei Farbe z.B.: Color = 2016 angegeben oder Color = 33840.
Was ist das für eine Codierung? Wie finde ich da raus welche Nummer welche Farbe ist?
-
Na, das sind ja wieder sehr viele Angaben.
welches Script ?
Ansonsten; dies müsste die #-Nr. für die Farben sein.
Einfach ersichtlich in vis bei color.
-
@bahnuhr Das NS Panel Abfallkalender Skript
Aber das kann ja kein Hex Code sein - Schwarz wäre ja da nicht 33840
Der besteht ja norm. aus Zahlen und Buchstaben...var i, Muell_JSON, Event2, Color; function subsequenceFromStartLast(sequence, at1) { var start = at1; var end = sequence.length - 1 + 1; return sequence.slice(start, end); } on({id: 'ical.0.data.table', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; for (i = 0; i <= 2; i++) { Muell_JSON = getState("ical.0.data.table").val; setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false); Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), 0); setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false); if (Event2 == 'Restmüll') { Color = 33840;} else if (Event2 == 'Papier') { Color = 2016;} else if (Event2 == 'Gelber Sack') { Color = 31;} setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false); } });
-
Ich habe es https://nodtem66.github.io/nextion-hmi-color-convert/index.html
RGB565 ist das... mit dem das Nextion-Display arbeitet.
-
Was machst du denn mit dem nextion.
Hab auch noch so ein Teil hier rumliegen. -
Seit dem letzten Update des JavaScript Adapters werden die Farben nicht mehr beschieben.
Es wird immer nur die Farbe 0, wie beim init vergeben.Ich hatte keine Veränderung im Script durchgeführt, wurde da die Syntax geändert.
Vielleicht kann da einmal wer drüber schauen.
const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0 const idRestmuellName ='Restabfallbehälter'; // Schwarze Tonne const idWertstoffName = 'Leichtverpackungen'; // Gelbe Tonne / Sack const idPappePapierName = 'Papierbehälter'; // Rote Tonne const idBioabfaelleName = 'Biomüll'; // Braune Tonne var i, Muell_JSON, Event2, Color = 0; for (i = 1; i <= 4; i++) { if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) { log(i + '.date nicht vorhanden, wurde erstellt'); createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '', { name: parseFloat(i) + '.date', role: 'state', type: 'string', read: true, write: true, def: '' }); }; if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) { log(i + '.event nicht vorhanden, wurde erstellt'); createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '', { name: parseFloat(i) + '.event', role: 'state', type: 'string', read: true, write: true, def: '' }); }; if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) { log(i + '.color nicht vorhanden, wurde erstellt'); createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 0, { name: parseFloat(i) + '.color', role: 'state', type: 'number', read: true, write: true, def: 0 }); }; } function subsequenceFromStartLast(sequence, at1) { var start = at1; var end = sequence.length; return sequence.slice(start, end); } on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () { for (i = 0; i <= 3; i++) { Muell_JSON = getState(idAbfalliCal + '.data.table').val; setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false); Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen); setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false); if (Event2 == idRestmuellName) { Color = 33840; } else if (Event2 == idBioabfaelleName) { Color = 2016; } else if (Event2 == idPappePapierName) { Color = 63488; } else if (Event2 == idWertstoffName) { Color = 65504; } setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false); } });
-
Zieh dir bitte mal aus meinem Github die aktuelle Version. Siehe signat
-
@tt-tom Danke, hab ich gemacht.
Und mit der debug Variante konnte ich den Fehler finden.Bei mir war nach der Müllsorte noch ein unsichtbares SPACE, somit hat die Vergleichsfunktion nach dem Müllnamen nicht funktioniert
'Leichtverpackungen ' ist halt nicht 'Leichtverpackungen'Vielleicht gibt es ja noch einen Version 5.0.1
-
Wenn was fehlt kannst du auf Github mir was hinterlassen, ich sehe es mir dann an.