Autor Thema: Geloest: jsonMod single Wert mit sprint formatieren  (Gelesen 325 mal)

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Geloest: jsonMod single Wert mit sprint formatieren
« am: 07 Dezember 2021, 19:42:02 »
Hallo zusammen,
ich versuche mich an einer jsonMod und hätte gerne das Ergebnis formatiert, sehe aber im Augenblick den Wald nicht vor lauter Bäumen.

single(jsonPath('$.observations.0.winddir')-180,'Windrichtung','-1');
single(jsonPath('$.observations.0.uv'),'UV-Belastung','-1');
single(((jsonPath('$.observations.0.imperial.temp')-32)*5/9),'TemperaturC','0');

Wie kann ich das Ergebnis formatieren z.B. mit sprintf/print auf 2 Nachkommastellen?

Gruß
Roman
« Letzte Änderung: 08 Dezember 2021, 11:21:39 von romakrau »

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 6128
Antw:jsonMod single Wert mit sprint formatieren
« Antwort #1 am: 07 Dezember 2021, 19:54:19 »
Sprintf geht, du kannst aber direkt jsonpathf nehmen.
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:jsonMod single Wert mit sprint formatieren
« Antwort #2 am: 07 Dezember 2021, 20:04:31 »
Funktioniert leider nur wenn der Wert als Fliesskommazahl vorliegt. Ich muss aber den Wert vorher umrechnen.
Gruss
Roman
« Letzte Änderung: 07 Dezember 2021, 20:07:56 von romakrau »

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 6128
Antw:jsonMod single Wert mit sprint formatieren
« Antwort #3 am: 07 Dezember 2021, 20:10:49 »
Hast Recht. Ich mach dir später am Rechner ein Beispiel mit sprintf
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:jsonMod single Wert mit sprint formatieren
« Antwort #4 am: 07 Dezember 2021, 20:44:52 »
Das wäre toll. Vielen Dank vorab

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 6128
Antw:jsonMod single Wert mit sprint formatieren
« Antwort #5 am: 07 Dezember 2021, 23:22:01 »
ungetestet so:

single(sprintf('%.2f', jsonPath('$.observations.0.winddir')-180),'Windrichtung','-1');
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:jsonMod single Wert mit sprint formatieren
« Antwort #6 am: 08 Dezember 2021, 09:43:42 »
Schönen Dank, hat funktioniert. Ist allerdings etwas verwirrend da ich es erst versucht hatte mit der geschweiften Klammer als Brücke zu Perl zu generieren. Egal, Hauptsache es funktioniert.
Danke und Gruß
Roman

Edit: Offensichtlich kann man innerhalb des single(..)  Attributs Perl Funktionen direkt nutzen.
Z.B. : single(ctime(jsonPath('$..epoch')),'Gemessen','0'); ergibt = Wed Dec  8 11:14:51 2021
« Letzte Änderung: 08 Dezember 2021, 13:07:14 von romakrau »

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 6128
Antw:jsonMod single Wert mit sprint formatieren
« Antwort #7 am: 08 Dezember 2021, 14:43:05 »
Edit: Offensichtlich kann man innerhalb des single(..)  Attributs Perl Funktionen direkt nutzen.
Z.B. : single(ctime(jsonPath('$..epoch')),'Gemessen','0'); ergibt = Wed Dec  8 11:14:51 2021
exakt. Fürs Protokoll, auch bei multi ...
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse