NEWS
jarvis 3.1.2 json table - Darstellung - Probleme
-
Hallo,
ich bekomme eine Tabelle in Jarvis nicht richtig dargestellt.
Hier ein Beispiel der Werte:
[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]
Hat jemand einen Tipp für mich wie es im json Format angeben muss, dass die Tabelle richtig dargestellt wird. Das Datum wird z.B. immer mit 1970 angezeigt. -
Hallo,
ich bekomme eine Tabelle in Jarvis nicht richtig dargestellt.
Hier ein Beispiel der Werte:
[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]
Hat jemand einen Tipp für mich wie es im json Format angeben muss, dass die Tabelle richtig dargestellt wird. Das Datum wird z.B. immer mit 1970 angezeigt. -
@minta79
"time" ist offenbar die Linux-Zeit in Sekunden. Sie muss mit 1000 multipliziert werden, damit sie richtig interpretiert wird. Ergebnis:Wed Apr 26 2023 23:58:09 GMT+0200@paul53 said in jarvis 3.1.2 json table - Darstellung - Probleme:
"time" ist offenbar die Linux-Zeit in Sekunden. Sie muss mit 1000 multipliziert werden, damit sie richtig interpretiert wird. Ergebnis:
Ah ok. Danke für die Info. Aber wie gebe ich das in die "Formatierung" der json Tabelle ein?
-
@paul53 said in jarvis 3.1.2 json table - Darstellung - Probleme:
"time" ist offenbar die Linux-Zeit in Sekunden. Sie muss mit 1000 multipliziert werden, damit sie richtig interpretiert wird. Ergebnis:
Ah ok. Danke für die Info. Aber wie gebe ich das in die "Formatierung" der json Tabelle ein?
-
@paul53 said in jarvis 3.1.2 json table - Darstellung - Probleme:
Woher kommt die JSON-Tabelle?Jarvis Json Table - ok schade
-
@minta79 sagte in jarvis 3.1.2 json table - Darstellung - Probleme:
Woher kommt die JSON-Tabelle?
Jarvis Json TableDie Quelle wurde erfragt. Nicht wie das in Jarvis dargestellt wird :)
-
@minta79
Ja die automatisch Umrechnung von Field"date"ist in jarvis nicht korrekt. Dies wurde dem Entwickler mitgeteilt.
Die Zeitumrechnung für"time", muss man allerdings noch selbst durchführen.
(jarvis hat da auch noch Probleme, mag in einigen Versionen funktionieren, hab nur die neueste getestet)Laut
apollon77(Entwickler von meross) wird es bzgl. json-Aufbau keine Anpassung geben.Also momentan bleibt nur die eigene Entwicklung von einem javascript, mit dem man es entsprechend umsetzt.
-
@minta79
Ja die automatisch Umrechnung von Field"date"ist in jarvis nicht korrekt. Dies wurde dem Entwickler mitgeteilt.
Die Zeitumrechnung für"time", muss man allerdings noch selbst durchführen.
(jarvis hat da auch noch Probleme, mag in einigen Versionen funktionieren, hab nur die neueste getestet)Laut
apollon77(Entwickler von meross) wird es bzgl. json-Aufbau keine Anpassung geben.Also momentan bleibt nur die eigene Entwicklung von einem javascript, mit dem man es entsprechend umsetzt.
-
@minta79 Da Du ja Node-Red nutzt, kannst Du so eine Tabelle (also JSON Array) easy mit einer Change Node und JSONATA anpassen, dass es so angezeigt wie Jarvis das braucht.
Hier mal Dein Input mit einer ChangeNode angepasst:

Das ist halt in NodeRed mit einem Einzeiler erledigt:
payload ~> |$|{"time": $moment(time,'X').format("HH:mm:ss")}|Das funktioniert aber nur mit der $moments Bibliothek und deshalb in NodeRed. Im normalen JSONATA bekommst Du nur UTC Zeiten, da Du Zeitzonen immer fix angebeben musst. Sprich wenn Du nicht NodeRed und keine moments Bibliothek nutzt musst Du halt normales JS schreiben.
Ansonsten hier mal ein Code nur mit JS:
let input = '[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]'; let arr = JSON.parse(input); arr.map(( /** @type {{ test: string; }} */ value) => { let d = new Date(value.time * 1000); value.time = d.toLocaleTimeString(); return value }); console.log(JSON.stringify(arr));liefert ebenfalls dieses Ergebnis:
[{"date":"2023-04-26","time":"23:58:09","value":18},{"date":"2023-04-27","time":"13:42:59","value":3}]Wenn Du das Datum auch noch schön haben möchtest

dann in JSONATA, halt das Datum ebenfalls mit der Moments Bibliothek schön machen:
payload ~> |$|{"date":$moment(time,'X').format("DD.MM.YYYY"),"time": $moment(time,'X').format("HH:mm:ss")}|bzw. in JS:
let input = '[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]'; let arr = JSON.parse(input); arr.map(( /** @type {{ test: string; }} */ value) => { let d = new Date(value.time * 1000); value.date = d.toLocaleDateString(); value.time = d.toLocaleTimeString(); return value}); console.log(JSON.stringify(arr));ergibt dann:
[{"date":"26.4.2023","time":"23:58:09","value":18},{"date":"27.4.2023","time":"13:42:59","value":3}]bzw. wenn man den Monat 2 stellig haben will, dann kann man OPtionen definieren:
let input = '[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]'; let arr = JSON.parse(input); arr.map(( /** @type {{ test: string; }} */ value) => { let d = new Date(value.time * 1000); value.date = d.toLocaleDateString('de-DE',{year: 'numeric', month: '2-digit', day: 'numeric'}); value.time = d.toLocaleTimeString(); return value}); console.log(JSON.stringify(arr));Hier die verschiedenen Formatierungsoptionen !
-
@minta79 Da Du ja Node-Red nutzt, kannst Du so eine Tabelle (also JSON Array) easy mit einer Change Node und JSONATA anpassen, dass es so angezeigt wie Jarvis das braucht.
Hier mal Dein Input mit einer ChangeNode angepasst:

Das ist halt in NodeRed mit einem Einzeiler erledigt:
payload ~> |$|{"time": $moment(time,'X').format("HH:mm:ss")}|Das funktioniert aber nur mit der $moments Bibliothek und deshalb in NodeRed. Im normalen JSONATA bekommst Du nur UTC Zeiten, da Du Zeitzonen immer fix angebeben musst. Sprich wenn Du nicht NodeRed und keine moments Bibliothek nutzt musst Du halt normales JS schreiben.
Ansonsten hier mal ein Code nur mit JS:
let input = '[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]'; let arr = JSON.parse(input); arr.map(( /** @type {{ test: string; }} */ value) => { let d = new Date(value.time * 1000); value.time = d.toLocaleTimeString(); return value }); console.log(JSON.stringify(arr));liefert ebenfalls dieses Ergebnis:
[{"date":"2023-04-26","time":"23:58:09","value":18},{"date":"2023-04-27","time":"13:42:59","value":3}]Wenn Du das Datum auch noch schön haben möchtest

dann in JSONATA, halt das Datum ebenfalls mit der Moments Bibliothek schön machen:
payload ~> |$|{"date":$moment(time,'X').format("DD.MM.YYYY"),"time": $moment(time,'X').format("HH:mm:ss")}|bzw. in JS:
let input = '[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]'; let arr = JSON.parse(input); arr.map(( /** @type {{ test: string; }} */ value) => { let d = new Date(value.time * 1000); value.date = d.toLocaleDateString(); value.time = d.toLocaleTimeString(); return value}); console.log(JSON.stringify(arr));ergibt dann:
[{"date":"26.4.2023","time":"23:58:09","value":18},{"date":"27.4.2023","time":"13:42:59","value":3}]bzw. wenn man den Monat 2 stellig haben will, dann kann man OPtionen definieren:
let input = '[{"date":"2023-04-26","time":1682546289,"value":18},{"date":"2023-04-27","time":1682595779,"value":3}]'; let arr = JSON.parse(input); arr.map(( /** @type {{ test: string; }} */ value) => { let d = new Date(value.time * 1000); value.date = d.toLocaleDateString('de-DE',{year: 'numeric', month: '2-digit', day: 'numeric'}); value.time = d.toLocaleTimeString(); return value}); console.log(JSON.stringify(arr));Hier die verschiedenen Formatierungsoptionen !
@mickym said in jarvis 3.1.2 json table - Darstellung - Probleme:
Vielen vielen Dank!
Habe das JS genutzt und etwas angepasst. Schreibe das Ergebnis jetzt per scheduler regelmäßig in einen eigenen Datenpunkt. Den lese ich in jarvis aus und siehe da, die Tabelle wird perfekt angezeigt :-)