NEWS
[gelöst] Feldinhalt in basic table aus json abändern
-
So gar keine Antwort ... habe ich die Problemstellung schlecht beschrieben oder sonst was verkehrt gemacht? Oder geht es wirklich nicht? Das kann ich zwar nicht glauben aber dann sollte sich jemand durchringen und es dann auch sagen ...
Gruß Stefan -
-
Das würde mich auch interessieren.
Ich denke, er meint (so bräuchte ich das ) - wenn z.B. im Attribut des JSON steht "failed", man dies mit "fehlerhaft" tauschen könnte. Oder im Attribut steht "0" - und man ersetzt es mit "Fehler".Geht sowas?
-
@SKB: ja, ich glaube Du hast mein Anliegen besser formuliert als ich . Mir geht es nicht um den Header (den kann ich ja beliebig änder).
-
Erbarmt sich so gar keiner der Script-Profis zu dem Thema . Ein paar Codeschnipsel würden mich ja vielleicht schon auf die richtige Spur bringen ....
-
@Lueghi
Ich verstehe immer noch nicht ganz was du willst, weil....Wenn du das json table widget nimmst, kannst du die Überschriften doch frei definieren, so wie ich hier
-
@Homoran: es geht mir nicht um die Spaltenköpfe sondern um einen Spalteninhalt je Zeile (siehe auch mein Beitrag vom 2020-03-23).
-
@Lueghi sondern?
zeig doch mal original und Fälschung
-
@Lueghi sagte:
um einen Spalteninhalt je Zeile
Welchen ? Was liefert der TR-064-Adapter und was soll per Script geändert werden ?
-
@Homoran: aus Deinem Beispielbild: aus 4476 soll 4711 werden
-
@Lueghi . ..und wie sieht dein json aus?
-
[{"id":2519,"type":"3","called":"0xxxxxx","caller":"SIP: 870013","callernumber":"870013","name":"Name","numbertype":"sip","device":"Flur unten","port":"12","date":"11.09.2013:05","duration":"0:01","count":"","path":"","sym":"<","external":"Nummer"}, {"id":2518,"type":"1","caller":"0xxxxxxx","called":"SIP: 8731316","callednumber":"8731316","name":"Name","numbertype":"sip","device":"Keller","port":"11","date":"11.09.2009:06","duration":"0:06","count":"","path":"","sym":">","external":"Nummer"}]
Ich möchte den Inhalt der Spalte sym abändern.
-
du meinst sowas:
on("tr-064.0.calllists.all.json", function(dp) { let myOjc=JSON.parse(getState("tr-064.0.calllists.all.json").val) for (let i=0;i<myOjc.length;i++) { log(myOjc[i].sym) myOjc[i].sym=="<" ? myOjc[i].sym="kommt rein" : myOjc[i].sym="geht raus"} setState("0_userdata.0.Neues_ObjektJSONTest",JSON.stringify(myOjc) ) });
-
@Lueghi was ist das für ein dp ?
-
@Lueghi sagte:
Ich möchte den Inhalt der Spalte sym abändern.
Vorschlag:
const idJson = '...'; const idTable = '...'; on(idJson, function(dp) { let arr = JSON.parse(dp.state.val); for(let i = 0; i < arr.length; i++) { let obj = arr[i]; if(obj.sym == '<') obj.sym = 'eingehend'; else obj.sym = 'ausgehend'; } setState(idTable, JSON.stringify(arr), true); });
-
hab gerade einen farbflash und ds invento json getestet - cooles widget - sehr einfach zu def.
-
@liv-in-sky
tr-064.0.calllists.all.json -
@paul53
das sieht für mich als Laien erst mal sehr gut aus !
Habe da aber noch ein Verständnisproblem:
idJson: ist das wirklich die ID oder der Datenpunktname aus iobroker/objekte?
idTable: was muss da rein? -
@Lueghi ein neuer - von dir angelegter - datenpunkt - der soll dann in die vis zur anzeige
-
@liv-in-sky
D.h. ich kann/sollte den Ursprungsdatenpunkt nicht überschreiben? Da das Script doch bei jeder Änderung läuft und der DP nur von der Fritzbox gelesen wird, dachte ich man könnte den Ursprungs-DP einfach ändern?