Seite 1 von 1
Bitpanda - Preis Ticker einbinden (API)
Verfasst: 28. Apr 2020 19:06
von curius
Hallo!
Ich würde wieder mal eure Unterstützung benötigen...
Es gibt eine API bzw. URL, in welcher die aktuellen Kurse von Kryptowährungen verfügbar sind.
Ich würde ein paar Werte daraus gerne in openHAB einbinden.
Die API bzw. URL wird von Bitpanda zur Verfügung gestellt...
https://api.bitpanda.com/v1/ticker
Webseite dazu:
https://support.bitpanda.com/hc/de/arti ... Ticker-API
Kann mir von euch jemand sagen, in welche Richtung ich mich diesbezüglich weiter schlau machen muss?
Bin leider auf dem Gebiet kein Experte.
Es sieht für mich wie ein JSON-Ausdruck aus, den man womöglich mit dem HTTP Binding auswerten kann?
Besten Dank schon mal an euch...
Schöne Grüße
Christian
Re: Bitpanda - Preis Ticker einbinden (API)
Verfasst: 28. Apr 2020 20:28
von udo1toni
Genauso ist es, es handelt sich offensichtlich um JSON. Für Bitcoin wäre der Euro-Kurs z.B. mittels $.BTC.EUR abzurufen.
Es bietet sich an, das über einen http Cache zu erledigen.
Du installierst das http Binding und den jsonpath Transformation service.
Anschließend trägst Du in services/http.cfg zwei Zeilen ein:
Code: Alles auswählen
krypto.url=https://api.bitpanda.com/v1/ticker
krypto.updateInterval=3600000
Nun kannst Du mehrere Items anlegen, welche auf diesen Cache zugreifen:
Code: Alles auswählen
Number kryptoBTC "Bitcoin [%.2f EUR]" { http="<[krypto:60000:JSONPATH($.BTC.EUR)]" }
Number kryptoETH "Ethereum [%.2f EUR]" { http="<[krypto:60000:JSONPATH($.ETH.EUR)]" }
Das Updateinterval ist im Beispiel oben auf eine Stunde gesetzt, openHAB fragt also einmal pro Stunde unter der angegebenen url die Daten ab. Die Items holen sich ihre Information dann aus dem Cache, was also die Zugriffe über die API minimiert.
Vermutlich ist die url aber nur als Beispiel gedacht und die realen Kurse kommen nur, wenn man einen API-Key verwendet. Der muss dann halt in der url mit angegeben werden.
Re: Bitpanda - Preis Ticker einbinden (API)
Verfasst: 28. Apr 2020 22:51
von curius
Hallo,
vielen Dank für die rasche Antwort!
Ich bin mir leider nicht sicher, ob ein eigener API-Key für die Abfrage wirklich notwendig ist...
Die Kurse werden auf jeden Fall regelmäßig unter dieser URL korrekt aktualisiert.
Bekomme aber dennoch eine Fehlermeldung:
Code: Alles auswählen
2020-04-28 22:42:13.888 [WARN ] [ab.binding.http.internal.HttpBinding] - Transformation 'JSONPATH($.BTC.EUR)' threw an exception. [response=error code: 1010]
org.openhab.core.transform.TransformationException: Invalid path '$.BTC.EUR' in 'error code: 1010'
at org.openhab.core.transform.TransformationHelper$TransformationServiceDelegate.transform(TransformationHelper.java:71) ~[bundleFile:?]
at org.openhab.binding.http.internal.HttpBinding.execute(HttpBinding.java:218) [bundleFile:?]
at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:146) [bundleFile:?]
at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:169) [bundleFile:?]
Irgendwie findet er den Pfad nicht... Wenn ich aber online in einem JSONPath Evaluator "$.BTC.EUR" eingebe, wird der Wert sauber ausgelesen => mit den Beispieldaten aus dem Link.
Hast du sonst noch eine Idee woran das liegen könnte?
Ansonsten lege ich mal einen API-Key an und versuch es dann noch mal...
Besten Dank!
Grüße
Christian
Re: Bitpanda - Preis Ticker einbinden (API)
Verfasst: 29. Apr 2020 06:01
von PeterA
Hi,
ist der Jsonpath Transformservice Installiert?

Re: Bitpanda - Preis Ticker einbinden (API)
Verfasst: 29. Apr 2020 08:15
von curius
Guten Morgen!
Ja, sowohl JSONPath Transformation als auch das HTTP Binding sind installiert...
Sehr seltsam... die Werte im Link werden ständig aktualisiert. Kann mir somit nicht vorstellen, dass man da extra noch einen API-Key dafür benötigt.
Grüße
Christian
Re: Bitpanda - Preis Ticker einbinden (API)
Verfasst: 29. Apr 2020 17:40
von udo1toni
Also, nur, weil der Zugriff im Browser funktioniert, heißt das noch lange nicht, dass der Zugriff von openHAB aus auch funktioniert. Das kannst Du nur feststellen, indem Du ein zusätzliches Item anlegt, in welchem Du den kompletten Cache anzeigen lässt. So:
Code: Alles auswählen
String kryptoCache "%s" { http="<[krypto:60000:REGEX((.*))]" }
Achtung, hierzu muss noch die RegEx Transformation installiert sein.
Anschließend sollte bei jedem Update (also einmal pro Minute) im events.log der komplette Inhalt des Caches ausgegeben werden. Nur dort kannst Du prüfen, ob die Daten auch in openHAB ankommen.
Re: Bitpanda - Preis Ticker einbinden (API)
Verfasst: 29. Apr 2020 18:48
von curius
Hmmm...
... da kommt scheinbar nix an:
Code: Alles auswählen
2020-04-29 18:41:53.785 [vent.ItemStateChangedEvent] - kryptoCache changed from NULL to error code: 1010
Kann es vielleicht mit http
s zu tun haben?
Unterstützt das HTTP Binding überhaupt http
s?
Danke trotzdem für eure Hilfe - ich suche mal weiter
Grüße
Christian
Re: Bitpanda - Preis Ticker einbinden (API)
Verfasst: 29. Apr 2020 20:17
von udo1toni
curius hat geschrieben: ↑29. Apr 2020 18:48
Unterstützt das HTTP Binding überhaupt http
s?
Ja, das sollte kein Problem sein.