NEWS
Werte von Bitpanda abrufen
-
@dasbo1975 OK. dann machen wir eine Punkt und eine leere geschweifte Klammer - um ein neues leeres Objekt zu erzeugen:
payload.data[0].{}
-
@dasbo1975 So nun kannst Du entweder die gleichen Bezeichnungen wie im Originalobjekt oder neue Eigenschaften definieren. Ich habe mal deutsche Bezeichnungen verwendet:

payload.data[0].{"Menge":"", "Gebühr":"", "Wechselkurs":"", "status":""}Als Werte habe ich einfach erst mal leere Strings genommen. Wenn Du Dein Objekt hast, dann poste es mal hier in CodeTags.
Eine Eigenschaft ist immer ein String gefolgt von einem Doppelpunkt und dann den Wert - in diesem Fall konstant ein leerer String.
Mehrere Eigenschaften in einem Objekt werden durch Kommas getrennt.Wenn Du soweit bist, dann füllen wir nun Menge mit dem Originalwert.
-
@dasbo1975 So nun kannst Du entweder die gleichen Bezeichnungen wie im Originalobjekt oder neue Eigenschaften definieren. Ich habe mal deutsche Bezeichnungen verwendet:

payload.data[0].{"Menge":"", "Gebühr":"", "Wechselkurs":"", "status":""}Als Werte habe ich einfach erst mal leere Strings genommen. Wenn Du Dein Objekt hast, dann poste es mal hier in CodeTags.
Eine Eigenschaft ist immer ein String gefolgt von einem Doppelpunkt und dann den Wert - in diesem Fall konstant ein leerer String.
Mehrere Eigenschaften in einem Objekt werden durch Kommas getrennt.Wenn Du soweit bist, dann füllen wir nun Menge mit dem Originalwert.
-
@dasbo1975 So nachdem wir das 1. data Objekt bereits vorselektiert haben, müssen wir nur den relativen Pfad nehmen.

Also attributes.amount

Hier nochmal ein Link - damit solltest Du weitermachen können
https://try.jsonata.org/DrI96K5cO
Sag kurz ob Du das Prinzip verstanden hast. amount ist eine Eigenschaft des Objektes attributes und den Pfad trennt man mit dem Punkt.
Das Transaktionsdatum ist

folglich der Pfad:
attributes.time.date_iso8601 -
@dasbo1975 So nachdem wir das 1. data Objekt bereits vorselektiert haben, müssen wir nur den relativen Pfad nehmen.

Also attributes.amount

Hier nochmal ein Link - damit solltest Du weitermachen können
https://try.jsonata.org/DrI96K5cO
Sag kurz ob Du das Prinzip verstanden hast. amount ist eine Eigenschaft des Objektes attributes und den Pfad trennt man mit dem Punkt.
Das Transaktionsdatum ist

folglich der Pfad:
attributes.time.date_iso8601 -
@dasbo1975 Gut wenn Du dann die Objekte so gestaltet wie Du es haben willst ,dann brauchst Du nur den Code aus dem rechten oberen Fenster in das JSONATA Codefenster der Change Node kopieren. Du musst zwingend die Tasten mit Strg+C nehmen. Mit der Maus kopieren aus dem JSONATA Exerciser funktioniert nicht.
-
@dasbo1975 Gut wenn Du dann die Objekte so gestaltet wie Du es haben willst ,dann brauchst Du nur den Code aus dem rechten oberen Fenster in das JSONATA Codefenster der Change Node kopieren. Du musst zwingend die Tasten mit Strg+C nehmen. Mit der Maus kopieren aus dem JSONATA Exerciser funktioniert nicht.
-
@dasbo1975 Na ja würde mich schon noch interessieren, wie Dein Objekt nun aussieht und ob es so ausschaut, wie Du es haben willst.
-
@dasbo1975 Na ja würde mich schon noch interessieren, wie Dein Objekt nun aussieht und ob es so ausschaut, wie Du es haben willst.
-
@mickym
Das werde morgen zum Abschluß bringen. Für heute langt das tatsächlich.
Aber es ist doch immer so. Vor 3 Stunden hab ich zu meiner Frau gesagt. "in einer halben Stunde bin ich auch da"@dasbo1975 sagte in Werte von Bitpanda abrufen:
@mickym
Das werde morgen zum Abschluß bringen. Für heute langt das tatsächlich.
Aber es ist doch immer so. Vor 3 Stunden hab ich zu meiner Frau gesagt. "in einer halben Stunde bin ich auch da"Na dann schlaf gut. Ansonsten melde Dich halt nochmal, wenn Du zu JSONATA oder NodeRed eine Frage hast. Bin zwar nicht 24 Std. hier, aber schau schon öfter rein - insbesondere nachdem die NodeRed Gemeinde hier sehr klein geworden ist.
-
@dasbo1975 sagte in Werte von Bitpanda abrufen:
@mickym
Das werde morgen zum Abschluß bringen. Für heute langt das tatsächlich.
Aber es ist doch immer so. Vor 3 Stunden hab ich zu meiner Frau gesagt. "in einer halben Stunde bin ich auch da"Na dann schlaf gut. Ansonsten melde Dich halt nochmal, wenn Du zu JSONATA oder NodeRed eine Frage hast. Bin zwar nicht 24 Std. hier, aber schau schon öfter rein - insbesondere nachdem die NodeRed Gemeinde hier sehr klein geworden ist.
-
@dasbo1975 sagte in Werte von Bitpanda abrufen:
@mickym
Das werde morgen zum Abschluß bringen. Für heute langt das tatsächlich.
Aber es ist doch immer so. Vor 3 Stunden hab ich zu meiner Frau gesagt. "in einer halben Stunde bin ich auch da"Na dann schlaf gut. Ansonsten melde Dich halt nochmal, wenn Du zu JSONATA oder NodeRed eine Frage hast. Bin zwar nicht 24 Std. hier, aber schau schon öfter rein - insbesondere nachdem die NodeRed Gemeinde hier sehr klein geworden ist.
-
@mickym
schlafen. pff.kann man eigentlich beim Übertragen zu IoBroker auch eine Unit mitgeben? € z.b.
@dasbo1975 Ja das kann man schon. Ob sich das rentiert ist eine andere Frage. Du kannst ja auch die Unit nachträglich selbst eintragen. Ansonsten musst Du halt die Nachricht aussortieren und dann halt noch eine Unit mitgeben.
Aussortieren kannst Du Nachrichten in dem Du nach topics suchst und dann entweder eine eigene iobroker-Out nutzt oder du eine Nachrichteneigenschaft mitgibst.
Wie gesagt - im Nachhinein kannst Du die Unit bei den Objekten verändern - ansonsten werden die Objekttypen automatisch gesetzt. Wenn Du weißt was Zahlen sind, dann musst Du die in Zahlen konvertieren, da diese von der API leider als Strings mitkommen.
Ich mach Dir gleich ein paar Beispiele.
-
@dasbo1975 Ja das kann man schon. Ob sich das rentiert ist eine andere Frage. Du kannst ja auch die Unit nachträglich selbst eintragen. Ansonsten musst Du halt die Nachricht aussortieren und dann halt noch eine Unit mitgeben.
Aussortieren kannst Du Nachrichten in dem Du nach topics suchst und dann entweder eine eigene iobroker-Out nutzt oder du eine Nachrichteneigenschaft mitgibst.
Wie gesagt - im Nachhinein kannst Du die Unit bei den Objekten verändern - ansonsten werden die Objekttypen automatisch gesetzt. Wenn Du weißt was Zahlen sind, dann musst Du die in Zahlen konvertieren, da diese von der API leider als Strings mitkommen.
Ich mach Dir gleich ein paar Beispiele.
-
@dasbo1975 Na ich mach Dir noch ein Beispiel.
Also von den fiat_transactions, das Beispiel von vorher:

Du siehst, dass die ganzen Zahlen Strings sind - also mit den man nicht rechnen kann. Die kannst Du in dem Objekt bereits konvertieren, dann werden auch als Objekte Zahlen angelegt und keine Zeichenketten.
Mit der JSONATA Funktion $number kannst Du Zeichenketten in Zahlen wandeln, dann schaut das Ganze schon so aus:

So hier habe ich einen Beispielflow gemacht, in dem Du nachdem schon mit Zahlen in JSONATA konvertiert wurde, habe ich nun die Nachrichten herausgefiltert, die als Einheit € haben sollen.
Mit einer Switch Node greife ich mir also die topics raus, die Menge und Gebühr als topic enthalten:

und setze für die noch die Unit: €
Sprich die Nachrichten mit dem topic Gebühr und Menge habe ich an den oberen Ausgang geleitet, der Rest kommt unten raus:

Diese switch Node entspricht dem Blockly falls und sonst.
Für die oberen Nachrichten (also topic Menge und Gebühr) setze ich dann mit der Nachrichteneigenschaft msg.stateUnit noch die Einheit auf €.

Es wird also ein State angelegt mit der Unit € und eine Zahl anstelle einer Zeichenkette.

Falls Du übrigens willst, dass Deine States beschreibbar angelegt werden sollen, musst Du das in Deiner iobroker-Out Node noch definieren:

Zum Schluss, den ganzen Flow zur Übung nochmal als Import:
-
@dasbo1975 Na ich mach Dir noch ein Beispiel.
Also von den fiat_transactions, das Beispiel von vorher:

Du siehst, dass die ganzen Zahlen Strings sind - also mit den man nicht rechnen kann. Die kannst Du in dem Objekt bereits konvertieren, dann werden auch als Objekte Zahlen angelegt und keine Zeichenketten.
Mit der JSONATA Funktion $number kannst Du Zeichenketten in Zahlen wandeln, dann schaut das Ganze schon so aus:

So hier habe ich einen Beispielflow gemacht, in dem Du nachdem schon mit Zahlen in JSONATA konvertiert wurde, habe ich nun die Nachrichten herausgefiltert, die als Einheit € haben sollen.
Mit einer Switch Node greife ich mir also die topics raus, die Menge und Gebühr als topic enthalten:

und setze für die noch die Unit: €
Sprich die Nachrichten mit dem topic Gebühr und Menge habe ich an den oberen Ausgang geleitet, der Rest kommt unten raus:

Diese switch Node entspricht dem Blockly falls und sonst.
Für die oberen Nachrichten (also topic Menge und Gebühr) setze ich dann mit der Nachrichteneigenschaft msg.stateUnit noch die Einheit auf €.

Es wird also ein State angelegt mit der Unit € und eine Zahl anstelle einer Zeichenkette.

Falls Du übrigens willst, dass Deine States beschreibbar angelegt werden sollen, musst Du das in Deiner iobroker-Out Node noch definieren:

Zum Schluss, den ganzen Flow zur Übung nochmal als Import: