NEWS
Array nach Preisen sortiert mit Startzeit aus Tibberconnect
- 
					
					
					
					
 @babl 
 Gemäß Deinem Wunsch, ein nach Preisen sortiertes Array zu erhalten, in dessen Objekten auch die Startzeit enthalten ist, schlage ich folgendes Skript vor. Es soll die Preise und Startstunden für heute 17:00 Uhr bis morgen 16:00 Uhr liefern (hoffe ich). Format:[{start: 4, preis: 0.24}, {start: 3, preis: 0.25}, ...]const tibber = 'tibberconnect.0.Homes.ffXXX.'; // Anpassen! const idSort = '0_userdata.0.Tibber.Preise.sortiert'; // DP-Typ: "array" function sortPreis(a, b) { return a.preis - b.preis; } schedule('57 16 * * *', function() { const preise = []; for(let i = 17; i < 24; i++) { let obj = {}; let idStart = tibber + 'PricesToday.' + i + '.startsAt'; let idPreis = tibber + 'PricesToday.' + i + '.total'; obj.start = new Date(getState(idStart).val).getHours(); obj.preis = getState(idPreis).val; preise.push(obj); } for(let i = 0; i < 17; i++) { let obj = {}; let idStart = tibber + 'PricesTomorrow.' + i + '.startsAt'; let idPreis = tibber + 'PricesTomorrow.' + i + '.total'; obj.start = new Date(getState(idStart).val).getHours(); obj.preis = getState(idPreis).val; preise.push(obj); } preise.sort(sortPreis); setState(idSort, preise, true); });Das Skript ist nicht getestet, da keine Datenpunkte vorhanden. 
 Das Array im Datenpunkt lässt sich auch mit Blockly weiter verarbeiten.
- 
					
					
					
					
 @paul53 bin auf dein script gestossen in Zeile 26 preise.sort(sortPreis);in der funktion sind aber 2 parameter function sortPreis(a, b) { return a.preis - b.preis; }
- 
					
					
					
					
 @arteck sagte: in Zeile 26 Das ist eine Funktionsreferenz für die Javascriptfunktion array.sort(). 
- 
					
					
					
					
 @paul53 das kannst du auch so schreiben preise.sort(function(a, b) { return a.preis - b.preis; });übrigends funktionert gut 
- 
					
					
					
					
 @arteck sagte: das kannst du auch so schreiben Richtig. 
 
		
	 
		
	 
			
		