FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: vbs am 04 Februar 2015, 21:01:42

Titel: Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 04 Februar 2015, 21:01:42
ACHTUNG:
Durch den Wegfall von Yahoo Finance gibt es mWn momentan keine funktionierende Datenquelle für das zugrunde liegende Perl-Modul Finance::Quote. Es wird wohl an Alternativen gearbeitet.

Ich habe ein kleines Modul gebastelt, das aktuelle Börsenkurse als Readings zur Verfügung stellt. Das Ganze basiert auf dem Perl-Modul Finance::Quote  (http://search.cpan.org/~ecocode/Finance-Quote-1.35/lib/Finance/Quote.pm) und ist im Prinzip nur ein recht simpler Wrapper, der (nicht-blockierend) das Fetching durchführt und anzeigt.

Es muss dementsprechend zunächst das Modul Finance::Quote installiert werden. Zum Beispiel per Aufruf:
cpan install Finance::Quote

UPDATE:
Hab das Ganze nochmal ziemlich umgekrempelt. Anbei mein aktueller Stand. Sind bestimmt noch ein paar Bugs drin. Ich bin auch mit den Reading-Namen noch nicht so super glücklich. Kommt mir noch uneinheitlich vor. Bin da für Ideen offen. Die können sich u.U. nochmal ändern.

Zum Anlegen des Geräts:
define myQuotes STOCKQUOTES

Das Finance::Quote kennt verschiedene Quellen zur Datenabfrage. Defaultmäßig wird "europe" verwendet (Attribut "defaultSource"). Die verfügbaren Quellen können mit "get showSources" angezeigt werden. Soll für ein Wertpapier eine andere Quelle genutzt werden, dann kann dies über das Attribut "sources" gesteuert werden. Format: "<Symbol>:<Source>[,<Symbol>:<Source>...]".

Zum Hinzufügen/Entfernen eines Wertpapiers wird add/buy bzw. remove/sell verwendet. add/remove für Wertpapiere, die nur beobachtet werden sollen (nicht im Depot). Und buy/sell, falls im Depot vorhanden und man Anzahl und Kaufpreis/Verkaufspreis angeben möchte.

Beispiele:

set myDepot buy 865985 87 7000     <- 87 Apple-Aktien (WKN 865985) zum Gesamtpreis von 7000€ kaufen
set myDepot add 851399  <- IBM beobachten
set myDepot remove 865985  <- Apple entfernen


Als Readings stehen dann folgende Eckdaten zur Verfügung:
Zitat
name         Company or Mutual Fund Name
last         Last Price
high         Highest trade today
low          Lowest trade today
date         Last Trade Date  (MM/DD/YY format)
time         Last Trade Time
net          Net Change
p_change     Percent Change from previous day's close
volume       Volume
avg_vol      Average Daily Vol
bid          Bid
ask          Ask
close        Previous Close
open         Today's Open
day_range    Day's Range
year_range   52-Week Range
eps          Earnings per Share
pe           P/E Ratio
div_date     Dividend Pay Date
div          Dividend per Share
div_yield    Dividend Yield
cap          Market Capitalization
ex_div       Ex-Dividend Date.
nav          Net Asset Value
yield        Yield (usually 30 day avg)
exchange     The exchange the information was obtained from.
success      Did the stock successfully return information? (true/false)
errormsg     If success is false, this field may contain the reason why.
method       The module (as could be passed to fetch) which found
             this information.

Welche Readings tatsächlich zur Verfügung stehen, kann stark variieren und hängt vom Exchange, Quelle bzw. vom Wertpapier ab.

Zusätzlich gibt es folgende Readings für jedes Wertpapier, die sich aufs Depot beziehen (daher _d_):
Zitat
<stockname>_d_buy_quote                  <- Kaufkurs
<stockname>_d_buy_value_total          <- Einstandswert
<stockname>_d_cur_value_total           <- Aktueller Wert
<stockname>_d_p_change_total           <- Prozentualer Unterschied gesamt
<stockname>_d_stockcount                  <- Anzahl Aktien im Depot
<stockname>_d_value_diff                     <- Wertunterschied heute
<stockname>_d_value_diff_total            <- Wertunterschied gesamt

Darüber hinaus gibt es folgende Werte, die für das gesamte Depot berechnet werden:
Zitat
depot_buy_value_total                           <- Kaufwert gesamt
depot_cur_value_total                            <- Aktueller Wert
depot_p_change                                     <- Prozentualer Unterschied heute
depot_p_change_total                            <- Prozentualer Unterschied gesamt
depot_value_diff                                      <- Wertunterschied heute
depot_value_diff_total                             <- Wertunterschied gesamt

ReadingsGroup

Ich habe mal beispielhaft eine readingsGroup dafür zusammengebastelt:
(https://dl.dropboxusercontent.com/u/24641738/fhem/stockquotes.png (https://dl.dropboxusercontent.com/u/24641738/fhem/stockquotes.png))

Die ist im Prinzip generisch und kann so 1:1 kopiert werden:
DEF        myB:<>,.*_name,<Depot>
myB:<Kurs>,.*_last
myB:<Stück>,.*_d_stockcount
myB:<>
myB:<Buchgewinn&nbsp(Heute)>,((?!depot).)*_p_change$,depot_p_change
myB:<>,.*_d_value_diff,depot_value_diff
myB:<Buchgewinn&nbsp(Gesamt)>,.*_d_p_change_total,depot_p_change_total
myB:<>,.*_d_value_diff_total,depot_value_diff_total
myB:<>
myB:<Einstandskurs>,.*_d_buy_quote
myB:<Einstandswert>,.*_d_buy_value_total,depot_buy_value_total
myB:<Aktueller&nbspWert>,.*_d_cur_value_total,depot_cur_value_total

Attributes:
   alias      Wertpapierdepot
   cellStyle  { "r:1"=>'style="font-weight:bold;;font-size:16px"'}
   mapping    &nbsp;
   notime     1
   valueStyle { if ($READING =~ /_p_|_diff/) {return ($VALUE < 0) ? 'style="color:red"':'style="color:green"' } }
   valueSuffix { if ($READING =~ /p_change/) { return " %" } elsif ($READING =~ /value|diff|last|buy_quote/) { return " €"}}
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 05 Februar 2015, 07:48:13
Hallo,
So ein ähnliches module habe ich seit ca. 3 Monaten bei mir als Test laufen. Wollte es demnächst hier auch mal zur Verfügung stellen.
Da bist du mir leider zuvor gekommen. :'(
Ist aber kein Problem.
War für mich eh nur ein Test ob ich sowas auch noch hinkriege.
Gruß
Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: TeeVau am 05 Februar 2015, 08:26:14
Herlich, kann ich endlich die Heizung wärmer schalten, wenn die Kurse besser stehen. Oder aus, wenn der Markt kracht ;-)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 05 Februar 2015, 22:00:22
@carlos:
Naja, Konkurrenz belebt das Geschäft? Vielleicht können wir auch etwas zusammen werfen. Das beste aus beiden Welten. Wobei meine Welt ja auch überschaubar ist :)

@TeeVau:
Haha klingt gut, ich bin eh noch auf der Suche nach einem richtig sinnvollen Anwendungsgebiet für das Modul :P
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Icinger am 05 Februar 2015, 22:26:23
Raumtemperatur abhängig vom Barrel-Preis  :o

bzw. Automatische Heizöl-Bestellung, wenn Öltank unter xx% und Ölpreis unter xx €  ::)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 08 Februar 2015, 19:09:58
Hallo vbs,
Ich habe mal meine Features in deine integriert. Ich hoffe das geht in Ordnung. Schau es dir einfach mal an.
Ich habe das Ganze zu einer Art Depot ausgebaut, mit einer readingsgroup kann man sich das Ganze dann auch sauber anzeigen lassen.
Folgende Änderungen:

das define sieht nun z.B.  so aus:

define myDepot STOCKQUOTES nasdaq GOOGL,AAPL 100,200

Also die Wertpapiername durch Komma getrennt und die Anzahl der jeweiligen Wertpapiere durch Komma getrennt.
Das Ganze sieht dann so wie im Anhang aus.
Das neue 98_STOCKQUOTES.pm habe ich auch angehängt.


Eine Readingsgroup könnte dann z.B. so aussehen:
define myDepotRG readingsGroup <%myDepot> <Symbol>,<Name>,<Anzahl>,<Last>,<Wert>
myDepot:GOOGL_symbol,GOOGL_name,GOOGL_anzahl,GOOGL_last,GOOGL_currency,GOOGL_wert
myDepot:AAPL_symbol,AAPL_name,AAPL_anzahl,AAPL_last,AAPL_currency,AAPL_wert


Gruß

Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 08 Februar 2015, 20:28:47
Danke, super Sache, find ich gut! Hatte auch schon sowas im Kopf, aber bisher nicht zu gekommen. Deins gefällt mir aber gut. Ein paar kleinere Änderungsideen hätte ich:

Was denkst du dazu?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 08 Februar 2015, 22:36:37
Ja bin ich mit allem einverstanden, jedoch muss da das error handling verbessert werden.
Das hat den Vorteil, dass die Anzahl zum Wertpapier gehört. Jedoch sollte dann auch sowas wie Indices (DAX, ..) möglich sein ohne dass man davon Anteile hat(also Anzahl 0 oder sowas in der Art).
Wie gehen wir da bei der gemeinsamen Entwicklung vor ?
Machst du das ?
Wir konnen uns da auch über PMs verständigen, denn das gehört dann nicht in diesen Thread.
Die neueste Version sollte dann imm im 1. post stehen.
Gruß
Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 13 Februar 2015, 09:54:58
Hallo zusammen,

beim stöbern durchs Forum finde ich immer wieder Sachen, die ich vorher gar nicht vermisst haben  8)

Ich habe euer Modul schonmal runtergeladen und nutze es inzwischen.
Ein paar Dinge funktionieren schon super.
Was mir aufgefallen ist: beim Dienstleister vwd meldet das Modul nix zurück.
Das Wertpapier ist dort aber definitiv gelistet (wenn ich es selbst über Finance::Quote mit ein bisschen code in den myUtils abfrage dann funktioniert es)
Finance::Quote unterstützt auch weitere Handelsplätze. Z.B. unionfunds.
Alle bekommt man über folgenden code raus:

sub quellen {
use Finance::Quote;
my $q = Finance::Quote->new();
my @sources = $q->sources();
my $var = "Quellen: ";
foreach $s (@sources)
{
      $var .= "$s  ";
}
return $var;
}

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 14 Februar 2015, 00:06:15
Hm, also ich bekomme beim Symbol "vwd" mit dem Modul die gleichen (seltsamen) Werte wie mit einem Beispiel-Quote-Programm. ZB. isodate 2000-00-00. Was genau hast du gemacht als nichts zurückgeliefert wurde?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 15 Februar 2015, 15:59:12
Hab ein bisschen was gemacht und den ersten Post geupdatet.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 15 Februar 2015, 19:56:11
Zitat von: vbs am 14 Februar 2015, 00:06:15
Hm, also ich bekomme beim Symbol "vwd" mit dem Modul die gleichen (seltsamen) Werte wie mit einem Beispiel-Quote-Programm. ZB. isodate 2000-00-00. Was genau hast du gemacht als nichts zurückgeliefert wurde?
Ich habe folgendes versucht:

define Depot STOCKQUOTES wvd A0M16S 10

Es wurde nix zurückgeliefert.

Ich werde es mal mit dem neuen Modul testen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Icinger am 15 Februar 2015, 19:57:51
Achtung!

wvd != vwd

lg, Ici
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 15 Februar 2015, 20:32:26
Zitat von: Icinger am 15 Februar 2015, 19:57:51
Achtung!

wvd != vwd

lg, Ici
habe mich hier vertippt  ::)

im neuen modul gibt es keine aktualisierung mehr, wenn sources -> A0M16S:vwd
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 15 Februar 2015, 22:18:29
Das liegt zum einen daran, dass kein previous-Feld mitkommt und andererseits daran, dass Sonderzeichen im gelieferten name-Feld enthalten sind.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 16 Februar 2015, 12:05:13
Zitat von: vbs am 15 Februar 2015, 22:18:29
Das liegt zum einen daran, dass kein previous-Feld mitkommt und andererseits daran, dass Sonderzeichen im gelieferten name-Feld enthalten sind.
na super, liegt das am vwd?

gibt es eine Möglichkeit das zum laufen zu bekommen?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 16 Februar 2015, 18:37:21
Man müsste es so ändern, dass das Modul auch ohne previous arbeiten kann (momentan wird dann irgendwo durch Null geteilt). Das mit name ist sicherlich ein Encoding-Problem, das man beheben kann. Oder als Hack des Reading name ignorieren...

Das mit previous habe ich gestern mal gemacht, das sah gut aus. Mit dem Encoding hatte ich so spontan noch keinen Erfolg.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: volschin am 16 Februar 2015, 19:04:50
Die meisten Nicht-Entwickler fahren übrigens besser mit

sudo apt-get install libfinance-quote-perl

Erstens ist das Paket für die jeweilige Umgebung getestet und
Zweitens wird es bei einem "apt-get upgrade" mit auf die neueste Version gebracht.

Bin gerade am Testen. Immer wieder coole Modul-Ideen hier im Forum.  ;D
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 16 Februar 2015, 19:38:38
@klaus
Probier mal bitte die Version im Anhang...

@volschin
Ja, ist bestimmt eine gute Sache, wenn man apt hat. Ist jedoch dann nur für Distros, welche eine Paketverwaltung mitbringen, bei der es sich dann auch um apt handelt ;) Ist bei mir zB nicht der Fall (TinyCore). Soweit ich das als Perl-Newb verstehe, ist cpan dann der generische Ansatz.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: volschin am 16 Februar 2015, 21:00:32
Ich habe mal etwas getestet. Vieles funktioniert sehr gut, wenn ich die Yahoo-Symbols nehme.

Folgende Probleme:
Symbol ALV.DE hat einen Kurs in EUR.
Symbol MSFT hat einen Kurs in USD.

Für den Depotwert zählst Du einfach alles zusammen. Leider ist das ein schwierigeres Problem. Eigentlich brauchst Du einen historischen Umrechnungskurs am Kauftag und einen aktuellen Umrechnungskurs. Das Yahoo-Symbol für EUR/USD ist "EURUSD=X".

Man könnte es so machen, dass die Währung, in der das Depot geführt werden soll als Attribut angegeben wird und diese Währung einfach für Deinen BUY-Preis angenommen wird. Dann muss aber noch der aktuelle Kurs auf die Depotwährung umgerechnet werden, damit eine korrekte Depotsumme herauskommt.

Als Alternative müsste man ein eigenes Depot für jedes Fremdwährungswertpapier definieren.
 
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 16 Februar 2015, 22:25:56
Hm, guter Punkt, ja :) Hast voll recht und finde auch die Vorschläge gut. Muss mal schauen, ob ich mich aufraffen kann, eine Währungsumrechnung einzubauen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 16 Februar 2015, 22:30:55
Brauchst du nicht, ist als Parameter beim finance mit dabei. Ich habs mir gestern kurz angeschaut.

edit:
So hab's gefunden:

# =======================================================================
# set_currency (public object method)
#
# set_currency allows information to be requested in the specified
# currency.  If called with no arguments then information is returned
# in the default currency.
#
# Requesting stocks in a particular currency increases the time taken,
# and the likelyhood of failure, as additional operations are required
# to fetch the currency conversion information.
#
# This method should only be called from the quote object unless you
# know what you are doing.


Aus der Doku:
2.4. Currency
-------------
Finance::Quote has support for multiple currencies and for currency
conversion.  As long as you provide a little bit of information about
the information you are returning, the Finance::Quote framework can
do all the hard stuff for you.

If you are returning information on a stock in a particular currency,
then you can enter the ISO currency code into the "currency" field
associated with the stock.  Eg:

$info{$stock,"currency"} = "AUD";  # Australian Dollars

If the information you are returning does not have a currency
(because it's an index like the Dow Jones Industrial or the
All Oridinaries, or because you're returning percentages) then
you should not set the currency field for that stock.  Finance::Quote
knows not to attempt currency conversion for stocks without
a currency field.

If you do have a currency field, then by default Finance::Quote will
arrange for the automatic conversion of a number of fields.  By
default, these fields are last, high, low, net, bid, ask, close, open,
day_range, year_range, eps, div, cap, nav and price.  Of course,
there may be some cases where this set is not appropriate, or where there
are extra fields that should be converted.  This can be indicated
by writing a function called "currency_fields()" in your module,
that returns a list of fields that can undergo currency conversion.
Eg:

sub currency_fields {
return qw/high low price bid/;
}

currency_fields() will be passed a Finance::Quote object as its
first argument, and a method called default_currency_fields()
is available through this object.  This is useful if you want
to use the defaults, but also add some of your own:

sub currency_fields {
my $quoter = shift;
return ($quoter->default_currency_fields, "commission");
}

In the example above, the default fields would be available for currency
conversion, but the "commission" field would also be converted.

Gruß
Carlos

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 17 Februar 2015, 12:52:44
Klasse, danke! Werd ich mal einbauen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 17 Februar 2015, 15:38:49
Zitat von: vbs am 16 Februar 2015, 19:38:38
@klaus
Probier mal bitte die Version im Anhang...
super, jetzt klappt es
vwd gibt nicht viel zurück, aber die Wichtigsten Werte sind dabei

Irgendwie passiert beim pollintervall bei mit nicht...ich muss manuell updaten
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 17 Februar 2015, 19:36:49
Hab mal die Currency-Sache eingebaut im ersten Post. Dass das Updaten nicht klappt, kann ich so erstmal nicht nachstellen. Bitte mal ein Log posten.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 18 Februar 2015, 14:57:36
habe jetzt mal das neuste Modul aus dem ersten Post geladen.

Depot angelegt und was eingebucht:

define Depot STOCKQUOTES
set Depot buy 975013 2 80
set Depot verbose 5

PollIntervall funktioniert
die depot_* Readings sind aber negativ ebendo wie einige der 975013_d_* Werte
Folgende (Fehler)meldungen tauchen im Log auf:
2015.02.18 13:46:51 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 13:46:51 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2015.02.18 13:46:51 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2015.02.18 13:47:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_STOCKQUOTES.pm line 299.
2015.02.18 13:47:00 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&Ber/Bre|975013&previous&49.580|975013&symbol&HTML|975013&method&bourso|975013&isodate&2015-02-18|975013&last&|975013&high&49.580|975013&volume&0|975013&date&02/18/2015|975013&success&1|975013&name&UNIONGELDMARKTF|975013&open&49.560|975013&low&49.560|975013&errormsg&Stock name 975013 not found|975013&p_change&0.00%|975013¤cy&
2015.02.18 13:47:00 4: STOCKQUOTES_QueryQuotesFinished
2015.02.18 13:47:00 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 361.
2015.02.18 13:47:00 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/98_STOCKQUOTES.pm line 363.
2015.02.18 13:47:00 4: STOCKQUOTES_QueueTimer: 300 seconds


wenn ich jetzt
attr Depot sources 975013:unionfunds
hinzufüge wird einmal aktualisiert, allerdings werden aber einige redings nicht gelöscht, welche von der neuen Quelle nicht unterstützt werden (sie werden einfach nicht aktualisiert).
Ausserdem funktioniert jetzt der pollintervall nicht mehr und state bleibt auf updating... stehen.
set .... update funktioniert weiterhin
Dafür sehen einige depot_ readings jetzt besser aus.
Log dazu:
2015.02.18 13:52:00 4: STOCKQUOTES: Start blocking query
2015.02.18 13:52:00 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 13:52:00 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source unionfunds
2015.02.18 13:52:00 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: unionfunds
2015.02.18 13:52:01 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&UNION|975013&symbol&975013|975013&last&49.60|975013&isodate&2015-02-16|975013&method&unionfunds|975013&date&02/16/2015|975013&price&49.60|975013&success&1|975013&name&975013|975013¤cy&EUR
2015.02.18 13:52:01 4: STOCKQUOTES_QueryQuotesFinished


nach dem Löschen des Attributes sources und einem set Depot update klappt auch der refresh wieder.
Allerings bleiben in diesem Fall 975013_last, _price und _currency wieder stehen.

EDIT:
anstelle von sources das Attribut defaultSource auf unionfunds zu setzen führt zum gleichen Ergebnis.

kann es sein, das die Auswertung nicht zuende geführt wird weil irgendein Wert nicht übermittelt wird?

mit vwd im Sources Attribut funktioniert es

EDITEDIT:
mit yahoo_europe pollt es auch nicht mehr
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 18 Februar 2015, 16:42:30
noch ein paar fixe Ideen:
vielleicht scheint dir ja was davon sinnvoll  8)

Es kann vorkommen, das man Wertpapiere, die bereits im Depot sind nachkauft.
Dann haben diese natürlich einen anderen Einstandskurs.
Das lässt sich derzeit nicht nachbilden.
Allerdings habe ich auch keinen Lösungsansatz. (Das gleiche Wertpapier 2x anzulegen erscheint mir wenig sinnvoll)
...oder vielleicht doch eine Idee dazu: zu einer WKN mehrere Anzahl/Gesamtpreise erlauben

Zu den readings hätte ich den Vorschlag die empfangenen Werte von Finance::Quote als hash in den Internals abzulegen und nur die wichtigen anzuzeigen.
Dadurch würde es etwas übersichtlicher werden.

Wenn man ein Kaufdatum angeben kann, ließen sich daraus im Zusammenhang mit dem Kaufpreis Prozentuale Gewinne (beispielsweise 1/3/5 jährig) ermitteln
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 18 Februar 2015, 18:20:31
Zitat von: klausw am 18 Februar 2015, 14:57:36
Depot angelegt und was eingebucht:

define Depot STOCKQUOTES
set Depot buy 975013 2 80
set Depot verbose 5

Hm, das hat ja nichtmal ein "last"-Feld :/ Alles andere hatte ich eigentl. schon optional gemacht, aber ich hätte gedacht, dass last alle haben. Wo ist denn der Kurs zu finden bei dem Symbol? Denke auch, dass dadurch dann die weitere Verarbeitung in Perl abgebrochen wird.

Zitat von: klausw am 18 Februar 2015, 16:42:30
noch ein paar fixe Ideen:
vielleicht scheint dir ja was davon sinnvoll  8)

Es kann vorkommen, das man Wertpapiere, die bereits im Depot sind nachkauft.
Dann haben diese natürlich einen anderen Einstandskurs.
Das lässt sich derzeit nicht nachbilden.
Allerdings habe ich auch keinen Lösungsansatz. (Das gleiche Wertpapier 2x anzulegen erscheint mir wenig sinnvoll)
...oder vielleicht doch eine Idee dazu: zu einer WKN mehrere Anzahl/Gesamtpreise erlauben
Du kannst durchaus per "buy" ein Papier gekauft, welches schon im Depot vorhanden ist. Es *sollte* dann korrekt hinzuaddiert werden und es sollte dann auch ein korrekter Einstandskurs berechnet werden.

Zitat von: klausw am 18 Februar 2015, 16:42:30
Zu den readings hätte ich den Vorschlag die empfangenen Werte von Finance::Quote als hash in den Internals abzulegen und nur die wichtigen anzuzeigen.
Dadurch würde es etwas übersichtlicher werden.
Hm, würde ungern etwas weglassen von vornherein. Wäre es nicht besser, wenn man readingsGroup oder readingsProxy o.ä. benutzen würde, um sich dann ein gefiltertes Device zu bauen? "Wichtig" liegt auch immer sehr im Auge des Betrachters.

Zitat von: klausw am 18 Februar 2015, 16:42:30
Wenn man ein Kaufdatum angeben kann, ließen sich daraus im Zusammenhang mit dem Kaufpreis Prozentuale Gewinne (beispielsweise 1/3/5 jährig) ermitteln
Ja, könnte man überlegen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 18 Februar 2015, 18:37:32
Könntest nochmal diese Version probieren. Sollte nun auch ohne last funktionieren (wenn ich nix übersehen hab).

Ich muss noch einbauen, dass alte Readings an sinnvollen Stellen gelöscht werden. Im Moment muss man händisch clearReadings aufrufen, nachdem man bestimmt Sachen geändert hat.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 18 Februar 2015, 19:17:11
Zitat von: vbs am 18 Februar 2015, 18:37:32
Könntest nochmal diese Version probieren. Sollte nun auch ohne last funktionieren (wenn ich nix übersehen hab).
Ich glaube du hast mich falsch verstanden:
Damit
define Depot STOCKQUOTES
set Depot buy 975013 2 80
set Depot verbose 5

funktioniert der refresh.
Nur sind werte wie 975013_d_cur_value_total und die depot_* nahezu alle negativ (vermutlich da _last = 0 ist)

mit attr Deptot sources 975013:unionfunds
gibt es _last
auch werte wie 975013_d_cur_value_total und die depot_* sind korrekt
Allerdings bleibt state auf Updating... stehen und es gibt keine automatische Aktualisierung mehr


letztes Modul mit europe als Quelle:


2015.02.18 18:54:02 4: STOCKQUOTES: Start blocking query
2015.02.18 18:54:02 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 18:54:02 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2015.02.18 18:54:02 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2015.02.18 18:54:11 1: PERL WARNING: Use of uninitialized value $info{"975013\34last"} in concatenation (.) or string at ./FHEM/98_STOCKQUOTES.pm line 303.
2015.02.18 18:54:11 1: PERL WARNING: Use of uninitialized value $info{"975013\34currency"} in concatenation (.) or string at ./FHEM/98_STOCKQUOTES.pm line 303.
2015.02.18 18:54:11 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&Ber/Bre|975013&previous&49.580|975013&symbol&HTML|975013&method&bourso|975013&isodate&2015-02-18|975013&last&|975013&high&49.580|975013&volume&0|975013&date&02/18/2015|975013&success&1|975013&name&UNIONGELDMARKTF|975013&open&49.560|975013&low&49.560|975013&errormsg&Stock name 975013 not found|975013&p_change&-0.04%|975013¤cy&
2015.02.18 18:54:14 4: STOCKQUOTES_QueryQuotesFinished
2015.02.18 18:54:14 4: STOCKQUOTES_QueueTimer: 150 seconds

das gibt es auch kein last reading
die depot_* redings sind negativ

mit unionfonds folgendes:
2015.02.18 19:05:41 4: STOCKQUOTES: Start blocking query
2015.02.18 19:05:41 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.18 19:05:41 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source unionfunds
2015.02.18 19:05:41 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: unionfunds
2015.02.18 19:05:42 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&UNION|975013&symbol&975013|975013&last&49.60|975013&isodate&2015-02-17|975013&method&unionfunds|975013&date&02/17/2015|975013&price&49.60|975013&success&1|975013&name&975013|975013¤cy&EUR
2015.02.18 19:05:42 4: STOCKQUOTES_QueryQuotesFinished

und kein refresh mehr

Zitat von: vbs am 18 Februar 2015, 18:20:31
Hm, das hat ja nichtmal ein "last"-Feld :/ Alles andere hatte ich eigentl. schon optional gemacht, aber ich hätte gedacht, dass last alle haben. Wo ist denn der Kurs zu finden bei dem Symbol? Denke auch, dass dadurch dann die weitere Verarbeitung in Perl abgebrochen wird.
wie oben beschrieben, hier bricht nichts ab
es gibt nur perl warnings im log und der wert der Wertpapierpakets ist nagativ
ich denke _open kommt dem Wert am nächsten.
Allerdings würde ich sowieso lieber unionfonds verwenden. Dort gibt es _last, und es ist auch der korrekte Wert
Nur funktioniert halt im Zusammenhang mit unionfonds der refresh nicht mehr

Zitat von: vbs am 18 Februar 2015, 18:20:31
Du kannst durchaus per "buy" ein Papier gekauft, welches schon im Depot vorhanden ist. Es *sollte* dann korrekt hinzuaddiert werden und es sollte dann auch ein korrekter Einstandskurs berechnet werden.
ahso
mittelst du diesen dann zwischen beiden Werten?
Zitat von: vbs am 18 Februar 2015, 18:20:31
Hm, würde ungern etwas weglassen von vornherein. Wäre es nicht besser, wenn man readingsGroup oder readingsProxy o.ä. benutzen würde, um sich dann ein gefiltertes Device zu bauen? "Wichtig" liegt auch immer sehr im Auge des Betrachters.
Ja stimmt eigentlich  8)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 19 Februar 2015, 09:54:19
Ok, danke für die Meldung. Ich muss das mal in Ruhe nachstellen. So aus dem Stehgreif finde ich es seltsam.

Zitat von: klausw am 18 Februar 2015, 19:17:11
mittelst du diesen dann zwischen beiden Werten?
Ja genau. Das Modul merkt sich im Attribut nur Gesamtmenge und Gesamtpreis (Summe aus allen Buys). Dementsprechend kennt es dann für den Kaufkurs auch nur das Mittel über alle Transaktionen.

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 19 Februar 2015, 22:15:06
Bitte noch einmal hiermit testen (komisch jetzt bekomme ich bei deinem Symbol auf von europe ein "last")
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 20 Februar 2015, 08:53:55
Zitat von: vbs am 19 Februar 2015, 22:15:06
Bitte noch einmal hiermit testen (komisch jetzt bekomme ich bei deinem Symbol auf von europe ein "last")
define Depot STOCKQUOTES
attr Depot defaultSource europe
attr Depot pollInterval 150
attr Depot queryTimeout 120
attr Depot stocks 975013:2:80
attr Depot verbose 5

->
2015.02.20 07:41:39 4: STOCKQUOTES: Start blocking query
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2015.02.20 07:41:51 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&Ber/Bre|975013&previous&49.560|975013&symbol&HTML|975013&method&bourso|975013&isodate&2015-02-19|975013&high&49.580|975013&volume&0|975013&date&02/19/2015|975013&success&1|975013&name&UNIONGELDMARKTF|975013&open&0.00|975013&low&49.520|975013&errormsg&Stock name 975013 not found|975013&p_change&0.04%
2015.02.20 07:41:51 4: STOCKQUOTES_QueryQuotesFinished
2015.02.20 07:41:51 4: STOCKQUOTES_QueueTimer: 150 seconds


last bekomme ich jetzt auch, aber es ist 0
...und nach einem Reboot und dem clearreadings ist es auch weg ... sehr komisch
_previous kommt dem aktuellen Wert am nächsten, stimmt aber nicht genau.

Mir ist auch aufgefallen, das bei weiteren Wertpapieren das last bei europe fehlt.


Mit attr Depot sources 975013:unionfunds funktioniert es jetzt aber super!

Was bedeutet denn _p_change_total und _value_diff? Die beiden kann ich mir nicht erklären.

Langsam ist dein Modul reif um ins SVN zu kommen  ;D

PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: maxritti am 20 Februar 2015, 13:14:25
Zitat von: klausw am 20 Februar 2015, 08:53:55
PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
Hallöle,

man findet hier ja immer neue Idee.
Das Modul wollte ich dann auch mal probieren.
Allerdings lebt mein FHEM nicht wirklich lange, nachdem ich ein define myQuotes STOCKQUOTES gemacht habe.
Die o.a. Meldung ist das letzte was ich im Log sehen und danach ist FHEM futsch.

Any Ideas?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: maxritti am 20 Februar 2015, 13:51:23
Ich habe mal verbose bei global auf 5 gestellt und dann kommt das hier:

2015.02.20 13:48:37 4: STOCKQUOTES: Start blocking query
2015.02.20 13:48:37 5: Triggering myQuotes (1 changes)
2015.02.20 13:48:37 5: Notify loop for myQuotes Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 20 Februar 2015, 17:37:47
Zitat von: klausw am 20 Februar 2015, 08:53:55
last bekomme ich jetzt auch, aber es ist 0
...und nach einem Reboot und dem clearreadings ist es auch weg ... sehr komisch
_previous kommt dem aktuellen Wert am nächsten, stimmt aber nicht genau.

Mir ist auch aufgefallen, das bei weiteren Wertpapieren das last bei europe fehlt.
Scheint an dem Perl-Modul bzw. an der Source zu liegen, welche Werte mitkommen. Hatte gestern auch den Fall, dass bei jeder zweiten Abfrage success=0 war. Ich denke, dass "previous" der Schlusskurs des vergangenen Tages ist.


Zitat von: klausw am 20 Februar 2015, 08:53:55
Mit attr Depot sources 975013:unionfunds funktioniert es jetzt aber super!

Was bedeutet denn _p_change_total und _value_diff? Die beiden kann ich mir nicht erklären.
_p_change_total ist die gesamte prozentuale Änderungen aufs Depot bezogen. Also Aktie mal zu 100€ gekauft und steht nun bei 136€ -> 36 % p_change_total
_value_diff ist Wertänderungen *heute* (im Gegensatz zu _value_diff_total). Also Aktie steigt heute von 100€ auf 136€ und du hast zwei davon im Depot -> 72 € _d_value_diff

Zitat von: klausw am 20 Februar 2015, 08:53:55
Langsam ist dein Modul reif um ins SVN zu kommen  ;D
Mal abwarten ^^

Zitat von: klausw am 20 Februar 2015, 08:53:55
PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
Danke, hab ich behoben im Anhang.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 20 Februar 2015, 17:39:37
Zitat von: maxritti am 20 Februar 2015, 13:51:23
Ich habe mal verbose bei global auf 5 gestellt und dann kommt das hier:

2015.02.20 13:48:37 4: STOCKQUOTES: Start blocking query
2015.02.20 13:48:37 5: Triggering myQuotes (1 changes)
2015.02.20 13:48:37 5: Notify loop for myQuotes Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating

Hm, blöde Frage: was heißt das? Werde aus eventTypes nicht schlau.

Kannst ja mal die letze Version von oben testen. Das ist zumindest die Warning weg.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: maxritti am 20 Februar 2015, 17:48:52
Zitat von: vbs am 20 Februar 2015, 17:39:37
Hm, blöde Frage: was heißt das? Werde aus eventTypes nicht schlau.

Kannst ja mal die letze Version von oben testen. Das ist zumindest die Warning weg.
Meine Hoffnung war, dass das bei der Problemsuche hilft  8)

Ich habe mal im Modul zwei Zeilen zum debuggen eingetragen.

Zitatsub STOCKQUOTES_QueryQuotes($)
{
  my ($hash) = @_;
  my $name = $hash->{NAME};

  if (not exists($hash->{helper}{RUNNING_PID})) {
    Log3 $hash->{NAME}, 4, 'STOCKQUOTES: Start blocking query';
    readingsSingleUpdate($hash, "state", "Updating",1);
    Log3 $hash->{NAME}, 4, 'Starting test....';
    $hash->{helper}{RUNNING_PID} = BlockingCall("STOCKQUOTES_QueryQuotesBlocking",
                                                $hash,
                                                "STOCKQUOTES_QueryQuotesFinished",
                                                AttrVal($hash, "queryTimeout", 120),
                                                "STOCKQUOTES_QueryQuotesAbort",
                                                $hash);
    Log3 $hash->{NAME}, 4, 'test finish...';
  }
  else {
    Log3 $hash->{NAME}, 4, 'STOCKQUOTES_QueryQuotes: Blocking not started because still one running';
  }

  return undef;
}

Das erste Log wird noch ausgegeben.
Irgendwie scheint der BlockingCall bei mir gegen die Pumpe zu laufen.

Wie bekommen wir rudolf dazu hier mal zu schauen?
Ich denke er wäre hier der jenige, welcher helfen könnte.

2015.02.20 17:43:07 4: STOCKQUOTES: Start blocking query
2015.02.20 17:43:07 5: Triggering myQuotes (1 changes)
2015.02.20 17:43:07 5: Notify loop for myQuotes Updating
2015.02.20 17:43:07 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 17:43:07 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating
2015.02.20 17:43:07 4: Starting test....


/EDIT:

Auch mit der letzten Version schmiert mein FHEM ab.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 20 Februar 2015, 20:05:50
Hm, scheint evtl. ein grundlegendes Problem bei dir zu sein. Klappt BlockingCall bei anderen Modulen?

Könntest mal probieren, fhem auf der Konsole ohne Logfile zu starten ("logfile -"). Evtl. meldet fhem noch etwas auf der Konsole, bevor es das Zeitliche segnet.

@all:
also bei mir hängt, sich das Modul nach einer Zeit mit "Updating" weg :( Werd ich mir ansehen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: maxritti am 20 Februar 2015, 20:35:23
Zitat von: vbs am 20 Februar 2015, 20:05:50
Hm, scheint evtl. ein grundlegendes Problem bei dir zu sein. Klappt BlockingCall bei anderen Modulen?

Laut fhem Wiki bei Blocking_Call verwendet das Presence Modul dies auch.
Da habe ich testweise mal ein Testdevice erstellt.
Dabei läuft fhem fröhlich weiter.

Zitat von: vbs am 20 Februar 2015, 20:05:50
Könntest mal probieren, fhem auf der Konsole ohne Logfile zu starten ("logfile -"). Evtl. meldet fhem noch etwas auf der Konsole, bevor es das Zeitliche segnet.

Ah ja. Da kommt die Meldung.

Undefined subroutine &main::BlockingCall called at ./FHEM/98_STOCKQUOTES.pm line 238.

Muss den Blocking.pm noch irgendwie anders eingebunden werden?

BTW:
Ich habe Rudolf mal angemailt mit der Bitte hier mal zu schauen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: rudolfkoenig am 20 Februar 2015, 20:37:09
ZitatWie bekommen wir rudolf dazu hier mal zu schauen?
Ich will kein Online-Depot zulegen, damit ich das Modul testen kann.
Wenn jemand mir zeigt, wie ich es ohne testen kann, dann probiere ich es.

Ich habe gerade BlockingCall getestet (und die fehlerhafte Doku im Blocking.pm ersetzt), und es tut bei mir.
Was habe ich gemacht:
Folgendes in 99_myUtils.pm definiert:

use Blocking;
sub TestBlocking($){ BlockingCall("DoSleep", shift, "SleepDone", 5, "AbortFn", "AbortArg"); }
sub DoSleep($)     { sleep(shift); return "I'm done"; }
sub SleepDone($)   { Log 1, "SleepDone: " . shift; }
sub AbortFn($)     { Log 1, "Aborted: " . shift; }

Dann vom FHEM-Prompt folgendes aufgerufen
{ TestBlocking(3) }
{ TestBlocking(6) }

und das FHEM-Log beobachtet.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: maxritti am 20 Februar 2015, 20:46:27
Also bei mir reicht es schon fhem mit der Demo Config starten, dann ein Device mit dem Modul hier zu definieren, dann 10 Sekunden zu warten und dann beendet sich fhem mit dieser Meldung:

Undefined subroutine &main::BlockingCall called at ./FHEM/98_STOCKQUOTES.pm line 238.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 20 Februar 2015, 21:04:48
Probier mal bitte vor dem Definieren des Depots:
{use Blocking}
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: maxritti am 20 Februar 2015, 21:30:26
Schau mal einer an. Danke Dir.

Da hätte ich auch drauf kommen können. (http://www.smiliesuche.de/smileys/kopf-gegen-wand/kopf-gegen-wand-smilies-0005.gif)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 27 Februar 2015, 11:15:19
Nochmal ein Update im ersten Post. Einerseits "use Blocking" hinzugefügt und andererseits die Depotberechnung so gebaut, dass nichts falsches herauskommt, wenn mal eine Anfrage in die Hose geht.

Bestehen jetzt noch Probleme bei euch? Das Hängen bei "Updating" trat bei mir jetzt nicht nochmal auf.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 12 Mai 2015, 17:35:19
[quote author=vbs link=topic=33352.msg267454#msg267454 date=1425032119]
Nochmal ein Update im ersten Post. Einerseits "use Blocking" hinzugefügt und andererseits die Depotberechnung so gebaut, dass nichts falsches herauskommt, wenn mal eine Anfrage in die Hose geht.

Bestehen jetzt noch Probleme bei euch? Das Hängen bei "Updating" trat bei mir jetzt nicht nochmal auf.
[/quote]
Ich habe eine passende Einstellung für mich gefunden, daher warich ne Weile nicht mehr hier.
Mit:
attr Depot1 currency EUR
attr Depot1 defaultSource europe
attr Depot1 pollInterval 1800
attr Depot1 queryTimeout 120
attr Depot1 stocks A0YCZ3:0:0,975017:0:0,975013:0:0

bleibt es aber immer noch im updating hängen
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 12 Mai 2015, 19:13:11
Hm, bei mir ist mir nichts mehr aufgefallen. Könntest du da etwas näher drauf eingehen?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 12 Mai 2015, 21:28:52
Zitat von: vbs am 12 Mai 2015, 19:13:11
Hm, bei mir ist mir nichts mehr aufgefallen. Könntest du da etwas näher drauf eingehen?
Klar,
ich habe nochmal das Depot getestet, welches nicht richtig lief:
define Depot1 STOCKQUOTES
attr Depot1 currency EUR
attr Depot1 defaultSource europe
attr Depot1 pollInterval 1800
attr Depot1 queryTimeout 120
attr Depot1 room 01_Testzimmer
attr Depot1 stocks A0YCZ3:0:0,975017:0:0,975013:0:0


mit set Depot1 update

lässt sich das Update anstoßen, und es werden auch Daten geholt, aber state bleibt auf Updating stehen.
Im log ist nix aufgetaucht.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 14 Mai 2015, 10:11:14
Hab jetzt mal deine Attribute 1:1 übernommen und werde mal gucken, ob das bei mir auch passiert. Wie oft kommt das denn bei dir vor ca.? Du benutzt sicherlich die letzte Version aus dem ersten Post, oder?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 14 Mai 2015, 13:13:37
Ich konnte das jetzt gut reproduzieren mit deinen Daten. Da wurde durch Null geteilt, wenn alle Positionen eine Größe von 0 hatten. Ist nun (hoffentlich) behoben in der Version im ersten Post. Bitte einmal testen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 15 Mai 2015, 11:21:10
Ich komme frühestens am Sonntag zum testen und werde dann Rückmeldung geben. Ja getestet hatte ich mit der aktuellsten Version.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 19 Mai 2015, 09:52:52
Zitat von: vbs am 14 Mai 2015, 13:13:37
Ich konnte das jetzt gut reproduzieren mit deinen Daten. Da wurde durch Null geteilt, wenn alle Positionen eine Größe von 0 hatten. Ist nun (hoffentlich) behoben in der Version im ersten Post. Bitte einmal testen.

läuft jetzt
super, danke!

Dann ab ins SVN damit  8)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: masterpete23 am 26 November 2015, 09:23:09
Hallo,
ich hoffe, dass es hier das Thema noch gibt.

Ich habe einige Probleme :

1. ich habe stock welches 152,069 sind. es werden aber nur 152 geladen.
2. er kennt WKN A1CTSU nicht was kann ich tun
3. kann ich auch den Verlauf der letzten Monate / Jahre aufzeigen? mit Graph und Gewinn Verlust?
4. ich habe einige ja 2008 gekauft sagen wir 100 stück für 10 € - damals 1000  heute ist der Wert 15€ somit 1500 - könnte mir das Modul nun die 500€ als Gewinn eintragen?

zu1: habe ich gerade rausgefunden da geht es mit . statt ,

2015.11.26 09:07:36 1: PERL WARNING: Argument "152,069" isn't numeric in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 168, <$fh> line 263.
2015.11.26 09:07:36 1: PERL WARNING: Argument "16387,28" isn't numeric in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 168, <$fh> line 263.
2015.11.26 09:07:36 1: PERL WARNING: Argument "83,877" isn't numeric in multiplication (*) at ./FHEM/98_STOCKQUOTES.pm line 168, <$fh> line 264.


Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 26 November 2015, 11:23:58
Ja, das gibts theoretisch noch, obwohl ich da im Moment nicht viel dran mache.

1.) Da hab ich die Frage nicht ganz verstanden, aber hat sich eh erledigt, oder?

2.) Ich fürchte nicht viel. Yahoo Finance auf der Webseite kennt die auch nicht.

3.) Das Modul kann keine historischen Kurse abrufen. Du kannst nur die aktuellen Daten selbst als SVG plotten.

4.) Ja das geht. Guck mal auf der ersten Seite. Zb für VOW3.F so "set stocks buy VOW3.F 10 1000".
Dann bekommst du die Readings:
VOW3.F_d_buy_value_total   1000
VOW3.F_d_cur_value_total 1245.16


Und auch die entsprechenden Gesamt-Depot-Readings.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: masterpete23 am 27 November 2015, 07:22:56
1. ja
2. Mist. Aber wieso nicht :/
4. meine Gesamtdepot readings sind da stimmt doch irgendwas nicht

depot_buy_value_total 4400

2015-11-27 07:17:05
depot_cur_value_total 0

2015-11-27 07:17:05
depot_p_change -100.00

2015-11-27 07:17:05
depot_p_change_total -100.00

2015-11-27 07:17:05
depot_value_diff 0.00

2015-11-27 07:17:05
depot_value_diff_total -4400.00

2015-11-27 07:17:05

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 27 November 2015, 12:47:47
Ich fürchte du musst mal sagen, was du genau gemacht hast. Logs dazu wären auch gut.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: inma am 29 November 2015, 13:58:42
Hallo,

ich kann leider das aktuelle Modul 98_STOCKQUOTES in SVN nicht finden.
Ich habe ebenfalls das Problem das state auf Updating stehen bleibt.
Wo kann ich das aktuelle Modul finden ?


Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 29 November 2015, 14:40:04
Das im ersten Post ist der letzte Stand. Bei Problemen bräuchte ich genaue Angaben, wie ich das hier reproduzieren kann + verbose Logs;
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: inma am 29 November 2015, 19:31:33
Besten Dank für die schnelle Antwort.

Ich dachte die letzte wäre die aktuellste Version.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Mumpitz am 30 November 2015, 00:59:44
Hallo

Erstmal vielen Dank für das
Coole Modul!

Ist es auch möglich den einzelnen Positionen die Währung beizugeben?
Als Beispiel habe ich Wertpapiere einer Bank in CHF sowie einer anderen Bank in USD.

Kann man das irgendwie zuordnen?

Besten Dank für die Antwort
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: masterpete23 am 30 November 2015, 06:36:07
Zitat von: vbs am 27 November 2015, 12:47:47
Ich fürchte du musst mal sagen, was du genau gemacht hast. Logs dazu wären auch gut.
Oh nachdem ich den Thread aus der Versenkung geholt habe, gibt es  scheinbar viele Interessenten :)
Ich habe ein depot angelegt und dann 2 Stocks gekauft mit Anzahl und Preis.

Achja noch was - wie bekomme ich das gut geplottet?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 30 November 2015, 09:23:30
Zitat von: Mumpitz am 30 November 2015, 00:59:44
Ist es auch möglich den einzelnen Positionen die Währung beizugeben?
Als Beispiel habe ich Wertpapiere einer Bank in CHF sowie einer anderen Bank in USD.
Es werden defaultmäßig alle Kurse in Euro umgerechnet. Es gibt aber das Attribut "currency" mit dem du die Währung auf eine andere Umstellen kannst.

Zitat von: masterpete23 am 30 November 2015, 06:36:07
Ich habe ein depot angelegt und dann 2 Stocks gekauft mit Anzahl und Preis.
Ich bräuchte das noch etwas genauer inkl. Logs und Device-Listing um das nachstellen zu können.

Zitat von: masterpete23 am 30 November 2015, 06:36:07
Achja noch was - wie bekomme ich das gut geplottet?
Schau dir mal das SVG-Modul an, damit kann man gut plotten.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Mumpitz am 30 November 2015, 10:13:19

Zitat von: vbs am 30 November 2015, 09:23:30
Es werden defaultmäßig alle Kurse in Euro umgerechnet. Es gibt aber das Attribut "currency" mit dem du die Währung auf eine andere Umstellen kannst.

Ja das habe ich auf CHF geändert. Aber dadurch werden jetzt natürlich auch meine Wertpapiere in USD in CHF angezeigt.

Gerne würde ich pro Position die Währung angeben und danach das Gesamtergebnis in CHF umgewandelt haben!

Geht das?
So quasi currency positionen...
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: masterpete23 am 30 November 2015, 10:17:55
Mumpitz eine Idee wäre ein zweites Depot anzulegen. Oder?
Vbs kann ich von zu Hause machen. Kann per Remote irgendwie keine befehle absetzen


Internals: NAME Depot
NR 120
STATE 2015-11-30 10:20:52
TYPE STOCKQUOTES
Readings:
2015-11-30 10:20:52 531446_d_buy_quote 52.46
2015-11-30 10:20:52 531446_d_buy_value_total 4400
2015-11-30 10:20:52 531446_d_stockcount 83.877
2015-11-30 10:20:52 531446_date 11/30/2015
2015-11-30 10:20:52 531446_errormsg Stock name 531446 not found
2015-11-30 10:20:52 531446_exchange Berlin / Bremen
2015-11-30 10:20:52 531446_high 63.470
2015-11-30 10:20:52 531446_isodate 2015-11-30
2015-11-30 10:20:52 531446_low 63.450
2015-11-30 10:20:52 531446_method bourso
2015-11-30 10:20:52 531446_name UNIRAK NET
2015-11-30 10:20:52 531446_open 63.470
2015-11-30 10:20:52 531446_p_change -0.24
2015-11-30 10:20:52 531446_previous 63.600
2015-11-30 10:20:52 531446_success 1
2015-11-30 10:20:52 531446_symbol HTML
2015-11-30 10:20:52 531446_volume 0
2015-11-30 10:20:52 depot_buy_value_total 4400
2015-11-30 10:20:52 depot_cur_value_total 0
2015-11-30 10:20:52 depot_p_change -100.00
2015-11-30 10:20:52 depot_p_change_total -100.00
2015-11-30 10:20:52 depot_value_diff 0.00
2015-11-30 10:20:52 depot_value_diff_total -4400.00
2015-11-30 10:20:52 state 2015-11-30 10:20:52
Helper:
Attributes: currency EUR
defaultSource europe
pollInterval 2400
queryTimeout 120
room Depot
stocks 531446:83.877:4400,A1CTSU:152.069:16387.28

Ich kann aber auch gerne das ganze neu anlegen, wenn es dann besser zum nachvollziehen ist

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 01 Dezember 2015, 16:42:32
Zitat von: Mumpitz am 30 November 2015, 10:13:19
Gerne würde ich pro Position die Währung angeben und danach das Gesamtergebnis in CHF umgewandelt haben!

Geht das?
So quasi currency positionen...
Das geht so erstmal nicht. Alle Positionen müssen eine einheitliche Währung haben (sonst könnten auch zB die Depotwert-Berechnungen nicht funktionieren). Einzige Lösung wäre wirklich ein eigenes Device dafür anzulegen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 03 Dezember 2015, 19:04:38
Hab mal ein paar Bugs behoben und etwas optimiert (Anhang im ersten Post).

@masterpete23
Ich kann dein Problem hier so nicht nachstellen. Manchmal kommt bei einem Update das "last" nicht mit (providerbedingt), aber beim zweiten Updaten kam es bei mir dann immer und wurde korrekt gefüllt.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: masterpete23 am 04 Dezember 2015, 20:31:22
also.
neues Depot angelegt
dann
Internals:
   NAME       Depot
   NR         193
   STATE      2015-12-04 20:22:59
   TYPE       STOCKQUOTES
   Readings:
     2015-12-04 20:22:59   depot_buy_value_total 0
     2015-12-04 20:22:59   depot_cur_value_total 0
     2015-12-04 20:22:59   depot_p_change  0
     2015-12-04 20:22:59   depot_p_change_total 0
     2015-12-04 20:22:59   depot_value_diff 0.00
     2015-12-04 20:22:59   depot_value_diff_total 0.00
     2015-12-04 20:22:59   state           2015-12-04 20:22:59
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 2400
   queryTimeout 120
   room       Depot

nun
set Depot buy 531446 83.877 4400
dann
Internals:
   NAME       Depot
   NR         193
   STATE      2015-12-04 20:30:03
   TYPE       STOCKQUOTES
   Readings:
     2015-12-04 20:30:03   531446_d_buy_quote 52.46
     2015-12-04 20:30:03   531446_d_buy_value_total 4400
     2015-12-04 20:30:03   531446_d_stockcount 83.877
     2015-12-04 20:30:03   531446_date     12/04/2015
     2015-12-04 20:30:03   531446_errormsg Stock name 531446 not found
     2015-12-04 20:30:03   531446_exchange Berlin / Bremen
     2015-12-04 20:30:03   531446_high     61.750
     2015-12-04 20:30:03   531446_isodate  2015-12-04
     2015-12-04 20:30:03   531446_low      61.040
     2015-12-04 20:30:03   531446_method   bourso
     2015-12-04 20:30:03   531446_name     UNIRAK NET
     2015-12-04 20:30:03   531446_open     61.550
     2015-12-04 20:30:03   531446_p_change -3.28
     2015-12-04 20:30:03   531446_previous 63.420
     2015-12-04 20:30:03   531446_success  1
     2015-12-04 20:30:03   531446_symbol   HTML
     2015-12-04 20:30:03   531446_volume   0
     2015-12-04 20:30:03   depot_buy_value_total 4400
     2015-12-04 20:30:03   depot_cur_value_total 0
     2015-12-04 20:30:03   depot_p_change  -100.00
     2015-12-04 20:30:03   depot_p_change_total -100.00
     2015-12-04 20:30:03   depot_value_diff 0.00
     2015-12-04 20:30:03   depot_value_diff_total -4400.00
     2015-12-04 20:30:03   state           2015-12-04 20:30:03
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 2400
   queryTimeout 120
   room       Depot
   stocks     531446:83.877:4400


und nun?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 04 Dezember 2015, 21:11:12
Nun musst du mal Logs posten. Lass mal 15 Minuten laufen vorher.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: masterpete23 am 05 Dezember 2015, 20:50:07
Was für logs? Was sollte ich vorher einstellen? Log Level verbose?

Gesendet von meinem Huawei Honor 7

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 05 Dezember 2015, 21:11:25
Das normale FHEM Log. Stockquotes mindestens auf verbose 4.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: masterpete23 am 07 Dezember 2015, 22:30:30
Meinst du sowas? 15.12.04 10:17:18 4: STOCKQUOTES: Start blocking query 2015.12.04 10:17:18 4: STOCKQUOTES_QueryQuotesBlocking 2015.12.04 10:17:18 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 531446 from source europe 2015.12.04 10:17:18 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe 2015.12.04 10:17:22 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot2|531446&volume&0|531446&high&61.750|531446&errormsg&Stock name 531446 not found|531446&open&61.550|531446&date&12/04/2015|531446&previous&63.420|531446&exchange&Berlin / Bremen|531446&low&61.550|531446&name&UNIRAK NET|531446&method&bourso|531446&symbol&HTML|531446&isodate&2015-12-04|531446&p_change&-2.63%|531446&success&1 2015.12.04 10:17:22 4: STOCKQUOTES_QueryQuotesFinished 2015.12.04 10:17:22 4: STOCKQUOTES_QueueTimer: 2400 seconds 2015

.12.07 22:30:39 4: STOCKQUOTES: Start blocking query 2015.12.07 22:30:39 4: STOCKQUOTES_QueryQuotesBlocking 2015.12.07 22:30:39 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 531446 from source europe 2015.12.07 22:30:39 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe 2015.12.07 22:30:43 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|531446&volume&0|531446&high&61.800|531446&errormsg&Stock name 531446 not found|531446&open&0.00|531446&date&12/07/2015|531446&previous&61.340|531446&exchange&Berlin / Bremen|531446&low&61.690|531446&name&UNIRAK NET|531446&method&bourso|531446&symbol&HTML|531446&isodate&2015-12-07|531446&p_change&0.75%|531446&success&1 2015.12.07 22:30:43 4: STOCKQUOTES_QueryQuotesFinished 2015.12.07 22:30:43 4: STOCKQUOTES_QueueTimer...

   


Gesendet von meinem Huawei Honor 7
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 26 Januar 2016, 22:46:23
Hallo vbs,

habe mal bisschen Text für die commandref zusammengeklöppelt:

=pod
=begin html

<a name="STOCKQUOTES"></a>
<h3>STOCKQUOTES</h3>
(en | <a href="commandref_DE.html#STOCKQUOTES">de</a>)
<ul>
<a name="STOCKQUOTES"></a>
    Fetching actual stock quotes from various sources<br>
    <b>Preliminary</b><br>
    Perl module  Finance::Quote must be installed:<br>
    <code>cpan install Finance::Quote</code> or <code>sudo apt-get install libfinance-quote-perl</code><br><br>
   
<b>Define</b>
<ul>
<code>define Depot STOCKQUOTES</code><br><br>
</ul>

<a name="STOCKQUOTESset"></a>
<b>Set</b>
<ul>
&lt;Symbol&gt; depends on source. May also an WKN.<br><br>
<li><code>set &lt;name&gt; buy &lt;Symbol&gt; &lt;Amount&gt; &lt;Value of amount&gt;</code><br>
Add an stock exchange securities. If stock exchange securities already exists, new values will be added to old values.<br><br>
</li>
<li><code>set &lt;name&gt; sell &lt;Symbol&gt; &lt;Amount&gt; &lt;Value of amount&gt;</code><br>
Remove an stock exchange securities (or an part of it).<br><br>
</li>
<li><code>set &lt;name&gt; add &lt;Symbol&gt;</code><br>
Watch only<br><br>
</li>
<li><code>set &lt;name&gt; remove &lt;Symbol&gt;</code><br>
Remove watched stock exchange securities.<br><br>
</li>
<li><code>set &lt;name&gt; clearReadings</code><br>
Clears all readings.<br><br>
</li>
<li><code>set &lt;name&gt; update</code><br>
Refresh all readings.<br><br>
</li>
</ul>
 
<a name="STOCKQUOTESget"></a>
<b>Get</b>
<ul>
<li><code>get &lt;name&gt; sources</code><br>
Lists all avaiable data sources.<br><br>
</li>
<li><code>get &lt;name&gt; currency &lt;Symbol&gt;</code><br>
Get currency of stock exchange securities<br><br>
</li>
</ul>

<a name="STOCKQUOTESattr"></a>
<b>Attributes</b>
<ul>
<li>currency<br>
All stock exchange securities will shown in this currency.<br>
Default: EUR, valid values: W&auml;hrungsk&uuml;rzel<br><br>
</li>
<li>defaultSource<br>
Default source for stock exchange securities values.<br>
Default: europe, valid values: from <code>get &lt;name&gt; sources</code><br><br>
</li>
<li>queryTimeout<br>
Fetching timeout in seconds.<br>
Standard: 120, valid values: Number<br><br>
</li>
<li>pollInterval<br>
Refresh interval in seconds.<br>
Standard: 300, valid values: Number<br><br>
</li>
<li>sources<br>
An individual data source can be set for every single stock exchange securities.<br>
Data sources can be fetched with: <code>get &lt;name&gt; sources</code>.<br>
Format: &lt;Symbol&gt;:&lt;Source&gt;[,&lt;Symbol&gt;:&lt;Source&gt;...]<br>
Example: <code>A0M16S:vwd,532669:unionfunds,849104:unionfunds</code><br>
Stock exchange securities not listed in sources will be updated from defaultSource.<br><br>
</li>
<li>stocks<br>
Will be created/modified via buy/sell/add/remove<br>
Contains stock exchange securities informations in format: &lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;[,&lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;...]<br><br>
</li>
</ul><br>
</ul><br>
</ul>

=end html

=begin html_DE

<a name="STOCKQUOTES"></a>
<h3>STOCKQUOTES</h3>
(<a href="commandref.html#STOCKQUOTES">en</a> | de)
<ul>
<a name="STOCKQUOTES"></a>
Wertpapierdaten von verschiedenen Quellen holen<br>
<b>Vorbereitung</b><br>
Perl Modul Finance::Quote muss installiert werden:<br>
<code>cpan install Finance::Quote</code> oder <code>sudo apt-get install libfinance-quote-perl</code><br><br>

<b>Define</b>
<ul>
<code>define &lt;name&gt; STOCKQUOTES</code><br><br>
</ul>

<a name="STOCKQUOTESset"></a>
<b>Set</b>
<ul>
&lt;Symbol&gt; h&auml;ngt von den jeweiligen Quellen ab. Kann auch eine WKN sein. Hier muss ggf. experimentiert werden.<br><br>
<li><code>set &lt;name&gt; buy &lt;Symbol&gt; &lt;Menge&gt; &lt;Gesamtpreis&gt;</code><br>
Wertpapier in Depot einbuchen. Wenn dieses Wertpapier bereits vorhanden ist, werden die Neuen einfach dazuaddiert.<br><br>
</li>
<li><code>set &lt;name&gt; sell &lt;Symbol&gt; &lt;Menge&gt; &lt;Gesamtpreis&gt;</code><br>
Wertpapier (auch Teilmenge) wieder ausbuchen.<br><br>
</li>
<li><code>set &lt;name&gt; add &lt;Symbol&gt;</code><br>
Wertpapier nur beobachten<br><br>
</li>
<li><code>set &lt;name&gt; remove &lt;Symbol&gt;</code><br>
Entferne Wertpapier das nur beobachtet wird.<br><br>
</li>
<li><code>set &lt;name&gt; clearReadings</code><br>
Alle Readings l&ouml;schen.<br><br>
</li>
<li><code>set &lt;name&gt; update</code><br>
Alle Readings aktualisieren.<br><br>
</li>
</ul>

<a name="STOCKQUOTESget"></a>
<b>Get</b>
<ul>
<li><code>get &lt;name&gt; sources</code><br>
Verf&uuml;gbare Datenquellen auflisten. Diese werden f&uuml;r die Attribute defaultSource und sources ben&ouml;tigt<br><br>
</li>
<li><code>get &lt;name&gt; currency &lt;Symbol&gt;</code><br>
Wertpapierw&auml;hrung ermitteln<br><br>
</li>
</ul>

<a name="STOCKQUOTESattr"></a>
<b>Attribute</b>
<ul>
<li>currency<br>
W&auml;hrung, in der die Wertpapiere angezeigt werden.<br>
Default: EUR, g&uuml;ltige Werte: W&auml;hrungsk&uuml;rzel<br><br>
</li>
<li>defaultSource<br>
Standardquelle f&uuml;r die Wertpapierdaten.<br>
Default: europe, g&uuml;ltige Werte: alles was <code>get &lt;name&gt; sources</code> ausgibt.<br><br>
</li>
<li>queryTimeout<br>
Timeout beim holen der Daten in Sekunden.<br>
Standard: 120, g&uuml;ltige Werte: Zahl<br><br>
</li>
<li>pollInterval<br>
Aktualisierungsintervall in Sekunden.<br>
Standard: 300, g&uuml;ltige Werte: Zahl<br><br>
</li>
<li>sources<br>
F&uuml;r jedes Wertpapier kann eine eigene Datenquelle definiert werden.<br>
Die Datenquellen k&ouml;nnen &uuml;ber <code>get &lt;name&gt; sources</code> angefragt werden.<br>
Format: &lt;Symbol&gt;:&lt;Source&gt;[,&lt;Symbol&gt;:&lt;Source&gt;...]<br>
Beispiel: <code>A0M16S:vwd,532669:unionfunds,849104:unionfunds</code><br>
Alle nicht aufgef&uuml;hrten Werpapiere werden &uuml;ber die defaultSource abgefragt.<br><br>
</li>
<li>stocks<br>
Wird &uuml;ber buy/sell/add/remove angelegt/modifiziert<br>
Enth&auml;lt die Werpapiere im Format &lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;[,&lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;...]<br><br>
</li>
</ul><br>
</ul>

=end html_DE
=cut


kannst ja mal drüberschauen und auch gern an dein Modul anhängen ;)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 27 Januar 2016, 12:56:51
Wow, fantastisch! Herzlichen Dank! Werde ich mir gerne anschauen!!

Würde ich dann wahrscheinlich mal zum Anlassen nehmen, um zu versuchen, das Modul ins offizielle Repo zu bekommen.

Nochmals danke!
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 27 Januar 2016, 13:49:41
Zitat von: vbs am 27 Januar 2016, 12:56:51
Würde ich dann wahrscheinlich mal zum Anlassen nehmen, um zu versuchen, das Modul ins offizielle Repo zu bekommen.
Das wäre super.
Mach mal  8)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 28 Januar 2016, 18:42:31
Ist jetzt eingecheckt. Nochmals besten Dank klausw!

@Mods:
Könnte jemand das Thema bitte nach "Unterstützende Dienste" verschieben? Die Rubrik hab ich in die MAINTAINER.txt eingetragen. Danke!
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: FHEM__Newbie am 06 Mai 2016, 23:35:04
Hallo,

erstmal super Modul, Danke.

Aber 3 Fragen hät ich noch:

1) Den DOW krieg ich nicht geadded (WKN 969420), genauso wie dessen DB DOW Indikation (WKN DB2KFA) oder auch die DB DAX Indikation (WKN DB2KE7).
2) Wie kann ich einer WKN noch einen speziellen Börsenplatz mitgeben? z.B. Stuttgart, weil die bis 22 Uhr handeln?
3) Was bedeuten die 2 Nuller hinter den WKNs, z.B. 846900:0:0 im stocks Attribut?

Danke für die Hilfe...
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 07 Mai 2016, 11:21:26
Moin! Schau mal in die commandref zum Modul, da sollte es beschrieben sein.

Kurzfassung:
Zitat von: FHEM__Newbie am 06 Mai 2016, 23:35:04
1) Den DOW krieg ich nicht geadded (WKN 969420), genauso wie dessen DB DOW Indikation (WKN DB2KFA) oder auch die DB DAX Indikation (WKN DB2KE7).
Es kann nur verwendet werden, was von dem Perl-Modul unterstützt wird (http://finance-quote.sourceforge.net/).

Zitat von: FHEM__Newbie am 06 Mai 2016, 23:35:04
2) Wie kann ich einer WKN noch einen speziellen Börsenplatz mitgeben? z.B. Stuttgart, weil die bis 22 Uhr handeln?
Mit dem Attribut "sources". "get sources" liefert alle bekannten sources.

Zitat von: FHEM__Newbie am 06 Mai 2016, 23:35:04
3) Was bedeuten die 2 Nuller hinter den WKNs, z.B. 846900:0:0 im stocks Attribut?
Das erste ist die Anzahl im Depot und das zweite der Kaufpreis.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 28 September 2016, 13:24:44
Hallo vbs,

ich habe mein FHEM neu aufgesetzt und hatte plötzlich keine Daten mehr in meiner Depotübersicht.

Beim untersuchen der save Datei von meiner Sicherung ist mir aufgefallen, das Werte wie
DTE.SG_d_cur_value_total
DTE.SG_d_value_diff_total
DTE.SG_d_p_change_total

zuletzt im November letzten Jahres aktualisiert wurden.
Wurde etwas geändert was ich nicht mitbekommen habe?
Grüße
Klaus
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 28 September 2016, 18:19:07
Hm, hab eigentlich an dem Modul recht lange nix gemacht. November? Ist eine Version hier aus dem Thread, oder? Kannst ja mal die "offizielle" aus FHEM probieren.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 28 September 2016, 20:23:17
Zitat von: vbs am 28 September 2016, 18:19:07
Hm, hab eigentlich an dem Modul recht lange nix gemacht. November? Ist eine Version hier aus dem Thread, oder? Kannst ja mal die "offizielle" aus FHEM probieren.
# $Id: 98_STOCKQUOTES.pm 10652 2016-01-28 17:41:14Z vbs2 $
Ich habe die offizielle Version in Verwendung.
Funktioniert es bei dir z.B. mit der DTE.SG Aktie?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 29 September 2016, 18:19:12
Wenn du mir sagst, wie du es bei dir definiert hast, kann ich das gern mal ausprobierne.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 30 September 2016, 00:24:19
hier ein Beispiel, es ist aber bei allen Wertpapieren so
depot_value_diff_total steht auf -(Summe aller Einkaufswerte)

define depot2 STOCKQUOTES
set depot2 buy DTE.DE 2 34

list
Internals:
   CFGFN
   NAME       depot2
   NR         620
   STATE      2016-09-30 00:20:14
   TYPE       STOCKQUOTES
   Readings:
     2016-09-30 00:20:14   DTE.DE_avg_vol  7765580
     2016-09-30 00:20:14   DTE.DE_cap      68730000000
     2016-09-30 00:20:14   DTE.DE_close    14.87
     2016-09-30 00:20:14   DTE.DE_currency EUR
     2016-09-30 00:20:14   DTE.DE_d_buy_quote 17.00
     2016-09-30 00:20:14   DTE.DE_d_buy_value_total 34
     2016-09-30 00:20:14   DTE.DE_d_stockcount 2
     2016-09-30 00:20:14   DTE.DE_date     09/29/2016
     2016-09-30 00:20:14   DTE.DE_day_range 14.89 - 15.07
     2016-09-30 00:20:14   DTE.DE_eps      1.19
     2016-09-30 00:20:14   DTE.DE_errormsg HTTP session failed
     2016-09-30 00:20:14   DTE.DE_ex_div   5/27/2016
     2016-09-30 00:20:14   DTE.DE_high     15.07
     2016-09-30 00:20:14   DTE.DE_isodate  2016-09-29
     2016-09-30 00:20:14   DTE.DE_last     14.95
     2016-09-30 00:20:14   DTE.DE_low      14.89
     2016-09-30 00:20:14   DTE.DE_method   yahoo_europe
     2016-09-30 00:20:14   DTE.DE_name     DEUTSCHE TELEKOM N
     2016-09-30 00:20:14   DTE.DE_net      +0.08
     2016-09-30 00:20:14   DTE.DE_open     14.96
     2016-09-30 00:20:14   DTE.DE_p_change +0.54
     2016-09-30 00:20:14   DTE.DE_pe       12.52
     2016-09-30 00:20:14   DTE.DE_price    14.95
     2016-09-30 00:20:14   DTE.DE_success  1
     2016-09-30 00:20:14   DTE.DE_symbol   DTE.DE
     2016-09-30 00:20:14   DTE.DE_time     17:35
     2016-09-30 00:20:14   DTE.DE_volume   6455472
     2016-09-30 00:20:14   DTE.DE_year_range 13.37 - 17.57
     2016-09-30 00:20:14   depot_buy_value_total 34
     2016-09-30 00:20:14   depot_cur_value_total 0
     2016-09-30 00:20:14   depot_p_change  0
     2016-09-30 00:20:14   depot_p_change_total -100.00
     2016-09-30 00:20:14   depot_value_diff 0.00
     2016-09-30 00:20:14   depot_value_diff_total -34.00
     2016-09-30 00:20:14   state           2016-09-30 00:20:14
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 300
   queryTimeout 120
   stocks     DTE.DE:2:34
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 30 September 2016, 07:35:18
Hallo,
Ist bei mir auch ziemlich lange so.
Was mir noch auffällt, ich habe bei den Error messages immer einen Fehler:

DTE.F_errormsg          HTTP session failed


Aber die Readings werden alle alle erzeugt.
Gruß
Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 30 September 2016, 08:30:49
Zitat von: klausw am 28 September 2016, 13:24:44
Beim untersuchen der save Datei von meiner Sicherung ist mir aufgefallen, das Werte wie
DTE.SG_d_cur_value_total
DTE.SG_d_value_diff_total
DTE.SG_d_p_change_total
Hab mir das mal angesehen: Und zwar liegt das daran, dass für DTE.SG kein Wert "previous" geliefert wird (liegt am Symbol, bei zB AAPL wird previous geliefert). Nur wenn "last" UND "previous" vorhanden sind, werden diese Readings gefüllt, was bei d_value_diff sicherlich Sinn macht. Ich werds aber noch feiner aufgliedern, so dass d_cur_value_total und d_p_change_total gefüllt werden, wenn zumindest "last" vorhanden ist.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 30 September 2016, 16:11:54
Zitat von: vbs am 30 September 2016, 08:30:49
Hab mir das mal angesehen: Und zwar liegt das daran, dass für DTE.SG kein Wert "previous" geliefert wird (liegt am Symbol, bei zB AAPL wird previous geliefert). Nur wenn "last" UND "previous" vorhanden sind, werden diese Readings gefüllt, was bei d_value_diff sicherlich Sinn macht. Ich werds aber noch feiner aufgliedern, so dass d_cur_value_total und d_p_change_total gefüllt werden, wenn zumindest "last" vorhanden ist.
Das wäre super.
Komisch ist es aber trotzdem. Scheinbar wurde was an der Perl Bibliothek verändert. Sonst hätte es ja auch letztes Jahr nicht funktionieren dürfen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 30 September 2016, 20:56:02
Bitte einmal diese Version probieren.

Ich würde eher vermuten, dass sich da etwas beim Datenprovider geändert hat, so dass jetzt für das Symbol previous nicht mehr geliefert wird. Es gab zumindest lange keine neue Version der Lib mehr:
http://finance-quote.sourceforge.net/
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 03 Oktober 2016, 22:19:50
Zitat von: vbs am 30 September 2016, 20:56:02
Bitte einmal diese Version probieren.
ich glaube du hast den Anhang vergessen  8)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 03 Oktober 2016, 23:09:13
Ich glaub auch  ;D
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: klausw am 04 Oktober 2016, 15:44:14
Die neue Version funktioniert.
Danke!
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 05 Oktober 2016, 20:52:13
Ok sehr gut danke, die Version ist jetzt auch in FHEM eingecheckt.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 18 März 2017, 12:50:30
Hallo,

wie kann man denn herausfinden, ob Werte von der gewünschten WKN bereitgestellt werden können, und welche "source" dafür gewählt werden soll?

Zitat von: vbs am 07 Mai 2016, 11:21:26
Moin! Schau mal in die commandref zum Modul, da sollte es beschrieben sein.

Kurzfassung:Es kann nur verwendet werden, was von dem Perl-Modul unterstützt wird (http://finance-quote.sourceforge.net/).
Mit dem Attribut "sources". "get sources" liefert alle bekannten sources.

Hier ein list, außer einem Datum erscheint nichts.
Internals:
   NAME       FFB1
   NR         406
   STATE      2017-03-18 12:52:48
   TYPE       STOCKQUOTES
   Readings:
     2017-03-18 12:52:48   depot_buy_value_total 0
     2017-03-18 12:52:48   depot_cur_value_total 0
     2017-03-18 12:52:48   depot_p_change  0
     2017-03-18 12:52:48   depot_p_change_total 0
     2017-03-18 12:52:48   depot_value_diff 0.00
     2017-03-18 12:52:48   depot_value_diff_total 0.00
     2017-03-18 12:52:48   state           2017-03-18 12:52:48
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 300
   queryTimeout 120
   sources    fundlibrary
   stocks     A0HMGB:8530:13367.6,692188:227.5:6697.8


Viele Grüße Gisbert
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 19 März 2017, 10:03:18
Kenne da leider auch keinen guten Weg. Das Modul nutzt die Perl-Bibliothek Finance::Quote (http://search.cpan.org/~ecocode/Finance-Quote-1.38/lib/Finance/Quote.pm). Also da könnte man nachforschen, was die genau machen.
Ich würde aber erwarten, dass mindestens alles was Yahoo Finance kennt funktioniert.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 19 März 2017, 11:35:41
Hallo vbs,

ich kriegs nicht hin, auch dann nicht wenn WKN-Nummer benutze, die weiter vorne im Thread stehen (mit defaultSource europe):
Internals:
   CFGFN
   NAME       FFB1
   NR         649
   STATE      2017-03-19 11:30:58
   TYPE       STOCKQUOTES
   Readings:
     2017-03-19 11:30:58   depot_buy_value_total 0
     2017-03-19 11:30:58   depot_cur_value_total 0
     2017-03-19 11:30:58   depot_p_change  0
     2017-03-19 11:30:58   depot_p_change_total 0
     2017-03-19 11:30:58   depot_value_diff 0.00
     2017-03-19 11:30:58   depot_value_diff_total 0.00
     2017-03-19 11:30:58   state           2017-03-19 11:30:58
   Helper:
Attributes:
   currency   EUR
   defaultSource europe
   pollInterval 300
   queryTimeout 120
   sources    yahoo
   stocks     975013:2:80
   verbose    5


Im logfile steht folgendes, wenn ich set update ausführe:
2017.03.19 11:30:56 4: STOCKQUOTES_QueueTimer: 0 seconds
2017.03.19 11:30:56 4: STOCKQUOTES: Start blocking query
2017.03.19 11:30:56 4: STOCKQUOTES_QueryQuotesBlocking
2017.03.19 11:30:56 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2017.03.19 11:30:56 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2017.03.19 11:30:58 4: STOCKQUOTES_QueryQuotesBlocking Return value: FFB1
2017.03.19 11:30:58 4: STOCKQUOTES_QueryQuotesFinished
2017.03.19 11:30:58 4: STOCKQUOTES_QueueTimer: 300 seconds


Kannst du mir ein funktionierendes Beispiel posten?

Viele Grüße Gisbert
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 19 März 2017, 11:55:14
Hab es länger nicht mehr benutzt, aber es scheint tatsächlich nicht mehr funktionieren... Finance::Quote wird auch seit ein paar Jahren nicht mehr gepflegt.  :-\
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 19 März 2017, 12:03:52
Hallo vbs,

das erklärt natürlich die "Untätigkeit" des Moduls.

Gibt es andere Möglichkeiten Kurse von bekannten Seiten, wie z.B. https://www.comdirect.de/ einzulesen?
Geht es mit HTTPMOD, und was müsste ich dort genau machen, damit ich Kurse bekomme?

Viele Grüße Gisbert
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 19 März 2017, 12:20:25
Ist sicherlich möglich, sich etwas eigenes zu schreiben. Aber nicht trivial fürchte ich. Du müsstest wirklich im Detail gucken, wie der HTTP-Aufruf aussehen muss und dann sinnvoll die HTML-Seite "scrapen". Manchmal werden die Seiten auch erstmal nur ohne Inhalt ausgeliefert und dann asynchron per AJAX oder Websocket-Aufrufen befüllt. Das macht das dann entsprechend komplexer.

Ich würde es wahrscheinlich erstmal mit Yahoo Finance probieren. Die haben eine gut erforschte API und da findet man auch viele Infos zu. Z.B.
http://diyinvestor.de/yahoo-finance-api/
Titel: Realtime Kurse
Beitrag von: FHEM_Starter am 25 April 2017, 16:47:31
Salut,

nach der Definition meiner Aktien erhalte ich Werte von XETRA. Da dieser immer 15 Minuten hinterher hinkt, wäre es toll, wenn ich auch auf Börsen wie "LT Lang & Schwarz" (www.comdirect.de) oder ähnliches zugreifen könnte. Gibt es in diesem Modul dafür einen Ansatz ?

Danke und Gruß
Wolfgang
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 12 Mai 2017, 19:01:30
Sorry, bin ich irgendwie drüber weggekommen...

Als L&S geht meines Wissens nach nicht. Das Modul benutzt das Perl-Modul Finance::Quote zur Abfrage der Kurse. Also es können nur Quellen benutzt werden, die von dem Modul unterstützt werden:
http://finance-quote.sourceforge.net/

Das Modul scheint auch nicht mehr gepflegt zu werden.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: demaya am 26 November 2017, 23:34:34
Hallo,

hat noch Jemand folgende Meldungen in seinen Logs beim Start von FHEM?

2017.11.26 23:30:42 3: WARNING: unsupported character in reading <html><head><title>Yahoo! (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Age: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Cache-Control: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Connection: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Content-Length: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Content-Type: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Date: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Expires: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Public-Key-Pins-Report-Only: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Server: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.
2017.11.26 23:30:42 3: WARNING: unsupported character in reading Via: (not A-Za-z/\d_\.-), notify the STOCKQUOTES module maintainer.


Ich bekomme über die DefaultSource 'yahoo' (auch vwd und andere...) auch keine Werte mehr rein. Verbose 5 sagt:
2017.11.26 23:30:51 4: STOCKQUOTES_QueryQuotesBlocking
2017.11.26 23:30:51 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: GZPFY from source vwd
2017.11.26 23:30:51 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: yyy from source vwd
2017.11.26 23:30:51 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: zzz from source vwd
2017.11.26 23:30:51 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 123 from source vwd
2017.11.26 23:30:51 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 456 from source vwd
2017.11.26 23:30:51 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: vwd
2017.11.26 23:30:52 4: STOCKQUOTES_QueryQuotesBlocking Return value: AK.Aktien
2017.11.26 23:30:55 4: STOCKQUOTES_QueryQuotesFinished
2017.11.26 23:30:55 4: STOCKQUOTES_QueueTimer: 3600 seconds


Wäre cool, wenn wir das wieder zum Fliegen kriegen :)

Gruß
demaya von demaya.de (http://demaya.de)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: DefanC am 27 November 2017, 10:19:45
Hallo,
ja, ich habe seit ca. 14 Tagen das gleiche Ergebnis. Im log steht das selbe wie bei dir demaya. Leider bekomme ich auch keine Werte mehr und so ist das Modul nicht mehr zu verwenden. Ich verfolge hier die Diskussion und so wie es aussieht hat der Maintainer auch keine Lösung. (sie Post oben) Schade!
Sollte sich doch eine neue Möglichkeit bieten, STOCKQUOTES zu nutzen, wäre das eine gute Sache!  :)

grüße Stefan
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 27 November 2017, 11:22:03
Vielleicht hat ja mal jemand Lust rauszufinden, ob denn unabhängig von FHEM das Perl-Modul an sich noch funktioniert. Dann wüsste man, ob es überhaupt Sinn macht, sich die FHEM-Seite nochmals anzusehen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: DefanC am 27 November 2017, 11:34:01
Ich wüßte da JEMANDEN, der sich um solche Fragen kümmern sollte.  ;)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: demaya am 27 November 2017, 13:21:55
Hi,

folgendes Skript liefert nichts (außer die Liste der Sources (sowieso statisch)) zurück:
#!/usr/bin/perl

use strict;
use warnings;
use Finance::Quote;
use Data::Dumper;

my $q = Finance::Quote->new();

my @sources = $q->sources();
print "Sources: \n";
foreach my $source (@sources) {
print "\t" . $source . "\n";
}

my %stocks  = $q->fetch("yahoo","IBM","MSFT","LNUX");

print "Ergebnis Request:\n";
print Dumper(%stocks);


Die Source 'Finanzpartner' liefert für ein paar Werte Ergebnisse, ist aber auch nur ein abschnorcheln der Webseite.

Es scheint als hätte Yahoo die ganze API ausgeschaltet :O https://www.quora.com/Why-can-I-no-longer-download-Yahoo-Finance-quotes-into-Stata

Viele Grüße
demaya von demaya.de (http://demaya.de)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: demaya am 28 Dezember 2017, 00:31:00
Guten Abend,

ich bin noch nicht über den Schmerz - den Yahoo ausgelöst hat - hinweggekommen. Daher habe ich mich auf die Suche gemacht. Es gibt einen neuen Stern am Aktien-Perl-Himme: AlphaVantage. Dieser Anbieter bietet nach einer Registrierung freie Informationen über Aktien an. Das offizielle Modul Finance::Quote wurde bereits auf diesen Anbieter umgestellt: https://metacpan.org/source/ECOCODE/Finance-Quote-1.47/lib/Finance/Quote/AlphaVantage.pm (https://metacpan.org/source/ECOCODE/Finance-Quote-1.47/lib/Finance/Quote/AlphaVantage.pm)

Eine aktuelle Installation ist mir mit einigen Fehlern um die Ohren geflogen. Die Paketquelle von Debian ist auch ein paar Versionen hinten dran (1.38 vs. 1.47). Dem Maintainer habe ich eine Mail geschrieben... das wird allerdings noch etwas dauern.

Daher habe ich selbst etwas Hand angelegt und ein bisschen dirty selbst upgedatet.


sudo su -
cd /usr/share/perl5/Finance
mv Quote.pm Quote.pm.bak
wget https://fastapi.metacpan.org/source/ECOCODE/Finance-Quote-1.47/lib/Finance/Quote.pm
cd /usr/share/perl5/Finance/Quote/
wget https://fastapi.metacpan.org/source/ECOCODE/Finance-Quote-1.47/lib/Finance/Quote/FidelityFixed.pm
wget https://fastapi.metacpan.org/source/ECOCODE/Finance-Quote-1.47/lib/Finance/Quote/YahooYQL.pm
wget https://fastapi.metacpan.org/source/ECOCODE/Finance-Quote-1.47/lib/Finance/Quote/AlphaVantage.pm

Unter https://www.alphavantage.co/support/#api-key (https://www.alphavantage.co/support/#api-key) holt Ihr euch einen API-Key und setzt diesen per Umgebungsvariable oder Fix (ist ja eh schon fast alles verbogen) in Zeile 31 der AlphaVantage.pm:
my $ALPHAVANTAGE_API_KEY = "xyz2340988029384;)";

Danach könnt Ihr euer FHEM neu starten und mit

attr AK.Aktien defaultSource AlphaVantage
set AK.Aktien clearReadings
set AK.Aktien update

endlich wieder Aktien in FHEM sehen.

Leider hänge jetzt daran, dass nur eine Aktie (die 1.) zurückgeliefert wird. In meinem im letzten Post genannten Testskript werden alle Werte zurückgeliefert.

Kann das noch Jemand nachvollziehen? Hier könnte jetzt auch wieder der Modulauthor tätig werden!? :)

Gruß
demaya von https://demaya.de (https://demaya.de)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 28 Dezember 2017, 13:04:35
Ich fürchte der Modulautor kommt momentan nicht dazu, sich das aufzusetzen und das auszuprobieren :(

Aber poste doch mal ein (verbose-)Log von deinem Aufruf, vielleicht sieht man dann ja schon etwas.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: demaya am 28 Dezember 2017, 22:51:17
OK, schade! Es sieht so aus, als ob das Modul nur einen Return zurück bekommt:
2017.12.28 22:48:35 4: STOCKQUOTES_QueueTimer: 0 seconds
2017.12.28 22:48:35 4: STOCKQUOTES: Start blocking query
2017.12.28 22:48:35 4: STOCKQUOTES_QueryQuotesBlocking
2017.12.28 22:48:35 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: ASDF from source alphavantage
2017.12.28 22:48:35 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: BLA from source alphavantage
2017.12.28 22:48:35 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: abc.de from source alphavantage
2017.12.28 22:48:35 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: BLUBB from source alphavantage
2017.12.28 22:48:35 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: FOO from source alphavantage
2017.12.28 22:48:35 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: alphavantage
2017.12.28 22:48:53 4: STOCKQUOTES_QueryQuotesBlocking Return value: AK.Aktien|abc.de&isodate&2017-12-28|abc.de&symbol&abc.de|abc.de&close&30.6650|abc.de¤cy&EUR|abc.de&low&30.2500|abc.de&date&12/28/2017|abc.de&last&30.6650|abc.de&method&alphavantage|abc.de&success&1|abc.de¤cy_set_by_fq&1|abc.de&open&30.2950|abc.de&high&30.8450|abc.de&volume&12945
2017.12.28 22:48:53 4: STOCKQUOTES_QueryQuotesFinished
2017.12.28 22:48:54 4: STOCKQUOTES_QueueTimer: 3600 seconds


Oder?

Hast eine Idee?

Gruß + Danke
demaya von https://demaya.de
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 29 Dezember 2017, 01:42:03
Hm, ich muss mal blöde Fragen: bist du sicher, dass es die Symbole "ASDF", "BLA", "BLUBB" und "FOO" wirklich gibt? Wenn ich es nicht besser wüsste, würde ich denken, die hast du dir ausgedacht. :)

"abc" könnte das hier sein:
https://www.investing.com/equities/amerisourcebergn

Ich habe irgendwie spontan nicht gefunden, welche Symbole von AlphaVantage überhaupt unterstützt werden. Hast du da evtl. mal einen Link?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: demaya am 30 Dezember 2017, 16:31:39
Entschuldige bitte, ich habe mein Depot "geschwärzt", also mit Fabelnamen belegt.

Hier ein Testrepo, aber mit gleichem Ausgang. HBM.DE (Hornbach) wird aufgelöst, MSFT (ist sogar in den Beispielen von Alpha genannt) funktioniert nicht.


defmod AK.AktienTest STOCKQUOTES
attr AK.AktienTest currency EUR
attr AK.AktienTest defaultSource alphavantage
attr AK.AktienTest pollInterval 300
attr AK.AktienTest queryTimeout 120
attr AK.AktienTest stocks MSFT:20:20,HBM.DE:50:20


Verbose 5 zeigt den gleichen Output wie in meinem letzten Beitrag.

Eine Doku zu deiner Frage habe ich nicht gefunden. Es werden aber anscheinend ähnliche Symbole unterstützt wie bei Yahoo (Quercheck von mir).
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 30 Dezember 2017, 21:06:29
Ok, verstehe. Aber der Output wird jetzt schon ein anderer sein. Wäre auch nochmal interessant.

Ich hab nochmal in den Code geguckt und erstmal so leider keine Idee. Sieht eigentlich unscheinbar aus.

Hast du das Finance::Quote schonmal ohne FHEM erfolgreich am Laufen gehabt? Wenn nicht, dann lass doch mal ein einfaches Script auf der Console laufen und guck mal, ob das überhaupt funktioniert.
Evtl so wie hier:
https://www.foo.be/docs/tpj/issues/vol5_3/tpj0503-0006.html
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 31 Dezember 2017, 12:15:13
Ich hab mir das jetzt mal selbst angesehen. Das Problem ist, dass die Währungsumrechnung bei dem Perl-Modul kaputt ist. Wenn du currency auf "EUR" stellst, dann funktioniert nur HBM.DE und wenn du auf "USD" stellst, dann funktioniert nur MSFT.
Ich vermute, dass die Währungsumrechnung auch auf Yahoo basiert(e). Bist du sicher, dass dein Vorgehen, nur einzelne Dateien mit wget zu kopieren, zu einer korrekten Installation führt? Wurden da evtl. noch andere Dateien geändert?

Du kannst für dich als Workaround im FHEM-Modul diese Zeile auskommentieren "$hash->{QUOTER}->set_currency($cur);". Dann haben die Daten jedoch keine einheitliche Währung mehr und alle Depot-Berechnungen werden falsch.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 14 Januar 2018, 02:34:14
Zitat von: demaya am 30 Dezember 2017, 16:31:39
Entschuldige bitte, ich habe mein Depot "geschwärzt", also mit Fabelnamen belegt.

Hier ein Testrepo, aber mit gleichem Ausgang. HBM.DE (Hornbach) wird aufgelöst, MSFT (ist sogar in den Beispielen von Alpha genannt) funktioniert nicht.


defmod AK.AktienTest STOCKQUOTES
attr AK.AktienTest currency EUR
attr AK.AktienTest defaultSource alphavantage
attr AK.AktienTest pollInterval 300
attr AK.AktienTest queryTimeout 120
attr AK.AktienTest stocks MSFT:20:20,HBM.DE:50:20


Verbose 5 zeigt den gleichen Output wie in meinem letzten Beitrag.

Eine Doku zu deiner Frage habe ich nicht gefunden. Es werden aber anscheinend ähnliche Symbole unterstützt wie bei Yahoo (Quercheck von mir).
Hat das jetzt eigentlich geklappt bei dir?

Gesendet von meinem SM-T800 mit Tapatalk

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ThomasMagnum am 22 März 2018, 14:05:45
Hallo zusammen,

hat von euch auch jemand den Effekt das seit gestern Vormittag keine Werte mehr aktualisiert werden?
Davor hat das monatelang wunderbar funktioniert. Im Log steht auch nichts auffälliges und die Anfragen gehen auch an die Anbieter raus. Das seh ich zumindest auf meinem Pihole.

2018.03.22 13:57:59 4: STOCKQUOTES_QueueTimer: 900 seconds
2018.03.22 13:57:58 4: STOCKQUOTES_QueryQuotesFinished
2018.03.22 13:57:58 4: STOCKQUOTES_QueryQuotesBlocking Return value: meinDepot
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: DE0000000000 from source europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 44 from source europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 19 from source europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: DE0000000000 from source europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: DE0000000000 from source europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: DE0000000000 from source europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: DE0000000000 from source europe
2018.03.22 13:57:46 4: STOCKQUOTES_QueryQuotesBlocking
2018.03.22 13:57:45 4: STOCKQUOTES: Start blocking query


DE0000000000 ist nur der Platzhalter für meine WKNs.

Gruß, Thomas
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: 4eversr am 08 April 2018, 09:14:48
@ThomasMagnum

Ja, kann ich bestätigen. Letzter erfolgreicher Kurs-Abruf war am 21.03.2018, danach tote Hose.
Bei mir lief STOCKQUOTES auch schon einige Monate ohne Fehlermeldung durch, dann das plötzliche Aus.

-------------

Ich habe mir jetzt einen anderen Weg für den Abruf meiner Kurse gesucht, und zwar ein HTTPMOD der Aktienseite der Onvista-Bank.

Habe mir nen HTTPMOD mit URL der Onvista-Webseite meiner AMD-Aktien erzeugt, und dann folgende Attribute:


readingsName_kurs AMD
readingsRegex_kurs (?:currentAsk...)(\d+.\d+)
userReadings KursmitPunkt { my $val = (ReadingsVal("$name", "AMD", 0)); $val =~ s/,/\./g; return $val;}, Depotwert { my $val = (ReadingsVal("$name", "KursmitPunkt", 0)*AKTIENMENGE);; return $val;}, Differenz { my $val = (ReadingsVal("$name", "KursmitPunkt", 0)*AKTIENMENGE)-URSPRUNGSWERT; $val =~ s/,/\./g; return $val;}
userattr   readingsName_kurs readingsRegex_kurs


Die im Beispiel genannten Werte für AKTIENMENGE und URSPUNGSWERT habe ich als Zahlenwerte in meine userreadings geschrieben und hier nur aus Datenschutzugründen durch die Worte ersetzt.
Ich musste den Kommawert meiner AMD Aktie (aktuell 7,815) durch einen Punktwert (7.815) ersetzen, da ich die Werte per MQTT Bridge auf ein kleines OLED Display an einem Wemos D1 Mini übertrage.
MQTT überträgt keine Werte mit Kommas, daher habe ich im Code oben das Komma gegen einen Punkt ausgetauscht.
Vermutlich ist meine Programmierung nicht optimal, da ich heute das erste Mal mit Regex und auch userreadings experimentiert habe, kann man womöglich besser machen, aber für mich erfüllt sich der Zweck ;)

Grüße
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ThomasMagnum am 30 Mai 2018, 17:03:55
Hallo 4eversr,

ich hatte die Tage mal Zeit mich hierum zu kümmern. Ich habe das mal nach deiner Vorlage eingebaut.
Funktioniert prima, vielen Dank dafür!
Ich werde mal schauen ob ich, wenn das Wetter wieder schlechter wird, die Zeit finde die Daten wieder so aufzubereiten wie das über die RG aus dem ersten Post der Fall ist, fand ich ganz ansehnlich.

Gruß, Thomas
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToM_ToM am 11 Juni 2018, 21:08:35
Ich würde mich auch freuen wenn das Modul wieder lauffähig wird. :)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToM_ToM am 22 Dezember 2018, 08:55:01
Hallo Zusammen,

ich habe eine interessante kostenfreie und offene Alternative gefunden. Dafür gibt's auch ein Perl-Modul.

https://iextrading.com/developer/ (https://iextrading.com/developer/)

Jedoch verabschiede ich mich jetzt erst mal in den Weihnachtsurlaub. Aber vielleicht hat ja jemand von euch über die Tage genug vom ganzen Trubel und möchte sich damit mal ein wenig auseinandersetzen. Klingt auf jeden Fall sehr vielversprechend und unkompliziert.

API: https://iextrading.com/developer/docs/#getting-started (https://iextrading.com/developer/docs/#getting-started) bietet auch Charts, Logos usw. alles mit an.  ;D

Viele Grüße und ein gutes Weihnachtsfest euch! ;)
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 22 Dezember 2018, 11:05:19
ZitatJedoch verabschiede ich mich jetzt erst mal in den Weihnachtsurlaub.

Hallo ToM_ToM,

dann warte ich mal bis nach Weihnachten und freue mich auf deinen Beitrag. Wenn es dort eine funktionierende Möglichkeit gibt, wiederkehrende Abfragen durchzuführen, wäre das sehr interessant.

Liebe​ Weihnachtsgrüße
Gisbert​
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 22 Dezember 2018, 11:12:19
Klingt super, aber hat scheinbar leider (wie viele andere auch) nur US Symbole im Angebot? Oder hat jemand schon was deutsches (XETRA?) finden können?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToM_ToM am 24 Dezember 2018, 07:23:53
ZitatKlingt super, aber hat scheinbar leider (wie viele andere auch) nur US Symbole im Angebot? Oder hat jemand schon was deutsches (XETRA?) finden können?

Guten Morgen.

Das stimmt.... nach ein wenig Suchen konnte ich jetzt sehen dass es alles auf NESDAQ basiert. Eigentlich schade, da die API echt sehr viel bietet.

Alternative wäre vielleicht Alpha Vantage:
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=BASF.TI&apikey=MYKEY (https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=BASF.TI&apikey=MYKEY)

Mal schauen wie ich über dei Feiertage Zeit dafür finde.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 25 Dezember 2018, 01:01:31
Wenn ich mich recht erinnere, dann hat Alpha Vantage dasselbe Problem. Man kann sicherlich einzelne Symbol auf anderen Börsen finden, aber eigentlich will man XETRA-Kurse für deutsche Symbole.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: rs am 07 März 2019, 08:18:03
@all

Es gibt eine Open Source Quelle für alle Finanzdaten der Welt, die auch ein API zur Verfügung stellt. Die Daten kommen natürlich die üblichen zeitverzögert ca. 10-20 min. Das sollte aber für diese Anwendung reichen.

www.quandl.com

Q ist inzwischen auch für Profis zur echten Alternative zu Bloomberg, CQG und anderen geworden, da Realtime Daten ja eh von den elektronischen Brokern geliefert werden, nutzt man die fürs Trading und die Zeitverzögerten für die Analysis.

Denke das ist die ALternative zu YahooFinance.

Roland
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 07 März 2019, 21:57:43
Glaube auch, dass die gut sind. Zumindest für US-Daten. Bei deutschen Aktien haben sie aber wohl auch nur Frankfurt (kein XETRA). Oder hat ja jemand schon mehr finden können?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: rs am 07 März 2019, 22:05:37
Nein, Quandl,com hat alles.

zB.

https://www.quandl.com/data/FSE-Frankfurt-Stock-Exchange
https://www.quandl.com/data/XFRA-Frankfurt-Stock-Exchange-Prices
...

Es gibt nichts besseres !
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 07 Juni 2019, 10:16:00
Ich habe bei Quandl aber noch keine Datenbank mit dem Papier DE000BLB7R68 gefunden...

Sonst ok, wegen des einfachen Abrufs in JSON wäre das wirklich ein Weg, das Modul wieder zu reparieren.

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: rs am 07 Juni 2019, 11:48:11
Ja, klar, Das sind ISIN Nummern.

Quandl ist US und da geht alles über symbole, die von den Börsen vergeben werden.
Und eine By Landesbank Anleihe ist wohl etwas speziell ..

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 07 Juni 2019, 12:41:00
Von speziell kann ich da nichts erkennen - Yahoo kennt sie.

Im Übrigen kann ich auch feststellen, dass Gnucash nach wie vor prima mit Finance::Quote funktioniert.

LG

pah

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: vbs am 18 Juni 2019, 00:02:54
Zitat von: Prof. Dr. Peter Henning am 07 Juni 2019, 12:41:00
Im Übrigen kann ich auch feststellen, dass Gnucash nach wie vor prima mit Finance::Quote funktioniert.
Ja sicherlich. Warum sollte es nicht?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: AnDiBaCkE am 07 Januar 2020, 17:51:41
Hallo zusammen, gibt es schon wieder ein laufendes Aktien und ETF Modul? Ich würde mich freuen  :D :D :D :D
Vielen Dank!
Gruß,
AnDiBaCkE
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 07 Januar 2020, 18:16:49
Nun, einfach eines schreiben - dann freuen sich andere auch noch !

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: AnDiBaCkE am 07 Januar 2020, 19:51:45
Hallo Peter,
ich würde es gerne machen wenn ich es könnte. Bin leider nur Schmarotzer  :-[
Vielleicht tut sich hier noch etwas...
Gruß,
AnDiBaCkE
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: FhemPiUser am 12 Januar 2020, 10:49:14
...etwas abgespeckt, aber was ich gemacht habe ist ein HTTPMOD-Abfrage alle 5min auf die Indizes bei finanzen.net, um mich bei Gefahr eines Börsencrashs benachrichtigen zu lassen. Wen es interessiert hier ein Beispiel für den DAX:

defmod httpmod_finanzen_dax HTTPMOD https://www.finanzen.net/index/dax/charttool 300
attr httpmod_finanzen_dax userattr reading01Name reading01Regex reading02Name reading02Regex
attr httpmod_finanzen_dax event-on-change-reading dax
attr httpmod_finanzen_dax reading01Name dax
attr httpmod_finanzen_dax reading01Regex (\d+\.\d+\,\d+).*PKT
attr httpmod_finanzen_dax reading02Name dax_perc
attr httpmod_finanzen_dax reading02Regex ([+-]\d+\,\d+).*\%
attr httpmod_finanzen_dax room Boerse,HTTPMOD
attr httpmod_finanzen_dax stateFormat dax (dax_perc%)


Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 12 Januar 2020, 12:39:17
Hallo FhemPiUser,

hier ist noch eine kleine Ergänzung zur Entfernung des 1000ender Trennzeichens und zur Umwandlung des Dezimalkommas in einen Dezimalpunkt:
defmod httpmod_finanzen_dax HTTPMOD https://www.finanzen.net/index/dax/charttool 300
attr httpmod_finanzen_dax userattr reading01Name reading01OExpr reading01Regex reading02Name reading02OExpr reading02Regex
attr httpmod_finanzen_dax event-on-change-reading dax
attr httpmod_finanzen_dax reading01Name dax
attr httpmod_finanzen_dax reading01OExpr $val =~ s/\.//g;; $val =~ s/\,/./g;; $val  ## 1.) Entfernung des Tausendertrennzeichens, 2.) Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading01Regex (\d+\.\d+\,\d+).*PKT
attr httpmod_finanzen_dax reading02Name dax_perc
attr httpmod_finanzen_dax reading02OExpr $val =~ s/\,/./g;; $val  ## Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading02Regex ([+-]\d+\,\d+).*\%
attr httpmod_finanzen_dax room Boerse,HTTPMOD
attr httpmod_finanzen_dax stateFormat dax (dax_perc%)


Viele Grüße Gisbert
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: FhemPiUser am 12 Januar 2020, 12:58:48
sehr gut, danke!
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: AnDiBaCkE am 12 Januar 2020, 15:21:44
Hallo FhemPiUser,
vielen Dank, das ist eine gute Alternative.
Werde ich die Tage gleich mal ausprobieren.
Gruß,
AnDiBaCkE
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 12 Januar 2020, 17:31:44
Hallo,

Zitathier ist noch eine kleine Ergänzung zur Entfernung des 1000ender Trennzeichens und zur Umwandlung des Dezimalkommas in einen Dezimalpunkt:

Wenn man sein eigenes Diagramm haben möchte, dann muss man bei der prozentualen Änderung das Pluszeichen entfernen; dann klappt es auch beim Diagramm. Warum das so ist, kann ich leider nicht sagen.

Viele​ Grüße​ Gisbert​
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 12 Januar 2020, 20:16:41
Hi,
Ich habe das am Beispiel der SAP Aktie so mit Alphavantageumgesetzt:

defmod SAP.DE HTTPMOD https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=SAP.DE&apikey=xxxxxxxxxxxx 3600
attr SAP.DE userattr anzahl kaufwert reading01Encode reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name reading05JSON reading05Name reading06JSON reading06Name reading07JSON reading07Name reading07OExpr reading08JSON reading08Name reading08OExpr reading09JSON reading09Name reading10JSON reading10Name readingEncode
attr SAP.DE alias SAP SE
attr SAP.DE anzahl 1
attr SAP.DE devStateIcon alive:10px-kreis-gruen@green dead:10px-kreis-rot@red
attr SAP.DE disable 0
attr SAP.DE enableControlSet 1
attr SAP.DE extractAllJSON 1
attr SAP.DE reading01Encode UTF-8
attr SAP.DE reading01JSON Global Quote_01. symbol
attr SAP.DE reading01Name symbol
attr SAP.DE reading02JSON Global Quote_02. open
attr SAP.DE reading02Name open
attr SAP.DE reading03JSON Global Quote_03. high
attr SAP.DE reading03Name high
attr SAP.DE reading04JSON Global Quote_04. low
attr SAP.DE reading04Name low
attr SAP.DE reading05JSON Global Quote_05. price
attr SAP.DE reading05Name price
attr SAP.DE reading06JSON Global Quote_06. volume
attr SAP.DE reading06Name volume
attr SAP.DE reading07JSON Global Quote_07. latest trading day
attr SAP.DE reading07Name latest_trading_day
attr SAP.DE reading08JSON Global Quote_08. previous close
attr SAP.DE reading08Name previous_close
attr SAP.DE reading09JSON Global Quote_09. change
attr SAP.DE reading09Name change
attr SAP.DE reading10JSON Global Quote_10. change percent
attr SAP.DE reading10Name change_percent
attr SAP.DE readingEncode UTF-8
attr SAP.DE readingsWatcher 3600,,price
attr SAP.DE room 01_Depot
attr SAP.DE showBody 0
attr SAP.DE showError 0
attr SAP.DE showMatched 0
attr SAP.DE stateFormat activity\
symbol &emsp;; \
Kurs: price€ &emsp;; change_percent &emsp;;\
Anzahl: stueck &emsp;; \
Wert: wert€
attr SAP.DE timeout 60
attr SAP.DE userReadings stueck { sprintf("%.2f", AttrVal("$name","anzahl",0))},\
wert { sprintf("%.2f", ReadingsVal("$name", "price", 0)*AttrVal("$name","anzahl",0))}
attr SAP.DE verbose 0

Sieht dann so aus wie im Anhang.

Gruß
Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: AnDiBaCkE am 14 Januar 2020, 19:57:56
Hallo Gisbert,
ich habe mir das jetzt für meine ETFs von finanzen.net angepasst. Kann ich bei Bedarf gern posten.
Nun habe ich jedoch das von dir schon genannte Problem mit dem Pluszeichen bei den Prozentwerten. Kannst du mir noch sagen wie ich das Reading anpassen muss um das + weg zu bekommen? Habe jetzt schon eine Weile gelesen aber dazu nichts entsprechendes gefunden.

Vielen Dank!

Gruß,
AnDiBaCkE
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 14 Januar 2020, 20:59:43
Zitat von: AnDiBaCkE am 14 Januar 2020, 19:57:56
Hallo Gisbert,
ich habe mir das jetzt für meine ETFs von finanzen.net angepasst. Kann ich bei Bedarf gern posten.
Nun habe ich jedoch das von dir schon genannte Problem mit dem Pluszeichen bei den Prozentwerten. Kannst du mir noch sagen wie ich das Reading anpassen muss um das + weg zu bekommen? Habe jetzt schon eine Weile gelesen aber dazu nichts entsprechendes gefunden.

Vielen Dank!

Gruß,
AnDiBaCkE

Gerne doch, ich hab's durch trial und error herausgefunden.
Anbei die Attribute im raw-Format für die Prozente:
attr DAX reading02Format %.2f
attr DAX reading02Name dax_perc
attr DAX reading02OExpr $val =~ s/\,/./g;; $val =~ s/\+//g;; $val ## 1.) Umwandlung des Dezimalkommas in Dezimalpunkt, 2.) Entfernung des Pluszeichens
attr DAX reading02Regex ([+-]\d+\,\d+).*\%


Viele​ Grüße​ Gisbert​
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: AnDiBaCkE am 14 Januar 2020, 21:17:07
Hallo Gisbert​,

da hätte ich noch eine ganze Weile probieren müssen  ;D

Vielen Dank!

Gruß,
AnDiBaCkE
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 29 Januar 2020, 21:43:25
Ich habe ein Problem mit der aktuellen Version von STOCKQUOTES. Wenn ich in ein Depot sowohl Aktien lege, die in Euro notiert werden als auch solche, die in Schwedischen Kronen notiert werden, bekomme ich bei einem Attributwert currency=EUR für die letzteren Werte einen Fehler "currency conversion failed".

Wenn ich ein zweites Depot anlege mit currency=SEK, bekomme ich wunderbar alle Kurse in SEK. Der Umrechungskurs ist aber nicht ganz konstant. Das Perl-Modul Finance::Quote sollte zwar die Umrechnung machen können - das ist aber offenbar in STOCKQUOTES nicht berücksichtigt.

Gibt es irgendeinen Umweg, das Umrechnen in EUR innerhalb des STOCKQUOTES zu erreichen?

Zum Ausprobieren einfach mal mit PCELL.ST ausprobieren (Powercell Sweden, ein Brennstoffzellenhersteller).

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 30 März 2020, 12:27:29
Hallo zusammen,

ich habe mich jetzt zwar schon durch den ganzen Thread gekämpft, kann aber nicht nachvollziehen, ob das Modul (hab es unter contrib gefunden) noch funktioniert?

Gibt es im Thread irgendwo eine aktuellere Version, die ohne yahoo funktioniert oder muss man es so wie in den letzten Beiträge per httpmod machen?
AnDiBaCkE könntest Du Dein Beispiel mit ETFs von finanzen.net bitte posten.

Danke für Eure Hilfe und beste Grüße
Torsten
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: herrmannj am 30 März 2020, 12:36:40
Das alphavantage Beispiel von Carlos kann man leicht mit JsonMod umsetzen. Da ich die API von alphavantage nicht kenne kann ich zu weiteren Möglichkeiten (mit der API) nichts sagen. Wenn "ihr" aber eine Abfrage habt die "euer" JSON von Interesse ergibt dann helfe ich (falls Fragen zur Umsetzung sind). J

sonMod ist unter Automatisierung (Forumsbereich) mit Beispielen erklärt. Bei Fragen dazu in dem Bereich Automatisierung einen neuen thread eröffnen, bitte mit dem list des "Versuches"
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 30 März 2020, 15:00:23
Hatte ich mir auch schon gedacht das mit JsonMod umzusetzen.
Jedoch wie?
Hier die Rohdaten von dem call:

{
    "Global Quote": {
        "01. symbol": "SAP.DE",
        "02. open": "101.0200",
        "03. high": "102.0600",
        "04. low": "99.2000",
        "05. price": "101.8600",
        "06. volume": "1322292",
        "07. latest trading day": "2020-03-30",
        "08. previous close": "99.8700",
        "09. change": "1.9900",
        "10. change percent": "1.9926%"
    }
}

Wenn du hier helfen könntest?

Gruß

Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: herrmannj am 30 März 2020, 15:32:54
mach ich. Aber mach bitte einen neuen thread auf, ich möchte den hier nicht kapern
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: jkriegl am 02 April 2020, 12:35:51
Wie findet man bei aplphavantage "symbols" oder wer hat schon DAX symbols gefunden?
aus dem Internet SAP.DE, BMW.FRK, IBM. - *.FRK ist Frankfurt 
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: herrmannj am 02 April 2020, 12:38:17
Zitat von: jkriegl am 02 April 2020, 12:35:51
Wie findet man bei aplphavantage "symbols" oder wer hat schon DAX symbols gefunden?
aus dem Internet SAP.DE, BMW.FRK, IBM. - *.FRK ist Frankfurt
Oh ja, das würde mich auch interessieren. Ich habe gesehen das es einen api call dazu gibt - aber das muss doch auch einfacher gehen. DAX gesamt wäre auch toll
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: herrmannj am 02 April 2020, 13:03:01
found: DAX -> ^GDAXI

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 02 April 2020, 14:37:34
Hallo zusammen,

ich habe mich jetzt einige Zeit mit dem Modul und der zugrunde liegenden Perl Bibliothek beschäftigt. Mein dafür benutztes fhem läuft unter ubuntu 18.04 und ich habe per cpan die finance::qoute Bibiliothek auf 1.49 aktualisiert. Damit funktioniert das Modul sehr gut, ich musste nur eine Anpassung im Quellcode im Modul machen, um den "previous" Wert zu erhalten.

Von den vielen Quellen, die die Bibliothek zur Verfügung stellt, funktionieren leider nicht mehr alle, da sich die Links, die Formate etc. auf vielen Webseiten geändert haben. Verblieben sind aus meiner Sicht alphavantage, deka, unionfonds und yahoo_jason. yahoo_jason hat für meine Fonds, ETFs etc nahezu 100% Trefferquote.

Zitat von: jkriegl am 02 April 2020, 12:35:51
Wie findet man bei aplphavantage "symbols" oder wer hat schon DAX symbols gefunden?
aus dem Internet SAP.DE, BMW.FRK, IBM. - *.FRK ist Frankfurt

Für alphavantage lassen sich die Symbole über den nachfolgenden Link ermitteln:
https://www.alphavantage.co/query?function=SYMBOL_SEARCH&keywords=FR0000120172&apikey=demo
demo müsst Ihr durch Euren eigenen API key ersetzten.

Für yahoo_jason kann man sich die Symbole (andere als bei alphavantage) über die Kurssuche auf der yahoo Seite ermitteln:
https://de.finance.yahoo.com/
oder aus den Listen für Aktion, Fonds etc. heraussuchen:
https://de.finance.yahoo.com/mutualfunds

Hoffe, das hilft Euch.

Beste Grüße
Torsten
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: DS_Starter am 02 April 2020, 15:15:08
Hallo zusammen,

ich möchte mich nun auch etwas mit der Thematik beschäftigen.
Bevor ich anfange deshalb die Grundsatzfrage... ist das Modul 98_STOCKQUOTES im contrib

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/98_STOCKQUOTES.pm

der aktuellste Stand den ihr benutzt ?
Ist natürlich auch schon 1 Jahr alt.

LG,
Heiko


Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 02 April 2020, 16:02:14
Hallo Heiko,

ja damit arbeite ich. Ich konnte im Thread keine neuere Version entdecken und habe nur die schon erwähnte Änderung vorgenommen.

LG
Torsten
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: DS_Starter am 02 April 2020, 16:12:06
Danke Torsten !

Hatte auch keine neuere gefunden, aber wollte sicher gehen nicht dass ich auf einem veralteten Stand aufsetze.
Welche Anpassung genau hast du gemacht ? Kurzer Auszug reicht.

Dann brauche ich nicht umständlich danach suchen ...

LG,
Heiko
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 02 April 2020, 16:24:17
Die Änderung ist in der Zeile 403

Original:
    my $previous = (exists $stockState{$i}{"previous"}) ? $stockState{$i}{"previous"} : undef;

Neu:
    my $previous = (exists $stockState{$i}{"close"}) ? $stockState{$i}{"close"} : undef;

previous gibt es nicht bei yahoo_jason und close wird dort mit dem Kurs zum Schluss des Vortages belegt.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: DS_Starter am 02 April 2020, 16:31:24
Danke ... dann kann ich definiert aufsetzen ...
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Duz am 29 April 2020, 14:38:37
Hallo zusammen,

ich habe überall nach Neuigkeiten zu dem Modul STOCKQUOTES gesucht... denn bei mir scheint es nicht im FHEM Ordner zu sein und es ist auch nicht in der Commandref zu finden.

Was ist mit dem Modul passiert  :'( gibt es alternativen um Aktienkurse zu lesen?

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 29 April 2020, 15:31:44
Das liegt in contrib.
Und wenn du den thread aufmerksam durch liest gibt es auch alternativen z.b. mit jsonmod.
Gruß
Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Hans-Ulrich Tag am 01 Mai 2020, 17:11:14
Zitat von: carlos am 12 Januar 2020, 20:16:41
Hi,
Ich habe das am Beispiel der SAP Aktie so mit Alphavantageumgesetzt:

...
attr SAP.DE stateFormat activity\
symbol &emsp;; \
Kurs: price€ &emsp;; change_percent &emsp;;\
Anzahl: stueck &emsp;; \
Wert: wert€
attr SAP.DE timeout 60
attr SAP.DE userReadings stueck { sprintf("%.2f", AttrVal("$name","anzahl",0))},\
wert { sprintf("%.2f", ReadingsVal("$name", "price", 0)*AttrVal("$name","anzahl",0))}
attr SAP.DE verbose 0

Sieht dann so aus wie im Anhang.

Gruß
Carlos

Hallo Carlos,

ich habe es auch mal getestet und es klappt auch soweit. Aber bei mir steht das Wort "activity" im stateFormat immer ausgeschrieben und nicht als grüner Kreis. Was mache ich falsch?

Gruß
Hans-Ulrich
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 01 Mai 2020, 18:47:09
Das mit der activity ergibt sich aus den readingswatcher attribute.
Das sollte sich ändern sobald das reading dafür vorhanden ist.

Aber du solltes es so wie in diesem thread beschrieben machen mit jsonmod.
Das ist besser so:

https://forum.fhem.de/index.php/topic,109685.msg1036721.html#msg1036721 (https://forum.fhem.de/index.php/topic,109685.msg1036721.html#msg1036721)

Gruß

Carlos
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 06 Mai 2020, 19:47:59
Zitat von: Gisbert am 14 Januar 2020, 20:59:43
Gerne doch, ich hab's durch trial und error herausgefunden.
Anbei die Attribute im raw-Format für die Prozente:
attr DAX reading02Format %.2f
attr DAX reading02Name dax_perc
attr DAX reading02OExpr $val =~ s/\,/./g;; $val =~ s/\+//g;; $val ## 1.) Umwandlung des Dezimalkommas in Dezimalpunkt, 2.) Entfernung des Pluszeichens
attr DAX reading02Regex ([+-]\d+\,\d+).*\%


Viele​ Grüße​ Gisbert​

Das was mal funktioniert hat, funktioniert nicht mehr.
Man kann den Echtzeitkurs auslesen, nicht aber die prozentuelle Änderung, die ist definitiv falsch.
im raw-Format:
defmod EuroStoxx50 HTTPMOD https://www.finanzen.net/index/euro_stoxx_50
attr EuroStoxx50 userattr reading01Format reading01Name reading01OExpr reading01Regex reading02Format reading02Name reading02OExpr reading02Regex
attr EuroStoxx50 alignTime 00:01:21
attr EuroStoxx50 enableControlSet 1
attr EuroStoxx50 event-min-interval .*:1800
attr EuroStoxx50 event-on-change-reading .*
attr EuroStoxx50 group Index
attr EuroStoxx50 reading01Format %.0f
attr EuroStoxx50 reading01Name euro_stoxx_50
attr EuroStoxx50 reading01OExpr $val =~ s/\.//g;; $val =~ s/\,/./g;; $val  ## 1.) Entfernung des Tausendertrennzeichens, 2.) Umwandlung des Dezimalkommas in Dezimalpunkt
attr EuroStoxx50 reading01Regex (\d+\.\d+\,\d+).*PKT
attr EuroStoxx50 reading02Format %.2f
attr EuroStoxx50 reading02Name euro_stoxx_50_perc
attr EuroStoxx50 reading02OExpr $val =~ s/\,/./g;; $val =~ s/\+//g;; $val ## 1.) Umwandlung des Dezimalkommas in Dezimalpunkt, 2.) Entfernung des Pluszeichens
attr EuroStoxx50 reading02Regex ([+-]\d+\,\d+).*\%
attr EuroStoxx50 room Finance
attr EuroStoxx50 stateFormat [$name:euro_stoxx_50] (<span style='color:{(ReadingsVal('$name','euro_stoxx_50_perc','') < 0 ? "red":"#2e5e87")}'>[$name:euro_stoxx_50_perc]%</span>)
attr EuroStoxx50 timeout 5


Kann sich das mal jemand anschauen?
Viele Grüße
Gisbert
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 07 Mai 2020, 07:21:57
Hallo zusammen,

vielleicht kann sich jemand anschauen, wie das Regex aussehen muss, um die prozentuale Änderung des Index auf dieser Seite: https://www.finanzen.net/index/dax/charttool (https://www.finanzen.net/index/dax/charttool) anzulesen.

Mit https://regex101.com/ (https://regex101.com/) habe ich z.B. so getestet:
([+-]\d+,\d+)%
+1,03%

Das Ergebnis ist 1 match, 8 steps, wenn ich z.B. +1,03% zum Testen eingebe. Nutze ich denselben Regex im Device, kommt permanent als Ergebnis -1,20%, obwohl ein ganz anderer Wert auf der Internetseite steht.

Viele​ Grüße​ Gisbert​
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Amtho am 15 September 2020, 19:09:24
Hallo zusammen,

ich habe mal Finance::Quote so angepasst das es wieder funktioniert (aktulle Version von Github). Des weiteren habe ich einen rudimentären Parser für finanzen.net reingepackt. Als source: finanzen und als Aktie den ISIN benutzen.

Sollte erstmal soweit gehen. Ansonsten schein Bourso als parser auch eine gute Alternative.

Falls ihr Docker benutzt -e CPAN_PKGS "Data::Dumper::Perltidy Text::Template JSON::Parse String::Util"
und das Zip Archiv unter eurem Config ordner in FHEM entpacken.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 15 September 2020, 21:25:15
Bitte hier im Thread nur über STOCKQUOTES schreiben - die Ansätze mit jsonmod und HTTPMOD sollten in einen eigenen Thread.

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Amtho am 15 September 2020, 21:49:21
Ja es geht um STOCKQUOTES durch den fix läuft das halt wieder vernünftig
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Andy89 am 22 September 2020, 11:03:28
Zitat von: Amtho am 15 September 2020, 19:09:24
ich habe mal Finance::Quote so angepasst das es wieder funktioniert (aktulle Version von Github). Des weiteren habe ich einen rudimentären Parser für finanzen.net reingepackt. Als source: finanzen und als Aktie den ISIN benutzen.
Guten Morgen,
kannst du mir zufällig sagen, was ich falsch mache? Ich habe Finance entpackt und im FHEM Ordner abgelegt. Das wird scheinbar auch richtig geladen, weil finanzen unter get sources auftaucht.
Im Logfile finde ich keine Fehler, jedoch bleiben alle Werte bei 0 - egal welche Source ich nehme

Mein device:
defmod test STOCKQUOTES
attr test currency EUR
attr test defaultSource finanzen
attr test pollInterval 300
attr test queryTimeout 120
attr test stocks US0378331005:120:100
attr test verbose 5


ich laufe unter docker und habe folgende CPAN_PKGS in meinem yml-Datei:
CPAN_PKGS: "Net::SNMP Net::SNMP::Util Data::Dumper::Perltidy Text::Template JSON::Parse String::Util Mozilla::CA"

Ich danke jetzt schon!
Beste Grüße
Andy
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Amtho am 22 September 2020, 13:58:45
Hm Interessant. finanzen.net hat nen anderes Seitenlayout wenn man nach Aktien sucht...
Ich hatte meinen Parser für mich nur mit ETFs getestet z.b. (DE000ETFL011). Das müsste ich irgendwann mal anschauen was ich da machen könnte.
Versuch mal anstatt finanzen als source bourso das ging bei mir bis auf einen ETF auch recht gut.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Riverghost am 01 Oktober 2020, 20:05:55
Zitat von: AnDiBaCkE am 14 Januar 2020, 19:57:56
Hallo Gisbert,
ich habe mir das jetzt für meine ETFs von finanzen.net angepasst. Kann ich bei Bedarf gern posten.
Nun habe ich jedoch das von dir schon genannte Problem mit dem Pluszeichen bei den Prozentwerten. Kannst du mir noch sagen wie ich das Reading anpassen muss um das + weg zu bekommen? Habe jetzt schon eine Weile gelesen aber dazu nichts entsprechendes gefunden.

Vielen Dank!

Gruß,
AnDiBaCkE

Hallo AnDiBaCkE,

auch wenn dein Eintrag schon eine weile her ist würde ich mich über einen post deiner Anpassung auf ETF freuen.
Ich spiele auch gerade ein wenig damit herum.

Gruß
Riverghost
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: TomLee am 18 Oktober 2020, 17:33:04
Hallo,

wenn ich heute u.a. Readings zu einer ISIN mit yahoo_json erhalte, aber (noch?) kein <stockname>_d_cur_value_total-Reading, kann ich dann davon ausgehen das alles klappt und morgen, wenns wieder losgeht, vorhanden ist ?

<stockname>_d_buy_quote
<stockname>_d_buy_value_total
<stockname>_d_stockcount
<stockname>_date
<stockname>_exchange
<stockname>_isodate
<stockname>_method
<stockname>_name
<stockname>_success
<stockname>_symbol


Gruß

Thomas
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: silar am 07 Dezember 2020, 14:40:33
Hallo,
wenn ich das soweit richtig gelesen habe, sollte das Modul wieder funktionieren, richtig?

Mein Problem ist allerdings, dass es bei mir nichts tut, von daher weiß ich nicht genau ob ich etwas falsch gemacht habe. Ich habe das Finance:Quote perl Paket über cpanm installiert. Das ist aber ja die "alte" Version von 2019 und ohne den finanzen.net Dienst. Allerdings konnte ich keine Lösung dazu finden, wie ich die aktuelle dev Version von Github installieren kann (um die geht es ja in den vorherigen Beiträgen oder?)
Ansonsten habe ich die aktuelle Version von 98_STOCKQUOTES.pm aus dem SVN in den FHEM Order kopiert und das Device wie weiter oben beschrieben angelegt und konfiguriert. Da wie gesagt defaultSource finanzen nicht existiert, habe ich, wie ebenfalls erwähnt bourso genommen. Dann füge ich einen ETF via set <device> add <ISIN> hinzu. Leider werden dann aber keine Readings erstellt und auch im Logfile taucht keine Fehlermeldung auf (verbose 5).

Kann mir da jemand weiterhelfen?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 07 Dezember 2020, 20:37:21
Nicht jede Datenquelle listet alle Wertpapiere. So lange die Datenquelle wechseln, bis es klappt.

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: TomLee am 07 Dezember 2020, 20:57:15
Hab das ja vor kurzem angetestet (alles aber wieder weg), darf man mal Fragen an dem Fallbeispiel ITM (denke da biste investiert, Danke für den Tipp :P), unter welcher Datenquelle dieses zu finden gewesen wäre, bin der Meinung ich hatte alle durch.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: silar am 07 Dezember 2020, 21:13:36
Danke für die Antwort.
Mit yahoo_json bekomme ich jetzt auch readings. Leider bietet die Datenquelle scheinbar nicht den Tageswert als reading. Das ist aber ja kein Problem des Moduls...
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 08 Dezember 2020, 05:09:51
ZitatLeider bietet die Datenquelle scheinbar nicht den Tageswert als reading
Erstens wissen wir immer noch nicht, um was für ein Papier es sich handelt - also stochern wir im Dunkeln.
Zweitens: Das glaube ich einfach nicht.

pah


Warum eigentlich müssen Newbies immer alles besser wissen, mit unvollständigen Informationen rüberkommen  und das dann auch häufig noch mit "scheinbar" verkleiden?

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: silar am 08 Dezember 2020, 10:26:54
Es handelt sich um einen ETF mit ISIN IE00BYVJRP78.

Ich wollte an keiner Stelle irgendwie besserwisserisch rüberkomen, falls das irgendwie der Fall gewesen ist, tut es mir leid. Ich wollte hier lediglich Fragen, wo mein Fehler in der Konfiguration liegt, wenn das nicht gewollt ist, bin ich wohl im falschen Forum.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 08 Dezember 2020, 14:35:04
Das ist kein "Fehler der Konfiguration" - darunter verstehen wir in der Regel nämlich die Konfiguration von FHEM. Sondern nur die Frage, unter welchem Namen das Papier bei welcher Quelle gelistet ist. Da das nirgendwo steht, kommt man ohne eigene Experimente eben nicht aus.Und die kann man auch als FHEM-Neuling ausführen - einfach alle möglchen Quellen durchprobieren, auch mit dem Symbol SUES.L für diesen ETF.

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Gisbert am 08 Dezember 2020, 21:20:46
Zitat von: Prof. Dr. Peter Henning am 08 Dezember 2020, 05:09:51
Erstens wissen wir immer noch nicht, um was für ein Papier es sich handelt - also stochern wir im Dunkeln.
Zweitens: Das glaube ich einfach nicht.

pah


Warum eigentlich müssen Newbies immer alles besser wissen, mit unvollständigen Informationen rüberkommen  und das dann auch häufig noch mit "scheinbar" verkleiden?

Dann kommt noch hinzu, dass scheinbar mit anscheinend - wie so häufig - verwechselt wurde, siehe hier (https://www.spiegel.de/kultur/zwiebelfisch/zwiebelfisch-abc-scheinbar-anscheinend-a-315125.html).
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 29 Dezember 2020, 10:01:19
@TomLee: Habe das jetzt erst gelesen. ITM wird gelistet als ITM.L (L=London) bei yahoo_json.


Ich knobele derzeit noch an einer Sache. Ich habe diverse Aktien, die in anderen Währungen gehandelt werden. Natürlich gibt es entsprechende userReadings und eine Abfrage des täglichen Kurses (GBP, in diesem Fall). Allerdings ist die automatische Berechnung des Kursgewinns falsch, weil sie sich auf den Erwerb in der Handelswährung bezieht - die auch wieder mit dem Pfundkurs in Euro umgerechnet wird. Ich müsste also an jedem Erwerbstag (und bei Zukäufen könnte das auch Zwischendaten betreffen) den damaligen Pfundkurs nicht nur wissen, sondern auch ablegen.

Beim Pfund macht das nun nicht soviel aus - aber der kanadische Dollar ist um Einiges gefallen, so dass mein Kursgewinn für die Wasserstoffaktien von Ballard Power Systems durch das STOCKQUOTES-Modul mit 86% angezeigt wird, in Wirklichkeit aber nur 72% beträgt (NEIN, ich gebe keine Anlagetipps...).

Man könnte das auffangen, indem für jedes Papier nicht 3, sondern VIER Angaben gemacht werden:

Zitat<Symbol>:<Anzahl>:<Kaufwert in Handelswährung>:<Kaufwert in 2. Währung>

LG

pah

P.S.: Hat jemand Interesse an einem Codeschnipsel, der mithilfe einer readingsGroup diese Anzeige hier schafft:

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 12:12:59
Hallo,

ich würde gerne einige Aktienkurse beobachten und bin über dies Modul gestolpert. Installation lief, habe auch schon einige Beispiele hinzugefügt, nur ... Wo sehe ich nun, wie der Kurs ist? Ich finde keine Readings oder so. Es wird auch nichts hochaddiert, Readings "depot_buy_value_total" usw sind bei 0. obwohl SAP, Tesla oder BYD bestimmt vorhanden sind. Habe die mit WKN, ohne WKN hinzugefügt.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 13:31:51
Hallo Det,

Du musst eine "Source" finden, die Werte für Deine Aktien bereitstellt. Ggf. musst Du mehrere ausprobieren und kannst dies dann beim "Add" jeder Aktie zuordnen.

VG
Torsten
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 13:32:43
Verstehe ich nicht, hast du ein Beispiel für eine deutsche Aktie für mich?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 13:52:28
set add SAP

Attribut sources = SAP:yahoo_json

Dann solltest Du Readigns/Werte erhalten.

Das hast das Perl Package Finance::Quote installiert?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 14:37:15
Ja, habe ich installiert. Muss ich sonst noch was installieren? Habe im Beispiel das hier:

sources A1CX3T:yahoo_json
stocks A1CX3T

Nix passiert. Wie bekomme denn raus, bei welchem der vielen Anbieter die Aktie gelistet ist? Sehe sie normal in der Diba App.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 16:40:24
Hat es denn mit der SAP Aktie funktioniert? Sonst wird das Rätselraten etwas schwierig...

Nicht jeder Anbieter (Source im Sinne des Moduls) liefert für jede Aktien, ETF, Fond Werte. yahoo_jason liefert viel, aber dazu brauchst Du die Symbole, wie das Papier an der Börse gehandelt wird. Andere Anbieter arbeiten mit der WKN oder der ISIN. Es bleibt oft nur die einzelnen Anbieter durchzuprobieren.

Für yahoo_json kann man ganz gut  über 
https://finance.yahoo.com/ (https://finance.yahoo.com/)
unter Quote Lookup suchen, wenn man den Namen oder eben schon das Symbol eingibt.

A1CX3T = Tesla = TSLA (Symbol)

Mit TSLA findest Du die Werte bei yahoo auf der Webseite und es sollten auch Werte im Modul kommen, wenn Du yahoo_json benutzt.

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 16:50:34
Klappt nicht


Internals:
   FUUID      5ff6eb54-f33f-4070-8a84-7c431eb21cd7f014
   NAME       Aktien
   NR         1245
   STATE      2021-01-07 16:49:49
   TYPE       STOCKQUOTES
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2021-01-07 16:49:49   depot_buy_value_total 0
     2021-01-07 16:49:49   depot_cur_value_total 0
     2021-01-07 16:49:49   depot_p_change  0
     2021-01-07 16:49:49   depot_p_change_total 0
     2021-01-07 16:49:49   depot_value_diff 0.00
     2021-01-07 16:49:49   depot_value_diff_total 0.00
     2021-01-07 16:49:49   state           2021-01-07 16:49:49
   helper:
Attributes:
   currency   EUR
   defaultSource yahoo_json
   pollInterval 300
   queryTimeout 60
   sources    SAP:yahoo_json
   stocks     SAP:0:0
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 07 Januar 2021, 17:06:59
Klappt auf jeden Fall, wenn du wie ToKa schon geschrieben hat, yahoo_json als source benutze!
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 17:09:34
Siehe List ... Da ist nix
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: carlos am 07 Januar 2021, 17:13:22
yahoo_json versus SAP:yahoo_json
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 17:15:02
Ok, neuer Versuch mit 3 Test-Aktien mit Anzahl und (Dummy) Kaufpreis, trotzdem kommt nix


Internals:
   FUUID      5ff6eb54-f33f-4070-8a84-7c431eb21cd7f014
   NAME       Aktien
   NR         1245
   STATE      2021-01-07 17:12:16
   TYPE       STOCKQUOTES
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2021-01-07 17:12:16   depot_buy_value_total 0
     2021-01-07 17:12:16   depot_cur_value_total 0
     2021-01-07 17:12:16   depot_p_change  0
     2021-01-07 17:12:16   depot_p_change_total 0
     2021-01-07 17:12:16   depot_value_diff 0.00
     2021-01-07 17:12:16   depot_value_diff_total 0.00
     2021-01-07 17:12:16   state           2021-01-07 17:12:16
   helper:
Attributes:
   currency   EUR
   defaultSource yahoo_json
   pollInterval 300
   queryTimeout 60
   stocks     TSLA:2:150.00,LIACF:4000:1.00,SAP:2:100
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 17:34:23
Setze mal verbose 5 für das Modul, mache ein "set update" und poste was im LOG ausgegeben wird.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 18:01:26
Da steht leider nichts brauchbares drin:


2021.01.07 17:59:48 4: STOCKQUOTES_QueueTimer: 0 seconds
2021.01.07 17:59:48 4: STOCKQUOTES: Start blocking query
2021.01.07 17:59:49 4: STOCKQUOTES_QueryQuotesBlocking
2021.01.07 17:59:49 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: TSLA from source yahoo_json
2021.01.07 17:59:49 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: LIACF from source yahoo_json
2021.01.07 17:59:49 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: SAP from source yahoo_json
2021.01.07 17:59:49 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: yahoo_json
2021.01.07 17:59:50 4: STOCKQUOTES_QueryQuotesBlocking Return value: Aktien
2021.01.07 17:59:50 4: STOCKQUOTES_QueryQuotesFinished
2021.01.07 17:59:50 4: STOCKQUOTES_QueueTimer: 300 seconds
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 07 Januar 2021, 18:50:34
Es ist ein wenig "Schwarze Kunst" nötig, um die richtigen Symbole zu finden. Idealerweise sucht man sie bei Yahoo selbst - versuchs mal mit SAP.DE

https://de.finance.yahoo.com/quote/SAP.de/?p=SAP.de

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 18:54:10
Prüfe bitte auch mal, welche Version von Finance::Quote installiert ist?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 19:02:51
Nix, leer, empty. Sowohl mit "SAP" als auch mit "SAP.DE". Bin ich der einzige der das Modul verwendet oder funktioniert es einfach nur bei mir nicht? Welche WKN's track ihr? Dann versuche ich das mal
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 07 Januar 2021, 19:53:02
Schau Dir oben den Screenshot an - ich tracke damit derzeit 47 (!) verschiedene Papiere in 12 verschiedenen Instanzen des Moduls. Auf einem Raspberry Pi.

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 20:25:01
Zitat von: ToKa am 07 Januar 2021, 18:54:10
Prüfe bitte auch mal, welche Version von Finance::Quote installiert ist?

Gerne, mit welchem Befehl?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 20:25:37
Zitat von: Prof. Dr. Peter Henning am 07 Januar 2021, 19:53:02
Schau Dir oben den Screenshot an - ich tracke damit derzeit 47 (!) verschiedene Papiere in 12 verschiedenen Instanzen des Moduls. Auf einem Raspberry Pi.

LG

pah

Kannst du mir eine funktionierende Aktie sagen? Dann teste ich das.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 20:29:35
Also bei funktioniert es auch mit mehr als 30 Papieren vorwiegend über yahoo_jason und morningstarch.
Hast Du auch wirklich die aktuellste Version von Finance installiert?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 20:39:27
cpan -D Finance::Quote


liefert bei mir

Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
  Database was generated on Thu, 07 Jan 2021 18:55:44 GMT
Finance::Quote
-------------------------------------------------------------------------
        (no description)
        E/EC/ECOCODE/Finance-Quote-1.49.tar.gz
        /usr/share/perl5/Finance/Quote.pm
        Installed: 1.49
        CPAN:      1.49  up to date
        Erik Colson (ECOCODE)
        eco@ecocode.net
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 21:07:33
pi@raspberrypi:~ $ cpan -D Finance::Quote
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/pi/.cpan/Metadata'
  Database was generated on Thu, 07 Jan 2021 18:55:44 GMT
Finance::Quote
-------------------------------------------------------------------------
        (no description)
        E/EC/ECOCODE/Finance-Quote-1.49.tar.gz
        /usr/local/share/perl/5.24.1/Finance/Quote.pm
        Installed: 1.49
        CPAN:      1.49  up to date
        Erik Colson (ECOCODE)
        eco@ecocode.net
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Januar 2021, 21:55:56
Langsam fällt mir nichts mehr ein  :(

Bei mir läuft perl 5.30, kann mir aber nicht vorstellen, das es daran liegt.
Modulversion ist bei mir 98_STOCKQUOTES.pm:0.187720/2019-03-02
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 07 Januar 2021, 23:34:41
9.1.2017 ... Komisch, mache täglich Updates.
Habe die Datei gefunden und lokal aktualisiert, trotzdem keine Zahlen.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 08 Januar 2021, 05:39:06
Hier mal 10 Aktien, die wunderbar funktionieren:
ZitatInternals:
   NAME       Depot_EUR
   NR         145
   STATE      xxxx 
   TYPE       STOCKQUOTES
   OLDREADINGS:
   READINGS:
   .....
   helper:
Attributes:
   currency   EUR
   defaultSource yahoo_json
   group      Depot
   pollInterval 3600
   queryTimeout 120
   room       hidden
   stateFormat Total
   stocks     FRA.DE:xxx:xxx,X011.DE:xxx:xxx,IXX.DE:xxx:xxx,X010.DE:xxx:xxx,AI.PA:xxx:xxx,NADQ.DE:xxx:xxx,RWE.DE:xxx:xxx,ZPRG.F:xxx:xxx,TKA.DE:xxx:xxx,EDF.PA:xxx:xxx
   verbose    0
   widgetOverride stocks:textField-long

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 08 Januar 2021, 09:17:07
Hallo Det,

hast Du die Datei aus 98_STOCKQUOTES.pm aus dem contrib-Verzeichnis kopiert?

Ansonsten hänge ich mal meine leicht modifizierte Version an.

VG
Torsten
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 08 Januar 2021, 10:40:19
Hier mal ein Testdepot dafür angelegt:

defmod Test STOCKQUOTES
attr Test alias Depot Test
attr Test currency EUR
attr Test defaultSource yahoo_json
attr Test event-on-change-reading .*
attr Test event-on-update-reading depot_.*
attr Test pollInterval 900
attr Test queryTimeout 310
attr Test sources SAP:yahoo_json,LI.V:yahoo_json
attr Test stocks SAP:1:110,LI.V:2:2
attr Test verbose 2
attr Test widgetOverride stocks:textField-long


Versuch es mal damit. Das liefert für SAP und LI.V Werte.

Du kannst die Symbole, wenn Du Sie über yahoo oder auch Google anhand ISIN / WKN gefunden hast damit testen. Einfach hinter dem = das Symbol ändern.
https://query1.finance.yahoo.com/v7/finance/quote?symbols=LI.V
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 08 Januar 2021, 10:42:43
Danke, habe die PM durchgetauscht und vielen Dank erstmal für eure Geduld!

Ergebnis:
Wenn ich bei Yahoo suche, bekomme ich eine Auswahl der Aktie MX, FR, DE usw. Man muss DE auswählen, nur dann wird sie auch gefunden.

Ein Wunsch an den Entwickler: Es wäre mehr als hilftreich wenn ich bein nachkaufen/verkaufen optional aus '_name' wählen kann, also zB. '13X.F_name'. Bin sehr häufig am Day-Traden, Depot sieht oft Abends nicht so aus wie morgens. Wenn ich dann über den Namen kaufen/verkaufen könnte, wäre das mega.

Aktueller Wert (depot_cur_value_total) passt, depot_buy_value_total sowas von überhaupt nicht, entsprechend ist auch depot_value_diff_total gnadenlos falsch.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 08 Januar 2021, 10:46:42
Zitat von: Prof. Dr. Peter Henning am 29 Dezember 2020, 10:01:19
P.S.: Hat jemand Interesse an einem Codeschnipsel, der mithilfe einer readingsGroup diese Anzeige hier schafft:

Ich, sehr gerne!
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 08 Januar 2021, 11:00:04
Zitat von: Det20 am 08 Januar 2021, 10:42:43
Aktueller Wert (depot_cur_value_total) passt, depot_buy_value_total sowas von überhaupt nicht, entsprechend ist auch depot_value_diff_total gnadenlos falsch.

Hast Du beim buy die Stückzahl und den ursprünglichen Gesamtkaufpreis richtig eingegeben? Achtung: Komma kennt das Modul nicht, Du musst für Nachkomma einen Punkt angeben.

Das Modul wird aktuell nicht weiter entwickelt, aber Deine Idee die vorhandenen Papiere als DropDown anzuzeigen, ist gut!
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 08 Januar 2021, 11:17:49
Ja, zB ZJS1.F:100:50.0. Eigentlich müsste bei "d_buy_value_total" logischerweise 5000 stehen, ist aber nicht so, dort steht "50". Die 5000 finde ich im Test nicht wieder (STRG+F)

Fehler müsste in Zeile 416 sein, dann stimmt es bei mir ca (die nervigen Umrechnungsfehler ab 1 Mio EUR :))


readingsBulkUpdate($hash, $i . "_d_buy_value_total", $stockBuyPrice);


müsste ja eigentlich so sein:


readingsBulkUpdate($hash, $i . "_d_buy_value_total", $stockCount*$stockBuyPrice);

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 08 Januar 2021, 11:32:41
Sorry, das kommt davon, wenn man aus dem Kopf heraus antwortet. Es ist der Gesamtpreis

Doku:
set <name> buy <Symbol> <Menge> <Gesamtpreis>
Wertpapier in Depot einbuchen. Wenn dieses Wertpapier bereits vorhanden ist, werden die Neuen einfach dazuaddiert.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 08 Januar 2021, 11:41:31
Ah, da liegt der Fehler. Danke. Du hast nicht zufällig noch ne nette Ansicht rumfliegen?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 08 Januar 2021, 13:33:31
DepotTest musst Du durch den von Dir verwendeten Namen ändern und bei CellStyle die Nr. Deiner letzten Zeile:


defmod rg_Test readingsGroup <Name>,<Bestand>,<Einstandskurs>,<Einstandswert>,<Aktueller&nbspKurs>,<Aktueller&nbspWert>,<G/V&nbsp+/-&nbsp(heute)>,<G/V&nbsp%&nbsp(gesamt)>,<G/V&nbsp+/-&nbsp(gesamt)>,<Kurs-Datum>\
<hr>\
DepotTest:@1,(.*)_name,!#1_d_stockcount,!#1_d_buy_quote,!#1_d_buy_value_total,!#1_last,!#1_d_cur_value_total,!#1_d_value_diff,!#1_d_p_change_total,!#1_d_value_diff_total,!#1_isodate\
<tfoot>\
<hr> \
DepotTest:!Depotwert,!--,!--,!depot_buy_value_total,!--,!depot_cur_value_total,!depot_value_diff,!depot_p_change_total,!depot_value_diff_total,!state:t
attr rg_Test alias Wertpapierdepot Test
attr rg_Test alwaysTrigger 2
attr rg_Test cellStyle { if ($ROW == 16) { return ($READING ne 'state') ? 'style="font-weight:bold"' : 'style="font-weight:normal"' }}
attr rg_Test headerRows 1
attr rg_Test nameStyle {if ($COLUMN > 1) {return 'style="text-align:right;;font-weight:bold"'} }
attr rg_Test nonames 1
attr rg_Test notime 1
attr rg_Test sortColumn 1
attr rg_Test valueFormat { if ($READING =~ /_name/) {return substr($VALUE,0,25)}\
  elsif ($READING =~ /_last|_value/) {return "%.2f" } \
  elsif ($READING =~ /_stockcount/) {return "%.3f"}\
  else {return $VALUE } }
attr rg_Test valueStyle { if ($READING =~ /_p_|_diff/) { return ($VALUE < 0) ? 'style="color:red;;text-align:right"':'style="color:green;;text-align:right"'} \
elsif ($READING =~ /_name/ || $VALUE eq "Depotwert") {return 'style="text-align:left"' } \
elsif ($READING =~ /_d_cur_value_total/) { return 'style="font-weight:bold;;text-align:right"'}\
else { return 'style="text-align:right"'} }
attr rg_Test valueSuffix { if ($READING =~ /p_change/) { return " %" } elsif ($READING =~ /value|diff|last|buy_quote/) { return " €"}}



Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 08 Januar 2021, 13:42:59
Haben zufällig die gleiche Anzahl Aktien :)
Sieht Mega aus, krass! Vielen vielen Dank! Kann man das so an TabletUI übertragen?
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 08 Januar 2021, 13:50:18
Da ich TabletUI nicht nutze, kann ich Dir das nicht beantworten.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 08 Januar 2021, 20:10:30
OK, Code Snippet steht hier:

https://wiki.fhem.de/wiki/Wertpapieranzeige

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Det20 am 09 Januar 2021, 15:47:40
Danke, schaue ich mir heute später noch an
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 29 Januar 2021, 09:44:07
Nachdem das in einem anderen Thread hochkochte, habe ich mal einen Thread zur Diskussion von Anlagemöglichkeiten aufgemacht:

https://forum.fhem.de/index.php/topic,118279.0.html

LG

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: butschek am 07 Juli 2021, 19:51:33
Hallo zusammen

diese STOCKQUOTES haben mich heute den ganzen Tag beschäftigt. Mittlerweile läuft eigentlich alles super. Die Aktien sind angelegt und ziehen sich auch korrekt im Intervall die Daten.

Einzig ein Problem habe ich nun noch in der ReadingsGroup. Hier habe ich die von @TOKA verwendet. Danke dafür. Auch diese funktioniert gut. Bis auf eine kleine Sache. Seitdem ich diese definiert habe, spammed mir diese mein LOG-File.

2021.07.07 19:38:28 1: PERL WARNING: Argument "8QV.F_d_value_diff" isn't numeric in numeric lt (<) at (eval 49772) line 1.
2021.07.07 19:38:28 1: PERL WARNING: Argument "GAZ.de_d_value_diff" isn't numeric in numeric lt (<) at (eval 49835) line 1.
2021.07.07 19:38:28 1: PERL WARNING: Argument "TUI1.de_d_value_diff" isn't numeric in numeric lt (<) at (eval 49898) line 1.
2021.07.07 19:38:30 1: PERL WARNING: Argument "8QV.F_d_value_diff" isn't numeric in numeric lt (<) at (eval 50062) line 1.
2021.07.07 19:38:30 1: PERL WARNING: Argument "GAZ.de_d_value_diff" isn't numeric in numeric lt (<) at (eval 50125) line 1.
2021.07.07 19:38:31 1: PERL WARNING: Argument "TUI1.de_d_value_diff" isn't numeric in numeric lt (<) at (eval 50188) line 1.


Es scheint mir so, als wenn die in der ReadingsGroup dargestellten Zahlen auf Grund der zstl. Zeichen wie € oder % nicht als Zahlen erkannt werden. Auch der in der Tabelle vorhandene Sortierung sortiert diese nicht numerisch, sondern alpha-numerisch.

Folgend ein List der RG:
Internals:
   CFGFN     
   DEF        <Name>,<Bestand>,<Einstandskurs>,<Einstandswert>,<Aktueller&nbspKurs>,<Aktueller&nbspWert>,<G/V&nbsp+/-&nbsp(heute)>,<G/V&nbsp%&nbsp(gesamt)>,<G/V&nbsp+/-&nbsp(gesamt)>,<Kurs-Datum>
<hr>
Depot_smartBroker:@1,(.*)_name,!#1_d_stockcount,!#1_d_buy_quote,!#1_d_buy_value_total,!#1_last,!#1_d_cur_value_total,!#1_d_value_diff,!#1_d_p_change_total,!#1_d_value_diff_total,!#1_isodate
<tfoot>
<hr>
Depot_smartBroker:!Depotwert,!--,!--,!depot_buy_value_total,!--,!depot_cur_value_total,!depot_value_diff,!depot_p_change_total,!depot_value_diff_total,!state:t
   FUUID      60e5e634-f33f-2131-da24-67d419f9f1a792e8
   NAME       rg_Depot
   NR         2532
   NTFY_ORDER 50-rg_Depot
   STATE      Initialized
   TYPE       readingsGroup
   alwaysTrigger 2
   changed    0
   mayBeVisible 1
   CONTENT:
     Depot_smartBroker 1
   CONTENT2:
   DEVICES:
     ARRAY(0x6c2d800)
     ARRAY(0x6ab93b0)
     ARRAY(0x6ab47f0)
     ARRAY(0x6a57f38)
     ARRAY(0x6855ce8)
     ARRAY(0x6b7d718)
   READINGS:
   fhem:
     lastDefChange 86
     last_update 1625679508.09537
   helper:
     DEF       
     cellStyle  { if ($ROW == 16) { return ($READING ne 'state') ? 'style="font-weight:bold"' : 'style="font-weight:normal"' }}
     nameStyle  {if ($COLUMN > 1) {return 'style="text-align:right;font-weight:bold"'} }
     valueFormat { if ($READING =~ /_name/) {return substr($VALUE,0,25)}
  elsif ($READING =~ /_last|_value/) {return "%.2f" }
  elsif ($READING =~ /_stockcount/) {return "%.3f"}
  else {return $VALUE } }
     valueStyle { if ($READING =~ /_p_|_diff/) { return ($VALUE < 0) ? 'style="color:red;text-align:right"':'style="color:green;text-align:right"'}
elsif ($READING =~ /_name/ || $VALUE eq "Depotwert") {return 'style="text-align:left"' }
elsif ($READING =~ /_d_cur_value_total/) { return 'style="font-weight:bold;text-align:right"'}
else { return 'style="text-align:right"'} }
     valueSuffix { if ($READING =~ /p_change/) { return " %" } elsif ($READING =~ /value|diff|last|buy_quote/) { return " €"}}
     positions:
       Depot_smartBroker.-- 9:2,9:3,9:5
       Depot_smartBroker.8QV.F_d_buy_quote 4:3
       Depot_smartBroker.8QV.F_d_buy_value_total 4:4
       Depot_smartBroker.8QV.F_d_cur_value_total 4:6
       Depot_smartBroker.8QV.F_d_p_change_total 4:8
       Depot_smartBroker.8QV.F_d_stockcount 4:2
       Depot_smartBroker.8QV.F_d_value_diff 4:7
       Depot_smartBroker.8QV.F_d_value_diff_total 4:9
       Depot_smartBroker.8QV.F_isodate 4:10
       Depot_smartBroker.8QV.F_last 4:5
       Depot_smartBroker.8QV.F_name 4:1
       Depot_smartBroker.Depotwert 9:1
       Depot_smartBroker.GAZ.de_d_buy_quote 5:3
       Depot_smartBroker.GAZ.de_d_buy_value_total 5:4
       Depot_smartBroker.GAZ.de_d_cur_value_total 5:6
       Depot_smartBroker.GAZ.de_d_p_change_total 5:8
       Depot_smartBroker.GAZ.de_d_stockcount 5:2
       Depot_smartBroker.GAZ.de_d_value_diff 5:7
       Depot_smartBroker.GAZ.de_d_value_diff_total 5:9
       Depot_smartBroker.GAZ.de_isodate 5:10
       Depot_smartBroker.GAZ.de_last 5:5
       Depot_smartBroker.GAZ.de_name 5:1
       Depot_smartBroker.TUI1.de_d_buy_quote 6:3
       Depot_smartBroker.TUI1.de_d_buy_value_total 6:4
       Depot_smartBroker.TUI1.de_d_cur_value_total 6:6
       Depot_smartBroker.TUI1.de_d_p_change_total 6:8
       Depot_smartBroker.TUI1.de_d_stockcount 6:2
       Depot_smartBroker.TUI1.de_d_value_diff 6:7
       Depot_smartBroker.TUI1.de_d_value_diff_total 6:9
       Depot_smartBroker.TUI1.de_isodate 6:10
       Depot_smartBroker.TUI1.de_last 6:5
       Depot_smartBroker.TUI1.de_name 6:1
       Depot_smartBroker.depot_buy_value_total 9:4
       Depot_smartBroker.depot_cur_value_total 9:6
       Depot_smartBroker.depot_p_change_total 9:8
       Depot_smartBroker.depot_value_diff 9:7
       Depot_smartBroker.depot_value_diff_total 9:9
       Depot_smartBroker.state 9:10
     values:
       formated:
         undef
         ARRAY(0x6b0f830)
         ARRAY(0x6afe138)
         ARRAY(0x695ac38)
         ARRAY(0x6b058d8)
         ARRAY(0x6b0cbd0)
         ARRAY(0x69d3548)
         ARRAY(0x555d508)
         ARRAY(0x6aba070)
         ARRAY(0x69d1018)
         ARRAY(0x6aa8240)
       orig:
         undef
         ARRAY(0x69d5a18)
         ARRAY(0x6b28008)
         ARRAY(0x6ab9710)
         ARRAY(0x6c28e10)
         ARRAY(0x68603d8)
         ARRAY(0x68d5710)
         ARRAY(0x6855d48)
         ARRAY(0x6853e18)
         ARRAY(0x6957f10)
         ARRAY(0x6a57878)
       prefixsuffix:
         undef
         ARRAY(0x6835c98)
         ARRAY(0x5701e40)
         ARRAY(0x23c5378)
         ARRAY(0x5574760)
         ARRAY(0x6cff558)
         ARRAY(0x6ce8548)
         ARRAY(0x683ded0)
         ARRAY(0x5807da8)
         ARRAY(0x5702a88)
         ARRAY(0x6cd8780)
Attributes:
   DbLogExclude .*
   alias      SmartBroker
   alwaysTrigger 2
   cellStyle  { if ($ROW == 16) { return ($READING ne 'state') ? 'style="font-weight:bold"' : 'style="font-weight:normal"' }}
   headerRows 1
   nameStyle  {if ($COLUMN > 1) {return 'style="text-align:right;font-weight:bold"'} }
   nonames    1
   notime     1
   room       Finanzen
   sortColumn 1
   valueFormat { if ($READING =~ /_name/) {return substr($VALUE,0,25)}
  elsif ($READING =~ /_last|_value/) {return "%.2f" }
  elsif ($READING =~ /_stockcount/) {return "%.3f"}
  else {return $VALUE } }
   valueStyle { if ($READING =~ /_p_|_diff/) { return ($VALUE < 0) ? 'style="color:red;text-align:right"':'style="color:green;text-align:right"'}
elsif ($READING =~ /_name/ || $VALUE eq "Depotwert") {return 'style="text-align:left"' }
elsif ($READING =~ /_d_cur_value_total/) { return 'style="font-weight:bold;text-align:right"'}
else { return 'style="text-align:right"'} }
   valueSuffix { if ($READING =~ /p_change/) { return " %" } elsif ($READING =~ /value|diff|last|buy_quote/) { return " €"}}


Hat hier jemand eine Idee?

LG und einen schönen Abend noch.
Holger
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: ToKa am 07 Juli 2021, 21:50:43
Hallo Holger,

sind die readings überhaupt vorhanden?

VG
Torsten
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: butschek am 08 Juli 2021, 01:23:35
Hallo Torsten

ja, schon. Es funktioniert eigentlich alles soweit ich das sehe.

Hier ein Pic im Anhang.
Einzig was nicht funktioniert sind die häufigen Einträge im Log. Ich habe etwas gelesen, dass man anstatt ReadingVAL ein ReadingNUM verwenden soll. Ich vermute, dass dies im DEF Teil der ReadingGroup sein müßte. Allerdings weiß ich nicht, wie ich dies einpflegen sollte in den bestehenden Code.

Danke, dass du spontan geantwortet hast.

VG
Holger
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: butschek am 09 Juli 2021, 09:13:51
Hallo Torsten

nach weiterem herum probieren konnte ich den Fehler auf den ValueStyle eingrenzen.

Irgendwo hier ist ein Problem:
{ if ($READING =~ /_p_|_diff/) { return ($VALUE < 0) ? 'style="color:red;text-align:right"':'style="color:green;text-align:right"'}
elsif ($READING =~ /_name/ || $VALUE eq "Depotwert") {return 'style="text-align:left"' }
elsif ($READING =~ /_d_cur_value_total/) { return 'style="font-weight:bold;text-align:right"'}
else { return 'style="text-align:right"'} }


Kann es sein, dass dieser Part  return ($VALUE < 0)   den Fehler auslöst? Weißt du eine Möglichkeit, dass man hier nur die reine Zahl im $VALUE stehen hat und diese gegen null (0) vergleicht?

Zumindest vermute ich, dass dies das Problem ist.

NACHTRAG:
Habe aus $VALUE < 0 nun $VALUE lt 0 gemacht. Nun gibt es keine Fehlermeldung mehr. Die Ansicht scheint immer noch zu funktionieren. Somit heißt dies nun warten und beobachten.


Viele Grüße
Holger

Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 09 Juli 2021, 12:45:40
ZitatHabe aus $VALUE < 0 nun $VALUE lt 0 gemacht. Nun gibt es keine Fehlermeldung mehr. Die Ansicht scheint immer noch zu funktionieren. Somit heißt dies nun warten und beobachten.

Sorry für die deutlichen Worte, aber ist doch einfach Käse! >:(

Statt wild herumzuprobieren vielleicht einfach mal die Perl-Grundlagen lernen, siehe hier https://www.geeksforgeeks.org/perl-lt-operator/.

pah
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: butschek am 09 Juli 2021, 15:37:06
Ich bin ein Freund von klaren Worten.

Lieben Dank für den nett gemeinten Rat.

Wie schon beschrieben: Das Problem ist gelöst. Auf die ein oder andere Art und Weise.
Titel: Antw:Neues Modul: 98_STOCKQUOTES
Beitrag von: Prof. Dr. Peter Henning am 13 Januar 2022, 10:02:57
Ankündigung einer Überarbeitung https://forum.fhem.de/index.php/topic,125397.0.html