Bitcoin und Ethereum Ticker in Fhem

Begonnen von hankyzoolander, 03 Oktober 2017, 07:03:48

Vorheriges Thema - Nächstes Thema

Duz

Hallo liebe Community,

ich habe das Schema von Rasti für Litecoin übernommen. Es kommen jedoch keine Werte :(
Was mache ich falsch

### LITECOIN
#define LITECOIN HTTPMOD http://www.coinkurs.com/litecoin-kurs.html 240
#setuuid LITECOIN 5e88aa6c-f33f-61ab-e81a-1a913f1fb481059d
#attr LITECOIN userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
#attr LITECOIN enableControlSet 1
#attr LITECOIN group Cryptos
#attr LITECOIN reading01Name litecoin
#attr LITECOIN reading01OExpr $val =~ s/\,//g;; $val;;
#attr LITECOIN reading01RegOpt s
#attr LITECOIN reading01Regex class="preis" id=,,LTCEUR">([\d\.?\,?]+)
#attr LITECOIN room Krypto
#attr LITECOIN stateFormat litecoin €
#attr LITECOIN timeout 10


Als Wert kommt nur "litecoin€"


Shadow3561

#61
attr LITECOIN reading01Regex id="preis" class="LTCEUR" style="display:inline-block;" code="LTC" name="[0-9]{1,3}.[0-9]{1,5}"[\s]*data-eur="([\d\.?\,?]+)

Mit freundlichen Grüßen


masl

Kann mir jemand sagen wie ich einen besonderen Coin auslesen kann?
https://www.coingecko.com/de/munze/airswap

Habe mal am httpmod probiert. Bekomme es aber nicht hin. Wichtig wäre nur der aktuelle Kurs

joker4791

kann es sein, dass der Code gar nicht mehr funktioniert?
Habe jetzt eine ganze Reihe an Codebeispielen ausprobiert und keinerlei Daten erhalten... Habe allerdings auch keine Ahnung von HTTPMOD oder Regex und was da wo auftauchen muss.

amenomade

Zitat von: joker4791 am 29 Oktober 2020, 07:47:43
kann es sein, dass der Code gar nicht mehr funktioniert?
Habe jetzt eine ganze Reihe an Codebeispielen ausprobiert und keinerlei Daten erhalten... Habe allerdings auch keine Ahnung von HTTPMOD oder Regex und was da wo auftauchen muss.
Klar. Die Quellseite (Domäne) gibt es nicht mehr.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

masl

Zitat von: joker4791 am 29 Oktober 2020, 07:47:43
kann es sein, dass der Code gar nicht mehr funktioniert?
Habe jetzt eine ganze Reihe an Codebeispielen ausprobiert und keinerlei Daten erhalten... Habe allerdings auch keine Ahnung von HTTPMOD oder Regex und was da wo auftauchen muss.

Der hier geht:

define Bitcoin HTTPMOD https://www.bitcoin.de/de/btceur/market 600

attr

alias Bitcoin
alignTime 00:00
enableControlSet 1
group Bitcoin
reading01Format %.0f
reading01Name bitcoin
reading01OExpr $val =~ s/\,//g; $val;
reading01RegOpt s
reading01Regex id="rate_buy" data-rate="([\d\.?\,?]+)
stateFormat bitcoin €
timeout 10
userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex

joker4791

#66
Zitat von: amenomade am 29 Oktober 2020, 08:56:01
Klar. Die Quellseite (Domäne) gibt es nicht mehr.
bitcoin.de existiert nach wie vor.

Zitat von: masl am 29 Oktober 2020, 12:48:44
Der hier geht: ...
Auch hier erhalte ich als Ergebnis: "bitcoin €".
Der Rückgabewert vom Aufruf lautet für HTTP-Header wie folgt:
HTTP/1.1 200 OK
Date: Fri, 30 Oct 2020 16:40:14 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 13282
Connection: close
Set-Cookie: __cfduid=dcba97003d98d8cb3869742c3c5d434621604076014; expires=Sun, 29-Nov-20 16:40:14 GMT; path=/; domain=.bitcoin.de; HttpOnly; SameSite=Lax
Cache-Control: private
Set-Cookie: bitcoin_de_supercoin=dbaca603bafe6c290c6fc466d77c4518:48f06561fc874016fdb87c023d68eb01bdda8002; path=/; SameSite=lax; secure; HttpOnly
Set-Cookie: bitcoin_de_language_keks=de_DE; expires=Sun, 29-Nov-2020 16:40:14 GMT; Max-Age=2592000; path=/; SameSite=lax; secure; HttpOnly
Vary: Accept-Encoding
Content-Encoding: gzip
Strict-Transport-Security: max-age=15552000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Referrer-Policy: same-origin
CF-Cache-Status: DYNAMIC
cf-request-id: 061bfaa38d000005ed74011000000001
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 5ea693b27bc505ed-FRA


================================================================

Nach etwas Wartezeit kommt nun doch ein Ergebnis:
Bitcoin 11590 €

amenomade

Zitat von: joker4791 am 30 Oktober 2020, 17:48:22
bitcoin.de existiert nach wie vor.


Naja... Wenn Du in einem Thread, wo es mind. 5 unterschiedliche Quellen gibt, "kann es sein, dass der Code gar nicht mehr funktioniert?" fragst, geht man davon aus, dass Du von der letzten erwähnten Webseite, sprich coinkurs.com, redest. Wie soll ich wissen, dass Du bitcoin.de benutzt?

Aber gut, Du hast anscheinend eine Lösung gefunden. Es wäre gut für die Nachwelt, ein "list" von deiner funktionierenden Lösung zu posten.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

rasti

Hallo,
ich habe inzwischen folgenden Code für die IOTA-Auswertung (geht natürlich auch für anderes)

### IOTA
define IOTA HTTPMOD https://www.godmode-trader.de/devisen/iota-euro-kurs,28036918 900
attr IOTA userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr IOTA enableControlSet 1
attr IOTA group Cryptos
attr IOTA reading01Name iota
attr IOTA reading01OExpr $val =~ s/,/\./g;; $val;;
attr IOTA reading01RegOpt s
attr IOTA reading01Regex <title>(.*?)\s
attr IOTA room Krypto
attr IOTA stateFormat iota €
attr IOTA timeout 10


Über die RegEx wird der Titel der HTML-Seite ausgewertet, wo dankenswerterweise der Autor der HTML-Seite auch den gesuchten Zahlenwert hinterlegt hat. Das macht die RegEx sehr einfach und solange der Wert im Titel steht, ist das ganze auch unabhängig von Codeänderungen, die anscheinend alle paar Wochen mal kommen.

Kleines Problem : Von Zeit zu Zeit kann man anscheinend nicht auf die Seite zugreifen, dann kommt bei http 503 service unavailable eben der Zahlenwert 503 und sorgt für unsinnige Peaks in meinen Graphen.

Frage : Kann man das irgendwie auf einfach elegante Weise rausfiltern ?

Viele Grüße

Ralf


mi.ke

Moin,

ich frage per HTTPMOD einen großen Teil des Krypto-Universums auf einmal ab:
https://api.bitpanda.com/v1/ticker

und hab die Kurse in verschiedenen Währungen.
Und es ist m.M.n. deutlich performanter als jeden Kurs einzeln zu ermitteln.

cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Gisbert

Hallo mi.ke,

vielen Dank für deinen Hinweis.
Kannst du deine gesamte Definition posten?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

mi.ke

Zitat von: Gisbert am 27 April 2021, 07:37:46

Kannst du deine gesamte Definition posten?


äh, ja.
Aber da ist jetzt echt nix besonderes dabei...


defmod <NAME> HTTPMOD https://api.bitpanda.com/v1/ticker 600
attr <NAME> extractAllJSON 1
attr <NAME> enableCookies 1
attr <NAME> regexDecode UTF-8
attr <NAME> requestHeader.* User-Agent: Mozilla/5.0 (Windows NT 10.0 rv:43.0) Gecko/20100101 Firefox/43.0
attr <NAME> timeout 30
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Gisbert

Hallo mi.ke,

cool, du solltest dein Licht nicht unter den Scheffel stellen.
Kleine Anmerkung, hinter requestHeader fehlt ein Leerzeichen.
Muss man dieses Attribut gelegentlich anpassen, oder kann es für immer so bleiben?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

mi.ke

Zitat von: Gisbert am 27 April 2021, 21:12:42
Muss man dieses Attribut gelegentlich anpassen, oder kann es für immer so bleiben?

Das kann eigentlich so bleiben
LG
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

mi.ke

korrekter wäre aber

requestHeader01 statt requestHeader.*
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara