JsonMod Keys in readings

Begonnen von sn0000py, 10 Januar 2025, 11:36:49

Vorheriges Thema - Nächstes Thema

sn0000py

Hallo ich hänge (mal wieder) am JsonMod
irgendwie schaffe ich die folgende Keys nicht in readings zu verarbeiten
{
    "result": {
        "watts": {
            "2025-01-10 07:53:32": 0,
            "2025-01-10 08:00:00": 97,
            "2025-01-10 08:30:00": 185,
            "2025-01-10 09:00:00": 295,
            "2025-01-10 09:30:00": 405,

versucht habe ich schon einiges
aber irgendwie weiss ich nicht wie ich den Wert bekomme die readings werden mir angelegt.
multi(jsonPath('$.result.watts.*'), node(), property('.'));

ich vermute ich brauche statt dem property('.') irgendwas anderes.
Und auch für den namen wäre es irgendwie gut, wenn ich den etwas umformatieren könnte?


betateilchen

Hilfreich wäre ein Beispiel, wie Du Dir das gewünschte reading bezüglich seines Namens und seines Wertes am Ende vorstellst.
Beides kannst Du Dir in multi() nahezu beliebig gestalten.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

sn0000py

also das ziel wäre dann sowas zb
watts_20250110_075332 : 0
watts_20250110_080000 : 97

betateilchen

Einfachste Variante:

defmod watts JsonMod file:///tmp/watts.json
attr watts readingList complete()

liefert:

setstate watts 2025-01-10 13:02:19 result.watts.2025-01-10_075332 0
setstate watts 2025-01-10 13:02:19 result.watts.2025-01-10_080000 97
setstate watts 2025-01-10 13:02:19 result.watts.2025-01-10_083000 185
setstate watts 2025-01-10 13:02:19 result.watts.2025-01-10_090000 295
setstate watts 2025-01-10 13:02:19 result.watts.2025-01-10_093000 405

Zur Variante mit multi() komme ich jetzt nicht sofort.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

sn0000py

ja das mit complete habe ich schon gesehen, nur es sind halt sehr sehr viele andere Readings da auch drinnen die ich nicht wirklich haben will wenn es geht.
(Zur Not würd ich es so machen)
aber lieber wäre es mir mit dem multi

sn0000py

ich pushe hier mal - vielleicht hat wer noch mehr infos

betateilchen

Im Moment geht das scheinbar nicht ohne weiteres. Die Namen zu konstruieren, ist kein Problem, aber an die Werte zu kommen.

Deshalb hatte ich diesen Thread aufgemacht und hoffe, dass der Modulautor eine Idee hat: https://forum.fhem.de/index.php?topic=140365.0

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