NEWS
UNSOLVED Werte von Bitpanda abrufen
-
@dasbo1975 dann machst Du eine ChangeNode dazwischen mit dem JSONATA Code nach der http request Node rein und vor die Debug Node und schau ob das gewünschte Ergebnis rauskommt.
In diese Change Node gibst Du JSONATA ein:
Über die 3 Punkte kommst du in den JSONATA Editor:
Dort kopierst Du dann diesen Code ein:
payload.data[0][type="fiat_wallet"].{ "fiat_id": attributes.fiat_id, "fiat_symbol": attributes.fiat_symbol, "balance": attributes.balance, "name": attributes.name, "pending_transactions_count": attributes.pending_transactions_count, "id":id }
Es sollte dann in der debug Node genau Dein Ergebnis rauskommen.
-
@mickym
ja, das hat funktioniert -
@dasbo1975 Gut dann schau, dass Du in der NOdeRed Adapter Konfig, das Erstellen von Fremdobjekten zugelassen hast.
-
@mickym
hab ich gemacht -
@dasbo1975 Dann importierst aus dem ersten Posting dieses Threads den Flow.
https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
Also den Spoiler in die Zwischenablage (nach dem Import) und dann importieren.
-
-
@dasbo1975 Super - so diese Node klemmst Du nun zwischen die debug Node und nach der Change Node.
In diese Node schreibst Du nun das root Topic für dein Objekt.
Ich habs ´mal Bitpanda.fiat_wallet genannt.
In den topics solltest Du nun die Pfad zu den künftigen Datenpunkten haben. Wenn das soweit klappt, melde Dich nochmal
-
@mickym
wie genial ist das denn bitte.
RIESEN Dankeschön -
@dasbo1975 Noch nicht fertig
Zum Schluss hängst Du einen iobroker-Out Node parallel zur debug Node dran:
Diese konfigurierst Du wie folgt.value für Type eingeben und create state if not exist.
Das Ergebnis ist das folgende Struktur in Deinem iobroker:
Na ich hoffe, ich konnte Dir zeigen, wieviel überlegener NodeRed gegenüber den Puzzleteilen ist. Insbesondere übersichtlicher.
-
@mickym
Ich bin wirklich beeindruckt.
Hätte ich nicht gedacht das du mich in so kurzer Zeit konvertierst.
Ich danke dir unendlich für deine Hilfe und die Zeit die du dir für mich genommen hast. -
@mickym
jetzt hast du mir ja Aufgaben gegeben.
Wie bekomme ich denn die Daten für die anderen Dinge hin die ich dann in msg.payload setze.z.b. aus https://api.bitpanda.com/v1/fiatwallets/transactions
-
@dasbo1975 sagte in Werte von Bitpanda abrufen:
z.b. aus https://api.bitpanda.com/v1/fiatwallets/transactions
Na Du machst halt parallel die HTTP-Request Nodes und verfährst halt entsprechend. Ob Du alle gemeinsam triggerst oder zu unterschiedlichen Zeiten - bleibt Dir überlassen. Ich würde halt den http Request Nodes entsprechende Namen geben.
-
@mickym
ja, das habe ich schon gemacht mit den Namen. Ich scheitere gerade an dem Punkt wo ich die Daten in die Change Note eintragen muss. -
Ja dann musst Du halt sagen, was Du für Daten brauchst. Ansonsten wenn Dir das zu kompliziert ist, dann nimm halt das komplette 1. Objekt.
Damit setzt Du die payload komplett auf das 1. data Objekt
Ansonten probiere in dem JSONATA Exerciser das aus.
JSONATA ist insofern genial, dass Du komplett neue Objekte erstellen kannst.
payload.data[0].{ "fiat_id": attributes.fiat_id, "fiat_symbol": attributes.fiat_symbol, "balance": attributes.balance, "name": attributes.name, "pending_transactions_count": attributes.pending_transactions_count, "id":id }
Mit payload.data[0] wählst Du auch das 1. Objekt aus. Dann machst Du einen Punkt und kannst mit den geschweiften Klammern ein völlig neues Objekt erzeugen.
In den Klammern definierst Du einfach wie die neuen Eigenschaften heißen sollen als Strings:
hier habe ich einfach eine neue Eigenschaft "Währung" definiert mit dem Wert aus dem Originalpfad: "attributes.fiat_symbol oder eine Eigenschaft "Benutzer" mit deinem Namen.
-
@mickym
ja, das ist wirklich genial.
Ich hänge gerade daran die Ausgabe von https://api.bitpanda.com/v1/fiatwallets/transactions
hinzubekommen. Wenn ich nur payload 0 nehme dann hab ich auch die metadaten mit dabei. Die bräuchte ich nicht. Jetzt versuche ich das etwas zu verkleinern. -
@dasbo1975 Ich habe Dir unten beschrieben wie Du neue Objekte erstellst .
Ansonsten - ohne meta:
payload.data[0]
-
Übrigens JSONATA kannst Du auch beim Puzzeln nutzen - es erspart Dir eine Menge Schleifen.
-
Ansonsten wenn Du mit den transactions nicht klarkommst, dann poste halt nochmal das Objekt, so wie Du es brauchst.
{ "type": "fiat_wallet_transaction", "attributes": { "fiat_wallet_id": "4019cdb0-1d62-11e8-b4b2-313f9b0a3bca", "user_id": "331efc50-1d62-11e8-89e6-c9db2cf7f1cc", "fiat_id": "1", "amount": "10.00000000", "fee": "0.00000000", "to_eur_rate": "1.00000000", "time": { "date_iso8601": "2019-02-21T17:53:23+01:00", "unix": "1550768003" }, "in_or_out": "outgoing", "type": "transfer", "status": "finished", "confirmation_by": "not_required", "confirmed": false, "payment_option_id": "12", "requires_2fa_approval": false, "last_changed": { "date_iso8601": "2019-02-21T17:53:23+01:00", "unix": "1550768003" } }, "id": "330bf710-35f9-11e9-9ad6-835877ccb6b9" }
Das ist ja das 1. data Objekt aus den fiat_transactions
-
@mickym
ich hab das jetzt noch nicht rausbekommen wie ich das bei jsonata exercier eingeben kann damit ein verwendbares json für die change note erhalte -
@dasbo1975 Dann gehen wir es Schritt für Schritt durch. - Also für die fiat_transactions.
https://try.jsonata.org/hHSA5jQlA
Mach diesen Link auf - und dann geben wir zusammen den Code in das rechte obere Fenster ein. OK?