Bitcoin und Ethereum Ticker in Fhem

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

Vorheriges Thema - Nächstes Thema

hankyzoolander

Hallo,
möchte hier meine Httpmod`s für Bitcoin und Ethereum vorstellen.
Vielleicht braucht es ja jemand.

Bitcoin:
define Bitcoin httpmod http://www.finanzen.net/devisen/bitcoin-euro-kurs 10
attr Bitcoin readingsName_bitcoin bitcoin
attr Bitcoin readingsRegex_bitcoin text-sm-right\stext-nowrap">(\d.\d?\d\d)
stateFormat bitcoin€
Room HTTP MOD


Ethereum:
define Ethereum httpmod http://www.finanzen.net/devisen/ethereum-euro-kurs 60
attr Ethereum readingsName_ethereum ethereum
attr Ethereum readingsRegex_ethereum text-sm-right\stext-nowrap">(\d\d\d.\d\d)
stateFormat ethereum€
Room HTTP MOD



Es wär natürlich absolut der Brüller wenn jemand in der Lage wär die entsprechenden Icons zu Basteln.
betateilchen  <--- my personal hero

hankyzoolander

#1
Hab mich mal an den Icons versucht.

Allerdings kein Plan warum das Bitcoin Icon nur grau dargestellt wird.
Wenn das jemand besser kann, nur zu.

Edit:.
Habe statt Füllung jetzt mal auf Kontur gestellt.
So wär das Ethereum Icon in Ordnung. Allerdings ist es grau statt schwarz.
In der attr ist @black hinterlegt.
betateilchen  <--- my personal hero

abc2006

#2
Hi,
das angegebene Beispiel(für Bitcoin) funktioniert bei mir nicht.
Es wird kein reading "bitcoin" erstellt ...

Grüße,
Stephan


edit: unnötig gewordenen Code, der vom Forum nicht erkannt wurde, gelöscht
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

ComputerZOO


abc2006

#4
Ja, sonst hätt ich nicht geschrieben...

Aber, ich habs gelöst (und umgebaut auf die neuen Attribute):


define BTC HTTPMOD https://www.bitcoin.de/de/btceur/market 30
attr BTC reading01Name BTC
attr BTC reading01Regex id="ticker_price">(.*)<
attr BTC stateFormat BTC


edit: da war ich wohl zu schnell. Danke, dev0.

Grüße
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

dev0

Zitat von: abc2006 am 27 Oktober 2017, 02:11:41

define BTC https://www.bitcoin.de/de/btceur/market 30

Das kann so nicht funktionieren.

jostmario

Hallo,

hat das zufällig auch jemand für diverse andere Kryptowährungen.
wie bekomme ich ethereum eingebaut.

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

jostmario

Hallo,

wie bekomme ich das € zeichen aus dem Reading gefiltert um ein Plot zu erstellen ?

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

DeeSPe

#8
Zitat von: jostmario am 14 November 2017, 13:02:36
wie bekomme ich das € zeichen aus dem Reading gefiltert um ein Plot zu erstellen ?

Das würde ich über ein userReading lösen (und das dann loggen/plotten), da das Zahlenformat auch nicht konform ist.
Mit dem Beispiel von oben:
Zitat von: abc2006 am 27 Oktober 2017, 02:11:41

define BTC HTTPMOD https://www.bitcoin.de/de/btceur/market 30
attr BTC reading01Name BTC
attr BTC reading01Regex id="ticker_price">(.*)<
attr BTC stateFormat BTC


Wäre das dann:

attr BTC userReadings btc:BTC.* {my $v = ReadingsVal($name,"BTC",0);; $v =~ s/[\s\.€]//g;; $v =~ s/,/./;; $v}


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

viegener

#9
@jostmario: Du kannst es mal mit folgendem Regex bei BTC versuchen

id="ticker_price">([0-9,.]+)[^0-9,.]+

Im state ist es ja durch das stateformat enthalten und aus dem reading BTC  lässt sich ein plot machen
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

jostmario

Hallo

in dem Userreading
attr BTC userReadings btc:BTC.* {my $v = ReadingsVal($name,"BTC",0);; $v =~ s/[\s\.€]//g;; $v =~ s/,/./;; $v}
schreibt er jetzt ins Log

2017-11-14_14:27:49 Bitcoin bitcoin: 5671.85
dadurch das es Punkt statt Komma ist kann er wohl auch nicht Plotten.

Gruß Josty

Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

DeeSPe

Zitat von: jostmario am 14 November 2017, 14:32:19
2017-11-14_14:27:49 Bitcoin bitcoin: 5671.85
dadurch das es Punkt statt Komma ist kann er wohl auch nicht Plotten.

Der Punkt ist aber das "richtige" Komma bei Zahlen in Perl.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

jostmario

Hallo,

hmm das Logfile sieht so aus
2017-11-14_14:37:07 Bitcoin bitcoin: 5671.85
2017-11-14_14:37:12 Bitcoin bitcoin: 5671.85
2017-11-14_14:37:37 Bitcoin bitcoin: 5671.85
2017-11-14_14:37:41 Bitcoin bitcoin: 5671.85
2017-11-14_14:37:47 Bitcoin bitcoin: 5671.85
2017-11-14_14:37:53 Bitcoin bitcoin: 5671.85
2017-11-14_14:37:59 Bitcoin bitcoin: 5671.85
2017-11-14_14:38:15 Bitcoin bitcoin: 5671.85
2017-11-14_14:38:19 Bitcoin bitcoin: 5671.85
2017-11-14_14:38:26 Bitcoin bitcoin: 5671.85
2017-11-14_14:39:52 Bitcoin bitcoin: 5671.85
2017-11-14_14:39:58 Bitcoin bitcoin: 5671.85
2017-11-14_14:40:06 Bitcoin bitcoin: 1000
2017-11-14_14:40:13 Bitcoin bitcoin: 5671.85
2017-11-14_14:40:19 Bitcoin bitcoin: 5671.85
2017-11-14_14:40:26 Bitcoin bitcoin: 5671.85
2017-11-14_14:40:32 Bitcoin bitcoin: 5671.85
2017-11-14_14:40:38 Bitcoin bitcoin: 5671.85


und das Plot so wie im Anhang.
er plotet quasi nur meine selbst eingefügte 1000

Gruß Josty


Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

DeeSPe

Dann probier mal ob das geht:
attr BTC userReadings btc:BTC.* {my $v = ReadingsVal($name,"BTC",0);; $v =~ s/[\s\.€]//g;; $v}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

So aber! ;)

attr BTC userReadings btc:BTC.* {my $v = ReadingsVal($name,"BTC",0);; $v =~ s/[\s\.€]//g;; $v =~ s/,/./;; round($v,2)}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

jostmario

#15
Hallo,

nach der zahl im userreading ist anscheinend noch ein leerzeichen direkt dran.
Dann liegt es warscheinlich nicht an dem Punkt sondern an dem leerzeichen
Wie bekomm ich dieses denn noch raus.

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

DeeSPe

Zitat von: jostmario am 14 November 2017, 15:24:57
nach der zahl im userreading ist anscheinend noch ein leerzeichen direkt dran.

Kann nicht sein denn die Leerzeichen werden ja wegsubstituiert.

Bei mir läuft es nun schon gut 3 Stunden mit dieser Definition:
defmod BTC HTTPMOD https://www.bitcoin.de/de/btceur/market 300
attr BTC userattr reading01Name reading01Regex
attr BTC reading01Name BTC
attr BTC reading01Regex id="ticker_price">(.*)<
attr BTC room HTTPMOD
attr BTC stateFormat BTC
attr BTC userReadings btc:BTC.* {my $v = ReadingsVal($name,"BTC",0);; $v =~ s/[\s\.€]//g;; $v =~ s/,/./;; round($v,2)}

defmod FileLog_BTC FileLog ./log/BTC-%Y.log BTC:btc.*


Ein Plot auf FileLog_BTC funktioniert auch.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

viegener

Vielleicht passt etwas an der Plot definition nicht?

Was funktioniert denn beim Plot nicht?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Gisbert

Hallo,

ich bin am Kurs von Ethereum interessiert.
Wie müsste denn die Abfrage auf dieser Seite lauten http://www.finanzen.net/devisen/ethereum-euro-kurs?
Ich kenn mich leider gar nicht aus und bin auf Unterstützung angewiesen.
Oder gibt es vielleicht eine andere Seite, bei dem jemand den Kurs in Fhem eingeladen hat?

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

viegener

Kleiner Tipp lies doch mal das erste Posting im Thread ;)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Gisbert

Hallo viegener,

soweit war ich natürlich auch schon, entsprechende userattr habe ich auch angelegt.
Die Antwort 2 sagt aber, dass keine Daten reinkommen - und das ist bei mir auch der Fall.
2017.11.15 21:30:35 3: Ethereum: Read response to update didn't match any Reading

Falls Du es testen willst:
defmod Ethereum HTTPMOD http://www.finanzen.net/devisen/ethereum-euro-kurs 60
attr Ethereum userattr reading01Name reading01Regex
attr Ethereum reading01Name ethereum
attr Ethereum reading01Regex text-sm-right\stext-nowrap">(\d\d\d.\d\d)
attr Ethereum stateFormat ethereum€

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

viegener

Gut bei mir hat der ursprüngliche Ausdruck zwar anfangs funktioniert, ich habe aber trotzdem den Regexp bei mir angepasst, vielleicht geht das ja


define Ethereum HTTPMOD http://www.finanzen.net/devisen/ethereum-euro-kurs 900
attr Ethereum reading01Name ethereum
attr Ethereum reading01RegOpt s
attr Ethereum reading01Regex quotebox">[^<]*<div[^<]*<div>([0-9,]+)[^0-9,]*<span>.*EUR
attr Ethereum stateFormat ethereum€
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Gisbert

Hallo viegener,

danke, das funktioniert jetzt.
Noch eine Frage:

  • Was bedeutet: attr Ethereum reading01RegOpt s ?

Das Dezimalkomma kann man noch in einen Dezimalpunkt umwandeln; damit kann man dann auch ein Diagramm erzeugen.
Hab's hier gefunden:
https://forum.fhem.de/index.php/topic,51471.msg449064.html#msg449064

defmod Ethereum HTTPMOD http://www.finanzen.net/devisen/ethereum-euro-kurs 30
attr Ethereum userattr reading01Expr reading01Name reading01Regex
attr Ethereum reading01Expr $val =~ s/,/\./;; $val;;
attr Ethereum reading01Name ethereum
attr Ethereum reading01Regex quotebox">[^<]*<div[^<]*<div>([0-9,]+)[^0-9,]*<span>.*EUR
attr Ethereum stateFormat ethereum€


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

viegener

RegOpt s bedeutet, dass der Regex nicht auf jede Zeile angewendet wird, sondern auf die gesamte Seite - damit kann ich einen Ausdruck definieren, der über mehrere Zeilen matcht.

Mit ging es darum einen Ausdruck zu haben, der sich auf einen Teil der Seite bezieht die wirklich zu den Kursdaten gehört und nicht nur auf irgendeeinen zufälligen String im HTML. Damit nicht bei einer Umstellung der Seite eine falsche Zahl als Kurs erkannt wird. Es kann dafür aber sein, dass bei einer Umstellung der Seite eine Anpassung nötig wird
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

jostmario

Hallo,

Danke Jungs ihr seit klasse..... Es funktioniert.

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

jostmario

#25
Hallo

wie bekomme ich den wert zu verkaufende Bitcoins noch in fhem als BTC reading mit rein.
https://www.bitcoin.de/de/btceur/market


ein List BTC gibt folgendes aus:
Siehe Anhang:

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

forum-merlin

Hi.
Hätte ich halt auch mal hier geschaut. Dann wäre ich sicher schneller ans Ziel gekommen.
Ich habe gestern mit der Hilfe aus der Facebookgruppe quasi das Gleiche gebaut.

Anbei meine DEFI und ein Screenshot wie es in der Oberfläche aussieht.

Ich hoffe es hilft zusätzlich.

Gruß,
Holger
FHEM 5.8 auf RasPi3; CULv3-868; RFXtrx433; HM-Sec-SC-2; HM-CFG-LAN; HM-LC-Bl1-FM; HM-CC-RT-DN; HM-ES-PMSw1-Pl; HM-LC-Sw4-DR; Hunter Ventile; 8ch Relais; ENIGMA2; ONKYO_AVR; SONOS; Harmony; telegram; HM-PB-6-WM55; GPIO; HM-Sen-MDIR-O; HM-SEC-SD; HM-LC-Dim1L-Pl-3;

jostmario

Hallo,

ja schaut gut aus gibt es auch was für IOTA?

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

DeeSPe

Zitat von: jostmario am 29 November 2017, 16:38:17
Hallo

wie bekomme ich den wert zu verkaufende Bitcoins noch in fhem als BTC reading mit rein.
https://www.bitcoin.de/de/btceur/market


ein List BTC gibt folgendes aus:
Siehe Anhang:

Gruß Josty

Schau mal hier.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Germanys-Life

hey

super danach habe ich gesucht. Ich danke euch :)
Jetzt mal eine frage, wie kann ich jetzt beispielsweise meine BTC die ich besitze mit dem aktuellen Kurs verrechnen, damit ich weiß welchen Wert meine BTC etwa haben ??
Hat das schon einer gemacht bzw versucht?

Gruß und ein schön Sonntag euch 
Raspberry Pi 3 -- FHEM 5.8 -- EQ3 MAX! -- Intertechno -- CUL

Gisbert

Zitat von: forum-merlin am 02 Dezember 2017, 18:00:02
Hi.
Hätte ich halt auch mal hier geschaut. Dann wäre ich sicher schneller ans Ziel gekommen.
Ich habe gestern mit der Hilfe aus der Facebookgruppe quasi das Gleiche gebaut.

Anbei meine DEFI und ein Screenshot wie es in der Oberfläche aussieht.

Ich hoffe es hilft zusätzlich.

Gruß,
Holger

Hallo Holger,

ich hab in Anlehnung deiner Defintion folgendes bei mir genutzt. Leider verstehe ich nicht wirklich wie es funktioniert, als Ergebnis bekomme 1 Eur, was von der Größenordnung 4 Zehnerpotenzen zu klein ist.
defmod Bitcoin HTTPMOD https://www.bitcoin.de/de/btceur/market 300
attr Bitcoin userattr reading01Format reading01Name reading01RegOpt reading01Regex
attr Bitcoin enableControlSet 1
attr Bitcoin group Bitcoin
attr Bitcoin reading01Name bitcoin
attr Bitcoin reading01RegOpt s
attr Bitcoin reading01Regex <span id="rate_buy" data-rate="[\d\,\.]+">.*\R.*\s([\d\.\,]+).+<\/span>
attr Bitcoin room Mobile
attr Bitcoin stateFormat bitcoin €

setstate Bitcoin 1 €
setstate Bitcoin 2017-12-06 19:00:32 bitcoin 1


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

jostmario

Hallo,

kann es sein das das seit heute 18:00 nicht mehr funktioniert ß

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

CBSnake

Hi,

ja ruf Mal Bitcoin.de direkt auf da siehste erst ne 5sec Warte/Browserprüfseite.

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

jostmario

Ja die haben da wohl was geändert kann man das umgehen.
Jetzt hatte ich so ne schöne RSS Anzeige .....

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

CBSnake

Hmm ich Spiel Grad mit dem Attribut timeout muss ich aber am PC machen, am Handy ist das der Hass ;-)
Falls sich was ergibt poste ich das natürlich hier
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

CBSnake

nachtrag:

mit enableCookies und QueueDelay als Attribut gehts es nun wieder, welches der beiden es nun gebracht hat oder beide in Kombi oder ob Bitcoin nun wieder umgestellt hat muss ich dann mal testen :-)

Grüße

Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

jostmario

Hallo,

ich hatte nach deinem letzten Post auf Timeout 10 gestelt dann ging es.
kann natürlich auch nicht sagen ob es daran liegt oder Bitcoin.de was gemacht haben.

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

krikan

Bitte denkt darüber nach, ob es wirklich sinnvoll ist, externe Webseiten wie in Post #1 gezeigt alle 10 oder 60 Sekunden oder in ähnlich kurzen Intervallen abzurufen. Das führt bei den Dienstanbietern unter Umständen zu hohen Belastungen und schlimmstenfalls zu Diensteinschränkungen.

Aktuelles zum Thema und der Problematik: https://forum.fhem.de/index.php/topic,80685.0.html

Gisbert

#38
Hallo,

leider komme ich noch gar nicht zurecht.
Wenn ich das Attribut wie folgt setze, erhalte ich als Ergebnis 12, also die Zahl vor dem Tausenderpunkt:
attr Bitcoin reading01Regex id="rate_buy" data-rate="([\d\.]+)
D.h. es funktioniert ein bißchen, aber wie bekomme die Zahlen nach dem Tausenderpunkt?

Liebe​ 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

Gisbert

#39
Hallo zusammen,

durch Probieren und mit Hilfe dieses Beitrages habe ich es geschafft.
https://forum.fhem.de/index.php/topic,78553.0.html

defmod Bitcoin HTTPMOD https://www.bitcoin.de/de/btceur/market 900
attr Bitcoin userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr Bitcoin enableControlSet 1
attr Bitcoin group Bitcoin
attr Bitcoin reading01Format %.1f
attr Bitcoin reading01Name bitcoin
attr Bitcoin reading01OExpr $val =~ s/\,//g;; $val;;
attr Bitcoin reading01RegOpt s
attr Bitcoin reading01Regex id="rate_buy" data-rate="([\d\.?\,?]+)
attr Bitcoin room Mobile
attr Bitcoin stateFormat bitcoin €
attr Bitcoin timeout 10

setstate Bitcoin 12400.0 €
setstate Bitcoin 2017-12-09 13:43:21 bitcoin 12400.0

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

thotti70

Hallo an Alle,
falls jemand noch einen anderen Anbieter der Kurse abfragen möchte, hier für gdax (coinbase.com), welcher bei mir ganz gut funktioniert ;-)
defmod HTTP.gdax HTTPMOD https://bitinfocharts.com/de/markets/gdax/ 120
attr HTTP.gdax userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex
attr HTTP.gdax enableControlSet 1
attr HTTP.gdax icon wuerfel
attr HTTP.gdax reading01Name vLTC
attr HTTP.gdax reading01Regex id="lastTrade9">([\d\.?\,?]+)EUR<\/span>
attr HTTP.gdax reading02Name vBTC
attr HTTP.gdax reading02Regex id="lastTrade4">([\d\.?\,?]+)EUR<\/span>
attr HTTP.gdax reading03Name vETH
attr HTTP.gdax reading03Regex id="lastTrade8">([\d\.?\,?]+)EUR<\/span>
attr HTTP.gdax stateFormat BTC:vBTC€ ETH:vETH€ LTC:vLTC€


LG Thotti

thotti70

Und damit es nicht langweilig wird, hier noch einer ;-)

defmod HTTP.Cointed HTTPMOD https://www.cointed.com/en/about-us 120
attr HTTP.Cointed userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex
attr HTTP.Cointed enableControlSet 1
attr HTTP.Cointed icon wuerfel
attr HTTP.Cointed reading01Name vBTC
attr HTTP.Cointed reading01Regex <span id="tickerHeader-BTCEUR">([\d\.?\,?]+)<\/span>
attr HTTP.Cointed reading02Name vETH
attr HTTP.Cointed reading02Regex <span id="tickerHeader-ETHEUR">([\d\.?\,?]+)<\/span>
attr HTTP.Cointed reading03Name vLTC
attr HTTP.Cointed reading03Regex <span id="tickerHeader-LTCEUR">([\d\.?\,?]+)<\/span>
attr HTTP.Cointed stateFormat BTC:vBTC€  ETH:vETH€  LTC:vLTC€


LG Thotti

Fixel2012

Zitat von: jostmario am 02 Dezember 2017, 20:28:57
Hallo,

ja schaut gut aus gibt es auch was für IOTA?

Gruß Josty

Moin,
daran wäre ich auch Inreressiert. Allerdings blicke ich nicht so ganz bei HTTPMOD durch  ;D

Einige hier haben sich die Bitcoins ausgeben lassen, in dem das <div> oder auch <span> by id gesucht wurde. Bei meinen 3 Seiten, die ich zu IOTA gefunden habe, ist dies allerdings nicht möglich, da das Element, wo der Preis steht keine ID hat.

Bsp:

<span>3,6565 €</span>


https://www.coingecko.com/de/kurs_chart/iota/eur

Hat da jemand einen Tipp/Idee?
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

thotti70

Hi,
ich bin sicherlich auch kein Profi bei RegEx, aber probieren macht schlau ;-)
Im Zweifelsfall musst du ein "größeres" Suchmuster bemühen.
Sprich nicht nur die einzelne Zeile, sondern auch die davor oder danach. Muss halt eindeutig sein und sich nicht ändern.

In deinem Fall könnte (ungetestet) evtl. das weiterhelfen:
<td style="border-bottom: none;">IOT<\/td>\s<td style="text-align:right;border-bottom: none;">\s<span>([\d\.?\,?]+) €<\/span>\s<\/td>

Ich kann an dieser Stelle nur noch diese Seite empfehlen: https://regex101.com/
Dort kann man den Quelltext der betreffenden Webseite und seine RegEx einfügen und testen.


Viel Erfolg und Grüße
Thotti

Fixel2012

Super, hat funktioniert!

Mir war nicht bewusst, in wie fern ich das Suchmuster angebe.

Danke dir
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

djbone92

Hi Leute  ;D

Ich glaube ich bin einfach zu dumm für den Regex...  :'(
könnte mir bitte einer einen Tipp geben, wie ich den Wert in ein Reading bekomme...  :)

mfg
bone

Gisbert

Hallo bone,

ich mach's wie folgt, für etliche Kryptowährungen, vielleicht ist was für dich dabei:
### Ethereum
define Ethereum HTTPMOD http://www.finanzen.net/devisen/ethereum-euro-kurs 600
attr Ethereum userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr Ethereum enableControlSet 1
attr Ethereum group Bitcoin
attr Ethereum reading01Format %.2f
attr Ethereum reading01Name ethereum
attr Ethereum reading01OExpr $val =~ s/,/\./;; $val;;
attr Ethereum reading01RegOpt s
attr Ethereum reading01Regex quotebox">[^<]*<div[^<]*<div>([\d\.?\,?]+)
attr Ethereum room Mobile
attr Ethereum stateFormat ethereum €

### Bitcoin
define Bitcoin HTTPMOD https://www.bitcoin.de/de/btceur/market 600
attr Bitcoin userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr Bitcoin enableControlSet 1
attr Bitcoin group Bitcoin
attr Bitcoin reading01Format %.0f
attr Bitcoin reading01Name bitcoin
attr Bitcoin reading01OExpr $val =~ s/\,//g;; $val;;
attr Bitcoin reading01RegOpt s
attr Bitcoin reading01Regex id="rate_buy" data-rate="([\d\.?\,?]+)
attr Bitcoin room Mobile
attr Bitcoin stateFormat bitcoin €
attr Bitcoin timeout 10

### IOTA
define IOTA HTTPMOD http://www.coinkurs.com/iota-kurs.html 600
attr IOTA userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr IOTA enableControlSet 1
attr IOTA group Bitcoin
attr IOTA reading01Format %.4f
attr IOTA reading01Name iota
attr IOTA reading01RegOpt s
attr IOTA reading01Regex class="preis" id="MIOTAEUR">([\d\.?\,?]+)
attr IOTA room Mobile
attr IOTA stateFormat iota €
attr IOTA timeout 10

### Ripple
define Ripple HTTPMOD http://www.coinkurs.com/ripple-kurs.html 600
attr Ripple userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr Ripple enableControlSet 1
attr Ripple group Bitcoin
attr Ripple reading01Format %.4f
attr Ripple reading01Name ripple
attr Ripple reading01RegOpt s
attr Ripple reading01Regex class="preis" id="XRPEUR">([\d\.?\,?]+)
attr Ripple room Mobile
attr Ripple stateFormat ripple €
attr Ripple timeout 10

### Litecoin
define Litecoin HTTPMOD http://www.coinkurs.com/litecoin-kurs.html 600
attr Litecoin userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr Litecoin enableControlSet 1
attr Litecoin group Bitcoin
attr Litecoin reading01Format %.2f
attr Litecoin reading01Name litecoin
attr Litecoin reading01RegOpt s
attr Litecoin reading01Regex class="preis" id="LTCEUR">([\d\.?\,?]+)
attr Litecoin room Mobile
attr Litecoin stateFormat litecoin €
attr Litecoin timeout 10

### NEO
define NEO HTTPMOD http://www.coinkurs.com/neo-kurs.html 600
attr NEO userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr NEO enableControlSet 1
attr NEO group Bitcoin
attr NEO reading01Format %.3f
attr NEO reading01Name neo
attr NEO reading01RegOpt s
attr NEO reading01Regex class="preis" id="NEOEUR">([\d\.?\,?]+)
attr NEO room Mobile
attr NEO stateFormat neo €
attr NEO timeout 10

### Bitcoin Cash
define BitcoinCash HTTPMOD http://www.coinkurs.com/bitcoin-cash-kurs.html 600
attr BitcoinCash userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr BitcoinCash enableControlSet 1
attr BitcoinCash group Bitcoin
attr BitcoinCash reading01Format %.1f
attr BitcoinCash reading01Name bitcoincash
attr BitcoinCash reading01OExpr $val =~ s/\,//g;; $val;;
attr BitcoinCash reading01RegOpt s
attr BitcoinCash reading01Regex class="preis" id="BCHEUR">([\d\.?\,?]+)
attr BitcoinCash room Mobile
attr BitcoinCash stateFormat bitcoincash €
attr BitcoinCash timeout 10

define FileLog_Bitcoin FileLog ./log/Bitcoin-%Y-%m.log (Bitcoin|Ethereum|IOTA|Litecoin|Ripple|NEO|BitcoinCash):(bitcoin|ethereum|iota|litecoin|ripple|neo|bitcoincash).*
attr FileLog_Bitcoin createGluedFile 1
attr FileLog_Bitcoin logtype text

define SVG_FileLog_Bitcoin_1 SVG FileLog_Bitcoin:SVG_FileLog_Bitcoin_1:CURRENT
attr SVG_FileLog_Bitcoin_1 alias Kryptowährungen
attr SVG_FileLog_Bitcoin_1 captionPos auto
attr SVG_FileLog_Bitcoin_1 room Mobile
attr SVG_FileLog_Bitcoin_1 sortby 18


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

_fhemuser_

@Gisbert
momentam wechselt Ethereum um die 1000€ dann wird in der Datenbank nur 1,00€ eingetragen. Wenn man den Wert mit 1000 multipliziert, wird bei 998 der Wert 998000€ eingetragen.

Kann man das abfangen?
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

Gisbert

Hallo,

man kann das Problem abfangen. Ich frage mittlerweile Ethereum bei Bitcoin.de ab, wobei auch dort das Tausenderproblem exisiert:
define Ethereum HTTPMOD https://www.bitcoin.de/de/etheur/market 600
attr Ethereum userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr Ethereum enableControlSet 1
attr Ethereum group Bitcoin
attr Ethereum reading01Format %.1f
attr Ethereum reading01Name ethereum
attr Ethereum reading01OExpr $val =~ s/\,//g;; $val;;
attr Ethereum reading01RegOpt s
attr Ethereum reading01Regex id="rate_buy" data-rate="([\d\.?\,?]+)
attr Ethereum room Mobile
attr Ethereum stateFormat ethereum €
attr Ethereum timeout 10


Wichtig ist dabei, dass das folgende Attribut so aussieht, war vorher nicht der Fall:
attr Ethereum reading01OExpr $val =~ s/\,//g;; $val;;

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

_fhemuser_

Danke für die schnelle Antwort.

Die Änderung bei reading01OExpr hatte ich auch schon durchgeführt, hat aber nur bei Werten über 1000 € eine Verbesserung gebracht. Unter 1000€ wird >1€ angezeigt.

Sind überhaupt Bedingungen  in diesem Bereich möglich?
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

djbone92

Hallo
meins funktioniert noch:

define CEXIO HTTPMOD https://cex.io/ 60
attr CEXIO userattr reading01Name reading01Regex reading02Name reading02Regex
attr CEXIO reading01Name ETH
attr CEXIO reading01Regex id="ticker-ETH-EUR-price" class="btn_caption">([\d\.?\,?]+)
attr CEXIO reading02Name XRP
attr CEXIO reading02Regex id="ticker-XRP-EUR-price" class="btn_caption">([\d\.?\,?]+)
attr CEXIO room cex.io
attr CEXIO stateFormat Etherium:ETH€    Ripple:XRP€

Mfg
Bone

Gesendet von meinem ONEPLUS A5000 mit Tapatalk


_fhemuser_

@bone
du fragst aber damit nicht direkt die Daten von den bitcoin.de oder finanzen.net ab. Es sieht eher so aus, als ob du die Webseiten auf deinem System zwischenspeicherst und dort eventuell Zwischenwerte oder Formatierungen anpasst.
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

djbone92

Zitat von: _fhemuser_ am 11 Januar 2018, 08:42:00
@bone
du fragst aber damit nicht direkt die Daten von den bitcoin.de oder finanzen.net ab. Es sieht eher so aus, als ob du die Webseiten auf deinem System zwischenspeicherst und dort eventuell Zwischenwerte oder Formatierungen anpasst.
Hy
Ich frage die werte von cex.io ab.
Ja im prinzip speichere ich den quellcode ab (HTTPMOD)
Und in den readings habe ich dann die werte der Währungen.
Mfg
Bone

Gesendet von meinem ONEPLUS A5000 mit Tapatalk


_fhemuser_

Danke,

bei cex.io werden die Werte ohne den Tausendertrennpunkt angezeigt. Daher ist die Auswertung deutlich einfacher,
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

djbone92

Zitat von: _fhemuser_ am 11 Januar 2018, 09:52:31
Danke,

bei cex.io werden die Werte ohne den Tausendertrennpunkt angezeigt. Daher ist die Auswertung deutlich einfacher,
Hy
Ja funktioniert echt toll :)

Aber ACHTUNG:
Wenn du wirklich handelst solltest du die Kurse von deiner Seite nehmen.. Sind immer bei allen Seiten leicht unterschiedlich...

Mfg

Gesendet von meinem ONEPLUS A5000 mit Tapatalk


_fhemuser_

Das mit den Unterschieden ist bekannt.

Ich möchte mir erst eine Übersicht verschaffen welche Änderungen bei welchen Kryptowährungen auftreten bevor ich in den Handel einsteige.
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

rasti

#56
Hallo,

auch wenn Gisbert ja eigentlich schon den Code geliefert hat,
habe das ganze mal überarbeitet und zusammengefasst.

Ich wollte verschiedene Kryptos anzeigen und loggen lassen,
dafür wäre ein einheitlicher httpmod für eine Seite auf der alle Kryptos
vorhanden sind nicht schlecht. Ich habe nun alle Coinwerte
von http://www.coinkurs.com/  genommen.

Ich hab nun noch den Wallet-Gesamtbetrag berechnet.
Unten ist das Ergebnis zusammengefasst.
Wo die Zahl 10 steht müsst ihr halt eure Anzahl der Token eingeben.

Vielleicht kann's ja jemand brauchen.

Viele Grüße

Ralf



### Ethereum
define ETHEREUM HTTPMOD http://www.coinkurs.com/ethereum-kurs.html 600
attr ETHEREUM userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr ETHEREUM enableControlSet 1
attr ETHEREUM group Cryptos
attr ETHEREUM reading01Name ethereum
attr ETHEREUM reading01OExpr $val =~ s/\,//g;; $val;;
attr ETHEREUM reading01RegOpt s
attr ETHEREUM reading01Regex class="preis" id="ETHEUR">([\d\.?\,?]+)
attr ETHEREUM room Krypto
attr ETHEREUM stateFormat ethereum €
attr ETHEREUM timeout 10


### Verge
define VERGE HTTPMOD http://www.coinkurs.com/verge-kurs.html 600
attr VERGE userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr VERGE enableControlSet 1
attr VERGE group Cryptos
attr VERGE reading01Name verge
attr VERGE reading01OExpr $val =~ s/\,//g;; $val;;
attr VERGE reading01RegOpt s
attr VERGE reading01Regex class="preis" id="XVGEUR">([\d\.?\,?]+)
attr VERGE room Krypto
attr VERGE stateFormat verge €
attr VERGE timeout 10

### IOTA
define IOTA HTTPMOD http://www.coinkurs.com/iota-kurs.html 600
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 class="preis" id="MIOTAEUR">([\d\.?\,?]+)
attr IOTA room Krypto
attr IOTA stateFormat iota €
attr IOTA timeout 10

### Ripple
define RIPPLE HTTPMOD http://www.coinkurs.com/ripple-kurs.html 600
attr RIPPLE userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr RIPPLE enableControlSet 1
attr RIPPLE group Cryptos
attr RIPPLE reading01Name ripple
attr RIPPLE reading01OExpr $val =~ s/\,//g;; $val;;
attr RIPPLE reading01RegOpt s
attr RIPPLE reading01Regex class="preis" id="XRPEUR">([\d\.?\,?]+)
attr RIPPLE room Krypto
attr RIPPLE stateFormat ripple €
attr RIPPLE timeout 10

### Cardano
define CARDANO HTTPMOD http://www.coinkurs.com/cardano-kurs.html 600
attr CARDANO userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr CARDANO enableControlSet 1
attr CARDANO group Cryptos
attr CARDANO reading01Name cardano
attr CARDANO reading01OExpr $val =~ s/\,//g;; $val;;
attr CARDANO reading01RegOpt s
attr CARDANO reading01Regex class="preis" id="ADAEUR">([\d\.?\,?]+)
attr CARDANO room Krypto
attr CARDANO stateFormat cardano €
attr CARDANO timeout 10


### Bitcoin
define BITCOIN HTTPMOD http://www.coinkurs.com/bitcoin-kurs.html 600
attr BITCOIN userattr reading01Format reading01Name reading01OExpr reading01RegOpt reading01Regex
attr BITCOIN enableControlSet 1
attr BITCOIN group Cryptos
attr BITCOIN reading01Name bitcoin
attr BITCOIN reading01OExpr $val =~ s/\,//g;; $val;;
attr BITCOIN reading01RegOpt s
attr BITCOIN reading01Regex class="preis" id="BTCEUR">([\d\.?\,?]+)
attr BITCOIN room Krypto
attr BITCOIN stateFormat bitcoin €
attr BITCOIN timeout 10


defmod Wallet DOIF
attr Wallet room Krypto
attr Wallet state amount: {(10*[BITCOIN:bitcoin]+10*[ETHEREUM:ethereum]+10*[RIPPLE:ripple]+10*[VERGE:verge]+10*[IOTA:iota]+0*[CARDANO:cardano])}


## Bitcoin & Co logs
define FileLog_Crypto FileLog ./log/Crypto-%Y-%m.log (BITCOIN|ETHERUM|IOTA|RIPPLE|VERGE|CARDANO|Wallet):(bitcoin|ethereum|iota|ripple|verge|amount).*
attr FileLog_Crypto createGluedFile 1
attr FileLog_Crypto logtype text





Polamare

#57
@_fhemuser_ hat da vollkommen recht.
Zuerst sollte man immer eine klare Übersicht bekommen und sich dann für eine Kryptowährung entschieden. Mich nervt es, weil heutzutage jeder Mensch denkt, dass man einfach so mit Bitcoin handeln kann. So ist es halt nicht. Man kann es machen, doch dafür muss man eine Menge Geld haben.

Ich persönlich habe zuerst auf [NoSPam] einige Erfahrungen gesammelt und bekam so eine klare Übersicht. Eigentlich überlege ich es mir noch, doch ich denke, dass es Ethereum sein wird.
Doch, das werden wir schon sehen.

Grüß!

_fhemuser_

Nach dem massiven Absturz aller Kryptowährungen habe ich den Eindruck, dass der Hype deutlich nachgelassen hat.

Mich haält noch ab, dass es seit Monaten eher abwärts als aufwärts geht und dass nicht alle Währungen direkt handelbar sind. Dh wenn ich mit einer Währung anfange die unter 10€ liegt bin ich gezwungen erst "teure" Kryptos wie Ethereum oder Bitcoin kaufen und damit dann die anderen. Und dann noch die lange Registrierungeszeit von einigen Wochen bei den meisten Kryptos.
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

Carsten1981

Hallo zusammen,

ich wollte mich noch mal hier an den Beitrag dranhängen und erstmal danke für die vorarbeit sagen. Hat auf Anhieb funktioniert den IOTA-Kurs in FHEM einzubinden. Frage den aktuellen Kurs stündlich ab.
Ich habe mir mittels eines Dummys (User readings) und eines DOIF eine RG zur Kursentwicklung gebastelt.


([IOTA:iota] > 0)
(setreading IOTA_Dummy Wert_aktuell [IOTA:iota])
DOELSEIF
([IOTA_Dummy:Wert_aktuell] > 0)
(setreading IOTA_Dummy Prozent_ab_kauf {((([IOTA_Dummy:Wert_aktuell]-[IOTA_Dummy:Kaufpreis])/[IOTA_Dummy:Kaufpreis])*100)})
(setreading IOTA_Dummy Prozent_ab_Mitternacht {((([IOTA_Dummy:Wert_aktuell]-[IOTA_Dummy:Wert_Mitternacht])/[IOTA_Dummy:Wert_Mitternacht])*100)})
(setreading IOTA_Dummy Prozent_ab_Montag {((([IOTA_Dummy:Wert_aktuell]-[IOTA_Dummy:Wert_Montag])/[IOTA_Dummy:Wert_Montag])*100)})
(setreading IOTA_Dummy Prozent_ab_Monatsanfang {((([IOTA_Dummy:Wert_aktuell]-[IOTA_Dummy:Wert_Monatsanfang])/[IOTA_Dummy:Wert_Monatsanfang])*100)})
(setreading IOTA_Dummy Prozent_ab_Jahresanfang {((([IOTA_Dummy:Wert_aktuell]-[IOTA_Dummy:Wert_Jahresanfang])/[IOTA_Dummy:Wert_Jahresanfang])*100)})
(setreading IOTA_Dummy Gewinn {((([IOTA_Dummy:Wert_aktuell]-[IOTA_Dummy:Kaufpreis])*[IOTA_Dummy:Anzahl_IOTAS]))})
DOELSEIF
([23:59])
(setreading IOTA_Dummy Wert_Mitternacht [IOTA:iota])
DOELSEIF
(([00:01]) and (strftime ("%wday",localtime) == 1))
(setreading IOTA_Dummy Wert_Montag [IOTA:iota])


das funktioniert so auch problemlos, was ich aber nicht hinbekomme ist folgendes.

Ich würde gerne auch die Entwicklung der letzten 12h der letzten 7 Tage der letzten 30 Tage und der letzten 365 Tage sehen. Hat jemand eine Idee wie ich dies realisieren könnte ohne eine riesen Menge an User Readings generieren zu müssen?

Danke und Gruß Carsten
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

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

Gisbert

Hallo mi.ke,

die folgende Definition funktioniert seit dem 19.5.2022 nicht mehr:
defmod Onvista HTTPMOD https://www.onvista.de/kryptowaehrungen/Ethereum-ETH 3600
attr Onvista alignTime 00:13:13
attr Onvista enableControlSet 1
attr Onvista event-min-interval .*:15
attr Onvista get02Format %.2f
attr Onvista get02Name bitcoin
attr Onvista get02OExpr $val =~ s/\.//g;; $val =~s/\,/./g;; $val =~s/EUR//g;; $val =~s/\s+$//;; $val
attr Onvista get02Poll 1
attr Onvista get02URL https://www.onvista.de/kryptowaehrungen/Bitcoin-BTC
attr Onvista get02XPath //ul[contains(.,"EUR")]/li[contains(.,"EUR")]
attr Onvista reading01Format %.2f
attr Onvista reading01Name ethereum
attr Onvista reading01OExpr $val =~ s/\.//g;; $val =~s/\,/./g;; $val =~s/EUR//g;; $val =~s/\s+$//;; $val
attr Onvista reading01XPath //ul[contains(.,"EUR")]/li[contains(.,"EUR")]
attr Onvista timeout 10


Ich hab leider gar keinen Schimmer mehr davon, wie ich es damals zum Laufen gebracht habe.
Kannst du eventuell da nochmals reinschauen?

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 Mai 2022, 14:01:08


die folgende Definition funktioniert seit dem 19.5.2022 nicht mehr:
defmod Onvista HTTPMOD https://www.onvista.de/kryptowaehrungen/Ethereum-ETH 3600


Ich hab leider gar keinen Schimmer mehr davon, wie ich es damals zum Laufen gebracht habe.
Kannst du eventuell da nochmals reinschauen?



Hallo Gisbert,

mein Lösungsansatz war ja ein ganz anderer, Bitpanda über eine API:
https://forum.fhem.de/index.php/topic,77427.msg1152652.html#msg1152652

Wenn man aber Deine URL von onvista aufruft, kommen auch keine Infos zu Kyptos.
Also scheint sich die Page dort geändert zu haben.
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,

Bitpanda benutze ich auch, nur hab ich gerne Redundanzen eingebaut. Wie sich zeigt zu Recht, nur dass in diesem Fall, das HTTPMOD-Device vermutlich wegen einer Änderung auf der abgefragten Seite nicht mehr funktioniert. Ich lösche dann das letztere und vertraue einstweilen, dass Bitpanda keine Aussetzer hat, und begebe mich auf eine erneute Suche nach einer redundanten Quelle.

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