HTTPMOD matchlist-Sortierung

Begonnen von Prof. Dr. Peter Henning, 28 Januar 2024, 12:32:22

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Ich hole mit HTTPMOD ein JSON-Array mit 16 Einträgen, sagen wir mit dem Attribut readingXXJSON nrg.
Aus den ersten vier Einträgen des Arrays erstelle ich dann gemeinsames Reading, in dem diese durch " - " Strings getrennt werden.

Erstaunlicherweise geht das mit dem Attribut
readingXXRecombineExpr sprintf "%.1f - %.1f - %.1f - %.1f",$matchlist[0],$matchlist[1],$matchlist[8],$matchlist[9]
Ich habe eine Weile gebraucht, um das zu kapieren: Im Perl-Array @matchlist sind die Einträge des JSON-Array nicht in nummerischer, sondern in lexikalischer Sortierung gespeichert, also in der Reihenfolge

0-1-10-11-12-13-14-15-2-3-4-5-6-7-8-9.

Will man also auf dritten Eintrag des JSON-Arrays zugreifen (der hat ja den Index 2), muss das aus dem Perl-Array der Eintrag mit dem Index 8 sein.

Das kann man zwar alles machen, und die Sache funktioniert ja jetzt. Eine Änderung im Modul ist also nicht nötig, aber das sollte in der CommandRef vermerkt werden.

LG

pah

betateilchen

Und warum schreibst Du das nicht im passenden Unterforum zu HTTPMOD?
Da gibt es sogar einen extra Thread für Verbesserungen und Änderungen.

https://forum.fhem.de/index.php?topic=45176.0

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Prof. Dr. Peter Henning

Ehrlich gesagt war ich zu faul, danach zu suchen...

Aber ich machs jetzt, danke für den Link.

LG

pah