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