NEWS
UNSOLVED Daten aus Url abfragen und in Datenpunkt schreiben
-
@el_malto ... Ja, ich bin sonst im ioBroker , Blockly und Co. schon ganz mit mir zufrieden - aber das ist mir dann doch noch zu hoch
.... Ich möchte gerne den Aktuellen BTC = EURO Wert der Tradingbörse Coinbase... und das als json
protokoll... damit ich damit wieder im Blockly arbeiten kann -
@MartinK. said: "https://api.coinbase.com/v2/prices/spot?currency=EUR"
Mit diesem Link funktioniert es so:
-
@paul53 said in Daten aus Url abfragen und in Datenpunkt schreiben:
Mit diesem Link funktioniert es so:
@MartinK
Da würde ich auch gar nicht mit dem parser rangehen.
Das zurückgeliefert json:
{"data":{"base":"BTC","currency":"EUR","amount":"31458.0"}}
ist so minimal, dass die von @paul53 geannte Lösung die mit Sicherheit einfachste ist, zumal@el_malto said in Daten aus Url abfragen und in Datenpunkt schreiben:
die Syntax von regex ist mir auch noch ein Rätsel.
das anscheinend auch für dich gilt
-
@paul53 said in Daten aus Url abfragen und in Datenpunkt schreiben:
@MartinK. said: "https://api.coinbase.com/v2/prices/spot?currency=EUR"
Mit diesem Link funktioniert es so:
Vielen Dank.
Ich werde das gleich einmal einbauen und testen.... Aber ich ich möchte auf langer Sicht auch die Logik dahinter verstehen und wie das ganze sich zusammensetzt !
.... damit ich auch was dazu lerne !
-
@martink said: wie das ganze sich zusammensetzt !
Bei der Analyse eines JSON hilft der JSONViewer.
-
@paul53 Woher bekomme ich denn diesen Wert? Da stehe ich noch etwas auf dem Schlauch??
-
@martink einfach in Blockly unter "Variablen" eine Varibale erstellen die "result" heißt.
-
@el_malto ok, und er Punkt "data.amount" - was beschreibt der bzw. welcher Datenpunkt ist das ????
-
@martink said in Daten aus Url abfragen und in Datenpunkt schreiben:
data.amount
wenn du dir das json ansiehstgibt es eine Hierarchie
data
in der es dann den Punktamount
gibt, dessen Wert du haben willst -
@homoran ...puuh ok.... ! Und dann habe ich noch eine Frage: Im Blockly wird ja "aktualisiere Objekt ID" eingefügt,
ist das ein Datenpunkt den manuell erzeugen muss mit dem Attribut "Zahl" ? ..... Wie gesagt ich bin noch nicht so fit und solchen "tricky" Sachen .... Bis jetzt mache ich nur ein bisschen Visualisierung und hier und da ein paar Blockly Automatisierungen -
@martink said: ist das ein Datenpunkt den manuell erzeugen muss mit dem Attribut "Zahl" ?
Ja, das ist ein eigener, virtueller Datenpunkt vom Typ "Zahl" (unter "0_userdata.0").
-
kann leider nicht löschen. erledigt
Ich hatte leider auf die Frage des TE geantwortet und erst später gesehen, das die schon alt ist.
Das kommt davon, wenn alte Fragen von anderen wieder reaktiviert werden. -
@oliverio said in Daten aus Url abfragen und in Datenpunkt schreiben:
oder über den Parser-Adapter.
das hatten wir oben schon.
Die Antwort ist das ganz einfach json, mit dem Blockly geht das einfacher als mit einem RegExIch mach das aber gerne trotzdem
-
@paul53 Ok, das habe ich dann schonmal richtig gemacht
Aber leider macht das Script noch nicht das was es soll.
Der Datenpunkt wird nicht mit der Zahl aktualisiert...? Wohin wird denn der Datensatz aus der "Response" Datei hin kopiert ? bzw. wo landet diese Response Datei ??? wenn ich den link "https://api.coinbase.com/v2/prices/spot?currency=EUR" ausführe wird ja gleich die response Datei heruntergeladen...Ich habe hier nochmal mein Blockly angefügt :
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="PXXZfO}r5^Rzf7Ug]:Fn">result</variable> </variables> <block type="schedule" id="C(HugQRxw?t3#}X=(TRh" x="213" y="63"> <field name="SCHEDULE">*/10 * * * * *</field> <statement name="STATEMENT"> <block type="request" id="8mY.$g!?HMPYZei.Y!y{"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="`*eC!5[/@U%o!m4m}S}~"> <field name="TEXT">https://api.coinbase.com/v2/prices/spot?currency=EUR</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id=";A|WauYvlU]WO=Gv#L}9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Bitcoinkurs.Bitcoinkurs</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="nf2_Q`~:L~w_nFQ-%X|m"> <value name="VALUE"> <block type="get_attr" id="br]#TiFAXJ@c:Aee~Gj@"> <value name="PATH"> <shadow type="text" id="~nlDRx~~WNNQ8SQsGNMq"> <field name="TEXT">data.amount</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="+dDT:+1D#jsXAo~{G]Zk"> <field name="VAR" id="PXXZfO}r5^Rzf7Ug]:Fn">result</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
und hier das Regex für den parser-Adapter
t":"([\d.]+)
Bitte die Abfragezeit sinnvoll einstellen - standard sind 5 Sekunden!
-
-
-
@homoran ich habe den Datenpunkt nochmal neu angelegt, und jetzt klappt es !!! Vielen Dank!
was mich noch interessieren würde, guckt sich das Blockly nur das Ergebnis der response Datei (aus dem link)
an ohne sie zu speichern? oder wird diese Response Datei irgendwo zu Hauf jetzt gespeichert ?? -
@martink said: wird diese Response Datei irgendwo zu Hauf jetzt gespeichert ??
Nein.
-
@paul53 ...aber kann mir noch jemand erklären, warum die Aktualisierung des Wertes nicht mehr funktioniert wenn ich den Datenpunkt in einem weiteren Unterordner anlege (skript wurde natürlich mit der neuen Unterordner aktualisiert)
rot = wird nicht aktualisiert
grün = im Hauptverzeichnis funktioniert es