NEWS
Daten aus Url abfragen und in Datenpunkt schreiben
Daten aus Url abfragen und in Datenpunkt schreiben
-
Hallo,
ist es möglich von einer Url Daten abzufragen und einen Wert in einen Datenpunkt zu schreiben?
Ich habe einen Rasenmähroboter und möchte davon gerne die Qualität der Messer abfragen und diese in meiner Visualisierung anzeigen lassen.
Vielen Dank
-
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

-
@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").
@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!
-
@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> -
@paul53 said:
Bei mir funktioniert es:
glaub ich dir, aber @MartinK
schrieb ja, dass sein Datenpunkt nicht befüllt wurde.Dazu müsste ich mal sein Blockly (als Bild) sehen, und seinen Datenpunkt in den Objekten
-
@paul53 said:
Bei mir funktioniert es:
glaub ich dir, aber @MartinK
schrieb ja, dass sein Datenpunkt nicht befüllt wurde.Dazu müsste ich mal sein Blockly (als Bild) sehen, und seinen Datenpunkt in den Objekten
@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 ?? -
@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 ?? -
@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
-
@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
@martink da ist massiv was schief gelaufen!
in einem Hauptverzeichnis darf kein eigener Datenpunkt stehen.Bitte löschen und im Skript nochmal den richtigen state auswählen
ggf. refresh durchführen
EDIT:
oder ist das das "Hauptverzeichnis" von 0_userdata? -
@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
@martink said: kann mir noch jemand erklären, warum die Aktualisierung des Wertes nicht mehr funktioniert wenn ich den Datenpunkt in einem weiteren Unterordner anlege
Nein:

Die ID ist im Script richtig geschrieben? "0_userdata.0.Bitcoinkurs.bitcoinkurs"
-
@martink da ist massiv was schief gelaufen!
in einem Hauptverzeichnis darf kein eigener Datenpunkt stehen.Bitte löschen und im Skript nochmal den richtigen state auswählen
ggf. refresh durchführen
EDIT:
oder ist das das "Hauptverzeichnis" von 0_userdata? -
@martink said: kann mir noch jemand erklären, warum die Aktualisierung des Wertes nicht mehr funktioniert wenn ich den Datenpunkt in einem weiteren Unterordner anlege
Nein:

Die ID ist im Script richtig geschrieben? "0_userdata.0.Bitcoinkurs.bitcoinkurs"
-
@paul53 said in Daten aus Url abfragen und in Datenpunkt schreiben:
@martink said: wird diese Response Datei irgendwo zu Hauf jetzt gespeichert ??
Nein.
...nur für mich zum begreifen :

Wo wird denn der Request String gespeichert ? In der result Variable ? Kann ich den Inhalt vom String irgendwo sehen der geholt wird ? -
@paul53 said in Daten aus Url abfragen und in Datenpunkt schreiben:
@martink said: wird diese Response Datei irgendwo zu Hauf jetzt gespeichert ??
Nein.
...nur für mich zum begreifen :

Wo wird denn der Request String gespeichert ? In der result Variable ? Kann ich den Inhalt vom String irgendwo sehen der geholt wird ?@martink said in Daten aus Url abfragen und in Datenpunkt schreiben:
In der result Variable ?
Ja!
@martink said in Daten aus Url abfragen und in Datenpunkt schreiben:
Kann ich den Inhalt vom String irgendwo sehen der geholt wird ?
Ja!
debug-Block mit Ausgabe von result -
@cburghardt said in Daten aus Url abfragen und in Datenpunkt schreiben:
Ich habe noch eine Frage zu dem Skript, wie bekomme ich es denn hin, das der Kurs Wert z.B. alle 10 sek. aktualisiert wird ? Ich habe leider nicht so die große Ahnung von Java Skripten... und auch das Blockly von @el_malto durchblicke ich noch nicht so ganz....
Woher bekomme ich denn die genaue URL zum Kurs Wert der in Skript angezeigt werden soll ? Wenn ich jetzt z.B. einen anderen Wert von einer anderen URL einbinden möchte ?? mit dem Internet Browser den Quelltext untersuchen, und dann die Zeile mit dem Kurs Wert heraus suchen??? Sorry für die Frage, aber ich bin da noch nicht so fit

Hallo zusammen,
mich würde auch der aktuelle Wert von einer "Währung" interessieren.
Die ist aber Ethereum und nicht Bitcoin.
Was ich nicht verstehe, ist warum diese Abfrage :
den Bitcoin Kurs anzeigt.
Was muß ich dort ändern, um einen anderen Kurs zu bekommen?
Grüße
Manfred -
Hallo zusammen,
mich würde auch der aktuelle Wert von einer "Währung" interessieren.
Die ist aber Ethereum und nicht Bitcoin.
Was ich nicht verstehe, ist warum diese Abfrage :
den Bitcoin Kurs anzeigt.
Was muß ich dort ändern, um einen anderen Kurs zu bekommen?
Grüße
Manfred@beowolf wenn du nicht unbedingt auf eine bestimmte Börse angewiesen bist (meistens unterscheiden sich die Kurse von Börse zu Börse ja nur ein paar Euro) , kannst du auch den Binance Adapter benutzen. Da kannst du jede Währung die man bei Binance handeln kann abfragen. Einen API Key brauchst du nur wenn du den Stand deiner Konten abfragen willst. Wenn du einfach nur einen Kurs abfragen willst brauchst du den nicht. Der läuft bei mir schon lange ohne Probleme.
https://forum.iobroker.net/topic/31849/neuer-adapter-binance -
Und hier dann gleich noch ein Blockly.

Loglevel kann man natürlich ändern. War nur zum testen. Ebenso das letzte debug output war nur zum test um zu im log gucken wie der output aussieht.@el_malto
evtl. kannst du mir einen Tipp geben mit dem Blocky.
Will den UV-Wert aus einer Webseite auslesen.Webseite: https://api.openuv.io/api/v1/uv?lat=49.36&lng=8.25&dt=2018-01-24T10:50:52.283Z' \ -H 'x-access-token: 4f4f65045b988eb3f2ad959b1886f525
Das Resultat der URL sollte so aussehen:
{
- "result": { "uv": 7.0454, "uv_time": "2021-06-03T10:03:09.828Z", "uv_max": 7.8131, "uv_max_time": "2021-06-03T11:26:37.081Z", "ozone": 328.5, "ozone_time": "2021-06-03T09:04:07.922Z", - "safe_exposure_time": { "st1": 24, "st2": 28, "st3": 38, "st4": 47, "st5": 76, "st6": 142 }, - "sun_info": { - "sun_times": { "solarNoon": "2021-06-03T11:26:37.081Z", "nadir": "2021-06-02T23:26:37.081Z", "sunrise": "2021-06-03T03:25:55.512Z", "sunset": "2021-06-03T19:27:18.650Z", "sunriseEnd": "2021-06-03T03:29:59.850Z", "sunsetStart": "2021-06-03T19:23:14.312Z", "dawn": "2021-06-03T02:43:51.160Z", "dusk": "2021-06-03T20:09:23.002Z", "nauticalDawn": "2021-06-03T01:44:50.294Z", "nauticalDusk": "2021-06-03T21:08:23.868Z", "nightEnd": "2021-06-02T23:56:41.971Z", "night": "2021-06-03T22:56:32.191Z", "goldenHourEnd": "2021-06-03T04:15:35.318Z", "goldenHour": "2021-06-03T18:37:38.844Z" }, - "sun_position": { "azimuth": -0.6715074136164529, "altitude": 1.0200626838376345 } } }}
Mein Blocky:

Fehler:

-
@el_malto
evtl. kannst du mir einen Tipp geben mit dem Blocky.
Will den UV-Wert aus einer Webseite auslesen.Webseite: https://api.openuv.io/api/v1/uv?lat=49.36&lng=8.25&dt=2018-01-24T10:50:52.283Z' \ -H 'x-access-token: 4f4f65045b988eb3f2ad959b1886f525
Das Resultat der URL sollte so aussehen:
{
- "result": { "uv": 7.0454, "uv_time": "2021-06-03T10:03:09.828Z", "uv_max": 7.8131, "uv_max_time": "2021-06-03T11:26:37.081Z", "ozone": 328.5, "ozone_time": "2021-06-03T09:04:07.922Z", - "safe_exposure_time": { "st1": 24, "st2": 28, "st3": 38, "st4": 47, "st5": 76, "st6": 142 }, - "sun_info": { - "sun_times": { "solarNoon": "2021-06-03T11:26:37.081Z", "nadir": "2021-06-02T23:26:37.081Z", "sunrise": "2021-06-03T03:25:55.512Z", "sunset": "2021-06-03T19:27:18.650Z", "sunriseEnd": "2021-06-03T03:29:59.850Z", "sunsetStart": "2021-06-03T19:23:14.312Z", "dawn": "2021-06-03T02:43:51.160Z", "dusk": "2021-06-03T20:09:23.002Z", "nauticalDawn": "2021-06-03T01:44:50.294Z", "nauticalDusk": "2021-06-03T21:08:23.868Z", "nightEnd": "2021-06-02T23:56:41.971Z", "night": "2021-06-03T22:56:32.191Z", "goldenHourEnd": "2021-06-03T04:15:35.318Z", "goldenHour": "2021-06-03T18:37:38.844Z" }, - "sun_position": { "azimuth": -0.6715074136164529, "altitude": 1.0200626838376345 } } }}
Mein Blocky:

Fehler:



