NEWS
Unterschiedlichen Wert aufteilen
-
Hey Jungs und Mädels,
Ich habe bei mir ein Wert der bestimmte Gruppen beschreibt.
Wert: [20340] ist zb Gruppe1, ab und an wenn mehrere Gruppen angesprochen werden z.b. Gruppe1, Gruppe4 und sondergruppe
Wert: [20340,9887,1234]Wie kann ich das aufsplitten und wie bekomme ich die eckigen Klammern weg?:man-bowing:
Gruß newbroker
-
Hey Jungs und Mädels,
Ich habe bei mir ein Wert der bestimmte Gruppen beschreibt.
Wert: [20340] ist zb Gruppe1, ab und an wenn mehrere Gruppen angesprochen werden z.b. Gruppe1, Gruppe4 und sondergruppe
Wert: [20340,9887,1234]Wie kann ich das aufsplitten und wie bekomme ich die eckigen Klammern weg?:man-bowing:
Gruß newbroker
@newbroker sagte in Unterschiedlichen Wert aufteilen:
[20340,9887,1234]
Wenn Du das als JSON Datenpunkt definierst- hängt es halt nun davon ab, mit was für einem Tool.
Mit Javascript einfach mit parse in ein Array umwandeln.
Ich zeigs mal in NodeRed:
Also erst mal im Datenpunkt definiere ich das als JSON:


Im ersten Schritt wird das Objekt als Array dargestellt und dann kann man einfach über den Index zugreifen.
Also einfach das Array auch als Array einlesen und via Index auf den Wert zugreifen.
Ich bin kein Blockly spezi aber das funktioniert anscheinend so:

-
@newbroker sagte in Unterschiedlichen Wert aufteilen:
[20340,9887,1234]
Wenn Du das als JSON Datenpunkt definierst- hängt es halt nun davon ab, mit was für einem Tool.
Mit Javascript einfach mit parse in ein Array umwandeln.
Ich zeigs mal in NodeRed:
Also erst mal im Datenpunkt definiere ich das als JSON:


Im ersten Schritt wird das Objekt als Array dargestellt und dann kann man einfach über den Index zugreifen.
Also einfach das Array auch als Array einlesen und via Index auf den Wert zugreifen.
Ich bin kein Blockly spezi aber das funktioniert anscheinend so:

-
@mickym
Okay und dann schreibe ich sie in ein neuen Datenpunkt?Ich kenne Node red nicht…
Könnte ich damit die Zahlen in Klartext umstellen?Gruß
@newbroker KLar kannst Du Dir Tabellen anlegen um die Nummern in Klartext zu übersetzen und dann kannst Du dies wieder als Array in einen Datenpunkt schreiben. Ob das Sinn macht weiß ich nicht.
Ich hab Dir das mit Blockly auch mal versucht umzusetzen - aber ich kenn mich halt in NodeRed besser aus.

In so einer translate Node ersetze ich halt die NUmmern durch den Text:
Jedenfalls würde ich nichts mit Stringmanipulationen machen.
Du siehst im letzten Beispiel - da teilt die Node das Array auf, dann übersetzt Du und fügst es wieder zum Array zusammen. Das ist das letzte Beispiel orange markiert.
Mit dem obigen Flow - kann man das natürlich dann auch wieder übersetzt in einen neuen Datenpunkt schreiben

Wenn Du das mit Strings manipulieren willst, dann nimmst halt die Klammern weg und behandelst das als String. Dann kannst auf die einzelnen Elemente auch über den Listenindex zugreifen:

Hier habe ich Dir es nochmal im Javascript umgesetzt - wie Du über die Umwandlung des Datenpunktes in ein Array auf die Elemente zugreifst.
on({id: "0_userdata.0.testType", change: 'any'},function(obj){ var arr=JSON.parse(obj.state.val); log(arr); log(arr[0]); log(arr[1]); log(arr[2]); });
-
@newbroker KLar kannst Du Dir Tabellen anlegen um die Nummern in Klartext zu übersetzen und dann kannst Du dies wieder als Array in einen Datenpunkt schreiben. Ob das Sinn macht weiß ich nicht.
Ich hab Dir das mit Blockly auch mal versucht umzusetzen - aber ich kenn mich halt in NodeRed besser aus.

In so einer translate Node ersetze ich halt die NUmmern durch den Text:
Jedenfalls würde ich nichts mit Stringmanipulationen machen.
Du siehst im letzten Beispiel - da teilt die Node das Array auf, dann übersetzt Du und fügst es wieder zum Array zusammen. Das ist das letzte Beispiel orange markiert.
Mit dem obigen Flow - kann man das natürlich dann auch wieder übersetzt in einen neuen Datenpunkt schreiben

Wenn Du das mit Strings manipulieren willst, dann nimmst halt die Klammern weg und behandelst das als String. Dann kannst auf die einzelnen Elemente auch über den Listenindex zugreifen:

Hier habe ich Dir es nochmal im Javascript umgesetzt - wie Du über die Umwandlung des Datenpunktes in ein Array auf die Elemente zugreifst.
on({id: "0_userdata.0.testType", change: 'any'},function(obj){ var arr=JSON.parse(obj.state.val); log(arr); log(arr[0]); log(arr[1]); log(arr[2]); });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden