Lupus Alarmanlage mit Httpmod/JSON auslesen

Begonnen von stenny, 07 Oktober 2018, 12:29:42

Vorheriges Thema - Nächstes Thema

yersinia

Zitat von: Rudibarani am 04 Mai 2020, 00:02:52HTTPMOD nummeriert diese Blöcke durch, so dass jedes Reading durch eine fortlaufende Nummer eine eindeutige Bezeichnung bekommt (siehe Anhang). Diese Nummer ändert sich aber leider, wenn ein neuer Sensor angelernt wird und das JSON mittendrin ein neues Element beinhaltet. Mit JsonMod kann ich mir alle eindeutigen IDs (sid) auslesen. Ich habe aber leider keinen Weg gesehen, diese ID zur eindeutigen Aggregation der Elemente auf der gleichen Ebene in einem Device zu nutzen. Gibt es so eine Funktion?

Für ein stabileres System würde es sonst auch erstmal reichen, wenn man die Daten aus dem JSON extrahieren könnte und dabei anstelle der zufälligen Nummer das System anweisen könnte, die jeweilige "sid" als Identifier einzusetzen. Aber auch dazu habe ich keinen Automatisierung gefunden. Für Hinweise wäre ich aber dankbar!
Viele Grüße!
MWn kann JsonMod das schon:
Zitatindex(); Contains the index number of the current list element. Within 'multi ()' instructions for generating reading names using 'connect ()' are used.
Mit index() kannst du einen index bilden (und zwar den des Elements des JSONs), entspricht mWn der Funktion im HTTPMOD.
Durch concat() kannst du auch readings basierend auf anderen JSON Werten bauen. Ob das mit RF:BLA00BLA klappen wird, weiss ich nicht.
Du kannst dich an einem Thread wie diesen orientieren: Anwendungsbeispiel JsonMod #2: CORONA Verbreitung

Ungetestet könnte das readingList so aussehen
multi(jsonPath('$.senrows'), concat(property('sid'), '_area'), property('area'));
multi(jsonPath('$.senrows'), concat(property('sid'), '_name'), property('name'));
[usw]

oder
multi(jsonPath('$.senrows'), concat(index(), '_sid'), property('sid'));
multi(jsonPath('$.senrows'), concat(index(), '_area'), property('area'));
multi(jsonPath('$.senrows'), concat(index(), '_name'), property('name'));
[usw]

Für JsonPath gibt es auch tester im Internet.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Rudibarani

Vielen Dank für die konkrete Hilfe! Probiere ich gerne aus. Viele Grüße


Gesendet von iPhone mit Tapatalk