NEWS
UNSOLVED Werte von Bitpanda abrufen
-
@mickym
genau.
kommt das dann als json oder kann man die einzelnen daten gleich in nodered auseinander ziehen und zu einzelnen dp im iobroker schicken? -
@dasbo1975 Ja das geht alles - aber wie machen erst mal die Daten so wie Du sie brauchst.
So OK?
-
@mickym
ja. das schaut gut aus -
@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.