Moin zusammen,
Ich habe mehrere Devices, welche alle ein Reading gemeinsam haben. energyYesterday
In readingsgroup kann ich mir die schön sortieren und sehe den größten oben so wie ich das will.
Wenn ich mir jetzt aber die 3 grössten per telegram täglich schicken will wird es schon schwerer.
Mit DOIF kann ich mir ja mit max nur den größten schicken.
Hat jemand einen Ansatz wie ich das ganze ohne perl löse oder vielleicht einen Stubs (link) wie ich alle Devices mit dem reading in die Sub bekomme, um sie dort dann zu sortieren?
Gruss und Schönen Sonntag
Maui
Es gibt in der 99_Utils eine min und max Funktion. Ich denke damit kannst Du arbeiten.
Danke, ich bräuchte ja wenn dann maxNum. Aber da krieg ich auch nur den größten.
Hab es jetzt erstmal kompliziert gelöst, mit sortTopicNum. Ich weiß dass die Sub mehr kann als nur Zahlen, aber sie gibt mir immerhin ein Array zurück, sodass ich problemlos an die größten 3 komme.
Wenn ich demnächst noch mal Zeit und Muße habe, weiter Perl zu üben, mache ich mich mal selbst an ein map und sort.
Da ich das nur 1x am Tag ausführe, ist mir die mehr Rechenzeit von ein paar ms auch nicht so wichtig. (Aktuell laufe ich mit foreach 2x durch meine gefilterten Devices, erst zum Werte holen, dann wird sortiert, und dann wird beim 2. Durchlauf das zugehörige Device gesucht. )
Ich setze mal auf gelöst und wenn ich eine ansehnlichere Lösung habe, poste ich gerne hier noch den Code.