NEWS
Wie Script ändern damit neuster Eintrag als erstes ist?
-
Ist es möglich das folgende Script so zuändern, das der neuste Eintrag als erstes und nicht als letztes im JSON ist?
const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle // const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; // const idProg = 'homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram'; const idAktiv = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram'; const idVerbrauch = 'sonoff.0.Spuehlmaschine.ENERGY_Total'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; var StartVerbrauch = getState(idVerbrauch).val; var startDate = new Date(); var endDate = new Date(); var Zeit; on(idAktiv, function(dp) { if(dp.state.val) { obj = {}; obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm'); obj.StartUhr = formatDate(new Date(), 'hh:mm'); obj.Programm = dp.common.states[dp.state.val]; StartVerbrauch = getState(idVerbrauch).val; startDate = new Date(); } else { obj.Ende = formatDate(new Date(), 'MM.DD.YY hh:mm'); obj.EndeUhr = formatDate(new Date(), 'hh:mm'); obj.Verbrauch = getState(idVerbrauch).val - StartVerbrauch; endDate = new Date(); const timeDiff = getDateObject(endDate).getTime() - getDateObject(startDate).getTime(); obj.Dauer = formatDate(timeDiff, 'hh:mm'); log(table); table.push(obj); if(table.length > 100) table.shift(); setState(idTable, JSON.stringify(table), true); log(table); } });
-
@chris76e sagte: neuste Eintrag als erstes
Zeilen 32, 33
table.unshift(obj); if(table.length > 100) table.pop();